Example #1
0
class NewFolderForm(FlaskForm):
    title = StringField('Title', validators=[DataRequired()])
    owner_id = HiddenField(validators=[DataRequired()])
    # parent_id = QuerySelectField('Parent')
    parent_id = HiddenField(validators=[Optional(), UUID()],
                            default=None,
                            filters=[lambda x: x or None])
    add = SubmitField('Add')
Example #2
0
    def _set_fields(self, form):
        setattr(
            form, 'first_name',
            HiddenField(
                _(u'First Name'),
                [validators.Length(min=2, message=_(u'First name required.'))
                 ]))
        setattr(
            form, 'last_name',
            HiddenField(
                _(u'Last Name'),
                [validators.Length(min=2, message=_(u'Last name required.'))]))
        setattr(
            form, 'email',
            HiddenField(
                _(u'E-mail Address'),
                validators=[
                    validators.Email(message=_(u'Invalid email address.')),
                    custom_validators.UniqueEmail(message=_(
                        u'That address is already being used, please choose another one.'
                    )),
                ],
                filters=[custom_filters.to_lowercase]))
        setattr(
            form, 'category',
            SelectField(
                _(u'Category'),
                choices=util.get_all_categories_for_profile_editing(
                    self.domain),
                validators=[
                    custom_validators.DisallowNoChoiceInSelect(message=_(
                        'Please choose an option from the list. If none of the options seems to fit, please choose "Other"'
                    ))
                ]))

        setattr(
            form, 'password',
            PasswordField(_(u'Password'), [
                validators.Length(
                    min=6,
                    message=_(u'Password must be at least 6 characters.')),
                validators.EqualTo('password_confirm',
                                   _(u"Passwords do not match."))
            ]))
        setattr(form, 'password_confirm',
                PasswordField(_(u'Password Confirmation')))
        setattr(
            form, 'terms_agreement',
            CustomBooleanField(
                _(u'I agree with the Terms of Service'),
                default='True',
                validators=[
                    validators.Required(
                        message=_(u'You must accept the terms to continue.'))
                ]))
Example #3
0
class AltForm(FlaskForm):
    mirror_type = SelectField('Mirror Type', choices=[
        ('mirror', 'Mirror'),
        ('proxy', 'Cloudfront, AzureEdge or Fastly'),
        ('eotk', 'Onion'),
        ('ipfs', 'IPFS Node')])
    mirror_url = StringField('Alternative URL')
    inactive = BooleanField('Inactive?')
    domain_id = HiddenField('Domain ID')
    old_url = HiddenField('Old Url')
    submit = SubmitField('Submit')
Example #4
0
 class ActionForm(Form):  # pylint:disable=R0924,R0903
     """
     User submits a range-based action
     """
     fold = HiddenField(label="Fold range:", validators=[Length(min=1)])
     passive = HiddenField(label=passive_label, validators=[Length(min=1)])
     if can_raise:
         aggressive = HiddenField(label=aggressive_label,
                                  validators=[Length(min=1)])
         total = HiddenField(label=total_label)
     else:
         aggressive = HiddenField(label=aggressive_label,
                                  default=NOTHING,
                                  validators=[Regexp(NOTHING)])
Example #5
0
class FormDiaria(FlaskForm):
    id = HiddenField(validators=[Optional()])
    nome = StringField("Nome", validators=[DataRequired()])
    data = DateField("Data", validators=[DataRequired()])
    destino = StringField("Destino", validators=[DataRequired()])
    motivo = StringField("Motivo", validators=[DataRequired()])
    valor = DecimalField("Valor", validators=[DataRequired()])
Example #6
0
class NewPostForm(Form):
    id = HiddenField()
    title = TextField('Title', validators=[Length(min=3, max=500)])
    text = TextAreaField('Text', validators=[Required(), ])
    url = URLField('URL')
    image_url = URLField('Image URL')
    publish_date = DateTimeField("Publish at date", default=datetime.datetime.now())
Example #7
0
class FormNoticia(FlaskForm):
    id = HiddenField(validators=[Optional()])
    categoria = SelectField(
        "Categoria",
        choices=[
            ("Geral", "Geral"),
            ("Segurança", "Segurança"),
            ("Saúde", "Saúde"),
            ("Economia", "Economia"),
        ],
        default="Geral",
    )

    titulo = StringField(
        "Título",
        [
            DataRequired(message="Informe título da notícia."),
            Length(5, 150, message="Deve ter pelo menos 5 caracteres."),
        ],
    )

    conteudo = TextAreaField("Conteúdo")

    destaque = SelectField(
        "Destacar na página inicial?",
        choices=[("sim", "Sim"), ("nao", "Não")],
        default="nao",
    )

    thumb = FileField("Imagem de capa da notícia", validators=[Optional()])
Example #8
0
class EditCharacterForm(FlaskForm):
    """ Edit Character Form """
    id = HiddenField()
    name = StringField(
        label="Character",
        validators=[InputRequired('Please provide a character name')])
    is_dead = BooleanField(label="Is Dead")
Example #9
0
class AttachmentFolderForm(IndicoForm):
    title = HiddenField(_("Name"), [DataRequired()], widget=TypeaheadWidget(),
                        description=_("The name of the folder."))
    description = TextAreaField(_("Description"), description=_("Description of the folder and its content"))
    protected = BooleanField(_("Protected"), widget=SwitchWidget())
    acl = PrincipalListField(_("Grant Access To"), [UsedIf(lambda form, field: form.protected.data)],
                             groups=True, serializable=False, allow_external=True,
                             description=_("The list of users and groups with access to the folder"))
    is_always_visible = BooleanField(_("Always Visible"), widget=SwitchWidget(),
                                     description=_("By default, folders are always visible, even if a user cannot "
                                                   "access them. You can disable this behavior here, hiding the folder "
                                                   "for anyone who does not have permission to access it."))

    def __init__(self, *args, **kwargs):
        self.linked_object = kwargs.pop('linked_object')
        super(AttachmentFolderForm, self).__init__(*args, **kwargs)
        self.title.choices = self._get_title_suggestions()

    def _get_title_suggestions(self):
        query = db.session.query(AttachmentFolder.title).filter_by(is_deleted=False, is_default=False,
                                                                   linked_object=self.linked_object)
        existing = set(x[0] for x in query)
        suggestions = set(get_default_folder_names()) - existing
        if self.title.data:
            suggestions.add(self.title.data)
        return sorted(suggestions)

    @generated_data
    def protection_mode(self):
        return ProtectionMode.protected if self.protected.data else ProtectionMode.inheriting
Example #10
0
class MailtoolForm(Form):
    recipients = HiddenField()
    subject = StringField("Subject", render_kw={"placeholder": "Enter the email subject"})
    replyto = StringField(
        "Reply-To", render_kw={"placeholder": "Enter an alternative reply-to address (optional)"})
    dryrun = BooleanField("Dry-run")
    body = TextAreaField("Body", render_kw=_taf)
Example #11
0
class PasswordResetRequestForm(FlaskForm):
    email=StringField('Email',validators=[DataRequired(),Length(1,64),Email()])
    captcha = CaptchaField('验证码')
    captcha_input = StringField('', validators=[DataRequired(), Length(4, 4),
                                                Captcha_equalTo('hidden_right_captcha', '验证码错误')])
    hidden_right_captcha = HiddenField()
    submit=SubmitField('发送重置密码邮件')
Example #12
0
class FormCadastro(FlaskForm):
    num_reg = StringField('Número de Registro')
    tipo_reg = QuerySelectField('Tipo de Documento',
                                query_factory=escolha_tipo,
                                allow_blank=True,
                                get_label='name')
    objeto = TextAreaField('Objeto',
                           validators=[InputRequired(),
                                       length(max=2000)])
    origem = QuerySelectField('Origem',
                              query_factory=escolha_setor_a,
                              allow_blank=True,
                              get_label='name')
    tipo_destino = SelectField('Tipo de Destino',
                               choices=[('0', ''), ('1', 'Interno'),
                                        ('2', 'Externo - Fornecedores'),
                                        ('3', 'Externo - Orgão Governo')],
                               coerce=int)
    destino = NonValidatingSelectField('Destino', choices=[])
    date_criacao = DateTimeField('Data de Criação')
    solicitante = QuerySelectField('Interessado',
                                   query_factory=escolha_user,
                                   allow_blank=True)
    criador = StringField('Criado por:')
    botao1 = SubmitField('Salvar')
    branco = HiddenField('')
Example #13
0
class RunForm(FlaskForm):
    id_org = SelectField('Organization', [DataRequired()], choices=[("actc", "ACTC"), ("apat", "APAT"), ("aptp", "APTP"), (
        "auvo", "AUVO"), ("carx", "CARX"), ("cur", "CUR"), ("gpu", "GPU"), ("mss", "MSS"), ("tc", "TC"), ("tr", "TR")])
    year = IntegerField('Year')
    manual = BooleanField('Manual')
    org = HiddenField('org')
    submit = SubmitField('create')
Example #14
0
class UploadForm(FlaskForm):
    uploaded = FileField(validators=[
        FileRequired(),
        FileAllowed(VALID_FILE_EXTENSIONS, 'Certain images only')
    ])
    folder_id = HiddenField('FolderId', validators=[DataRequired()])
    submit = SubmitField('Upload')
Example #15
0
class AttachmentFolderForm(IndicoForm):
    title = HiddenField(_('Name'), [DataRequired()],
                        widget=TypeaheadWidget(),
                        description=_('The name of the folder.'))
    description = TextAreaField(
        _('Description'),
        description=_('Description of the folder and its content'))
    protected = BooleanField(_('Protected'), widget=SwitchWidget())
    acl = AccessControlListField(
        _('Access control list'),
        [UsedIf(lambda form, field: form.protected.data)],
        allow_groups=True,
        allow_external_users=True,
        allow_event_roles=True,
        allow_category_roles=True,
        allow_registration_forms=True,
        event=lambda form: form.event,
        description=_(
            'The list of users and groups allowed to access the folder'))
    is_always_visible = BooleanField(
        _('Always Visible'), [HiddenUnless('is_hidden', value=False)],
        widget=SwitchWidget(),
        description=_(
            'By default, folders are always visible, even if a user cannot '
            'access them. You can disable this behavior here, hiding the folder '
            'for anyone who does not have permission to access it.'))
    is_hidden = BooleanField(
        _('Always hidden'), [HiddenUnless('is_always_visible', value=False)],
        widget=SwitchWidget(),
        description=
        _('Always hide the folder and its contents from public display areas of '
          'the event. You can use this for folders to store non-image files used '
          'e.g. in download links. The access permissions still apply.'))

    def __init__(self, *args, **kwargs):
        self.linked_object = kwargs.pop('linked_object')
        self.event = getattr(self.linked_object, 'event',
                             None)  # not present in categories
        super().__init__(*args, **kwargs)
        self.title.choices = self._get_title_suggestions()

    def _get_title_suggestions(self):
        query = db.session.query(AttachmentFolder.title).filter_by(
            is_deleted=False, is_default=False, object=self.linked_object)
        existing = {x[0] for x in query}
        suggestions = set(get_default_folder_names()) - existing
        if self.title.data:
            suggestions.add(self.title.data)
        return sorted(suggestions)

    def validate_is_always_visible(self, field):
        if self.is_always_visible.data and self.is_hidden.data:
            raise ValidationError(
                'These two options cannot be used at the same time')

    validate_is_hidden = validate_is_always_visible

    @generated_data
    def protection_mode(self):
        return ProtectionMode.protected if self.protected.data else ProtectionMode.inheriting
Example #16
0
class NewBookingConfirmForm(NewBookingPeriodForm):
    booked_for_id = HiddenField(_(u'User'), [InputRequired()])
    booked_for_name = StringField()  # just for displaying
    contact_email = StringField(
        _(u'Email'),
        [InputRequired(), IndicoEmail(multi=True)])
    contact_phone = StringField(_(u'Telephone'))
    booking_reason = TextAreaField(_(u'Reason'), [DataRequired()])
    uses_vc = BooleanField(_(u'I will use videoconference equipment'))
    used_equipment = IndicoQuerySelectMultipleCheckboxField(
        _(u'VC equipment'), get_label=lambda x: x.name)
    needs_vc_assistance = BooleanField(
        _(u'Request assistance for the startup of the videoconference session. '
          u'This support is usually performed remotely.'))
    needs_assistance = BooleanField(
        _(u'Request personal assistance for meeting startup'))
    submit_book = SubmitField(_(u'Create booking'))
    submit_prebook = SubmitField(_(u'Create pre-booking'))

    def validate_used_equipment(self, field):
        if field.data and not self.uses_vc.data:
            raise ValidationError(
                _(u'Video Conference equipment is not used.'))
        elif not field.data and self.uses_vc.data:
            raise ValidationError(
                _(u'You need to select some Video Conference equipment'))

    def validate_needs_vc_assistance(self, field):
        if field.data and not self.uses_vc.data:
            raise ValidationError(
                _(u'Video Conference equipment is not used.'))
Example #17
0
class OfferChangeForm(Form):
    ids = HiddenField()
    tags = QuerySelectMultipleField(
        get_label="name",
        query_factory=lambda: Criterion.query.all(),  # pylint: disable=unnecessary-lambda
        allow_blank=True,
    )
    remove_other_tags = BooleanField(label="Supprimer tous les autres tags", )
Example #18
0
class EditAttachmentFileForm(EditAttachmentFormBase):
    file = HiddenField(
        _("File"),
        widget=DropzoneWidget(max_files=1,
                              submit_form=False,
                              add_remove_links=False),
        description=_(
            "Already uploaded file. Replace it by adding a new file."))
Example #19
0
class DomainForm(FlaskForm):
    domain = StringField('Domain')
    old_domain = HiddenField('Old Domain')
    ext_ignore = StringField('Extensions to ignore')
    paths_ignore = StringField('Paths to ignore')
    s3_storage_bucket = StringField('S3 Storage Bucket')
    azure_profile_name = StringField('Azure Profile Name')
    inactive = BooleanField('Inactive?')
    submit = SubmitField('Add/Edit Domain')
Example #20
0
class ChangePassowrdForm(FlaskForm):
    old_password = PasswordField('旧密码', validators=[DataRequired()])
    password = PasswordField('新密码', validators=[DataRequired(), Not_equalTo('old_password', message='不能和旧密码相同'),
                                                EqualTo('re_password', message='两次输入的新密码必须相同'), Length(8, 16)])
    re_password = PasswordField('确认新密码', validators=[DataRequired(), Length(8, 16)])
    captcha = CaptchaField('验证码')
    captcha_input=StringField('',validators=[DataRequired(),Length(4,4),Captcha_equalTo('hidden_right_captcha','验证码错误')])
    hidden_right_captcha=HiddenField()
    submit = SubmitField('更新')
Example #21
0
class TaskUpdateStatusForm(FlashingForm):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)

        self.status.choices = _get_task_status_type_choices()

    task_id = HiddenField()
    status = SelectField("New Status", validators=[DataRequired()])
    notes = TextAreaField("Notes", validators=[Length(max=255)])
Example #22
0
class TaskUpdateAssignedUserForm(FlashingForm):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)

        self.assigned_user.choices = _get_task_assigned_user_choices()

    task_id = HiddenField()
    assigned_user = SelectField("Assigned User", validators=[DataRequired()])
    notes = TextAreaField("Notes", validators=[Length(max=255)])
Example #23
0
class ExtrasForm(Form):
    code = HiddenField("code")

    participant_roomtype = SelectField("Room type", choices=sel_participant_roomtypes, validators=[
                                       check_participant_roomtype_formconstraint("participant_roompartner", ["guest1_roomtype", "guest2_roomtype"])])
    participant_roompartner = SelectField("Share room with", choices=sel_all_participants)

    participant_arrival = DateField("Arrival", format="%d/%m/%Y",
                                    default=default_arrival_date, validators=[start_date_check])
    participant_departure = DateField("Departure", format="%d/%m/%Y", default=default_departure_date,
                                      validators=[end_date_check, dates_check("participant_arrival")])

    guest1_roomtype = SelectField("Guest 1: room type", choices=sel_guest_roomtypes, validators=[guest_consistency_check(
        "guest1_name"), check_guest_roomtype_formconstraint("participant_roomtype", "guest2_roomtype")])
    guest1_name = StringField("Guest 1: name", render_kw={
                              "placeholder": "Enter the name of Guest 1"})
    guest1_arrival = DateField("Guest 1: arrival date", format="%d/%m/%Y",
                               default=default_arrival_date)
    guest1_departure = DateField("Guest 1: departure date", format="%d/%m/%Y",
                                 default=default_departure_date, validators=[dates_check("guest1_arrival")])

    guest2_roomtype = SelectField("Guest 2: room type", choices=sel_guest_roomtypes, validators=[guest_consistency_check(
        "guest2_name"), check_guest_roomtype_formconstraint("participant_roomtype", "guest1_roomtype")])
    guest2_name = StringField("Guest 2: name", render_kw={
                              "placeholder": "Enter the name of Guest 2"})
    guest2_arrival = DateField("Guest 2: arrival date", format="%d/%m/%Y",
                               default=default_arrival_date)
    guest2_departure = DateField("Guest 2: departure date", format="%d/%m/%Y",
                                 default=default_departure_date, validators=[dates_check("guest2_arrival")])

    num_dinner_friday = IntegerField("Extra Friday dinners", validators=[
                                     validators.NumberRange(min=0)], default=0)
    num_lunch_saturday = IntegerField("Extra Saturday lunches", validators=[
                                      validators.NumberRange(min=0)], default=0)
    num_after_concert = IntegerField("Extra after-show snacks",
                                     validators=[validators.NumberRange(min=0)], default=0)

    # num_show_tickets_regular = IntegerField("Show tickets (regular)", validators=[validators.NumberRange(min=0)], default=0)
    # num_show_tickets_discount = IntegerField("Show tickets (discounted)", validators=[validators.NumberRange(min=0)], default=0)

    guest = TextAreaField(
        "Further guest info", default="Room for any other comments regarding your guests.", render_kw=_taf)

    # sat_dinner_restaurant = SelectField("Restaurant", choices=sel_restaurants, validators=[restaurant_consistency_check("sat_dinner_numpeople")])
    # sat_dinner_numpeople = IntegerField("Number of people", validators=[validators.NumberRange(min=0)], default=0)

    # special_event_tickets = IntegerField("Tickets to special event", validators=[validators.NumberRange(min=0)], default=0)

    # tshirt_sex = SelectField("Style", choices=sel_t_shirt_sexes)
    # tshirt_size = SelectField("Size", choices=sel_t_shirt_sizes)
    # tshirt_spec = SelectField("Color", choices=sel_t_shirt_specs)

    phone = StringField("Your number (optional)")

    other = TextAreaField(
        "Comments", default="Tell us anything else we need to know here.", render_kw=_taf)
Example #24
0
class BillOwersForm(FlaskForm):
    weight_validators = [
        NumberRange(min=0, message="Weights should be positive")
    ]
    included = BooleanField("Included in the bill", validators=[])
    person_id = HiddenField("Person Id", validators=[DataRequired()])
    person_name = StringField("Ower")
    weight = CommaDecimalField(_("Weight"),
                               default=1,
                               validators=weight_validators)
Example #25
0
class EditEntryForm(FlaskForm):
    """ Edit a transaction / entry Form """
    id = HiddenField()
    game_session = IntegerField(
        label='Session',
        validators=[InputRequired('Please provide game session number.')])
    description = SearchField(
        label='Description',
        validators=[InputRequired('Please provide a name')])
    amount = FloatField(label='Amount',
                        validators=[InputRequired('Please enter an amount.')])
    submit = SubmitField('Save')
Example #26
0
class LoginForm(FlaskForm):
    email = StringField(EMAIL_DIAPLAY_NAME, validators=[DataRequired(), Length(6, 64), Email()])
    password = PasswordField(PASSWORD_DIAPLAY_NAME, validators=[DataRequired(), Length(6, 18)])
    # recaptcha = RecaptchaField()
    captcha = CaptchaField('验证码')
    captcha_input = StringField('', validators=[DataRequired(), Length(4, 4),
                                                Captcha_equalTo('hidden_right_captcha', '验证码错误')])
    hidden_right_captcha = HiddenField()

    remember_me = BooleanField(REMEMBER_ME_DIAPLAY_NAME)

    submit = SubmitField(SUBMIT_LOGIN_DIAPLAY_NAME)
Example #27
0
class RoomForm(IndicoForm):
    name = StringField(_(u'Name'))
    site = StringField(_(u'Site'))
    building = StringField(_(u'Building'), [DataRequired()])
    floor = StringField(_(u'Floor'), [DataRequired()])
    number = StringField(_(u'Number'), [DataRequired()])
    longitude = FloatField(_(u'Longitude'), [Optional()])
    latitude = FloatField(_(u'Latitude'), [Optional()])
    is_active = BooleanField(_(u'Active'), default=True)
    is_reservable = BooleanField(_(u'Public'), default=True)
    reservations_need_confirmation = BooleanField(_(u'Confirmations'))
    notification_for_assistance = BooleanField(_(u'Assistance'))
    notification_before_days = IntegerField(
        _(u'Notification on booking start - X days before'),
        [Optional(), NumberRange(min=0, max=9)],
        default=0)
    notification_for_responsible = BooleanField(
        _(u'Notification to responsible, too'))
    owner_id = HiddenField(_(u'Responsible user'), [DataRequired()])
    key_location = StringField(_(u'Where is key?'))
    telephone = StringField(_(u'Telephone'))
    capacity = IntegerField(
        _(u'Capacity'), [DataRequired(), NumberRange(min=1)], default=20)
    division = StringField(_(u'Department'))
    surface_area = IntegerField(_(u'Surface area'),
                                [Optional(), NumberRange(min=0)])
    max_advance_days = IntegerField(
        _(u'Maximum advance time for bookings'),
        [Optional(), NumberRange(min=1)])
    comments = TextAreaField(_(u'Comments'))
    delete_photos = BooleanField(_(u'Delete photos'))
    large_photo = FileField(_(u'Large photo'))
    small_photo = FileField(_(u'Small photo'))
    available_equipment = IndicoQuerySelectMultipleCheckboxField(
        _(u'Equipment'),
        get_label=_get_equipment_label,
        modify_object_list=_group_equipment)
    # attribute_* - set at runtime
    bookable_hours = FieldList(FormField(_TimePair), min_entries=1)
    nonbookable_periods = FieldList(FormField(_DateTimePair), min_entries=1)

    def validate_large_photo(self, field):
        if not field.data and self.small_photo.data:
            raise ValidationError(
                _(u'When uploading a small photo you need to upload a large photo, too.'
                  ))

    def validate_small_photo(self, field):
        if not field.data and self.large_photo.data:
            raise ValidationError(
                _(u'When uploading a large photo you need to upload a small photo, too.'
                  ))
Example #28
0
class ChangeEmailForm(FlaskForm):
    email = StringField('新邮箱', validators=[DataRequired(), Length(1, 64),
                                                 Email()])
    password = PasswordField('密码', validators=[DataRequired()])
    captcha = CaptchaField('验证码')
    captcha_input = StringField('', validators=[DataRequired(), Length(4, 4),
                                                Captcha_equalTo('hidden_right_captcha', '验证码错误')])
    hidden_right_captcha = HiddenField()
    submit = SubmitField('更新邮箱')

    def validate_email(self, field):
        if User().get_user(email=field.data):
            raise ValidationError('邮箱已经存在.')
Example #29
0
class FormSessao(FlaskForm):
    id = HiddenField(validators=[Optional()])
    tipo = SelectField(
        "Tipo de sessão",
        choices=[
            ("Sessão Ordinária", "Sessão Ordinária"),
            ("Audiência Pública", "Audiência Pública"),
        ],
        default="Sessão Ordinária",
    )

    data = DateField("Data da sessão", validators=[DataRequired()])
    hora = TimeField("Hora da sessão", validators=[DataRequired()])
    detalhes = TextAreaField("Detalhes/Pauta")
Example #30
0
class RedirectForm(FlaskForm):
    next = HiddenField()

    def __init__(self, *args, **kwargs):
        #         super(RedirectForm, self).__init__(self, *args, **kwargs)
        FlaskForm.__init__(self, *args, **kwargs)
        if not self.next.data:
            self.next.data = get_redirect_target() or ''

    def redirect(self, endpoint='index', **values):
        if is_safe_url(self.next.data):
            return redirect(self.next.data)
        target = get_redirect_target()
        return redirect(target or url_for(endpoint, **values))