refactor: remove user attr from datepicker

since monkey patched get_format already does what we want
This commit is contained in:
Herculino Trotta
2025-01-27 13:25:06 -03:00
parent 3796112d77
commit 187c56c96c
11 changed files with 44 additions and 66 deletions
-4
View File
@@ -19,12 +19,10 @@ class AirDatePickerInput(widgets.DateInput):
format=None, format=None,
clear_button=True, clear_button=True,
auto_close=True, auto_close=True,
user=None,
*args, *args,
**kwargs, **kwargs,
): ):
attrs = attrs or {} attrs = attrs or {}
self.user = user
super().__init__(attrs=attrs, format=format, *args, **kwargs) super().__init__(attrs=attrs, format=format, *args, **kwargs)
self.clear_button = clear_button self.clear_button = clear_button
self.auto_close = auto_close self.auto_close = auto_close
@@ -91,12 +89,10 @@ class AirDateTimePickerInput(widgets.DateTimeInput):
timepicker=True, timepicker=True,
clear_button=True, clear_button=True,
auto_close=True, auto_close=True,
user=None,
*args, *args,
**kwargs, **kwargs,
): ):
attrs = attrs or {} attrs = attrs or {}
self.user = user
super().__init__(attrs=attrs, format=format, *args, **kwargs) super().__init__(attrs=attrs, format=format, *args, **kwargs)
self.timepicker = timepicker self.timepicker = timepicker
self.clear_button = clear_button self.clear_button = clear_button
+2 -4
View File
@@ -72,7 +72,7 @@ class ExchangeRateForm(forms.ModelForm):
model = ExchangeRate model = ExchangeRate
fields = ["from_currency", "to_currency", "rate", "date"] fields = ["from_currency", "to_currency", "rate", "date"]
def __init__(self, *args, user=None, **kwargs): def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs) super().__init__(*args, **kwargs)
self.helper = FormHelper() self.helper = FormHelper()
@@ -81,9 +81,7 @@ class ExchangeRateForm(forms.ModelForm):
self.helper.layout = Layout("date", "from_currency", "to_currency", "rate") self.helper.layout = Layout("date", "from_currency", "to_currency", "rate")
self.fields["rate"].widget = ArbitraryDecimalDisplayNumberInput() self.fields["rate"].widget = ArbitraryDecimalDisplayNumberInput()
self.fields["date"].widget = AirDateTimePickerInput( self.fields["date"].widget = AirDateTimePickerInput(clear_button=False)
clear_button=False, user=user
)
if self.instance and self.instance.pk: if self.instance and self.instance.pk:
self.helper.layout.append( self.helper.layout.append(
+4 -4
View File
@@ -83,7 +83,7 @@ def exchange_rates_list_pair(request):
@require_http_methods(["GET", "POST"]) @require_http_methods(["GET", "POST"])
def exchange_rate_add(request): def exchange_rate_add(request):
if request.method == "POST": if request.method == "POST":
form = ExchangeRateForm(request.POST, user=request.user) form = ExchangeRateForm(request.POST)
if form.is_valid(): if form.is_valid():
form.save() form.save()
messages.success(request, _("Exchange rate added successfully")) messages.success(request, _("Exchange rate added successfully"))
@@ -95,7 +95,7 @@ def exchange_rate_add(request):
}, },
) )
else: else:
form = ExchangeRateForm(user=request.user) form = ExchangeRateForm()
return render( return render(
request, request,
@@ -111,7 +111,7 @@ def exchange_rate_edit(request, pk):
exchange_rate = get_object_or_404(ExchangeRate, id=pk) exchange_rate = get_object_or_404(ExchangeRate, id=pk)
if request.method == "POST": if request.method == "POST":
form = ExchangeRateForm(request.POST, instance=exchange_rate, user=request.user) form = ExchangeRateForm(request.POST, instance=exchange_rate)
if form.is_valid(): if form.is_valid():
form.save() form.save()
messages.success(request, _("Exchange rate updated successfully")) messages.success(request, _("Exchange rate updated successfully"))
@@ -123,7 +123,7 @@ def exchange_rate_edit(request, pk):
}, },
) )
else: else:
form = ExchangeRateForm(instance=exchange_rate, user=request.user) form = ExchangeRateForm(instance=exchange_rate)
return render( return render(
request, request,
+2 -2
View File
@@ -65,7 +65,7 @@ class DCAEntryForm(forms.ModelForm):
"notes": forms.Textarea(attrs={"rows": 3}), "notes": forms.Textarea(attrs={"rows": 3}),
} }
def __init__(self, *args, user=None, **kwargs): def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs) super().__init__(*args, **kwargs)
self.helper = FormHelper() self.helper = FormHelper()
self.helper.form_tag = False self.helper.form_tag = False
@@ -106,4 +106,4 @@ class DCAEntryForm(forms.ModelForm):
self.fields["amount_paid"].widget = ArbitraryDecimalDisplayNumberInput() self.fields["amount_paid"].widget = ArbitraryDecimalDisplayNumberInput()
self.fields["amount_received"].widget = ArbitraryDecimalDisplayNumberInput() self.fields["amount_received"].widget = ArbitraryDecimalDisplayNumberInput()
self.fields["date"].widget = AirDatePickerInput(clear_button=False, user=user) self.fields["date"].widget = AirDatePickerInput(clear_button=False)
+4 -4
View File
@@ -155,7 +155,7 @@ def strategy_detail(request, strategy_id):
def strategy_entry_add(request, strategy_id): def strategy_entry_add(request, strategy_id):
strategy = get_object_or_404(DCAStrategy, id=strategy_id) strategy = get_object_or_404(DCAStrategy, id=strategy_id)
if request.method == "POST": if request.method == "POST":
form = DCAEntryForm(request.POST, user=request.user) form = DCAEntryForm(request.POST)
if form.is_valid(): if form.is_valid():
entry = form.save(commit=False) entry = form.save(commit=False)
entry.strategy = strategy entry.strategy = strategy
@@ -169,7 +169,7 @@ def strategy_entry_add(request, strategy_id):
}, },
) )
else: else:
form = DCAEntryForm(user=request.user) form = DCAEntryForm()
return render( return render(
request, request,
@@ -184,7 +184,7 @@ def strategy_entry_edit(request, strategy_id, entry_id):
dca_entry = get_object_or_404(DCAEntry, id=entry_id, strategy__id=strategy_id) dca_entry = get_object_or_404(DCAEntry, id=entry_id, strategy__id=strategy_id)
if request.method == "POST": if request.method == "POST":
form = DCAEntryForm(request.POST, instance=dca_entry, user=request.user) form = DCAEntryForm(request.POST, instance=dca_entry)
if form.is_valid(): if form.is_valid():
form.save() form.save()
messages.success(request, _("Entry updated successfully")) messages.success(request, _("Entry updated successfully"))
@@ -196,7 +196,7 @@ def strategy_entry_edit(request, strategy_id, entry_id):
}, },
) )
else: else:
form = DCAEntryForm(instance=dca_entry, user=request.user) form = DCAEntryForm(instance=dca_entry)
return render( return render(
request, request,
+2 -2
View File
@@ -41,7 +41,7 @@ def monthly_overview(request, month: int, year: int):
previous_month = 12 if month == 1 else month - 1 previous_month = 12 if month == 1 else month - 1
previous_year = year - 1 if previous_month == 12 and month == 1 else year previous_year = year - 1 if previous_month == 12 and month == 1 else year
f = TransactionsFilter(request.GET, user=request.user) f = TransactionsFilter(request.GET)
return render( return render(
request, request,
@@ -64,7 +64,7 @@ def monthly_overview(request, month: int, year: int):
def transactions_list(request, month: int, year: int): def transactions_list(request, month: int, year: int):
order = request.GET.get("order") order = request.GET.get("order")
f = TransactionsFilter(request.GET, user=request.user) f = TransactionsFilter(request.GET)
transactions_filtered = ( transactions_filtered = (
f.qs.filter() f.qs.filter()
.filter( .filter(
+3 -3
View File
@@ -133,7 +133,7 @@ class TransactionsFilter(django_filters.FilterSet):
"to_amount", "to_amount",
] ]
def __init__(self, data=None, user=None, *args, **kwargs): def __init__(self, data=None, *args, **kwargs):
# if filterset is bound, use initial values as defaults # if filterset is bound, use initial values as defaults
if data is not None: if data is not None:
# get a mutable copy of the QueryDict # get a mutable copy of the QueryDict
@@ -182,5 +182,5 @@ class TransactionsFilter(django_filters.FilterSet):
self.form.fields["to_amount"].widget = ArbitraryDecimalDisplayNumberInput() self.form.fields["to_amount"].widget = ArbitraryDecimalDisplayNumberInput()
self.form.fields["from_amount"].widget = ArbitraryDecimalDisplayNumberInput() self.form.fields["from_amount"].widget = ArbitraryDecimalDisplayNumberInput()
self.form.fields["date_start"].widget = AirDatePickerInput(user=user) self.form.fields["date_start"].widget = AirDatePickerInput()
self.form.fields["date_end"].widget = AirDatePickerInput(user=user) self.form.fields["date_end"].widget = AirDatePickerInput()
+9 -13
View File
@@ -86,7 +86,7 @@ class TransactionForm(forms.ModelForm):
"account": TomSelect(clear_button=False, group_by="group"), "account": TomSelect(clear_button=False, group_by="group"),
} }
def __init__(self, *args, user=None, **kwargs): def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs) super().__init__(*args, **kwargs)
# if editing a transaction display non-archived items and it's own item even if it's archived # if editing a transaction display non-archived items and it's own item even if it's archived
@@ -177,7 +177,7 @@ class TransactionForm(forms.ModelForm):
) )
self.fields["reference_date"].required = False self.fields["reference_date"].required = False
self.fields["date"].widget = AirDatePickerInput(clear_button=False, user=user) self.fields["date"].widget = AirDatePickerInput(clear_button=False)
if self.instance and self.instance.pk: if self.instance and self.instance.pk:
decimal_places = self.instance.account.currency.decimal_places decimal_places = self.instance.account.currency.decimal_places
@@ -333,7 +333,7 @@ class TransferForm(forms.Form):
label=_("Notes"), label=_("Notes"),
) )
def __init__(self, *args, user=None, **kwargs): def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs) super().__init__(*args, **kwargs)
self.helper = FormHelper() self.helper = FormHelper()
@@ -402,7 +402,7 @@ class TransferForm(forms.Form):
self.fields["from_amount"].widget = ArbitraryDecimalDisplayNumberInput() self.fields["from_amount"].widget = ArbitraryDecimalDisplayNumberInput()
self.fields["to_amount"].widget = ArbitraryDecimalDisplayNumberInput() self.fields["to_amount"].widget = ArbitraryDecimalDisplayNumberInput()
self.fields["date"].widget = AirDatePickerInput(clear_button=False, user=user) self.fields["date"].widget = AirDatePickerInput(clear_button=False)
def clean(self): def clean(self):
cleaned_data = super().clean() cleaned_data = super().clean()
@@ -515,7 +515,7 @@ class InstallmentPlanForm(forms.ModelForm):
"notes": forms.Textarea(attrs={"rows": 3}), "notes": forms.Textarea(attrs={"rows": 3}),
} }
def __init__(self, *args, user=None, **kwargs): def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs) super().__init__(*args, **kwargs)
# if editing display non-archived items and it's own item even if it's archived # if editing display non-archived items and it's own item even if it's archived
@@ -572,9 +572,7 @@ class InstallmentPlanForm(forms.ModelForm):
) )
self.fields["installment_amount"].widget = ArbitraryDecimalDisplayNumberInput() self.fields["installment_amount"].widget = ArbitraryDecimalDisplayNumberInput()
self.fields["start_date"].widget = AirDatePickerInput( self.fields["start_date"].widget = AirDatePickerInput(clear_button=False)
clear_button=False, user=user
)
if self.instance and self.instance.pk: if self.instance and self.instance.pk:
self.helper.layout.append( self.helper.layout.append(
@@ -762,7 +760,7 @@ class RecurringTransactionForm(forms.ModelForm):
), ),
} }
def __init__(self, *args, user=None, **kwargs): def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs) super().__init__(*args, **kwargs)
# if editing display non-archived items and it's own item even if it's archived # if editing display non-archived items and it's own item even if it's archived
@@ -819,10 +817,8 @@ class RecurringTransactionForm(forms.ModelForm):
) )
self.fields["amount"].widget = ArbitraryDecimalDisplayNumberInput() self.fields["amount"].widget = ArbitraryDecimalDisplayNumberInput()
self.fields["start_date"].widget = AirDatePickerInput( self.fields["start_date"].widget = AirDatePickerInput(clear_button=False)
clear_button=False, user=user self.fields["end_date"].widget = AirDatePickerInput()
)
self.fields["end_date"].widget = AirDatePickerInput(user=user)
if self.instance and self.instance.pk: if self.instance and self.instance.pk:
self.helper.layout.append( self.helper.layout.append(
@@ -81,7 +81,7 @@ def installment_plan_transactions(request, installment_plan_id):
@require_http_methods(["GET", "POST"]) @require_http_methods(["GET", "POST"])
def installment_plan_add(request): def installment_plan_add(request):
if request.method == "POST": if request.method == "POST":
form = InstallmentPlanForm(request.POST, user=request.user) form = InstallmentPlanForm(request.POST)
if form.is_valid(): if form.is_valid():
form.save() form.save()
messages.success(request, _("Installment Plan added successfully")) messages.success(request, _("Installment Plan added successfully"))
@@ -93,7 +93,7 @@ def installment_plan_add(request):
}, },
) )
else: else:
form = InstallmentPlanForm(user=request.user) form = InstallmentPlanForm()
return render( return render(
request, request,
@@ -109,9 +109,7 @@ def installment_plan_edit(request, installment_plan_id):
installment_plan = get_object_or_404(InstallmentPlan, id=installment_plan_id) installment_plan = get_object_or_404(InstallmentPlan, id=installment_plan_id)
if request.method == "POST": if request.method == "POST":
form = InstallmentPlanForm( form = InstallmentPlanForm(request.POST, instance=installment_plan)
request.POST, instance=installment_plan, user=request.user
)
if form.is_valid(): if form.is_valid():
form.save() form.save()
messages.success(request, _("Installment Plan updated successfully")) messages.success(request, _("Installment Plan updated successfully"))
@@ -123,7 +121,7 @@ def installment_plan_edit(request, installment_plan_id):
}, },
) )
else: else:
form = InstallmentPlanForm(instance=installment_plan, user=request.user) form = InstallmentPlanForm(instance=installment_plan)
return render( return render(
request, request,
@@ -106,7 +106,7 @@ def recurring_transaction_transactions(request, recurring_transaction_id):
@require_http_methods(["GET", "POST"]) @require_http_methods(["GET", "POST"])
def recurring_transaction_add(request): def recurring_transaction_add(request):
if request.method == "POST": if request.method == "POST":
form = RecurringTransactionForm(request.POST, user=request.user) form = RecurringTransactionForm(request.POST)
if form.is_valid(): if form.is_valid():
form.save() form.save()
messages.success(request, _("Recurring Transaction added successfully")) messages.success(request, _("Recurring Transaction added successfully"))
@@ -118,7 +118,7 @@ def recurring_transaction_add(request):
}, },
) )
else: else:
form = RecurringTransactionForm(user=request.user) form = RecurringTransactionForm()
return render( return render(
request, request,
@@ -136,9 +136,7 @@ def recurring_transaction_edit(request, recurring_transaction_id):
) )
if request.method == "POST": if request.method == "POST":
form = RecurringTransactionForm( form = RecurringTransactionForm(request.POST, instance=recurring_transaction)
request.POST, instance=recurring_transaction, user=request.user
)
if form.is_valid(): if form.is_valid():
form.save() form.save()
messages.success(request, _("Recurring Transaction updated successfully")) messages.success(request, _("Recurring Transaction updated successfully"))
@@ -150,9 +148,7 @@ def recurring_transaction_edit(request, recurring_transaction_id):
}, },
) )
else: else:
form = RecurringTransactionForm( form = RecurringTransactionForm(instance=recurring_transaction)
instance=recurring_transaction, user=request.user
)
return render( return render(
request, request,
+10 -16
View File
@@ -44,7 +44,7 @@ def transaction_add(request):
).date() ).date()
if request.method == "POST": if request.method == "POST":
form = TransactionForm(request.POST, user=request.user) form = TransactionForm(request.POST)
if form.is_valid(): if form.is_valid():
form.save() form.save()
messages.success(request, _("Transaction added successfully")) messages.success(request, _("Transaction added successfully"))
@@ -55,7 +55,6 @@ def transaction_add(request):
) )
else: else:
form = TransactionForm( form = TransactionForm(
user=request.user,
initial={ initial={
"date": expected_date, "date": expected_date,
"type": transaction_type, "type": transaction_type,
@@ -84,13 +83,12 @@ def transaction_simple_add(request):
).date() ).date()
if request.method == "POST": if request.method == "POST":
form = TransactionForm(request.POST, user=request.user) form = TransactionForm(request.POST)
if form.is_valid(): if form.is_valid():
form.save() form.save()
messages.success(request, _("Transaction added successfully")) messages.success(request, _("Transaction added successfully"))
form = TransactionForm( form = TransactionForm(
user=request.user,
initial={ initial={
"date": expected_date, "date": expected_date,
"type": transaction_type, "type": transaction_type,
@@ -99,7 +97,6 @@ def transaction_simple_add(request):
else: else:
form = TransactionForm( form = TransactionForm(
user=request.user,
initial={ initial={
"date": expected_date, "date": expected_date,
"type": transaction_type, "type": transaction_type,
@@ -120,7 +117,7 @@ def transaction_edit(request, transaction_id, **kwargs):
transaction = get_object_or_404(Transaction, id=transaction_id) transaction = get_object_or_404(Transaction, id=transaction_id)
if request.method == "POST": if request.method == "POST":
form = TransactionForm(request.POST, user=request.user, instance=transaction) form = TransactionForm(request.POST, instance=transaction)
if form.is_valid(): if form.is_valid():
form.save() form.save()
messages.success(request, _("Transaction updated successfully")) messages.success(request, _("Transaction updated successfully"))
@@ -130,7 +127,7 @@ def transaction_edit(request, transaction_id, **kwargs):
headers={"HX-Trigger": "updated, hide_offcanvas"}, headers={"HX-Trigger": "updated, hide_offcanvas"},
) )
else: else:
form = TransactionForm(instance=transaction, user=request.user) form = TransactionForm(instance=transaction)
return render( return render(
request, request,
@@ -152,7 +149,7 @@ def transactions_bulk_edit(request):
count = transactions.count() count = transactions.count()
if request.method == "POST": if request.method == "POST":
form = BulkEditTransactionForm(request.POST, user=request.user) form = BulkEditTransactionForm(request.POST)
if form.is_valid(): if form.is_valid():
# Apply changes from the form to all selected transactions # Apply changes from the form to all selected transactions
for transaction in transactions: for transaction in transactions:
@@ -184,9 +181,7 @@ def transactions_bulk_edit(request):
headers={"HX-Trigger": "updated, hide_offcanvas"}, headers={"HX-Trigger": "updated, hide_offcanvas"},
) )
else: else:
form = BulkEditTransactionForm( form = BulkEditTransactionForm(initial={"is_paid": None, "type": None})
initial={"is_paid": None, "type": None}, user=request.user
)
context = { context = {
"form": form, "form": form,
@@ -276,7 +271,7 @@ def transactions_transfer(request):
).date() ).date()
if request.method == "POST": if request.method == "POST":
form = TransferForm(request.POST, user=request.user) form = TransferForm(request.POST)
if form.is_valid(): if form.is_valid():
form.save() form.save()
messages.success(request, _("Transfer added successfully")) messages.success(request, _("Transfer added successfully"))
@@ -290,7 +285,6 @@ def transactions_transfer(request):
"reference_date": expected_date, "reference_date": expected_date,
"date": expected_date, "date": expected_date,
}, },
user=request.user,
) )
return render(request, "transactions/fragments/transfer.html", {"form": form}) return render(request, "transactions/fragments/transfer.html", {"form": form})
@@ -319,7 +313,7 @@ def transaction_pay(request, transaction_id):
@login_required @login_required
@require_http_methods(["GET"]) @require_http_methods(["GET"])
def transaction_all_index(request): def transaction_all_index(request):
f = TransactionsFilter(request.GET, user=request.user) f = TransactionsFilter(request.GET)
return render(request, "transactions/pages/transactions.html", {"filter": f}) return render(request, "transactions/pages/transactions.html", {"filter": f})
@@ -341,7 +335,7 @@ def transaction_all_list(request):
transactions = default_order(transactions, order=order) transactions = default_order(transactions, order=order)
f = TransactionsFilter(request.GET, user=request.user, queryset=transactions) f = TransactionsFilter(request.GET, queryset=transactions)
page_number = request.GET.get("page", 1) page_number = request.GET.get("page", 1)
paginator = Paginator(f.qs, 100) paginator = Paginator(f.qs, 100)
@@ -371,7 +365,7 @@ def transaction_all_summary(request):
"installment_plan", "installment_plan",
).all() ).all()
f = TransactionsFilter(request.GET, user=request.user, queryset=transactions) f = TransactionsFilter(request.GET, queryset=transactions)
currency_data = calculate_currency_totals(f.qs.all(), ignore_empty=True) currency_data = calculate_currency_totals(f.qs.all(), ignore_empty=True)
currency_percentages = calculate_percentage_distribution(currency_data) currency_percentages = calculate_percentage_distribution(currency_data)