mirror of
https://github.com/eitchtee/WYGIWYH.git
synced 2026-04-11 03:27:11 +02:00
feat: finish adding DCA Tracker tool
This commit is contained in:
@@ -1,16 +1,24 @@
|
||||
from crispy_forms.bootstrap import FormActions
|
||||
from django import forms
|
||||
from crispy_forms.helper import FormHelper
|
||||
from crispy_forms.layout import Layout, Row, Column
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from .models import DCAStrategy, DCAEntry
|
||||
from apps.common.widgets.tom_select import TomSelect
|
||||
from apps.dca.models import DCAStrategy, DCAEntry
|
||||
from apps.common.widgets.decimal import ArbitraryDecimalDisplayNumberInput
|
||||
from apps.common.widgets.crispy.submit import NoClassSubmit
|
||||
|
||||
|
||||
class DCAStrategyForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = DCAStrategy
|
||||
fields = ["name", "target_currency", "payment_currency", "notes"]
|
||||
widgets = {
|
||||
"target_currency": TomSelect(clear_button=False),
|
||||
"payment_currency": TomSelect(clear_button=False),
|
||||
"notes": forms.Textarea(attrs={"rows": 3}),
|
||||
}
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
@@ -19,12 +27,29 @@ class DCAStrategyForm(forms.ModelForm):
|
||||
self.helper.layout = Layout(
|
||||
"name",
|
||||
Row(
|
||||
Column("target_currency", css_class="form-group col-md-6"),
|
||||
Column("payment_currency", css_class="form-group col-md-6"),
|
||||
Column("target_currency", css_class="form-group col-md-6"),
|
||||
),
|
||||
"notes",
|
||||
)
|
||||
|
||||
if self.instance and self.instance.pk:
|
||||
self.helper.layout.append(
|
||||
FormActions(
|
||||
NoClassSubmit(
|
||||
"submit", _("Update"), css_class="btn btn-outline-primary w-100"
|
||||
),
|
||||
),
|
||||
)
|
||||
else:
|
||||
self.helper.layout.append(
|
||||
FormActions(
|
||||
NoClassSubmit(
|
||||
"submit", _("Add"), css_class="btn btn-outline-primary w-100"
|
||||
),
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
class DCAEntryForm(forms.ModelForm):
|
||||
class Meta:
|
||||
@@ -33,13 +58,11 @@ class DCAEntryForm(forms.ModelForm):
|
||||
"date",
|
||||
"amount_paid",
|
||||
"amount_received",
|
||||
"expense_transaction",
|
||||
"income_transaction",
|
||||
"notes",
|
||||
]
|
||||
widgets = {
|
||||
"amount_paid": ArbitraryDecimalDisplayNumberInput(decimal_places=8),
|
||||
"amount_received": ArbitraryDecimalDisplayNumberInput(decimal_places=8),
|
||||
"date": forms.DateInput(attrs={"type": "date"}, format="%Y-%m-%d"),
|
||||
"notes": forms.Textarea(attrs={"rows": 3}),
|
||||
}
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
@@ -58,3 +81,28 @@ class DCAEntryForm(forms.ModelForm):
|
||||
),
|
||||
"notes",
|
||||
)
|
||||
|
||||
if self.instance and self.instance.pk:
|
||||
# decimal_places = self.instance.account.currency.decimal_places
|
||||
# self.fields["amount"].widget = ArbitraryDecimalDisplayNumberInput(
|
||||
# decimal_places=decimal_places
|
||||
# )
|
||||
self.helper.layout.append(
|
||||
FormActions(
|
||||
NoClassSubmit(
|
||||
"submit", _("Update"), css_class="btn btn-outline-primary w-100"
|
||||
),
|
||||
),
|
||||
)
|
||||
else:
|
||||
# self.fields["amount"].widget = ArbitraryDecimalDisplayNumberInput()
|
||||
self.helper.layout.append(
|
||||
FormActions(
|
||||
NoClassSubmit(
|
||||
"submit", _("Add"), css_class="btn btn-outline-primary w-100"
|
||||
),
|
||||
),
|
||||
)
|
||||
|
||||
self.fields["amount_paid"].widget = ArbitraryDecimalDisplayNumberInput()
|
||||
self.fields["amount_received"].widget = ArbitraryDecimalDisplayNumberInput()
|
||||
|
||||
Reference in New Issue
Block a user