73 lines
4.1 KiB
Python
73 lines
4.1 KiB
Python
from flask_wtf import FlaskForm
|
|
from flask_wtf.file import FileAllowed, FileField
|
|
from wtforms import BooleanField, IntegerField, PasswordField, RadioField, SelectField, StringField, SubmitField
|
|
from wtforms.validators import DataRequired, Email, Optional
|
|
|
|
|
|
class KSeFSettingsForm(FlaskForm):
|
|
source_mode = RadioField('Źródło ustawień', choices=[('user', 'Moje ustawienia'), ('global', 'Profil współdzielony firmy')], default='user')
|
|
environment = SelectField(
|
|
'Środowisko KSeF',
|
|
choices=[('prod', 'PROD'), ('test', 'TEST')],
|
|
validators=[Optional()],
|
|
)
|
|
auth_mode = SelectField('Tryb autoryzacji', choices=[('token', 'Token'), ('certificate', 'Certyfikat')])
|
|
token = PasswordField('Token', validators=[Optional()])
|
|
client_id = StringField('Client ID', validators=[Optional()])
|
|
certificate_file = FileField('Certyfikat', validators=[Optional(), FileAllowed(['pem', 'crt', 'cer', 'p12', 'pfx'], 'Dozwolone: pem, crt, cer, p12, pfx')])
|
|
submit = SubmitField('Zapisz KSeF')
|
|
|
|
|
|
class MailSettingsForm(FlaskForm):
|
|
source_mode = RadioField('Źródło SMTP', choices=[('global', 'Użyj ustawień globalnych'), ('user', 'Podaj indywidualne ustawienia')], default='global')
|
|
server = StringField('SMTP host', validators=[Optional()])
|
|
port = StringField('SMTP port', validators=[Optional()])
|
|
username = StringField('SMTP login', validators=[Optional()])
|
|
password = PasswordField('SMTP hasło', validators=[Optional()])
|
|
sender = StringField('Nadawca', validators=[Optional(), Email()])
|
|
security_mode = SelectField('Zabezpieczenie połączenia', choices=[('tls', 'TLS / STARTTLS'), ('ssl', 'SSL'), ('none', 'Brak')], validators=[Optional()], default='tls')
|
|
test_recipient = StringField('Adres testowy', validators=[Optional(), Email()])
|
|
submit = SubmitField('Zapisz SMTP')
|
|
test_submit = SubmitField('Wyślij test maila')
|
|
|
|
|
|
class NotificationSettingsForm(FlaskForm):
|
|
source_mode = RadioField('Źródło Pushover', choices=[('global', 'Użyj ustawień globalnych'), ('user', 'Podaj indywidualne ustawienia')], default='global')
|
|
pushover_user_key = StringField('Pushover user key', validators=[Optional()])
|
|
pushover_api_token = PasswordField('Pushover API token', validators=[Optional()])
|
|
min_amount = StringField('Powiadom od kwoty', validators=[Optional()])
|
|
quiet_hours = StringField('Cichy harmonogram, np. 22:00-07:00', validators=[Optional()])
|
|
enabled = BooleanField('Włącz powiadomienia')
|
|
submit = SubmitField('Zapisz powiadomienia')
|
|
test_submit = SubmitField('Wyślij test Pushover')
|
|
|
|
|
|
class AppearanceSettingsForm(FlaskForm):
|
|
theme_preference = SelectField('Motyw interfejsu', choices=[('light', 'Jasny'), ('dark', 'Ciemny')], validators=[DataRequired()])
|
|
submit = SubmitField('Zapisz wygląd')
|
|
|
|
|
|
class CompanyForm(FlaskForm):
|
|
name = StringField('Nazwa firmy', validators=[DataRequired()])
|
|
tax_id = StringField('NIP', validators=[Optional()])
|
|
sync_enabled = BooleanField('Włącz harmonogram pobierania')
|
|
sync_interval_minutes = IntegerField('Interwał sync (min)', validators=[Optional()])
|
|
bank_account = StringField('Numer rachunku bankowego', validators=[Optional()])
|
|
read_only_mode = BooleanField('Tryb tylko odczyt (R/O)')
|
|
submit = SubmitField('Zapisz firmę')
|
|
|
|
|
|
class UserForm(FlaskForm):
|
|
email = StringField('E-mail', validators=[DataRequired(), Email()])
|
|
name = StringField('Imię i nazwisko', validators=[DataRequired()])
|
|
password = PasswordField('Hasło', validators=[Optional()])
|
|
role = SelectField('Rola globalna', choices=[('admin', 'Admin'), ('operator', 'Operator'), ('readonly', 'Readonly')])
|
|
company_id = SelectField('Firma', coerce=int, validators=[Optional()])
|
|
access_level = SelectField('Dostęp do firmy', choices=[('full', 'Pełny'), ('readonly', 'Tylko odczyt')])
|
|
submit = SubmitField('Dodaj / przypisz użytkownika')
|
|
|
|
|
|
class NfzModuleSettingsForm(FlaskForm):
|
|
source_mode = RadioField('Źródło konfiguracji NFZ', choices=[('global', 'Użyj ustawień globalnych'), ('user', 'Ustaw indywidualnie')], default='global')
|
|
enabled = BooleanField('Włącz moduł faktur NFZ')
|
|
submit = SubmitField('Zapisz moduł NFZ') |