from flask_wtf import FlaskForm from wtforms import BooleanField, SelectField, StringField, SubmitField, TextAreaField from wtforms.validators import Optional class InvoiceFilterForm(FlaskForm): month = SelectField('Miesiąc', choices=[('', 'Wszystkie')] + [(str(i), str(i)) for i in range(1, 13)], validators=[Optional()]) year = StringField('Rok', validators=[Optional()]) contractor = StringField('Kontrahent', validators=[Optional()]) nip = StringField('NIP', validators=[Optional()]) invoice_type = SelectField('Typ', choices=[('', 'Wszystkie'), ('purchase', 'Zakupowa'), ('sale', 'Sprzedażowa'), ('correction', 'Korekta')], validators=[Optional()]) status = SelectField('Status', choices=[('', 'Wszystkie'), ('new', 'Nowa'), ('read', 'Przeczytana'), ('accounted', 'Zaksięgowana'), ('sent', 'Wysłana'), ('archived', 'Archiwalna'), ('needs_attention', 'Wymaga uwagi'), ('error', 'Błąd')], validators=[Optional()]) quick_filter = SelectField('Szybki filtr', choices=[('', 'Brak'), ('this_month', 'Ten miesiąc'), ('previous_month', 'Poprzedni miesiąc'), ('unread', 'Nieprzeczytane'), ('error', 'Z błędem'), ('to_send', 'Do wysyłki')], validators=[Optional()]) min_amount = StringField('Min brutto', validators=[Optional()]) max_amount = StringField('Max brutto', validators=[Optional()]) search = StringField('Szukaj', validators=[Optional()]) submit = SubmitField('Filtruj') class InvoiceMetaForm(FlaskForm): status = SelectField('Status', choices=[('new', 'Nowa'), ('read', 'Przeczytana'), ('accounted', 'Zaksięgowana'), ('sent', 'Wysłana'), ('archived', 'Archiwalna'), ('needs_attention', 'Wymaga uwagi'), ('error', 'Błąd')]) tags = StringField('Tagi', validators=[Optional()]) internal_note = TextAreaField('Notatka', validators=[Optional()]) queue_accounting = BooleanField('Do księgowości') pinned = BooleanField('Przypnij') submit = SubmitField('Zapisz')