# -*- coding: utf-8 -*- from account import SERVICES from flask.ext.wtf import Form, validators, TextField, PasswordField from utils import _username_re username = TextField('Benutzername', [validators.Regexp(_username_re, message=u'Benutzername darf nur aus a-z bestehen (2-16 Zeichen)')]) class RegisterForm(Form): username = username mail = TextField('E-Mail-Adresse', [validators.Email(), validators.Length(min=6, max=50)]) class RegisterCompleteForm(Form): password = PasswordField('Passwort', [validators.Required(), validators.EqualTo('password_confirm', message=u'Passwörter stimmen nicht überein')]) password_confirm = PasswordField(u'Passwort bestätigen') class LoginForm(Form): username = username password = PasswordField('Passwort', [validators.Required()]) class SettingsForm(Form): old_password = PasswordField('Bisheriges Passwort', [validators.Required(u'Bitte gib dein (altes) Passwort an, um deine Daten zu ändern.')]) password = PasswordField('Neues Passwort', [validators.Optional(), validators.EqualTo('password_confirm', message=u'Passwörter stimmen nicht überein')]) password_confirm = PasswordField(u'Passwort bestätigen') mail = TextField('E-Mail-Adresse', [validators.Optional(), validators.Email(), validators.Length(min=6, max=50)]) def get_servicepassword(self, service_id): return getattr(self, 'password_%s' % service_id) def get_servicepasswordconfirm(self, service_id): return getattr(self, 'password_confirm_%s' % service_id) #TODO: find out how we can use app.all_services in that early state for service in SERVICES: setattr(SettingsForm, 'password_%s' % service.id, PasswordField(u'Passwort für %s' % service.name, [ validators.Optional(), validators.EqualTo('password_confirm_%s' % service.id, message=u'Passwörter stimmen nicht überein'), ])) setattr(SettingsForm, 'password_confirm_%s' % service.id, PasswordField(u'Passwort für %s (Bestätigung)' % service.name))