Refactor fuel form
This commit is contained in:
parent
35afb08960
commit
88802360db
@ -62,17 +62,16 @@ class IncomeForm(forms.ModelForm):
|
||||
)
|
||||
|
||||
|
||||
class FuelEntryForm(forms.Form):
|
||||
# Expense fields
|
||||
date = forms.DateField(
|
||||
widget=forms.DateInput(format="%Y-%m-%d", attrs={"type": "date"})
|
||||
)
|
||||
amount = forms.DecimalField(max_digits=10, decimal_places=2)
|
||||
account = forms.ModelChoiceField(queryset=None)
|
||||
|
||||
# Specifics fuel fields
|
||||
odometer = forms.DecimalField(label="Current kilometers")
|
||||
liters = forms.DecimalField(max_digits=8, decimal_places=2)
|
||||
class FuelEntryForm(forms.ModelForm):
|
||||
odometer = forms.DecimalField(label="Kilómetros actuales")
|
||||
liters = forms.DecimalField(max_digits=8, decimal_places=2, label="Litros")
|
||||
|
||||
class Meta:
|
||||
model = Expense
|
||||
fields = ["date", "amount", "account"]
|
||||
widgets = {
|
||||
"date": forms.DateInput(format="%Y-%m-%d", attrs={"type":"date"}),
|
||||
}
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
user = kwargs.pop("user")
|
||||
@ -80,6 +79,11 @@ class FuelEntryForm(forms.Form):
|
||||
|
||||
if user:
|
||||
self.fields["account"].queryset = user.accounts.filter(active=True)
|
||||
|
||||
if self.instance.pk and hasattr(self.instance, "fuel_data"):
|
||||
fuel = self.instance.fuel_data
|
||||
self.fields["odometer"].initial = fuel.odometer
|
||||
self.fields["liters"].initial = fuel.liters
|
||||
|
||||
|
||||
class CategoryForm(forms.ModelForm):
|
||||
|
||||
@ -712,14 +712,12 @@ def fuel_create(request):
|
||||
owner=request.user,
|
||||
defaults={"name": "Gasolina"},
|
||||
)
|
||||
expense = Expense.objects.create(
|
||||
owner=request.user,
|
||||
date=form.cleaned_data["date"],
|
||||
amount=form.cleaned_data["amount"],
|
||||
account=form.cleaned_data["account"],
|
||||
category=category,
|
||||
description="Repostaje",
|
||||
)
|
||||
|
||||
expense = form.save(commit=False)
|
||||
expense.owner = request.user
|
||||
expense.category = category
|
||||
expense.description = "Repostaje"
|
||||
expense.save()
|
||||
|
||||
FuelEntry.objects.create(
|
||||
expense=expense,
|
||||
@ -811,9 +809,7 @@ def fuel_edit(request, pk):
|
||||
|
||||
if form.is_valid():
|
||||
# Update expense
|
||||
expense.date = form.cleaned_data["date"]
|
||||
expense.amount = form.cleaned_data["amount"]
|
||||
expense.account = form.cleaned_data["account"]
|
||||
expense.date = form.save(commit=False)
|
||||
expense.description = "Repostaje"
|
||||
expense.save()
|
||||
|
||||
@ -824,18 +820,7 @@ def fuel_edit(request, pk):
|
||||
|
||||
return _redirect_back(request, "expense_list")
|
||||
else:
|
||||
fuel = expense.fuel_data
|
||||
# Initialize manually
|
||||
form = FuelEntryForm(
|
||||
initial={
|
||||
"date": expense.date,
|
||||
"amount": expense.amount,
|
||||
"account": expense.account,
|
||||
"odometer": fuel.odometer,
|
||||
"liters": fuel.liters,
|
||||
},
|
||||
user=request.user,
|
||||
)
|
||||
form = FuelEntryForm(instance=expense, user=request.user)
|
||||
|
||||
next_url = request.POST.get("next") or request.GET.get("next", "")
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user