From 64a9ec6c5eddc98fe36466e32da810d45195b0ad Mon Sep 17 00:00:00 2001 From: Timotheus Pokorra Date: Fri, 8 Jan 2021 21:45:14 +0100 Subject: [PATCH] use currencies from rates for select on add and edit views. fix edit template to work with form directly fixes #2 --- apps/transactions/forms.py | 11 +++++++++++ apps/transactions/templates/edit.html | 14 +++++++------- apps/transactions/views.py | 3 ++- 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/apps/transactions/forms.py b/apps/transactions/forms.py index f5a506c..75a2986 100644 --- a/apps/transactions/forms.py +++ b/apps/transactions/forms.py @@ -1,5 +1,7 @@ from django import forms +import datetime from apps.transactions.models import Transaction +from apps.rates.models import ExchangeRate #from datetimepicker.widgets import DateTimePicker #from django.contrib.admin.widgets import AdminDateWidget @@ -12,3 +14,12 @@ class TransactionForm(forms.ModelForm): # https://stackoverflow.com/a/52702275/1632368 #date_valid = forms.DateField(widget=AdminDateWidget()) + exchangerates = ExchangeRate.objects.filter(datetime_valid__gt = datetime.datetime.today() - datetime.timedelta(days=7)) + crypto_currencies = [(x, x) for x in sorted({ex.crypto_currency for ex in exchangerates})] + fiat_currencies = [(x, x) for x in sorted({ex.fiat_currency for ex in exchangerates})] + + widgets = { + 'fiat_currency': forms.Select(choices = fiat_currencies), + 'crypto_currency': forms.Select(choices = crypto_currencies), + } + diff --git a/apps/transactions/templates/edit.html b/apps/transactions/templates/edit.html index fabd282..6fdfb1c 100644 --- a/apps/transactions/templates/edit.html +++ b/apps/transactions/templates/edit.html @@ -31,49 +31,49 @@
- + {{ form.crypto_currency }}
- + {{ form.amount_before_fee }}
- + {{ form.amount_after_fee }}
- + {{ form.exchange_rate }}
- + {{ form.fiat_currency }}
- + {{ form.amount }}
- + {{ form.date_valid }}
diff --git a/apps/transactions/views.py b/apps/transactions/views.py index 57db05d..133a5ad 100644 --- a/apps/transactions/views.py +++ b/apps/transactions/views.py @@ -31,7 +31,8 @@ def show(request): @login_required def edit(request, id): transaction = Transaction.objects.get(id=id, owner=request.user) - return render(request,'edit.html', {'transaction':transaction}) + form = TransactionForm(request.POST or None, instance = transaction) + return render(request,'edit.html', {'transaction':transaction, 'form': form}) @login_required def update(request, id):