class loginform(FlaskForm):
    username = StringField(
        'username', validators=[input_required(),
                                length(min=4, max=40)])
    password = PasswordField(
        'password', validators=[input_required(),
                                length(min=8, max=40)])
Exemple #2
0
class addphotoform(Form):
    name = wtfields.StringField(validators=[validators.input_required()])
    description = wtfields.StringField()
    privacy = wtfields.StringField(validators=[
        validators.input_required(),
        validators.AnyOf(['private', 'public', 'link'])
    ])
Exemple #3
0
def metaform(name, inputs):
    class MetaForm(Form):
        pass
    MetaForm.__name__ = name
    default = []
    for name, _type, default, _range, allowed_values in inputs:
        if _range:
            _min, _max = _range[0], _range[2]
            step = range_input_type[_type]
            if len(_range) == 3:
                step = _range[1]
            RangeField = rangeField(step, _min, _max, default)
            setattr(MetaForm, name, RangeField(name,
                                               validators=[validators.input_required()],
                                               default=types[_type](default)))
        elif allowed_values:
            choices = []
            default_index = 0
            for value in allowed_values:
                choices.append((value, value))
                if default == value:
                    default_index = value
            setattr(MetaForm, name, SelectField(name,
                                                choices=choices,
                                                validators=[validators.input_required()],
                                                default=default_index))
        elif _type in single_input_type.keys():
            _SingleField = single_input_type[_type]
            setattr(MetaForm, name, _SingleField(name,
                                                 validators=[validators.input_required()],
                                                 default=default))

    return MetaForm
Exemple #4
0
class SignupForm(FlaskForm):
    name = StringField(
        "Adınız",
        validators=[
            validators.input_required(message="İsminizi giriniz.."),
            validators.length(min=4, max=20)
        ])
    username = StringField(
        "Kullanıcı Adı",
        validators=[
            validators.input_required(
                message="Lütfen geçerli bir kullanıcı adı giriniz.."),
            validators.length(min=4, max=20)
        ])
    email = StringField(
        "E-posta Adresi",
        validators=[
            validators.Email(
                message="Uygun formatta bir e-posta adresi giriniz..")
        ])
    password = PasswordField("Şifre",
                             validators=[
                                 validators.input_required(),
                                 validators.equal_to(
                                     fieldname="confirm",
                                     message="Şifre uyuşmuyor.."),
                                 validators.length(min=4, max=20)
                             ])
    confirm = PasswordField("Şifreyi Doğrula")
Exemple #5
0
 def test_input_required(self):
     self.assertEqual(
         input_required()(self.form,
                          DummyField('foobar', raw_data=['foobar'])), None)
     self.assertRaises(StopValidation, input_required(), self.form,
                       DummyField('', raw_data=['']))
     self.assertEqual(input_required().field_flags, ('required', ))
Exemple #6
0
class RegisterForm(Form):
    name = StringField('Name',
                       validators=[
                           validators.input_required(),
                           validators.length(min=3, max=30)
                       ])
    email = StringField('Email',
                        validators=[
                            validators.input_required(),
                            validators.length(min=5, max=50)
                        ])
    username = StringField('Username',
                           validators=[
                               validators.input_required(),
                               validators.length(min=5, max=20)
                           ])
    password = PasswordField('Password',
                             validators=[
                                 validators.input_required(),
                                 validators.equal_to(
                                     'confirmPassword',
                                     message='password does not match')
                             ])
    confirmPassword = PasswordField('Confrim Password',
                                    validators=[validators.input_required()])
Exemple #7
0
class RegistrationForm(FlaskForm):
    username = StringField('Username',
                           validators=[
                               validators.input_required(),
                           ])
    email = StringField('Email',
                        validators=[
                            validators.input_required(),
                            validators.email(),
                        ])
    password = PasswordField('Password',
                             validators=[
                                 validators.input_required(),
                                 validators.length(min=8, max=30)
                             ])
    password2 = PasswordField('Repeat Password',
                              validators=[
                                  validators.input_required(),
                                  validators.equal_to('password'),
                              ])

    submit = SubmitField('Register')

    def validate_username(self, username):
        user = User.query.filter_by(username=username.data).first()
        if user is not None:
            raise ValidationError('This username is already in use.')

    def validate_email(self, email):
        user = User.query.filter_by(email=email.data).first()
        if user is not None:
            raise ValidationError('This email is already in use.')
class NewGraveForm(Form):
    """Klasa wtforms do walidacji danych dotyczących grobu."""
    def name_validator(self, field):
        if not re.match(r'^[A-Za-z -]+$', field.data):
            raise ValidationError(
                'Pole może zawierać tylko litery, spacje i myślniki!')

    def date_past(self, field):
        today = datetime.datetime.today()
        if field.data > datetime.datetime.date(today):
            raise ValidationError('Data musi być starsza od dzisiejszej daty!')

    def death_after(self, field):
        if field.data < self.birth_date.data:
            raise ValidationError(
                'Data urodzenia nie może przekroczyć daty śmierci!')

    name = StringField(
        'Imię', [input_required(message='Pole wymagane!'), name_validator],
        render_kw={'required': True})
    surname = StringField(
        'Nazwisko', [input_required(message='Pole wymagane!'), name_validator],
        render_kw={'required': True})
    birth_date = DateField('Data urodzenia', [date_past],
                           format='%Y-%m-%d',
                           render_kw={'required': True})
    death_date = DateField('Data śmierci',
                           [Optional(), date_past, death_after],
                           format='%Y-%m-%d')
Exemple #9
0
class SignUpForm(FlaskForm):
    first_name = StringField(
        'First Name:',
        validators=[input_required('This field is required.'),
                    length(3, 127)])
    last_name = StringField(
        'Last Name:',
        validators=[input_required('This field is required'),
                    length(3, 127)])

    password = PasswordField(
        'Password:'******'This field is required.'),
                    length(7, 127)])
    password_confirm = PasswordField(
        'Repeat Password:'******'This field is required.'),
            equal_to('password', 'Your passwords should probably be the same'),
            length(7, 127)
        ])

    email = EmailField(
        'Email:',
        validators=[input_required('This field is required.'),
                    length(7, 127)])
    email_confirm = BooleanField(
        'Sign me up for an occasional email about current and future plans',
        default=True)

    submit = SubmitField("Sign Up")
Exemple #10
0
class RecordForm(BaseForm):
    id = StringField(
        label='Record id',
        render_kw={'readonly': ''},
    )
    doi = StringField(
        label='DOI (Digital Object Identifier)',
        validators=[regexp('^$|' + DOI_REGEX)],
    )
    sid = StringField(
        label='SID (Secondary Identifier)',
        validators=[regexp('^$|' + SID_REGEX)],
    )
    collection_id = SelectField(
        label='Collection',
        validators=[input_required()],
    )
    schema_id = SelectField(
        label='Schema',
        validators=[input_required()],
    )
    metadata = JSONTextField(
        label='Metadata',
        validators=[input_required(), json_object],
        render_kw={'rows': 24},
    )

    def validate_sid(self, field):
        if not self.doi.data and not field.data:
            raise ValidationError('SID is required if there is no DOI.')
class Crit(Hidden):
	"""Critique for each of the standards
	STILL NEED TO CREATE
	Change radio fields to select and add inputtext other
	"""
	name = StringField(u'Name', widget=TextInput(), validators=[validators.input_required(message=NO_INPUT_ERROR), validators.length(max=MAX_LENGTH)])
	school = StringField(u'School', widget=TextInput(), validators=[validators.input_required(message=NO_INPUT_ERROR), validators.length(max=MAX_LENGTH)])
	materials = RadioField(u'Source of Materials', choices=[('Own','Own'),
														('Commercial','Commercial'),    
														('Subject','Subject Association'),
														('TKI','TKI / NZQA'),
														('Other','Other')])

	check1 = BooleanField(u'The assessment material has been reviewed against the current standard clarification and/or external moderation feedback. (Where the material has been previously critiqued and the standard is unchanged, no further critiquing is required)', widget=CheckboxInput())
	check2 = BooleanField(u'Student instructions contain registered standard number, version, title, level & credits', widget=CheckboxInput())
	check3 = BooleanField(u'Student instructions are clear and language is appropriate' ,widget=CheckboxInput())
	check4 = BooleanField(u'The assessment is consistent with learning/context/curriculum at the appropriate level',widget=CheckboxInput())
	check5 = BooleanField(u'The assessment allows students to achieve all requirements of the standard for all grades',widget=CheckboxInput())
	check6 = BooleanField(u'Instructions are consistent with explanatory notes/range statements in the standard',widget=CheckboxInput())
	check7 = BooleanField(u'Assessment schedule is consistent with the standard and clarifications documents',widget=CheckboxInput())
	check8 = BooleanField(u'Judgement/ sufficiency statement clearly describe performance levels for each grade, e.g. quality & length',widget=CheckboxInput())
	check9 = BooleanField(u'Evidence statements allow for a range of acceptable answers from students with specific examples for each grade (N/A/M/E)',widget=CheckboxInput())

	finished = BooleanField(u"""
		By clicking the button to the left you are signing that <b>you</b> have finished the <b><u>critique process</u></b>. 
		<br><small>If you are not finished, click submit process button below to save what you have entered so far. You can sign off the process at a later date</small>""",widget=CheckboxInput())
Exemple #12
0
class CertificateForm(Form):
    cert_title = StringField('인증 서비스명(한글)',
                             validators=[validators.input_required()])
    cert_pass = PasswordField('인증키 비밀번호',
                              validators=[validators.input_required()])
    country_name = StringField('Country Name',
                               validators=[validators.optional()],
                               description='2자리 국가코드')
    province_name = StringField('State or Province Name',
                                validators=[validators.optional()],
                                description='시/도')
    locality_name = StringField('Locality Name',
                                validators=[validators.optional()],
                                description='구/군/시')
    organization_name = StringField('Organization Name',
                                    validators=[validators.optional()],
                                    description='회사명')
    organizational_unit_name = StringField('Organizational Unit Name',
                                           validators=[validators.optional()],
                                           description='부서명')
    common_name = StringField('Common Name',
                              validators=[validators.optional()],
                              description='도메인명')
    email_address = StringField('Email Address',
                                validators=[validators.optional()],
                                description='담당자 이메일')
    cert_days = StringField('인증서 유효기간(일단위)',
                            validators=[validators.input_required()])
class ProfileForm(Form):
    user = StringField(u'user',
                       validators=[
                           validators.input_required(messages.required),
                           my_validators.user_exists(new_user=False)
                       ])
    email = StringField(u'email',
                        validators=[
                            validators.input_required(messages.required),
                            my_validators.mail_exists(new_user=False)
                        ])
    password = StringField(u'password',
                           validators=[
                               validators.equal_to(
                                   'confirm_password',
                                   message='Passwords deben ser iguales')
                           ])
    confirm_password = StringField(u'confirm_password')
    periodicity = SelectField(
        u'periodicity',
        choices=[(Periodicidad.diaria.value, Periodicidad.diaria.value),
                 (Periodicidad.semanal.value, Periodicidad.semanal.value),
                 (Periodicidad.mensual.value, Periodicidad.mensual.value)])

    def set_values(self, user):
        self.user.data = user.user
        self.email.data = user.email
        self.periodicity.data = user.perfil.periodicidad
Exemple #14
0
class EndRideForm(FlaskForm):
    """
    End ride form for the user to fill out.
    """
    longitude = DecimalField(
        label='Longitude',
        validators=[
            input_required(),
            number_range(min=-180,
                         max=180,
                         message="Longitude must be between -180 and 180.")
        ])
    latitude = DecimalField(
        label='Latitude',
        validators=[
            input_required(),
            number_range(min=-90,
                         max=90,
                         message="Latitude must be between -90 and 90.")
        ])
    battery = IntegerField(
        label='Battery (percent)',
        validators=[
            input_required(),
            number_range(
                min=0,
                max=100,
                message="Battery (percent) must be between 0 and 100.")
        ])
    submit = SubmitField('End ride')
Exemple #15
0
class RegForm(DynamicForm):

    first_name = StringField(u'First Name',
                             validators=[input_required()],
                             widget=BS3TextFieldWidget())

    last_name = StringField(u'Last Name',
                            validators=[input_required()],
                            widget=BS3TextFieldWidget())
    aadhaar = StringField(
        u'Aadhaar',
        [input_required(), length(min == 12),
         length(max=12)],
        widget=BS3TextFieldWidget())
    gender = SelectField('Gender',
                         choices=[('M', 'Male'), ('F', 'Female'),
                                  ('T', 'Transgender')])
    dob = DateField("Date of Birth",
                    format='%Y-%m-%d',
                    validators=[input_required()])
    email = StringField("Email",
                        validators=[DataRequired(),
                                    validators.Email()],
                        widget=BS3TextFieldWidget())
    number = IntegerField('Mobile',
                          validators=[DataRequired([DataRequired()])])
    password = PasswordField(
        ' Password',
        [DataRequired(),
         EqualTo('confirm', message='Passwords must match')])
    confirm = PasswordField('Repeat Password')
    accept_tos = BooleanField('I Agree', [DataRequired()])
    submit = SubmitField("Register")
Exemple #16
0
 class ParticipantEditBaseForm(WTSecureForm):
     # participant_id = TextField(
     #     _('Participant ID'),
     #     validators=[validators.input_required()]
     # )
     name = TextField(
         _('Name')
     )
     gender = SelectField(
         _('Gender'),
         choices=Participant.GENDER
     )
     role = SelectField(
         _('Role'),
         choices=_make_choices(
             participant_roles.find().scalar('id', 'name')
         ),
         validators=[validators.input_required()]
     )
     supervisor = TextField(
         _('Supervisor')
     )
     location = TextField(
         _('Location'),
         validators=[validators.input_required()]
     )
     # partners are not required
     partner = SelectField(
         _('Partner'),
         choices=_make_choices(
             participant_partners.find().scalar('id', 'name')
         ),
     )
     phone = StringField(_('Phone'))
     password = StringField(_('Password'))
Exemple #17
0
class CommentForm(Form):
    parent_comment = IntegerField()
    content = StringField(validators=[
        input_required(message='内容不能为空'),
        Length(max=80, min=2, message='评论内容最大长度为2~80')
    ])
    article = IntegerField(validators=[input_required(message='文章不能为空')])
Exemple #18
0
class BookForm(Form):
    author = StringField('author', validators=[validators.input_required()])
    name = StringField('name', validators=[validators.input_required()])
    edition = StringField('edition', validators=[validators.input_required()])
    year = IntegerField('year', validators=[validators.input_required()])
    user = StringField('edition', validators=[validators.input_required()])
    translator = StringField('translator', validators=[validators.optional()])
Exemple #19
0
class RegisterForm(Form):
    telephone = StringField(validators=[
        input_required(message='手机号码不能为空'),
        Length(min=11, max=11, message='请输入正确的手机号码')
    ])
    # telePassCode = StringField(validators=[input_required('请输入手机验证码'),Length(min=4,max=4,message='验证码错误')]) ##没钱做不出来   阿里大鱼
    username = StringField(validators=[
        input_required(message='用户名不能为空'),
        Length(min=6, max=18, message='用户名长度为6~18')
    ])
    password = StringField(validators=[input_required(message='密码不能为空')])
    repeatPassword = StringField(
        validators=[input_required(message='请确认密码'),
                    EqualTo('password')])
    passCode = StringField(validators=[
        input_required(message='请输入验证码'),
        Length(min=4, max=4, message='请输入图形验证码')
    ])

    def validate_telephone(self, field):
        data = field.data
        res = re.findall(r'^1\d{10}$', data)
        if res and res[0] != data:
            raise ValidationError('请输入正确的手机号码')

    def validate_username(self, field):
        data = field.data
        res = re.findall('[\w|\d]+', data)
        if res and res[0] != data:
            raise ValidationError('用户名和密码只能包含数字字母下划线')

    def validate_password(self, field):
        self.validate_username(field)
Exemple #20
0
class Users(Form):
    firstname = StringField(u'Firstname',
                            validators=[
                                validators.input_required(),
                                validators.Length(min=3, max=250)
                            ])
    lastname = StringField(u'Lastname',
                           validators=[
                               validators.input_required(),
                               validators.Length(min=3, max=250)
                           ])
    username = StringField(u'Username',
                           validators=[
                               validators.input_required(),
                               validators.Length(min=3, max=250)
                           ])
    email = StringField(u'Email',
                        validators=[
                            validators.input_required(),
                            validators.Length(min=3, max=250)
                        ])
    password = PasswordField('Password', [
        validators.DataRequired(),
        validators.EqualTo('confirm', message='Passwords do not match')
    ])
    confirm = PasswordField('Confirm Password')
Exemple #21
0
class ContactForm (FlaskForm):
    first_name= StringField("First Name", validators=[input_required()])
    last_name= StringField("Last Name", validators=[input_required()])
    phone= StringField("Phone Number", validators=[input_required()])
    email=StringField("Email Address", validators=[input_required()])
    comment=StringField("Comment", validators=[input_required()])
    submit = SubmitField()
Exemple #22
0
class VehicleForm(FlaskForm):
    """
    Register a new vehicle.
    """
    vehicle_type = SelectField(label='Type', choices=[('scooter', 'Scooter')])
    longitude = DecimalField(
        label='Longitude',
        validators=[
            input_required(),
            number_range(min=-180,
                         max=180,
                         message="Longitude must be between -180 and 180.")
        ])
    latitude = DecimalField(
        label='Latitude',
        validators=[
            input_required(),
            number_range(min=-90,
                         max=90,
                         message="Latitude must be between -90 and 90.")
        ])
    battery = IntegerField(
        label='Battery (percent)',
        validators=[
            input_required(),
            number_range(
                min=0,
                max=100,
                message="Battery (percent) must be between 0 and 100.")
        ])
    submit = SubmitField('Add vehicle')
class RegistrationForm(Form):
    """Creates a registration form with validations for users to sign up"""
    first_name = StringField(u'First Name',
                             validators=[
                                 validators.Length(min=3, max=20),
                                 validators.input_required()
                             ])
    last_name = StringField(u'Last Name',
                            validators=[
                                validators.Length(min=3, max=20),
                                validators.input_required()
                            ])
    email = StringField(u'Email',
                        validators=[
                            validators.Length(min=10, max=30),
                            validators.input_required(),
                            validators.Email()
                        ])
    password = PasswordField('Password', [
        validators.DataRequired(),
        validators.Length(min=8, max=25),
        validators.EqualTo('confirm', message='Passwords do not match')
    ])

    confirm = PasswordField('Confirm Password')
Exemple #24
0
class RequestForm(FlaskForm):
    email= StringField("Email Address", validators=[input_required()])
    first_name= StringField("First Name", validators=[input_required()])
    last_name=last_name= StringField("Last Name", validators=[input_required()])
    card_select= SelectField(u'Reading request choice', choices=[('35', '3 card reading'), ('50', '5 card reading')])
    comment= StringField('Comment', validators=[input_required()])
    submit = SubmitField()
Exemple #25
0
class EscritorioForm(FlaskForm):

    cnpj = StringField(
        'CNPJ',
        validators=[
            input_required(message="Informe apenas os números do CNPJ"),
            Length(min=14, max=14, message="O CNPJ deve conter 14 caracteres")
        ])
    n_oab = StringField(
        'Nº OAB',
        validators=[
            input_required(message="Informe nº OAB no formato UF123456"),
            Length(min=8,
                   max=8,
                   message="Número inválido, use o formato formato UF123456")
        ])
    email = StringField('Email',
                        validators=[Email(message="Insira um e-mail válido")])
    senha = PasswordField(
        'Senha',
        validators=[
            input_required("Campo obrigatório"),
            Length(min=8,
                   message="A senha deve conter pelo menos 8 caracteres")
        ])
    confirmar_senha = PasswordField('Confirmação de senha',
                                    validators=[
                                        input_required('Campo obrigatório'),
                                        EqualTo(
                                            fieldname='senha',
                                            message="As senhas não coincidem")
                                    ])
    registrar_escritorio = SubmitField('Registrar Escritório')
Exemple #26
0
class UserForm(Form):

    name = StringField(label='이름', validators=[input_required()])

    who = HiddenField(validators=[input_required()], default='users')

    service = HiddenField(validators=[input_required()], default='soran')
Exemple #27
0
class AddForm(Form):
    name = StringField('name', validators=[validators.input_required()])
    description = StringField('description',
                              validators=[validators.input_required()])
    price = IntegerField('price', validators=[validators.input_required()])
    image_src = FileField('image_src',
                          validators=[validators.input_required()])
class LoginForm(Form):
    email = StringField(validators=[
        Email(message='请输入有效的邮箱地址'),
        input_required(message='邮箱不能为空')
    ])
    # TODO:密码长度限制
    password = StringField(validators=[input_required('密码不能为空')])
Exemple #29
0
class LoginForm(Form):
    username = StringField(u'Usuario',
                           validators=[validators.input_required()],
                           render_kw={"placeholder": "Ingresar usuario"})
    password = PasswordField(u'Contraseña',
                             validators=[validators.input_required()],
                             render_kw={"placeholder": "Ingresar contraseña"})
class AddressForm(Form):
    street_line1 = StringField(u'StreetLine 1', validators=[validators.input_required()])
    street_line2 = StringField(u'StreetLine 2')
    city = StringField(u'City', validators=[validators.input_required()])
    state = ModelSelectField(u'State', validators=[validators.input_required()])
    zip_code = StringField(u'Zip Code', validators=[validators.input_required()])
    country = ModelSelectField(u'Country', validators=[validators.input_required()])
Exemple #31
0
class MyForm(FlaskForm):
    firstname = StringField(u'First_Name',
                            validators=[
                                validators.input_required(),
                                validators.Length(min=3, max=50)
                            ])
    lastname = StringField(u'Last_Name',
                           validators=[
                               validators.input_required(),
                               validators.Length(min=3, max=50)
                           ])
    email = StringField(u'Email',
                        validators=[
                            validators.input_required(),
                            validators.Length(min=3, max=50)
                        ])
    stack = StringField(u'Stack',
                        validators=[
                            validators.input_required(),
                            validators.Length(min=3, max=50)
                        ])
    image = FileField('Image')
    description = TextAreaField(u'Description',
                                validators=[
                                    validators.input_required(),
                                    validators.Length(min=3, max=50)
                                ])
    submit = SubmitField('post')
Exemple #32
0
    def test_input_required(self):
        self.assertEqual(input_required()(self.form, DummyField('foobar', raw_data=['foobar'])), None)
        self.assertRaises(StopValidation, input_required(), self.form, DummyField('', raw_data=['']))
        self.assertEqual(input_required().field_flags, ('required', ))

        # Check message and custom message
        grab = lambda **k: grab_stop_message(input_required(**k), self.form, DummyField('', raw_data=['']))
        self.assertEqual(grab(), 'This field is required.')
        self.assertEqual(grab(message='foo'), 'foo')
Exemple #33
0
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self._instances = Instances(self._supervisor.get_db())

        hosts_names = [host.get_name() for host in self._supervisor.get_hosts()]
        apps_images = [app.get_image() for app in self._supervisor.get_apps()]

        self.host.validators = [validators.input_required(),
                                validators.any_of(hosts_names)]
        self.image.validators = [validators.input_required(),
                                 validators.any_of(apps_images)]
Exemple #34
0
    def convert(self, model, prop, field_args):
        """
        Returns a form field for a single model property.

        :param model:
            The ``db.Model`` class that contains the property.
        :param prop:
            The model property: a ``db.Property`` instance.
        :param field_args:
            Optional keyword arguments to construct the field.
        """

        prop_type_name = type(prop).__name__

        #check for generic property
        if(prop_type_name == "GenericProperty"):
            #try to get type from field args
            generic_type = field_args.get("type")
            if generic_type:
                prop_type_name = field_args.get("type")
            #if no type is found, the generic property uses string set in convert_GenericProperty

        kwargs = {
            'label': prop._code_name.replace('_', ' ').title(),
            'default': prop._default,
            'validators': [],
        }
        if field_args:
            kwargs.update(field_args)

        if prop._required and prop_type_name not in self.NO_AUTO_REQUIRED:
            # Use input_required instead of required to allow falsey values like 0.
            kwargs['validators'].append(validators.input_required())

        if kwargs.get('choices'):
            # Use choices in a select field.
            # kwargs['choices'] = [(v, v) for v in kwargs.get('choices')]
            choices = []
            # Allow two ways of providing choices. With key-value tuples and with simple strings.
            for c in kwargs.get('choices'):
                if type(c) is tuple:
                    choices.append((c[0], c[1]))
                elif type(c) is str:
                    choices.append((c, c))

            kwargs['choices'] = choices
            return f.SelectField(**kwargs)

        if prop._choices:
            # Use choices in a select field.
            kwargs['choices'] = [(v, v) for v in prop._choices]
            return f.SelectField(**kwargs)

        else:
            converter = self.converters.get(prop_type_name, None)
            if converter is not None:
                return converter(model, prop, kwargs)
            else:
                return self.fallback_converter(model, prop, kwargs)
def submission_create(form_id):
    form = services.forms.get_or_404(pk=form_id, form_type='INCIDENT')
    edit_form_class = generate_submission_edit_form_class(form)
    page_title = _('Add Submission')
    template_name = 'frontend/incident_add.html'

    if request.method == 'GET':
        submission_form = edit_form_class()
        return render_template(
            template_name,
            page_title=page_title,
            form=form,
            submission_form=submission_form
        )
    else:
        submission_form = edit_form_class(request.form)

        # a small hack since we're not using modelforms,
        # these fields are required for creating a new incident
        submission_form.contributor.validators = [validators.input_required()]
        submission_form.location.validators = [validators.input_required()]

        if not submission_form.validate():
            # really should redisplay the form again
            print submission_form.errors
            return redirect(url_for(
                'submissions.submission_list', form_id=unicode(form.pk)))

        submission = services.submissions.new()
        submission_form.populate_obj(submission)

        # properly populate all fields
        submission.created = datetime.utcnow()
        submission.deployment = g.deployment
        submission.event = g.event
        submission.form = form
        submission.submission_type = 'O'
        submission.contributor = submission_form.contributor.data
        submission.location = submission_form.location.data

        submission.save()

        return redirect(
            url_for('submissions.submission_list', form_id=unicode(form.pk)))
Exemple #36
0
    def get_field(self, column):

        if column.__class__ not in self.column_field:
            raise ValueError("%s -> field not found!" % column.__class__)

        field_cls = self.column_field[column.__class__]

        args, field_kwargs = [], {}

        field_kwargs["validators"] = []
        if "allow_none" in column.__dict__:
            allow_none = column.__dict__["allow_none"]
            if not allow_none:
               field_kwargs["validators"].append(input_required())
        
        if "default" in column.__dict__:
            field_kwargs["default"] = column.__dict__["default"]

        return field_cls(*args, **field_kwargs)
Exemple #37
0
 def scaffold_form(self):
     form_class = super(PubView, self).scaffold_form()
     form_class.pub_type = TextField(label='酒吧类型', validators=[validators.input_required()],
                                     description=u'酒吧类型')
     return form_class
Exemple #38
0
 def scaffold_form(self):
     form_class = super(PubView, self).scaffold_form()
     form_class.pub_type = TextField(label=u"酒吧类型", validators=[validators.input_required()], description=u"酒吧类型")
     form_class.picture = TextField(label=u"酒吧图片", description=u"酒吧图片,按control键可以选择多张图片")
     return form_class
Exemple #39
0
    'FloatField',
    'IntegerField',
    'StringField',
    'ComputedStringField',
    'BaseFormMixin',
    'BaseForm',
    'SecureBaseForm',
    'json_to_form',
    'body_to_multidict',
    'HideFields',
    'GetBindingMap',
]


DATA_REQUIRED = validators.data_required()
INPUT_REQUIRED = validators.input_required()
REQUIRED = DATA_REQUIRED


def json_to_form(form_dict, sep=u'_', pre=u'', _ls=u'-'):
  """Convert a json dictionary to match the flat form fieldnames."""
  flat = []
  for key, val in form_dict.iteritems():
    key_name = pre + key if pre else key
    if isinstance(val, dict):
      leaf = json_to_form(val, sep=sep, pre=key_name + sep)
      flat += leaf
    elif isinstance(val, list) and (len(val) and isinstance(val[0], dict)):
      for i, row in enumerate(val):
        row_key = _ls.join([key_name, str(i)])
        leaf = json_to_form(row, sep=sep, pre=row_key + _ls)
Exemple #40
0
 def InputRequired(cls,message=None):
     ''' Validates that input was provided for this field. '''
     return validators.input_required(message)
Exemple #41
0
def generate_participant_import_mapping_form(
    deployment, headers, *args, **kwargs
):
    default_choices = [['', _('Select column')]] + [(v, v) for v in headers]

    attributes = {
        '_headers': headers,
        'participant_id': SelectField(
            _('Participant ID'),
            choices=default_choices,
            validators=[validators.input_required()]
        ),
        'name': SelectField(
            _('Name'),
            choices=default_choices
        ),
        'partner_org': SelectField(
            _('Partner'),
            choices=default_choices
        ),
        'role': SelectField(
            _('Role'),
            choices=default_choices,
        ),
        'location_id': SelectField(
            _('Location ID'),
            choices=default_choices,
        ),
        'supervisor_id': SelectField(
            _('Supervisor'),
            choices=default_choices,
        ),
        'gender': SelectField(
            _('Gender'),
            choices=default_choices
        ),
        'email': SelectField(
            _('Email'),
            choices=default_choices,
        ),
        'password': SelectField(
            _('Password'),
            choices=default_choices,
        ),
        'phone': TextField(
            _('Phone prefix')
        ),
        'group': TextField(
            _('Group prefix')
        )
    }

    for field in deployment.participant_extra_fields:
        attributes[field.name] = SelectField(
            _('%(label)s', label=field.label),
            choices=default_choices
        )

    def validate_phone(self, field):
        if field.data:
            subset = [h for h in self._headers if h.startswith(field.data)]
            if not subset:
                raise ValidationError(_('Invalid phone prefix'))

    def validate_group(self, field):
        if field.data:
            subset = {h for h in self._headers if h.startswith(field.data)}
            if not subset:
                raise ValidationError(_('Invalid group prefix'))

    attributes['validate_phone'] = validate_phone
    attributes['validate_group'] = validate_group

    ParticipantImportMappingForm = type(
        'ParticipantImportMappingForm',
        (WTSecureForm,),
        attributes
    )

    return ParticipantImportMappingForm(*args, **kwargs)
Exemple #42
0
 def test_input_required(self):
     self.assertEqual(input_required()(self.form, DummyField('foobar', raw_data=['foobar'])), None)
     self.assertRaises(StopValidation, input_required(), self.form, DummyField('', raw_data=['']))
     self.assertEqual(input_required().field_flags, ('required', ))