Пример #1
0
class RuleForm(FlaskForm):
    location = StringField('Location', validators=[DataRequired()], render_kw={'placeholder': 'Location'})
    latitude = FloatField('latitude', widget=HiddenInput(), validators=[DataRequired()])
    longitude = FloatField('longitude', widget=HiddenInput(), validators=[DataRequired()])
    daysOfTheWeek = [(0, 'Monday'), (1, 'Tuesday'), (2, 'Wednesday'),
                     (3, 'Thursday'), (4, 'Friday'), (5, 'Saturday'), (6, 'Sunday')]
    days = SelectField('Days', choices=daysOfTheWeek, coerce=int, validators=[DataRequired()])
    time = TimeField('Time', validators=[DataRequired()])
    # appendDate = BooleanField('Add Date')
    activity_name = StringField('Activity Name', validators=[DataRequired()],
                                render_kw={'placeholder': 'Activity name'})
    submit = SubmitField('New Rule')

    def validate_location(self, field):
        current_app.logger.debug(field.data, self.days.data, self.time.data)
        rule_day = timedelta(days=self.days.data)
        rule_time = self.time.data
        provisional_rule = current_user.make_rule(address=self.location.data,
                                                  latitude=self.latitude,
                                                  longitude=self.longitude,
                                                  day_and_time=datetime.combine((ARBITRARY_MONDAY + rule_day), rule_time),
                                                  activity_name='')
        if current_user.check_rules_for_match(provisional_rule) is not None:
            raise ValidationError('This overlaps with an already-existing rule')
Пример #2
0
class ProjectUpdateForm(ProjectForm):
    id = IntegerField(label=None, widget=HiddenInput())
    description = TextAreaField(lazy_gettext('Description'),
                            [validators.Required(
                                message=lazy_gettext(
                                    "You must provide a description.")),
                             validators.Length(max=255)])
    long_description = TextAreaField(lazy_gettext('Long Description'))
    allow_anonymous_contributors = BooleanField(lazy_gettext('Allow Anonymous Contributors'))
    zip_download = BooleanField(lazy_gettext('Allow ZIP data download'))
    category_id = SelectField(lazy_gettext('Category'), coerce=int)
    protect = BooleanField(lazy_gettext('Protect with a password?'))
    password = TextField(lazy_gettext('Password'))
    webhook = TextField(lazy_gettext('Webhook'),
                        [pb_validator.Webhook()])
Пример #3
0
class BulkTaskTwitterImportForm(Form):
    form_name = TextField(label=None, widget=HiddenInput(), default='twitter')
    msg_required = lazy_gettext("You must provide some source for the tweets")
    source = TextField(lazy_gettext('Source'),
                       [validators.Required(message=msg_required)])
    max_tweets = IntegerField(lazy_gettext('Number of tweets'))
    user_credentials = TextField(label=None)

    def get_import_data(self):
        return {
            'type': 'twitter',
            'source': self.source.data,
            'max_tweets': self.max_tweets.data,
            'user_credentials': self.user_credentials.data,
        }
Пример #4
0
class ScheduledChangeExistingPermissionForm(ScheduledChangeTimeForm):
    """Permissions and username are required when Scheduling a Change that changes
    an existing Permission because they are needed to find that Permission. Options
    may also be provided."""
    permission = StringField('Permission',
                             validators=[Length(0, 50),
                                         InputRequired()])
    username = StringField('Username',
                           validators=[Length(0, 100),
                                       InputRequired()])
    options = JSONStringField(None, 'Options')
    data_version = IntegerField('data_version',
                                validators=[InputRequired()],
                                widget=HiddenInput())
    change_type = SelectField("Change Type", choices=[('update', 'update')])
Пример #5
0
class BulkTaskEpiCollectPlusImportForm(Form):
    form_name = TextField(label=None, widget=HiddenInput(), default='epicollect')
    msg_required = lazy_gettext("You must provide an EpiCollect Plus "
                                "project name")
    msg_form_required = lazy_gettext("You must provide a Form name "
                                     "for the project")
    epicollect_project = TextField(lazy_gettext('Project Name'),
                                   [validators.Required(message=msg_required)])
    epicollect_form = TextField(lazy_gettext('Form name'),
                                [validators.Required(message=msg_required)])

    def get_import_data(self):
        return {'type': 'epicollect',
                'epicollect_project': self.epicollect_project.data,
                'epicollect_form': self.epicollect_form.data}
Пример #6
0
class ScheduledChangeExistingProductRequiredSignoffForm(
        ScheduledChangeTimeForm):
    product = StringField('Product',
                          validators=[Length(0, 15),
                                      InputRequired()])
    channel = StringField('Channel',
                          validators=[Length(0, 75),
                                      InputRequired()])
    role = StringField('Role', validators=[InputRequired()])
    signoffs_required = IntegerField("Signoffs Required",
                                     validators=[InputRequired()])
    data_version = IntegerField('data_version',
                                validators=[InputRequired()],
                                widget=HiddenInput())
    change_type = SelectField("Change Type", choices=[('update', 'update')])
Пример #7
0
class UpdateProfileForm(Form):
    """Form Class for updating PYBOSSA's user Profile."""

    id = IntegerField(label=None, widget=HiddenInput())

    err_msg = lazy_gettext(
        "Full name must be between 3 and %(fullname)s "
        "characters long",
        fullname=USER_FULLNAME_MAX_LENGTH)
    fullname = TextField(lazy_gettext('Full name'), [
        validators.Length(min=3, max=USER_FULLNAME_MAX_LENGTH, message=err_msg)
    ])

    err_msg = lazy_gettext(
        "User name must be between 3 and %(username_length)s "
        "characters long",
        username_length=USER_NAME_MAX_LENGTH)
    err_msg_2 = lazy_gettext("The user name is already taken")
    name = TextField(lazy_gettext('Username'), [
        validators.Length(min=3, max=USER_NAME_MAX_LENGTH, message=err_msg),
        pb_validator.NotAllowedChars(),
        pb_validator.Unique(user_repo.get_by, 'name', err_msg_2),
        pb_validator.ReservedName('account', current_app)
    ])

    err_msg = lazy_gettext(
        "Email must be between 3 and %(email_length)s "
        "characters long",
        email_length=EMAIL_MAX_LENGTH)
    err_msg_2 = lazy_gettext("Email is already taken")
    email_addr = EmailField(lazy_gettext('Email Address'), [
        validators.Length(min=3, max=EMAIL_MAX_LENGTH, message=err_msg),
        validators.Email(),
        pb_validator.Unique(user_repo.get_by, 'email_addr', err_msg_2)
    ])
    subscribed = BooleanField(lazy_gettext('Get email notifications'))

    locale = SelectField(lazy_gettext('Language'))
    ckan_api = TextField(lazy_gettext('CKAN API Key'))
    privacy_mode = BooleanField(lazy_gettext('Privacy Mode'))
    restrict = BooleanField(lazy_gettext('Restrict processing'))

    def set_locales(self, locales):
        """Fill the locale.choices."""
        choices = []
        for locale in locales:
            choices.append(locale)
        self.locale.choices = choices
Пример #8
0
class ProjectUpdateForm(ProjectForm):
    id = IntegerField(label=None, widget=HiddenInput())
    description = TextAreaField(lazy_gettext('Description'), [
        validators.Required(
            message=lazy_gettext("You must provide a description.")),
        validators.Length(max=255)
    ])
    long_description = TextAreaField(lazy_gettext('Long Description'))
    allow_anonymous_contributors = SelectField(
        lazy_gettext('Allow Anonymous Contributors'),
        choices=[('True', lazy_gettext('Yes')), ('False', lazy_gettext('No'))])
    category_id = SelectField(lazy_gettext('Category'), coerce=int)
    hidden = BooleanField(lazy_gettext('Hide?'))
    password = TextField(
        lazy_gettext('Password (leave blank for no password)'))
    webhook = TextField(lazy_gettext('Webhook'), [pb_validator.Webhook()])
Пример #9
0
class NewFileForm(Form):

    ds_name = StringField('Filename', [validators.DataRequired()])
    fileName = FileField('File')
    description = StringField('Filename', [validators.DataRequired()],
                              widget=TextArea())
    new_submitted = IntegerField('Submitted', default=0, widget=HiddenInput())

    def __init__(self, *args, **kwargs):
        super(NewFileForm, self).__init__(*args, **kwargs)

    def validate(self):
        return super(NewFileForm, self).validate()

    def populate_obj(self, obj):
        super(NewFileForm, self).populate_obj(obj)
Пример #10
0
class EditForm(FlaskForm):
    def __init__(self, *args, **kwargs):
        super(EditForm, self).__init__(*args, **kwargs)
        self.status.choices = list(
            zip(Asset.Status.get_list(), Asset.Status.get_list()))

    name = StringField('Naam')
    quantity = IntegerField('Aantal', default=1)
    location = StringField('Locatie')
    qr_code = StringField('QR',
                          validators=[QRisValid(), UniqueQR()],
                          render_kw={'autofocus': 'true'})
    status = SelectField('Status', validators=[DataRequired()])
    purchase = QuerySelectField('Aankoop', query_factory=get_purchases)
    serial = StringField('SerieNr')
    id = IntegerField(widget=HiddenInput())
Пример #11
0
class PaymentForm(FlaskForm):
    short_user_description = StringField('Korte beschrijving',
                                         validators=[Length(max=50)])
    long_user_description = TextAreaField('Lange beschrijving',
                                          validators=[Length(max=2000)])
    created = DateField('Datum (notatie: 2020-12-31)')
    hidden = BooleanField('Transactie verbergen')
    category_id = SelectField('Categorie', validators=[Optional()], choices=[])
    route = SelectField('Route',
                        choices=['inbesteding', 'aanbesteding', 'subsidie'])
    id = IntegerField(widget=HiddenInput())

    submit = SubmitField('Opslaan', render_kw={'class': 'btn btn-info'})

    # Only manually added payments are allowed to be removed
    remove = SubmitField('Verwijderen', render_kw={'class': 'btn btn-danger'})
Пример #12
0
class ScheduledChangeDeletePermissionForm(ScheduledChangeTimeForm):
    """Permissions and username are required when Scheduling a Change that deletes
    an existing Permission because they are needed to find that Permission."""
    permission = StringField('Permission',
                             validators=[Length(0, 50),
                                         InputRequired()])
    username = StringField('Username',
                           validators=[Length(0, 100),
                                       InputRequired()])
    data_version = IntegerField('data_version',
                                validators=[InputRequired()],
                                widget=HiddenInput())
    change_type = SelectField("Change Type",
                              choices=[('insert', 'insert'),
                                       ('update', 'update'),
                                       ('delete', 'delete')])
Пример #13
0
class MuniForm(Form):

    region = SelectMultipleField('Municipality', [validators.DataRequired()])
    top_tier = SelectField('Cube', [validators.DataRequired()])
    lower_tier = SelectField('Category', [validators.DataRequired()],
                             coerce=str)
    year = SelectMultipleField('Year', [validators.DataRequired()])
    data_type = SelectField('Year', [validators.DataRequired()])
    muni_submitted = IntegerField('Submitted', default=0, widget=HiddenInput())

    def __init__(self, *args, **kwargs):
        super(MuniForm, self).__init__(*args, **kwargs)

        self.region.choices = [[str(c.id), str(c.re_name)]
                               for c in WaziRegion.all()]

        with app.open_resource('static/MuniKeys.json') as f:
            M = json.load(f)

        munikeys = [
            'Aged Creditor Analysis', 'Aged Debtor Analysis', 'Balance Sheet',
            'Capital Acquisition', 'Cash Flow', 'Income and Expenditure',
            'Repairs and Maintenance',
            'Unauthorised, Irregular, Fruitless and Wasteful Expenditure'
        ]

        self.top_tier.choices = [[str(P), str(m)]
                                 for P, m in zip(sorted(M.keys()), munikeys)]

        Set = []

        for m in M.keys():
            for n in M[m].keys():
                Set.append([n, M[m][n]])

        self.lower_tier.choices = [[n, m] for n, m in Set]
        self.year.choices = [[str(i), str(y)]
                             for i, y in enumerate(range(2012, 2017))]
        self.data_type.choices = [['AUDA', 'Audited Actual Budget'],
                                  ['ADJB', 'Adjusted Budget'],
                                  ['ORGB', 'Original Budget']]

    def validate(self):
        return super(MuniForm, self).validate()

    def populate_obj(self, obj):
        super(MuniForm, self).populate_obj(obj)
Пример #14
0
class UpdateProfileForm(Form):

    """Form Class for updating PyBossa's user Profile."""

    id = IntegerField(label=None, widget=HiddenInput())

    err_msg = lazy_gettext("Full name must be between 3 and 35 "
                           "characters long")
    fullname = TextField(lazy_gettext('Full name'),
                         [validators.Length(min=3, max=35, message=err_msg)])

    err_msg = lazy_gettext("User name must be between 3 and 35 "
                           "characters long")
    err_msg_2 = lazy_gettext("The user name is already taken")
    name = TextField(lazy_gettext('Username'),
                     [validators.Length(min=3, max=35, message=err_msg),
                      pb_validator.NotAllowedChars(),
                      pb_validator.Unique(
                          db.session, User, User.name, err_msg_2)])

    err_msg = lazy_gettext("Email must be between 3 and 35 characters long")
    err_msg_2 = lazy_gettext("Email is already taken")
    email_addr = TextField(lazy_gettext('Email Address'),
                           [validators.Length(min=3, max=35, message=err_msg),
                            validators.Email(),
                            pb_validator.Unique(
                                db.session, User,
                                User.email_addr, err_msg_2)])

    locale = SelectField(lazy_gettext('Language'))
    ckan_api = TextField(lazy_gettext('CKAN API Key'))
    privacy_mode = BooleanField(lazy_gettext('Privacy Mode'))

    def set_locales(self, locales):
        """Fill the locale.choices."""
        choices = []
        for locale in locales:
            if locale == 'en':
                lang = gettext("English")
            if locale == 'es':
                lang = gettext("Spanish")
            if locale == 'fr':
                lang = gettext("French")
	    if locale == 'pt':
		lang = gettext("Portuguese")
            choices.append((locale, lang))
        self.locale.choices = choices
Пример #15
0
 def set_group_mode(self, group_idx, group_area_idx):
     ''' 개인 신청인지 단체의 멤버신청인지 정해줌'''
     self.group_yn = True
     self.userid.widget = HiddenInput()
     self.pwd.widget = HiddenInput()
     self.pwd2.widget = HiddenInput()
     self.area_idx.widget = HiddenInput()
     self.group_idx = group_idx
     self.group_area_idx = group_area_idx
     self.sch1.widget = HiddenInput()
     self.sch2.widget = HiddenInput()
Пример #16
0
class AnnouncementForm(Form):
    id = IntegerField(label=None, widget=HiddenInput())
    title = TextField(lazy_gettext('Title'), [
        validators.Required(
            message=lazy_gettext("You must enter a title for the post."))
    ])
    body = TextAreaField(lazy_gettext('Body'), [
        validators.Required(
            message=lazy_gettext("You must enter some text for the post."))
    ])
    info = TextField(lazy_gettext('Info'), [
        validators.Required(
            message=lazy_gettext("You must enter a level for the post.")),
        is_json(dict)
    ])
    media_url = TextField(lazy_gettext('URL'))
    published = BooleanField(lazy_gettext('Publish'))
Пример #17
0
class BulkTaskLocalCSVImportForm(Form):
    form_name = TextField(label=None, widget=HiddenInput(), default='localCSV')
    do_not_validate_tp = BooleanField(label=lazy_gettext(
        "Do not require all fields used in task presenter code to be present in the csv file"
    ),
                                      default=False)

    _allowed_extensions = set(['csv'])

    def _allowed_file(self, filename):
        return '.' in filename and \
            filename.rsplit('.', 1)[1] in self._allowed_extensions

    def _container(self):
        return "user_%d" % current_user.id

    def _upload_path(self):
        container = self._container()
        filepath = None
        if isinstance(uploader, local.LocalUploader):
            filepath = safe_join(uploader.upload_folder, container)
            if not os.path.isdir(filepath):
                os.makedirs(filepath)
            return filepath

        current_app.logger.error(
            'Failed to generate upload path {0}'.format(filepath))
        raise IOError('Local Upload folder is missing: {0}'.format(filepath))

    def get_import_data(self):
        def get_csv_filename():
            if request.method != 'POST':
                return
            if 'file' not in request.files:
                return
            csv_file = request.files['file']
            if csv_file.filename == '':
                return
            if csv_file and self._allowed_file(csv_file.filename):
                return get_file_path_for_import_csv(csv_file)

        return {
            'type': 'localCSV',
            'csv_filename': get_csv_filename(),
            'validate_tp': not self.do_not_validate_tp.data
        }
Пример #18
0
class MyDataForm(Form):
    ds_id = SelectField('Dataset Name', [validators.DataRequired()])
    my_submitted = IntegerField('Submitted', default=0, widget=HiddenInput())

    def __init__(self, *args, **kwargs):
        super(MyDataForm, self).__init__(*args, **kwargs)

        query = db.session.query(UserSet.id, UserSet.ds_title).filter(UserSet.user_id == current_user.id).order_by(
            UserSet.ds_title)

        self.ds_id.choices = [[str(i), str(n)] for i, n in query]

    def validate(self):
        return super(MyDataForm, self).validate()

    def populate_obj(self, obj):
        super(MyDataForm, self).populate_obj(obj)
Пример #19
0
class ViewForm(FlaskForm):
    def __init__(self, *args, **kwargs):
        super(ViewForm, self).__init__(*args, **kwargs)
        self.category_id.choices = DeviceCategory.get_list_for_select()

    category_id = SelectField('Categorie', render_kw={'readonly': ''})
    brand = StringField('Merk', render_kw={'readonly': ''})
    type = StringField('Type', render_kw={'readonly': ''})
    power = DecimalField('Vermogen', render_kw={'readonly': ''})
    ce = BooleanField('CE', render_kw={'disabled': ''})
    control_template = StringField('Inspectie Fiche',
                                   render_kw={'readonly': ''})
    risk_analysis = StringField('Risicoanalyse', render_kw={'readonly': ''})
    manual = StringField('Handleiding', render_kw={'readonly': ''})
    safety_information = StringField('VIK', render_kw={'readonly': ''})
    photo = StringField('Foto', render_kw={'readonly': ''})
    id = IntegerField(widget=HiddenInput(), render_kw={'readonly': ''})
Пример #20
0
class EditForm(FlaskForm):
    def __init__(self, *args, **kwargs):
        super(EditForm, self).__init__(*args, **kwargs)
        self.commissioning.choices = list(
            zip([''] + get_doc_list('commissioning'),
                [''] + get_doc_list('commissioning')))

    invoice = StringField('Factuur')
    since = DateField('Datum',
                      validators=[DataRequired()],
                      format='%d-%m-%Y',
                      default=datetime.date.today)
    value = DecimalField('Bedrag (€)', default=0.0)
    supplier = QuerySelectField('Leverancier', query_factory=get_suppliers)
    device = QuerySelectField('Toestel', query_factory=get_devices)
    commissioning = NonValidatingSelectFields('Indienststelling')
    id = IntegerField(widget=HiddenInput())
Пример #21
0
class ScheduledChangeExistingReleaseForm(ScheduledChangeTimeForm):
    """Name must be provided when Scheduling a Change that modifies an existing
    Release so that we can identify it. Other Release fields (product, data) are
    optional."""
    name = StringField('Name', validators=[InputRequired()])
    product = StringField('Product', validators=[Optional()])
    data = JSONStringField({},
                           'Data',
                           validators=[Optional()],
                           widget=FileInput())
    data_version = IntegerField('data_version',
                                validators=[InputRequired()],
                                widget=HiddenInput())
    change_type = SelectField("Change Type",
                              choices=[('insert', 'insert'),
                                       ('update', 'update'), ('delete'),
                                       ('delete')])
Пример #22
0
class InsideVerificationForm(Form):
	standard = StringField(u'Standard', widget=HiddenInput())
	student = StringField(u'Student Name (Full Name)', widget=TextInput(),validators=[validators.input_required(message=NO_INPUT_ERROR)])
	
	verifier_name = StringField(u'Teacher name (Verifier)', widget=TextInput(),validators=[validators.input_required(message=NO_INPUT_ERROR)])
	verifier_school = StringField(u'School of Verifier', widget=TextInput())
	verifier_school_other = StringField(u'Other - School of Verifier', widget=TextInput())
	verifiers_grade = SelectField(u'Assessment Judgement of Verifier', widget=Select(), choices=GRADES, validators=[validators.NoneOf(values='No Grade',message='Please enter appropriate grade')])

	markers_grade = SelectField(u'Markers assessment judgement', widget=Select(), choices=GRADES,validators=[validators.optional()])
	reported_grade = SelectField(u'Reported assessment judegement', widget=Select(), choices=GRADES,validators=[validators.optional()])

	# tic = AllStaffData(u'Teacher in Charge', widget=Select(),validators=[validators.optional()])

	discussion = StringField(u'Discussion', widget=TextArea(),validators=[validators.optional()])

	finished = BooleanField(u"<p id='finished_p'>", widget=CheckboxInput(),validators=[validators.required(message="The sign off box above must be checked to submit data")])
Пример #23
0
class ShopForm(Form):
    shop_name = StringField(label="店铺名称",
                            validators=[
                                validators.DataRequired(message="必填项"),
                                validators.Length(max=20, message="名称过长")
                            ],
                            render_kw={
                                "class": "form-control",
                                "placeholder": "店铺名称"
                            })
    brand = BooleanField(label="品牌", default=False)
    on_time = BooleanField(label="准时送达", default=False)
    fengniao = BooleanField(label="蜂鸟配送", default=False)
    bao = BooleanField(label="保险", default=False)
    fapiao = BooleanField(label="发票", default=False)
    zhun = BooleanField(label="准标识", default=False)
    start_send = FloatField(
        label="起送价格",
        validators=[validators.DataRequired(message="必填项")],
        render_kw={
            "class": "form-control",
            "placeholder": "起送价格"
        })
    send_cost = FloatField(label="配送费",
                           validators=[validators.DataRequired(message="必填项")],
                           render_kw={
                               "class": "form-control",
                               "placeholder": "配送费"
                           })
    notice = StringField(label="店铺公告",
                         validators=[validators.DataRequired(message="必填项")],
                         render_kw={
                             "class": "form-control",
                             "placeholder": "店铺公告"
                         })
    discount = StringField(label="优惠信息",
                           validators=[validators.DataRequired(message="必填项")],
                           render_kw={
                               "class": "form-control",
                               "placeholder": "优惠信息"
                           })
    shop_img = StringField(label="店铺图片",
                           id="image-input",
                           render_kw={"class": "form-control"},
                           widget=HiddenInput())
Пример #24
0
class ProjectForm(FlaskForm):
    name = StringField('Naam', validators=[DataRequired(), Length(max=120)])
    description = TextAreaField('Beschrijving', validators=[DataRequired()])
    contains_subprojects = BooleanField(
        'Uitgaven van dit project gebeuren via subrekeningen en subprojecten',
        render_kw={
            'checked': '',
            'value': 'y'
        })
    hidden = BooleanField('Project verbergen')
    hidden_sponsors = BooleanField('Sponsoren verbergen')
    budget = IntegerField('Budget voor dit project', validators=[Optional()])
    iban = SelectField('IBAN', validators=[Optional()], choices=[])
    id = IntegerField(widget=HiddenInput())

    submit = SubmitField('Opslaan', render_kw={'class': 'btn btn-info'})

    remove = SubmitField('Verwijderen', render_kw={'class': 'btn btn-danger'})
Пример #25
0
class ObjectField(Field):
    widget = HiddenInput()

    def __init__(self, label='', validators=None, model=None, **kwargs):
        super(ObjectField, self).__init__(label, validators, **kwargs)
        self.model = model

    def _value(self):
        if self.data:
            return str(self.data.id)
        else:
            return u''

    def process_formdata(self, valuelist):
        if valuelist:
            self.data = self.model.query.get(valuelist[0])
        else:
            self.data = []
Пример #26
0
class BulkTaskIIIFImportForm(Form):
    form_name = TextField(label=None, widget=HiddenInput(), default='iiif')
    msg_required = lazy_gettext("You must provide a URL")
    msg_url = lazy_gettext("Oops! That's not a valid URL. "
                           "You must provide a valid URL")
    manifest_uri = TextField(lazy_gettext('URL'),
                             [validators.Required(message=msg_required),
                             validators.URL(message=msg_url)])
    version = SelectField(lazy_gettext('Presentation API version'), choices=[
        (ctx, ctx) for ctx in ManifestReader.contexts
    ], default='2.1')

    def get_import_data(self):
        return {
            'type': 'iiif',
            'manifest_uri': self.manifest_uri.data,
            'version': self.version.data
        }
Пример #27
0
class ContactForm(FlaskForm):
    release = StringField('Release', widget=HiddenInput())
    first_name = StringField('First Name', validators=[InputRequired()])
    last_name = StringField(
        'Last Name',
        validators=[InputRequired()],
    )
    email = StringField('Email', validators=[Email()])
    phone = StringField('Phone Number',
                        validators=[],
                        render_kw={"placeholder": "optional"})
    company = StringField('Company', validators=[InputRequired()])
    company_website = StringField('Company Site', validators=[])
    use_case = StringField(
        '',
        widget=TextArea(),
        render_kw={"placeholder": "describe here your use case"})
    recaptcha = RecaptchaField()
Пример #28
0
    def register(self, **kwargs):
        for key, rel in kwargs.items():
            if key in self.store:
                return


            if isinstance(rel, dj.Computed) or \
                    isinstance(rel, dj.Imported) or \
                    isinstance(rel, dj.Part):
                raise dj.DataJointError(
                    "Data should not be entered directly in Computed, Imported, or Subordinate tables."
                )

            class ReturnValue(wtf.Form):
                _rel = rel

                @classmethod
                def append_field(cls, name, field):
                    setattr(cls, name, field)
                    return cls

                def insert(self2, replace=False):
                    rel = self2._rel
                    dat = {}
                    for k, v in self2._fields.items():
                        if v.data is not None and k != 'REFERRER':  # was not specified and is also not required
                            if isinstance(v.data,
                                          datetime.datetime) or isinstance(
                                              v.data, datetime.date):
                                dat[k] = str(v.data)
                            else:
                                dat[k] = v.data
                    rel.insert1(dat, replace=replace)

            ReturnValue.required = OrderedDict()
            for name, attr in rel.heading.attributes.items():
                ReturnValue.append_field(name, field_factory(attr))
                #setattr(ReturnValue, name, field_factory(attr))
                ReturnValue.required[
                    name] = not attr.nullable and attr.default is None
            ReturnValue.append_field(
                'REFERRER',
                wtf.StringField(label='REFERRER', widget=HiddenInput()))
            self.store[key] = ReturnValue
Пример #29
0
class CustomSelectField(Field):
    widget = HiddenInput()

    def __init__(self, label='', validators=None, multiple=False,
                 choices=[], allow_custom=True, **kwargs):
        super(CustomSelectField, self).__init__(label, validators, **kwargs)
        self.multiple = multiple
        self.choices = choices
        self.allow_custom = allow_custom

    def _value(self):
        return text_type(self.data) if self.data is not None else ''

    def process_formdata(self, valuelist):
        if valuelist:
            self.data = valuelist[1]
            self.raw_data = [valuelist[1]]
        else:
            self.data = ''
Пример #30
0
class ApplicationForm(FlaskForm):


    #identity
    full_name = StringField('Full Name', validators=[validators.DataRequired()])

    email = more_fields.EmailField('Email Address', validators=[validators.DataRequired(), validators.Email()])

    # Requirements
    license = BooleanField('Licensed Driver')
    insurance = BooleanField('Insured')
    l_plate = StringField('License Plate')
    state = BooleanField('Registration State')
    consent = BooleanField('Parent/Guardian Written Consent')
    grade = SelectField(choices=[(9,'9th'), (10,'10th'), (11, '11th'), (12, '12th')])

    # vehicle
    make = StringField('Vehicle Manufacturer')
    model = StringField('Model')
    year = StringField('Vehicle Year')

    # eligibility
    internship = BooleanField('Internship')
    d_enrollment = BooleanField('Dual Enrollment')
    service = BooleanField('Community Service')
    job = BooleanField('Weekday Work Hours')
    athletics_carpool = BooleanField('Team Carpool Host')
    athletics_captain = BooleanField('Athletic Captian')
    athletics = BooleanField('Seasonal Athlete')
    extracurricular = BooleanField('extracurricular Activities')
    sga = BooleanField('Student Government')
    media_production = BooleanField('Media Production')
    gpa = BooleanField('GPA Advantage')
    distance = BooleanField('Prohibitive Commute')
    weekday_job = BooleanField('weekday_job')
    attendance = BooleanField('Attendance Advantage')
    narrative = StringField('Explanation', widget=TextArea(), validators=[validators.DataRequired()])
    timestamp = DateTimeField('',widget=HiddenInput())




    submit = SubmitField('Submit')