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('Pracuję dla powyższej placówki medycznej 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))