covid-formity/formity/forms.py

37 lines
2.3 KiB
Python

from flask_wtf import FlaskForm
from wtforms import StringField, BooleanField, TextAreaField, IntegerField, validators, ValidationError
from wtforms.widgets import html5
from jinja2 import Markup
class FaceshieldRequestForm(FlaskForm):
entity_info = TextAreaField('Dane placówki', validators=[validators.InputRequired()])
full_name = StringField('Imię i nazwisko', validators=[validators.InputRequired()])
phone_number = StringField('Numer telefonu komórkowego', validators=[validators.InputRequired()])
email = StringField('Adres e-mail', validators=[validators.InputRequired(), validators.Email()])
extra = TextAreaField('Dodatkowe informacje')
faceshield_front_required = IntegerField('Pilnie potrzebna minimalna ilość samych szybek do przyłbic', default=0, validators=[validators.InputRequired()], widget=html5.NumberInput())
faceshield_model = StringField('Model i marka przyłbicy') # , validators=[validators.InputRequired()])
faceshield_full_required = IntegerField('Pilnie potrzebna minimalna ilość pełnych przyłbic', default=0, validators=[validators.InputRequired()], widget=html5.NumberInput())
adapter_3m_dar_required = IntegerField('Adaptery 3M - DAR', default=0)
adapter_easybreath_dar_required = IntegerField('Adaptery Decathlon Easybreath - DAR', default=0)
adapter_rd40_dar_required = IntegerField('Adaptery RD40 - DAR', default=0)
adapter_secura_dar_required = IntegerField('Adaptery Secura - DAR', default=0)
rules_approval = BooleanField(Markup('<b>Pracuję dla powyższej placówki medycznej</b> i zobowiązuję się do nieodsprzedawania otrzymanego sprzętu ochronnego. Jestem świadom, że nie jest to certyfikowany produkt medyczny i nie jest dezynfekowany/sterylny.'), validators=[validators.DataRequired()])
def validate_faceshield_model(self, field):
model = field.data.strip()
count = int(self.faceshield_front_required.data)
if not model and count > 0:
raise ValidationError('Proszę podać model i markę przyłbicy do której mają zostać wyprodukowane szybki')
def validate_faceshield_front_required(self, field):
model = self.faceshield_model.data.strip()
count = int(field.data)
if model and count == 0:
raise ValidationError('Proszę podać ilość potrzebnych szybek do przyłbicy {}'.format(model))