Exemplo n.º 1
0
class RegistrationForm(FlaskForm):
    name = StringField("Name", validators=[DataRequired()])
    email = StringField("Email", validators=[DataRequired(), Email()])
    phone = StringField("Phone", validators=[DataRequired()])
    community = StringField("Community Name", validators=[DataRequired()])
    days = SelectMultipleField('Attending Days',
                               choices=[('0', 'Friday, April 27'),
                                        ('1', 'Saturday, April 28'),
                                        ('2', 'Sunday, April 29')],
                               option_widget=CheckboxInput(),
                               widget=ListWidget(prefix_label=False))
    dietary = SelectMultipleField('Dietary Restrictions',
                                  choices=[('0', 'None'), ('1', 'Vegetarian'),
                                           ('2', 'Gluten Free'),
                                           ('3', 'Dairy Free')],
                                  option_widget=CheckboxInput(),
                                  widget=ListWidget(prefix_label=False))
    dietary_other = StringField("Other Dietary")
    food_allergies = StringField("Food Allergies")

    number_of_adults = IntegerField("Number of Adults Attending",
                                    validators=[DataRequired()])
    names_of_adults = StringField("Names of Adults")

    number_of_children = IntegerField("Number of Children Attending",
                                      validators=[])
    names_of_children = StringField("Names of Children")

    number_of_jy = IntegerField("Number of Youth Attending", validators=[])
    names_of_jy = StringField("Names of JY")
Exemplo n.º 2
0
class BoardOptionsForm(forms.Form):
    restrict_listing = forms.BooleanField(__(u"Restrict direct posting on this board to owners and the following users"),
        default=True,
        description=__(u"As the owner of this board, you can always cross-add jobs from other boards on Hasjob"))
    posting_users = forms.UserSelectMultiField(__(u"Allowed users"),
        description=__(u"These users will be allowed to post jobs on this board under the following terms"),
        usermodel=User, lastuser=lastuser)
    # Allow turning this off only in siteadmin-approved boards (deleted in the view for non-siteadmins)
    require_pay = forms.BooleanField(__(u"Require pay data for posting on this board?"), default=True,
        description=__(u"Hasjob requires employers to reveal what they intend to pay, "
            u"but you can make it optional for jobs posted from this board. "
            u"Pay data is used to match candidates to jobs. We recommend you collect it"))
    newjob_headline = forms.StringField(__(u"Headline"),
        description=__(u"Optional – The sample headline shown to employers when posting a job"),
        validators=[
            forms.validators.Length(min=0, max=100, message=__("%%(max)d characters maximum"))],
        filters=[forms.filters.strip(), forms.filters.none_if_empty()])
    newjob_blurb = forms.TinyMce4Field(__(u"Posting instructions"),
        description=__(u"Optional – What should we tell employers when they post a job on your board? "
            u"Leave blank to use the default text"),
        content_css=content_css,
        validators=[forms.validators.AllUrlsValid()])
    types = QuerySelectMultipleField(__("Job types"),
        widget=ListWidget(), option_widget=CheckboxInput(),
        query_factory=lambda: JobType.query.filter_by(private=False).order_by(JobType.seq), get_label=jobtype_label,
        validators=[forms.validators.DataRequired(__(u"You need to select at least one job type"))],
        description=__(u"Jobs listed directly on this board can use one of the types enabled here"))
    categories = QuerySelectMultipleField(__("Job categories"),
        widget=ListWidget(), option_widget=CheckboxInput(),
        query_factory=lambda: JobCategory.query.filter_by(private=False).order_by(JobCategory.seq), get_label='title',
        validators=[forms.validators.DataRequired(__(u"You need to select at least one category"))],
        description=__(u"Jobs listed directly on this board can use one of the categories enabled here"))
Exemplo n.º 3
0
class SelectNISTdata(Form):
    """
    form page python object
    that creates the NIST analysis
    home page data 
    ** features required for sure:
     - drop down list selection of data attributes for
       ## implement as String field with validator till we figure out
          correct input dtype (Id error, is it not a list? what other iterable?) 
          for the ListWidget
        - code 
        - element(s)
        - property ..
        - functional 
        - integration method 
        ** objective: create a filtered data query for a list of 
                      elements with the same attributes 
     - display the slected data in some pleasing tabular form 
       basically print the filtered out dataframe with the relevant 
       features. 
    * extension methods:
        - multiple selection into the filtered data set 
 
    """
    #### Simple boxes
    ## code seletion field defined as an empty field
    # validators can be direct text matching also
    code_b = StringField('', validators.Length( min=4, max=5, message=u'Check input') ) 
    element_b = StringField('', validators.Length( min=1, max=2, message=u'Enter Al, W, Ni, Fe or Cu') )
    ####

    #### test .. the field input to ListWidget must be a kwargs of fields like above 
    ## LIST box 1 : code selection widget
    vasp = StringField('VASP')
    Dmol3 = StringField('DMol3')
    PWscf = StringField('PWscf')
    code = ListWidget()
    code(vasp,Dmol3,PWscf)
    ##
    ## box 2: element selection widget  (means this code needs to be updated when more elements calculated
    Al = StringField('Al')
    W = StringField('W')
    Ni = StringField('Ni')
    Fe = StringField('Fe')
    Cu = StringField('Cu')
    elements = ListWidget()
    elements(Al, W, Ni, Fe, Cu)
    ##
    ####
    B = StringField('Bulk Modulus')
    dB = StringField('Bulk Modulus derivative')
    E0 = StringField('DFT Ground state Energy Minimum')
    a0 = StringField('Lattice constant')
    properties = ListWidget()
    properties(B, dB, E0, a0)
Exemplo n.º 4
0
class FiltersetForm(forms.Form):
    title = forms.StringField(__("Title"),
                              description=__("A title shown to viewers"),
                              validators=[forms.validators.DataRequired()],
                              filters=[forms.filters.strip()])
    description = forms.TinyMce4Field(
        __("Description"),
        content_css=content_css,
        description=__("Description shown to viewers and search engines"),
        validators=[forms.validators.DataRequired()])
    types = QuerySelectMultipleField(__("Job types"),
                                     widget=ListWidget(),
                                     option_widget=CheckboxInput(),
                                     get_label='title',
                                     validators=[forms.validators.Optional()])
    categories = QuerySelectMultipleField(
        __("Job categories"),
        widget=ListWidget(),
        option_widget=CheckboxInput(),
        get_label='title',
        validators=[forms.validators.Optional()])
    geonameids = forms.GeonameSelectMultiField("Locations",
                                               filters=[format_geonameids])
    remote_location = forms.BooleanField(__("Match remote jobs"))
    pay_cash_currency = forms.RadioField(
        __("Currency"),
        choices=get_currency_choices(),
        default='',
        validators=[forms.validators.Optional()])
    pay_cash = forms.IntegerField(__("Pay"),
                                  description=__("Minimum pay"),
                                  validators=[forms.validators.Optional()])
    keywords = forms.StringField(__("Keywords"),
                                 validators=[forms.validators.Optional()],
                                 filters=[forms.filters.strip()])
    auto_domains = forms.AutocompleteMultipleField(
        __("Domains"),
        autocomplete_endpoint='/api/1/domain/autocomplete',
        results_key='domains')
    auto_tags = forms.AutocompleteMultipleField(
        __("Tags"),
        autocomplete_endpoint='/api/1/tag/autocomplete',
        results_key='tags')

    def set_queries(self):
        if not self.edit_parent:
            self.edit_parent = g.board
        self.types.query = JobType.query.join(board_jobtype_table).filter(
            board_jobtype_table.c.board_id == self.edit_parent.id).order_by(
                'title')
        self.categories.query = JobCategory.query.join(
            board_jobcategory_table).filter(
                board_jobcategory_table.c.board_id ==
                self.edit_parent.id).order_by('title')
Exemplo n.º 5
0
class PortfolioForm(FlaskForm):
    """ Form to be used in changing accout portfolio """
    course_selection = SelectMultipleField('Completed Coursework',
                                           option_widget=CheckboxInput(),
                                           widget=ListWidget(prefix_label=False),
                                           choices=Course_.to_choices())
    skill_selection = SelectMultipleField('Skills',
                                          option_widget=CheckboxInput(),
                                          widget=ListWidget(prefix_label=False),
                                          choices=Skill_.to_choices())
    submit = SubmitField('Update')
Exemplo n.º 6
0
class UserProfileForm(FlaskForm):
    """
    Form Class to be used for user profiles
    """
    full_name = StringField(
        "Full Name",
        validators=[DataRequired('Please give us your full name')])
    affiliation = StringField('Affiliation',
                              validators=[
                                  DataRequired('Please enter the insitution'
                                               ' with which you are affiated')
                              ])
    affiliation_type = QuerySelectField(
        'Current Status',
        query_factory=possible_affiliation_types,
        get_label='label',
        allow_blank=False)

    roles = RoleMultiField('Roles', widget=ListWidget(prefix_label=True))

    def validate_roles(form, field):
        if field.data is None or len(field.data) == 0:
            raise ValidationError(
                "Need to specify at least one role for the user")

    def validate_affiliation_type(form, field):
        pass
Exemplo n.º 7
0
class CurriculumUnitAddAppendStudGroupForm(Form):
    relative_curriculum_units = QuerySelectMultipleField(
        'Группы',
        get_pk=lambda cu: cu.id,
        get_label=lambda cu: cu.stud_group.num_print,
        widget=ListWidget(prefix_label=False),
        option_widget=CheckboxInput())
Exemplo n.º 8
0
class CampaignForm(Form):
    _store_id = None
    title = StringField(
        gettext(u'campaign title'),
        validators=[DataRequired(gettext(u'campaign title cannot be empty'))])
    content = StringField(
        gettext(u'campaign detail'),
        validators=[DataRequired(gettext(u'campaign detail cannot be empty'))],
        widget=TextArea())

    related_cars = SelectMultipleField(gettext(u'related cars'),
                                       option_widget=CheckboxInput(),
                                       widget=ListWidget(prefix_label=False))

    start = DateField(
        gettext(u'start time'),
        format='%m/%d/%Y',
        validators=[DataRequired(gettext(u'start time cannot be empty'))])
    end = DateField(gettext(u'end time'),
                    format='%m/%d/%Y',
                    validators=[
                        DataRequired(gettext(u'end time cannot be empty')),
                        validate_end_date
                    ])
    notify_date = DateField(gettext(u'notify time'),
                            format='%m/%d/%Y',
                            validators=[
                                DataRequired(
                                    gettext(u'notify time cannot be empty')),
                                validate_notify_date
                            ])
Exemplo n.º 9
0
class NewPostForm(Form):
    title = StringField(_l('Title'), validators=[DataRequired()])
    content = TextAreaField(_l('Content'), validators=[DataRequired()])
    covered_period = DateField(_l('Date'),
                               validators=[DataRequired()],
                               default=lambda: dtdate.today())
    week = BooleanField(_l('Covers whole week'))
    categories = SelectMultipleField(_('Categories'),
                                     widget=ListWidget(),
                                     option_widget=CheckboxInput(),
                                     choices=ClassChoices(
                                         Category.query.order_by('name'),
                                         'name'))

    def get_slug(self):
        return slugify(self.title.data)

    def fill_post_object(self, post):
        post.title = self.title.data
        post.content = self.content.data
        post.covered_period = self.covered_period.data
        post.covers_week = self.week.data
        post.categories.extend(
            Category.query.filter(Category.name.in_(self.categories.data)))

        return post
Exemplo n.º 10
0
class EditForm(FlaskForm):
    """Project editing Form"""
    title = StringField('Title:', validators=[InputRequired()])
    description = TextAreaField('Project Summary:',
                                validators=[InputRequired()],
                                widget=TextArea(),
                                render_kw={
                                    'cols': '150',
                                    'rows': '25'
                                })

    maxProjSize = IntegerField("Maximum Number of People Needed: ")
    degree = SelectMultipleField(
        'Suggested Degree Path: ',
        coerce=int,
        validators=[InputRequired()],
        choices=[(DegreeAttributes.electrical.value, 'Electrical Engineering'),
                 (DegreeAttributes.mechanical.value, 'Mechanical Engineering'),
                 (DegreeAttributes.computer.value, 'Computer Engineering'),
                 (DegreeAttributes.computersci.value, 'Computer Science')],
        widget=ListWidget(prefix_label=False),
        option_widget=CheckboxInput())
    grade = RadioField('Suggested Minimum Grade: ',
                       validators=[InputRequired()],
                       coerce=int,
                       choices=[(GradeAttributes.Freshman.value, 'Freshman'),
                                (GradeAttributes.Sophmore.value, 'Sophmore'),
                                (GradeAttributes.Junior.value, 'Junior'),
                                (GradeAttributes.Senior.value, 'Senior')])
    submit = SubmitField('Submit')
Exemplo n.º 11
0
class ParticipantForm(forms.Form):
    fullname = forms.StringField(__("Full Name"),
                                 validators=[forms.validators.DataRequired()])
    email = forms.EmailField(__("Email"),
                             validators=[
                                 forms.validators.DataRequired(),
                                 forms.validators.Length(max=80)
                             ])
    phone = forms.StringField(__("Phone number"),
                              validators=[forms.validators.Length(max=80)])
    city = forms.StringField(__("City"),
                             validators=[forms.validators.Length(max=80)])
    company = forms.StringField(__("Company"),
                                validators=[forms.validators.Length(max=80)])
    job_title = forms.StringField(__("Job Title"),
                                  validators=[forms.validators.Length(max=80)])
    twitter = forms.StringField(__("Twitter"),
                                validators=[forms.validators.Length(max=15)])
    events = QuerySelectMultipleField(
        __("Events"),
        widget=ListWidget(),
        option_widget=CheckboxInput(),
        get_label='title',
        validators=[
            forms.validators.DataRequired(u"Select at least one event")
        ])
Exemplo n.º 12
0
class AddBillForm(FlaskForm):
    billDate = DateField('Bill Date',
                         format='%Y-%m-%d',
                         validators=[DataRequired()])
    dueDate = DateField('Due Date',
                        format='%Y-%m-%d',
                        validators=[DataRequired()])
    selectedWings = SelectMultipleField('Wings',
                                        choices=[],
                                        widget=ListWidget(prefix_label=False),
                                        option_widget=CheckboxInput(),
                                        validators=[DataRequired()])
    WATER_CHARGES = DecimalField(label='WATER CHARGES',
                                 places=2,
                                 validators=[DataRequired()])
    PROPERTY_TAX = DecimalField(label='PROPERTY TAX',
                                places=2,
                                validators=[DataRequired()])
    ELECTRICITY_CHARGES = DecimalField(label='ELECTRICITY CHARGES',
                                       places=2,
                                       validators=[DataRequired()])
    SINKING_FUNDS = DecimalField(label='SINKING FUNDS',
                                 places=2,
                                 validators=[DataRequired()])
    PARKING_CHARGES = DecimalField(label='PARKING CHARGES',
                                   places=2,
                                   validators=[DataRequired()])
    NOC = DecimalField(label='NOC', places=2, validators=[DataRequired()])
    INSURANCE = DecimalField(label='INSURANCE',
                             places=2,
                             validators=[DataRequired()])
    OTHER = DecimalField(label='OTHER', places=2, validators=[Optional()])
    submitBtn = SubmitField(label='Submit')
Exemplo n.º 13
0
class CreateForm(FlaskForm):
    usernames = SelectMultipleField("Users:",
                                    validators=[InputRequired()],
                                    widget=ListWidget(prefix_label=False),
                                    option_widget=CheckboxInput())
    starting_balance = IntegerField(
        "Starting Balance:", validators=[InputRequired(),
                                         NumberRange(min=1)])
    default_lot = IntegerField(
        "Default Lot Size:",
        validators=[InputRequired(),
                    NumberRange(min=0, max=15)])
    time_limit = IntegerField("Time Limit (seconds):",
                              validators=[Optional(),
                                          NumberRange(min=1)])
    first_nom = StringField("First Nomination:")
    submit_create = SubmitField("Create")

    def validate_usernames(self, usernames):
        if current_user.username not in usernames.data:
            raise ValidationError("You must be one of the drafters.")

    def validate_first_nom(self, first_nom):
        if first_nom.data and first_nom.data not in cube_cards:
            raise ValidationError("That card isn't in the cube.")
Exemplo n.º 14
0
class SessionForm(Form):
    """Session Form class"""
    title = StringField('Title', [DataRequired()])
    subtitle = StringField('Subtitle')
    abstract = TextAreaField('Abstract')
    description = TextAreaField('Description', [DataRequired()])
    start_time = DateTimeField(
        'Start Time',
        [DataRequired(), CustomDateSessionValidate()])
    end_time = DateTimeField(
        'End Time',
        [DataRequired(), CustomDateSessionValidate()])
    level = QuerySelectField(label='Level',
                             query_factory=DataGetter.get_levels,
                             allow_blank=True)
    format = QuerySelectField(label='Format',
                              query_factory=DataGetter.get_formats,
                              allow_blank=True)
    language = QuerySelectField(label='Language',
                                query_factory=DataGetter.get_languages,
                                allow_blank=True)
    speakers = QuerySelectMultipleField(query_factory=get_speakers,
                                        widget=ListWidget(prefix_label=False),
                                        option_widget=CheckboxInput())
    microlocation = QuerySelectField(
        label='Microlocation',
        query_factory=DataGetter.get_microlocations_by_event_id,
        allow_blank=True)
Exemplo n.º 15
0
class CampaignForm(forms.Form):
    title = forms.StringField(
        __("Title"),
        description=__("A reference name for looking up this campaign again"),
        validators=[
            forms.validators.DataRequired(__("A title is required")),
            forms.validators.StripWhitespace()
        ])
    start_at = forms.DateTimeField(__("Start at"),
                                   timezone=lambda: g.user.timezone
                                   if g.user else None)
    end_at = forms.DateTimeField(__("End at"),
                                 timezone=lambda: g.user.timezone
                                 if g.user else None)
    public = forms.BooleanField(__("This campaign is live"))
    position = forms.RadioField(__("Display position"),
                                choices=CAMPAIGN_POSITION.items(),
                                coerce=int)
    priority = forms.IntegerField(
        __("Priority"),
        default=0,
        description=__(
            "A larger number is higher priority when multiple campaigns are running on the "
            "same dates. 0 implies lowest priority"))
    boards = QuerySelectMultipleField(
        __("Boards"),
        widget=ListWidget(),
        option_widget=CheckboxInput(),
        query_factory=lambda: Board.query.order_by('title'),
        get_label='title',
        validators=[forms.validators.Optional()],
        description=__(u"Select the boards this campaign is active on"))
    geonameids = forms.GeonameSelectMultiField(
        "Locations",
        description=__(
            "This campaign will be targetted at users and jobs with matching locations"
        ))
    user_required = forms.RadioField(__("User is required"),
                                     coerce=getbool,
                                     choices=[(None, __("N/A")),
                                              (True, __("Yes")),
                                              (False, __("No"))])
    flags = forms.RadioMatrixField(
        "Flags",
        coerce=getbool,
        fields=Campaign.flag_choices,
        description=__(
            "All selected flags must match the logged in user for the campaign to be shown"
        ),
        choices=[('None', __("N/A")), ('True', __("True")),
                 ('False', __("False"))])
    content = forms.FormField(CampaignContentForm, __("Campaign content"))

    def validate_geonameids(self, field):
        field.data = [int(x) for x in field.data if x.isdigit()]

    def validate_end_at(self, field):
        if field.data <= self.start_at.data:
            raise forms.ValidationError(
                __(u"The campaign can’t end before it starts"))
Exemplo n.º 16
0
class CategoryForm(Form):
    categoryname = StringField('Category name', validators=[Required()])
    property_id = IntegerField('Property ID', validators=[Optional()])
    products = SetattrFieldList(FormField(ProductForm),
                                min_entries=8,
                                widget=ListWidget(html_tag=u'ul',
                                                  prefix_label=True))
    submit = SubmitField('Submit')
Exemplo n.º 17
0
class MultiCheckboxField(SelectMultipleField):
    """
	A multiple-select, except displays a list of checkboxes.
	Iterating the field will produce subfields, allowing custom rendering of
	the enclosed checkbox fields.
	"""
    widget = ListWidget(prefix_label=False)
    option_widget = CheckboxInput()
Exemplo n.º 18
0
class NewCategoryForm(Form):
    name = StringField(_l('Name'), validators=[DataRequired()])
    public = BooleanField(_l('Public'))
    users = SelectMultipleField(_l('Allowed readers'),
                                coerce=int,
                                widget=ListWidget(),
                                option_widget=CheckboxInput(),
                                choices=ClassChoices(
                                    User.query.order_by('login'), 'login'))
Exemplo n.º 19
0
class TicketTypeForm(forms.Form):
    title = forms.StringField(__("Title"),
                              validators=[forms.validators.DataRequired()])
    events = QuerySelectMultipleField(__("Events"),
                                      widget=ListWidget(),
                                      option_widget=CheckboxInput(),
                                      allow_blank=True,
                                      get_label='title',
                                      query_factory=lambda: [])
Exemplo n.º 20
0
class TrackForm(Form):
    """Track Form class"""
    name = StringField('Name', [Length(min=6, max=35)])
    description = StringField('Description', [Length(min=4, max=1000)])
    track_image_url = StringField('Image')
    sessions = QuerySelectMultipleField(
        query_factory=DataGetter.get_sessions_by_event_id,
        widget=ListWidget(prefix_label=False),
        option_widget=CheckboxInput())
Exemplo n.º 21
0
class NewProjectForm(FlaskForm):
    """ Form to be used in new project creation."""
    title = StringField('Project Title', validators=[DataRequired(), Length(max=MAX_LENGTH_TITLE)])
    description = TextAreaField('Project Description', validators=[Length(max=MAX_LENGTH_DESCRIPTION)])
    skill_selection = SelectMultipleField('Preferred Skills',
                                          option_widget=CheckboxInput(),
                                          widget=ListWidget(prefix_label=False),
                                          choices=Skill_.to_choices())
    submit = SubmitField('Submit')
class ImageSlideshowForm(FlaskForm):
    image_options = SelectMultipleField("Choose images for slideshow: ",
                                        widget=ListWidget(prefix_label=False),
                                        option_widget=CheckboxInput())
    submit = SubmitField('save selection')

    def __init__(self, original_images=None, *args, **kwargs):
        super(ImageSlideshowForm, self).__init__(*args, **kwargs)
        if original_images:
            self.original_images = original_images
Exemplo n.º 23
0
class CurriculumUnitCopyForm(Form):
    stud_groups_selected = QuerySelectMultipleField(
        'Группы',
        get_pk=lambda g: g.id,
        get_label=lambda g: "%s %s%s" %
        (g.num_print, g.specialty, " (%s)" % g.specialization
         if g.specialization else ""),
        widget=ListWidget(prefix_label=False),
        option_widget=CheckboxInput())
    button_copy = SubmitField('Копировать')
Exemplo n.º 24
0
class XudoForm(Form):

    text = TextAreaField("Text", [DataRequired()])
    submittedBy = StringField("Your Name", [DataRequired(), Length(max=255)])
    image = FileField("Image")
    offices = QuerySelectMultipleField("Offices", [DataRequired()],
                                       get_label=lambda office: office.name(),
                                       query_factory=officeService.select,
                                       option_widget=CheckboxInput(),
                                       widget=ListWidget(prefix_label=False))
Exemplo n.º 25
0
class ContentForm(FlaskForm):
    files = SelectMultipleField('Files',
                                widget=ListWidget(prefix_label=False),
                                option_widget=CheckboxInput(),
                                validators=[DataRequired()],
                                choices=[])
    submit = SubmitField('Submit')

    def files_choices(self, files):
        for file in files:
            self.files.choices.append([file, file])
Exemplo n.º 26
0
class PostTagsForm(Form):
    tags = SelectMultipleField(
        coerce=int,
        widget=ListWidget(),
        option_widget=CheckboxInput(),
    )

    def __init__(self, *args, **kwargs):
        super(PostTagsForm, self).__init__(*args, **kwargs)
        self.tags.choices = \
            [(t.id, t.name) for t in Tag.query.order_by(Tag.name)]
Exemplo n.º 27
0
class MultiCheckboxField(SelectMultipleField):
    """
    A multiple-select, except displays a list of checkboxes.

    Iterating the field will produce subfields, allowing custom rendering of
    the enclosed checkbox fields.

    https://wtforms.readthedocs.io/en/stable/specific_problems.html#specialty-field-tricks
    """
    widget = ListWidget(prefix_label=False)
    option_widget = CheckboxInput()
Exemplo n.º 28
0
def test_make_multi_checkbox_input_template(
    multi_checkbox_input_macro, initial_value_form
):
    initial_value_form.datafield.widget = ListWidget()
    initial_value_form.datafield.option_widget = CheckboxInput()
    initial_value_form.datafield.choices = [("a", "A"), ("b", "B")]
    rendered_multi_checkbox_input_macro = multi_checkbox_input_macro(
        initial_value_form.datafield, optional=Markup("'optional'")
    )
    write_template(
        rendered_multi_checkbox_input_macro, "multi_checkbox_input_template.html"
    )
Exemplo n.º 29
0
class PortfolioCreationForm(PortfolioForm):
    defense_component = SelectMultipleField(
        choices=SERVICE_BRANCHES,
        widget=ListWidget(prefix_label=False),
        option_widget=CheckboxInput(),
        validators=[
            InputRequired(
                message=translate(
                    "forms.portfolio.defense_component.validation_message"
                )
            )
        ],
    )
Exemplo n.º 30
0
    class SequenceForm(NestedForm):
        """Form for defining the sequence of process steps."""
        steps = FieldList(step_field,
                          min_entries=num_entries,
                          max_entries=num_entries,
                          default=tuple(range(num_entries)),
                          widget=ListWidget(html_tag='ol'))

        def validate_steps(form, field):
            """Check that each step is distinct."""
            if len(set(field.data)) != len(field.data):
                raise ValidationError(
                    'Each step in the process must be distinct')