Merge pull request #7 from ndkoch/billform

BillForm
This commit is contained in:
dkim1546 2019-12-08 17:04:43 -05:00 committed by GitHub
commit 856d0091af
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 1 deletions

View file

@ -2,6 +2,7 @@ from flask_wtf.form import FlaskForm
from wtforms.fields.core import SelectField, SelectMultipleField from wtforms.fields.core import SelectField, SelectMultipleField
from wtforms.fields.html5 import DateField, DecimalField, URLField from wtforms.fields.html5 import DateField, DecimalField, URLField
from wtforms.fields.simple import PasswordField, SubmitField, StringField from wtforms.fields.simple import PasswordField, SubmitField, StringField
from wtforms.fields.core import Label
from wtforms.validators import ( from wtforms.validators import (
Email, Email,
DataRequired, DataRequired,
@ -37,7 +38,8 @@ def get_billform_for(project, set_default=True, **kwargs):
display the default form, it will call set_default on it. display the default form, it will call set_default on it.
""" """
form = BillForm(**kwargs) form = BillForm(project=project, **kwargs)
form.original_currency.label = Label("original_currency", "Currency (Default: %s)" % (project.default_currency))
active_members = [(m.id, m.name) for m in project.active_members] active_members = [(m.id, m.name) for m in project.active_members]
form.payed_for.choices = form.payer.choices = active_members form.payed_for.choices = form.payer.choices = active_members
@ -168,6 +170,10 @@ class BillForm(FlaskForm):
what = StringField(_("What?"), validators=[DataRequired()]) what = StringField(_("What?"), validators=[DataRequired()])
payer = SelectField(_("Payer"), validators=[DataRequired()], coerce=int) payer = SelectField(_("Payer"), validators=[DataRequired()], coerce=int)
amount = CalculatorStringField(_("Amount paid"), validators=[DataRequired()]) amount = CalculatorStringField(_("Amount paid"), validators=[DataRequired()])
currency_helper = CurrencyConverter()
original_currency = SelectField(
_("Currency"), choices=currency_helper.get_currencies(), validators=[DataRequired()]
)
external_link = URLField( external_link = URLField(
_("External link"), _("External link"),
validators=[Optional()], validators=[Optional()],
@ -186,6 +192,8 @@ class BillForm(FlaskForm):
bill.external_link = self.external_link.data bill.external_link = self.external_link.data
bill.date = self.date.data bill.date = self.date.data
bill.owers = [Person.query.get(ower, project) for ower in self.payed_for.data] bill.owers = [Person.query.get(ower, project) for ower in self.payed_for.data]
bill.original_currency = self.original_currency.data
bill.original_amount = currency_helper.exchange_currency(bill.amount, bill.original_currency, project.default_currency)
return bill return bill
@ -194,6 +202,7 @@ class BillForm(FlaskForm):
self.amount.data = bill.amount self.amount.data = bill.amount
self.what.data = bill.what self.what.data = bill.what
self.external_link.data = bill.external_link self.external_link.data = bill.external_link
self.original_currency.data = bill.original_currency
self.date.data = bill.date self.date.data = bill.date
self.payed_for.data = [int(ower.id) for ower in bill.owers] self.payed_for.data = [int(ower.id) for ower in bill.owers]

View file

@ -98,6 +98,7 @@
{{ input(form.payer, inline=True, class="form-control custom-select") }} {{ input(form.payer, inline=True, class="form-control custom-select") }}
{{ input(form.amount, inline=True) }} {{ input(form.amount, inline=True) }}
{{ input(form.external_link, inline=True) }} {{ input(form.external_link, inline=True) }}
{{ input(form.original_currency, inline=True) }}
<div class="form-group row"> <div class="form-group row">
<label class="col-3" for="payed_for">{{ _("For whom?") }}</label> <label class="col-3" for="payed_for">{{ _("For whom?") }}</label>