feat(app): allow changing date and datetime format as a user setting

This commit is contained in:
Herculino Trotta
2025-01-20 19:35:22 -03:00
parent f68e954bc0
commit 60fe4c9681
21 changed files with 426 additions and 130 deletions

View File

@@ -65,9 +65,6 @@ class CurrencyForm(forms.ModelForm):
class ExchangeRateForm(forms.ModelForm):
date = forms.DateTimeField(
widget=AirDateTimePickerInput(
clear_button=False,
),
label=_("Date"),
)
@@ -75,7 +72,7 @@ class ExchangeRateForm(forms.ModelForm):
model = ExchangeRate
fields = ["from_currency", "to_currency", "rate", "date"]
def __init__(self, *args, **kwargs):
def __init__(self, *args, user=None, **kwargs):
super().__init__(*args, **kwargs)
self.helper = FormHelper()
@@ -84,6 +81,9 @@ class ExchangeRateForm(forms.ModelForm):
self.helper.layout = Layout("date", "from_currency", "to_currency", "rate")
self.fields["rate"].widget = ArbitraryDecimalDisplayNumberInput()
self.fields["date"].widget = AirDateTimePickerInput(
clear_button=False, user=user
)
if self.instance and self.instance.pk:
self.helper.layout.append(

View File

@@ -84,7 +84,7 @@ def exchange_rates_list_pair(request):
@require_http_methods(["GET", "POST"])
def exchange_rate_add(request):
if request.method == "POST":
form = ExchangeRateForm(request.POST)
form = ExchangeRateForm(request.POST, user=request.user)
if form.is_valid():
form.save()
messages.success(request, _("Exchange rate added successfully"))
@@ -96,7 +96,7 @@ def exchange_rate_add(request):
},
)
else:
form = ExchangeRateForm()
form = ExchangeRateForm(user=request.user)
return render(
request,
@@ -112,7 +112,7 @@ def exchange_rate_edit(request, pk):
exchange_rate = get_object_or_404(ExchangeRate, id=pk)
if request.method == "POST":
form = ExchangeRateForm(request.POST, instance=exchange_rate)
form = ExchangeRateForm(request.POST, instance=exchange_rate, user=request.user)
if form.is_valid():
form.save()
messages.success(request, _("Exchange rate updated successfully"))
@@ -124,7 +124,7 @@ def exchange_rate_edit(request, pk):
},
)
else:
form = ExchangeRateForm(instance=exchange_rate)
form = ExchangeRateForm(instance=exchange_rate, user=request.user)
return render(
request,