mirror of
https://github.com/spiral-project/ihatemoney.git
synced 2025-05-06 05:01:48 +02:00
commit
856d0091af
2 changed files with 11 additions and 1 deletions
|
@ -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]
|
||||||
|
|
||||||
|
|
|
@ -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>
|
||||||
|
|
Loading…
Reference in a new issue