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