class EditForumForm(Form): name = TextField(lazy_gettext(u'Name'), [validators.required(), validators.length(max=160)]) slug = TextField(lazy_gettext(u'Slug'), [validators.required(), validators.length(max=160)]) parent = QuerySelectField(lazy_gettext(u'Parent'), query_factory=lambda: Forum.query, get_label='name', allow_blank=True) description = TextField(lazy_gettext(u'Description'), [validators.required()], widget=widgets.TextArea()) tags = AutocompleteField(lazy_gettext(u'Tags'), get_label='name', query_factory=lambda: Tag.query, validators=[validators.length(min=1)]) def validate_parent(self, field): message = lazy_gettext( u"You can't choose the forum itself or one of its subforums as parent" ) forum = Forum.query.filter_by(slug=self.slug.data).first() forums = Forum.query.filter_by(slug=self.slug.data).subforums() if field.data in forums or field.data == forum: raise ValidationError(message)
class AskQuestionForm(Form): title = TextField(lazy_gettext(u'Title'), [validators.length(max=160), validators.required()]) text = TextField(lazy_gettext(u'Text'), [validators.required()], widget=widgets.TextArea()) tags = AutocompleteField(lazy_gettext(u'Tags'), get_label='name', query_factory=lambda: Tag.query)
class EditArticleForm(Form): title = TextField(_(u'Title'), [validators.required(), validators.length(max=200)]) intro = TextField(_(u'Intro'), [validators.required()], widget=widgets.TextArea()) text = TextField(_(u'Text'), [validators.required()], widget=widgets.TextArea()) public = BooleanField(_(u'Published')) tags = AutocompleteField(_(u'Tags'), get_label='name', query_factory=lambda: Tag.query.autoflush(False)) author = QuerySelectField(_(u'Author'), [validators.required()], query_factory=lambda: User.query.autoflush(False), widget=widgets.Select())
class LoginForm(Form): """Used to log in users.""" username = TextField(lazy_gettext(u'Username'), [validators.required()]) password = TextField(lazy_gettext(u'Password'), [validators.required()], widget=widgets.PasswordInput()) permanent = BooleanField(lazy_gettext(u'Remember me')) def __init__(self, auth_system, *args, **kwargs): Form.__init__(self, *args, **kwargs) self.auth_system = auth_system if self.auth_system.passwordless: del self.password
class AddEventForm(Form): title = TextField(_(u'Title'), [validators.length(max=100), validators.required()]) text = TextField(_(u'Text'), [validators.required()], widget=widgets.TextArea()) start = DateTimeField(_(u'Start'), [validators.required()]) end = DateTimeField(_(u'End'), [validators.required()]) tags = AutocompleteField(_(u'Tags'), get_label='name', query_factory=lambda: Tag.query.autoflush(False)) discussion_question = BooleanField(_(u'Create topic for discussion')) info_question = BooleanField(_(u'Create topic for further information'))
class SearchForm(MagicFilterForm): csrf_disabled = True dynamic_fields = ['author', 'tags', 'date'] q = TextField(lazy_gettext(u'Search'), [validators.required()]) page = IntegerField(lazy_gettext(u'Page'), default=1) # dynamc fields author = TextField( lazy_gettext(u'Author'), [validators.optional(), validators.is_user()], widget=widgets.AutocompleteWidget('api/core/get_user')) tags = AutocompleteField(lazy_gettext(u'Tags'), get_label='name', query_factory=lambda: Tag.query) date = DatePeriodField(lazy_gettext(u'Date'))
class RegistrationForm(Form): username = TextField( lazy_gettext(u'Username'), [validators.required(), validators.is_user(negative=True)]) email = TextField(lazy_gettext(u'Email'), [ validators.required(), validators.is_user(negative=True, key='email') ]) password = PasswordField(lazy_gettext(u'Password'), [ validators.required(), validators.equal_to('confirm', message=lazy_gettext(u'Passwords must match')) ], widget=widgets.PasswordInput(False), default=random_pw) confirm = PasswordField(lazy_gettext(u'Repeat Passord'), [validators.required()], widget=widgets.PasswordInput(False), default=random_pw) captcha = RecaptchaField(lazy_gettext(u'ReCaptcha'))
class ProfileForm(Form): # personal data real_name = TextField(lazy_gettext(u'Realname'), [validators.length(max=200)]) website = TextField( lazy_gettext(u'Website'), validators=[validators.optional(), validators.is_valid_url()]) location = TextField(lazy_gettext(u'Location'), [validators.length(max=200)]) interests = TextField(lazy_gettext(u'Interests'), [validators.length(max=200)]) occupation = TextField(lazy_gettext(u'Occupation'), [validators.length(max=200)]) signature = TextField(lazy_gettext(u'Signature'), widget=widgets.TextArea()) # communication channels jabber = TextField( lazy_gettext(u'Jabber ID'), validators=[validators.optional(), validators.is_valid_jabber()]) skype = TextField(lazy_gettext(u'Skype'), [validators.length(max=200)]) def __init__(self, *args, **kwargs): self.profile = profile = kwargs.pop('profile') if profile is not None: kwargs.update(model_to_dict(profile, exclude=['user', 'user_id'])) super(ProfileForm, self).__init__(*args, **kwargs) def save(self, commit=True): profile = UserProfile() if self.profile is None else self.profile profile = update_model(profile, self) if commit: db.session.commit() return profile
class DummyForm2(Form): name = TextField(u'name')
class AddPasteForm(Form): title = TextField(_(u'Title (optional)'), [validators.length(max=50)]) text = TextField(_(u'Text'), [validators.required()], widget=widgets.TextArea()) language = SelectField(_(u'Language'), choices=_get_pygments_lexers()) parent = HiddenIntegerField(validators=[validators.optional()])
class AnswerQuestionForm(Form): text = TextField(lazy_gettext(u'Text'), [validators.required()], widget=widgets.TextArea())
class EditCommentForm(Form): text = TextField(_(u'Text'), widget=widgets.TextArea(), description=Markup(_(u'To quote another comment use ' u'<em>@comment_number</em>. This is ' u'automatically used if you click “answer”.')))
class EditTagForm(Form): name = TextField(lazy_gettext(u'Name'), [ validators.required(), validators.length(max=20), validators.is_valid_tag_name() ])