Source code for wtfs.forms.payment_type

from onegov.form import Form
from wtforms.fields import FloatField
from wtforms.validators import InputRequired


from typing import TYPE_CHECKING
if TYPE_CHECKING:
    from onegov.core.request import CoreRequest
    from onegov.wtfs.collections import PaymentTypeCollection


[docs] class PaymentTypesForm(Form): @staticmethod
[docs] def get_form_class( model: 'PaymentTypeCollection', request: 'CoreRequest' ) -> type['PaymentTypesForm']: form = PaymentTypesForm for payment_type in model.query().all(): field = FloatField( payment_type.name.capitalize(), validators=[InputRequired()] ) setattr(form, payment_type.name, field) return form
[docs] def update_model(self, model: 'PaymentTypeCollection') -> None: for field in self: payment_type = model.query().filter_by(name=field.name).first() if payment_type: payment_type.price_per_quantity = field.data
[docs] def apply_model(self, model: 'PaymentTypeCollection') -> None: for field in self: payment_type = model.query().filter_by(name=field.name).first() if payment_type: field.data = payment_type.price_per_quantity