def get_billform_for(project, set_default=True, **kwargs): """Return an instance of BillForm configured for a particular project. :set_default: if set to True, on GET methods (usually when we want to display the default form, it will call set_default on it. """ form = BillForm(**kwargs) if form.original_currency.data == "None": form.original_currency.data = project.default_currency show_no_currency = form.original_currency.data == CurrencyConverter.no_currency form.original_currency.choices = [ (currency_name, render_localized_currency(currency_name, detailed=False)) for currency_name in form.currency_helper.get_currencies( with_no_currency=show_no_currency) ] active_members = [(m.id, m.name) for m in project.active_members] form.payed_for.choices = form.payer.choices = active_members form.payed_for.default = [m.id for m in project.active_members] if set_default and request.method == "GET": form.set_default() return form
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.default_currency.choices = [ (currency_name, render_localized_currency(currency_name, detailed=True)) for currency_name in self.currency_helper.get_currencies() ]
def fill(self, bill, project): self.payer.data = bill.payer_id self.amount.data = bill.amount self.what.data = bill.what self.external_link.data = bill.external_link self.original_currency.data = bill.original_currency self.date.data = bill.date self.payed_for.data = [int(ower.id) for ower in bill.owers] self.original_currency.label = Label("original_currency", _("Currency")) self.original_currency.description = _( "Project default: %(currency)s", currency=render_localized_currency(project.default_currency, detailed=False), )