Exemple #1
0
class TrackUpdateForm(wtf.Form):
    album = wtforms.StringField('Album', filters=[util.strip_filter])
    title = wtforms.StringField('Title', filters=[util.strip_filter])
    artist = wtforms.StringField('Artist', filters=[util.strip_filter])
    albumartist = wtforms.StringField('Album Artist',
                                      filters=[util.strip_filter])
    originaldate = wtforms.StringField('Original Date',
                                       filters=[util.strip_filter])
    composer = wtforms.StringField('Composer', filters=[util.strip_filter])
    lyricist = wtforms.StringField('Lyricist', filters=[util.strip_filter])
    writer = wtforms.StringField('Writer', filters=[util.strip_filter])
    totaltracks = wtforms.IntegerField('Total Tracks')
    discnumber = wtforms.IntegerField('Disc Number')
    genre = wtforms.SelectMultipleField(
        'Genre',
        choices=[(t, t.title()) for t in model.Track.genre_list().keys()],
        default="unknown")
    mood = wtforms.SelectMultipleField(
        'Mood',
        choices=[(t, t.title()) for t in model.Track.genre_list().keys()],
        default="Okay")
    rating = wtforms.IntegerField('Rating')
    musicbrainz_recordingid = wtforms.StringField('musicbrainz_recordingid',
                                                  filters=[util.strip_filter])
    musicbrainz_trackid = wtforms.StringField('musicbrainz_trackid',
                                              filters=[util.strip_filter])
    musicbrainz_albumid = wtforms.StringField('musicbrainz_albumid',
                                              filters=[util.strip_filter])
    musicbrainz_artistid = wtforms.StringField('musicbrainz_artistid',
                                               filters=[util.strip_filter])
    musicbrainz_albumartistid = wtforms.StringField(
        'musicbrainz_albumartistid', filters=[util.strip_filter])
    language = wtforms.StringField('language', filters=[util.strip_filter])
    website = wtforms.StringField('website', filters=[util.strip_filter])
    stream_url = wtforms.StringField('stream_url', filters=[util.strip_filter])
Exemple #2
0
    class FilterForm(wtforms.Form):

        pid = wtforms.StringField(_(u'PID'),
                                  validators=[wtforms.validators.Optional()])

        specimen_types = wtforms.SelectMultipleField(
            _(u'Specimen Types'),
            choices=available_types,
            coerce=int,
            validators=[wtforms.validators.Optional()])

        specimen_states = wtforms.SelectMultipleField(
            _(u'Specimen States'),
            choices=available_states,
            coerce=int,
            validators=[wtforms.validators.Optional()])

        visit_cycles = wtforms.SelectMultipleField(
            _(u'Visit Cycles'),
            choices=available_cycles,
            coerce=int,
            validators=[wtforms.validators.Optional()])

        from_ = DateField(_(u'From Date'),
                          validators=[wtforms.validators.Optional()])

        to = DateField(_(u'To Date'),
                       validators=[wtforms.validators.Optional()])
Exemple #3
0
class ScalingGroupsFiltersForm(BaseSecureForm):
    """Form class for filters on landing page"""
    launch_config_name = wtforms.SelectMultipleField(label=_(u'Launch configuration'))
    availability_zones = wtforms.SelectMultipleField(label=_(u'Availability zone'))
    vpc_zone_identifier = wtforms.SelectMultipleField(label=_(u'VPC subnet'))
    tags = TextEscapedField(label=_(u'Tags'))

    def __init__(self, request,
                 ec2_conn=None, autoscale_conn=None, vpc_conn=None, **kwargs):
        super(ScalingGroupsFiltersForm, self).__init__(request, **kwargs)
        self.request = request
        self.ec2_conn = ec2_conn
        self.autoscale_conn = autoscale_conn
        self.vpc_conn = vpc_conn
        self.ec2_choices_manager = ChoicesManager(conn=ec2_conn)
        self.autoscale_choices_manager = ChoicesManager(conn=autoscale_conn)
        self.vpc_choices_manager = ChoicesManager(conn=vpc_conn)
        self.launch_config_name.choices = self.autoscale_choices_manager.launch_configs(add_blank=False)
        self.availability_zones.choices = self.ec2_choices_manager.availability_zones(self.region, add_blank=False)
        self.vpc_zone_identifier.choices = self.vpc_choices_manager.vpc_subnets(add_blank=False)
        self.cloud_type = request.session.get('cloud_type', 'euca')
        if self.cloud_type == 'aws':
            self.vpc_zone_identifier.choices.append(('None', _(u'No subnets')))
        self.vpc_zone_identifier.choices = sorted(self.vpc_zone_identifier.choices)
        self.facets = [
            {'name': 'launch_config_name', 'label': self.launch_config_name.label.text,
                'options': self.get_options_from_choices(self.launch_config_name.choices)},
            {'name': 'availability_zones', 'label': self.availability_zones.label.text,
                'options': self.get_options_from_choices(self.availability_zones.choices)},
        ]
        if BaseView.is_vpc_supported(request):
            self.facets.append(
                {'name': 'vpc_zone', 'label': self.vpc_zone_identifier.label.text,
                    'options': self.get_options_from_choices(self.vpc_zone_identifier.choices)}
            )
Exemple #4
0
class RequestAclPackageForm(wtf.Form):
    """ Form to request ACLs on a package. """
    branches = wtforms.SelectMultipleField(
        'Branch',
        [wtforms.validators.Required()],
        choices=[('', '')])

    acl = wtforms.SelectMultipleField(
        'ACL',
        [wtforms.validators.Required()],
        choices=[('', '')]
    )

    def __init__(self, *args, **kwargs):
        """ Calls the default constructor with the normal argument but
        uses the list of collection provided to fill the choices of the
        drop-down list.
        """
        super(RequestAclPackageForm, self).__init__(*args, **kwargs)
        if 'collections' in kwargs:
            self.branches.choices = [
                (collec.branchname, collec.branchname)
                for collec in kwargs['collections']
            ]
        if 'pkg_acl_list' in kwargs:
            self.acl.choices = [
                (status, status)
                for status in kwargs['pkg_acl_list']
            ]
Exemple #5
0
class UpdateAclPackageForm(wtf.Form):
    pkg_branch = wtforms.SelectMultipleField('Branch',
                                             [wtforms.validators.Required()],
                                             choices=[('', '')])
    pkg_acl = wtforms.SelectMultipleField('ACL',
                                          [wtforms.validators.Required()],
                                          choices=[(item, item)
                                                   for item in []])
    acl_status = wtforms.SelectField('Status', [wtforms.validators.Required()],
                                     choices=[(item, item) for item in []])

    def __init__(self, *args, **kwargs):
        """ Calls the default constructor with the normal arguments.
        Fill the SelectField using the additionnal arguments provided.
        """
        super(UpdateAclPackageForm, self).__init__(*args, **kwargs)
        if 'collections' in kwargs:
            self.pkg_branch.choices = [(collec, collec)
                                       for collec in kwargs['collections']]
        if 'pkg_status' in kwargs:
            self.acl_status.choices = [(status, status)
                                       for status in kwargs['pkg_status']]
        if 'pkg_acl_list' in kwargs:
            self.pkg_acl.choices = [(status, status)
                                    for status in kwargs['pkg_acl_list']]
Exemple #6
0
class SetAclPackageForm(wtf.Form):
    """ Form to set ACLs to someone on a package. """
    pkgname = wtforms.TextField('Package name',
                                [wtforms.validators.Required()])
    branches = wtforms.SelectMultipleField('Branch',
                                           [wtforms.validators.Required()],
                                           choices=[('', '')])
    acl = wtforms.SelectMultipleField('ACL', [wtforms.validators.Required()],
                                      choices=[(item, item) for item in []])
    user = wtforms.TextField('Packager name', [wtforms.validators.Required()])
    acl_status = wtforms.SelectField('Status', [wtforms.validators.Required()],
                                     choices=[(item, item) for item in []])

    def __init__(self, *args, **kwargs):
        """ Calls the default constructor with the normal argument but
        uses the list of collection provided to fill the choices of the
        drop-down list.
        """
        super(SetAclPackageForm, self).__init__(*args, **kwargs)
        if 'collections' in kwargs:
            self.branches.choices = [(collec, collec)
                                     for collec in kwargs['collections']]
        if 'collections_obj' in kwargs:
            self.branches.choices = [(collec.branchname, collec.branchname)
                                     for collec in kwargs['collections_obj']]
        if 'acl_status' in kwargs:
            self.acl_status.choices = [(status, status)
                                       for status in kwargs['acl_status']]
        if 'pkg_acl' in kwargs:
            self.acl.choices = [(acl, acl) for acl in kwargs['pkg_acl']]
Exemple #7
0
class RestaurantForm(FlaskForm):
    name = f.StringField("name", validators=[DataRequired()])
    ## FIXME(vincenzopalazzo) modify the phone length
    phone = f.StringField("phone",
                          validators=[DataRequired(),
                                      Length(min=8, max=15)])
    lat = f.StringField("latitude", validators=[DataRequired()])
    lon = f.StringField("longitude", validators=[DataRequired()])
    n_tables = f.StringField("Number of tables for 6 People",
                             validators=[DataRequired()])
    covid_measures = f.StringField("Anti-Covid measures",
                                   validators=[DataRequired()])
    # photo = f.FileField("Photo of restaurant")
    cuisine = f.SelectMultipleField(
        "Cuisine Type",
        choices=[
            ("Italian food", "Italian food"),
            ("Chinese food", "Chinese food"),
            ("Indian Food", "Indian Food"),
            ("Japanese Food", "Japanese Food"),
            ("Other", "Other"),
        ],
        validators=[DataRequired()],
    )
    open_days = f.SelectMultipleField(
        "Opening days",
        choices=[
            ("0", "Monday"),
            ("1", "Tuesday"),
            ("2", "Wednesday"),
            ("3", "Thursday"),
            ("4", "Friday"),
            ("5", "Saturday"),
            ("6", "Sunday"),
        ],
        validators=[DataRequired()],
    )
    open_lunch = f.TimeField("open time for lunch",
                             validators=[DataRequired()])
    close_lunch = f.TimeField("close time for lunch",
                              validators=[DataRequired()])
    open_dinner = f.TimeField("open time for dinner",
                              validators=[DataRequired()])
    close_dinner = f.TimeField("close time for dinner",
                               validators=[DataRequired()])
    display = [
        "name",
        "phone",
        "lat",
        "lon",
        "n_tables",
        "cuisine",
        "open_days",
        "open_lunch",
        "close_lunch",
        "open_dinner",
        "close_dinner",
        "covid_measures",
    ]
Exemple #8
0
class ConfigForm(wtf.Form):
    office_ip = wtf.TextField(_(u"Office IP prefixes"),
                              validators=[validators.Required()])
    google_user_email = wtf.TextField(_(u'Google User Email'),
                                      validators=[
                                          validators.Email(),
                                          validators.Required(),
                                          validators.Length(min=6, max=64)
                                      ])
    google_user_password = StarredPasswordField(
        _(u'Google User Password'),
        validators=[validators.Required(),
                    validators.Length(min=6, max=64)])
    holidays_spreadsheet = wtf.TextField(_(u"Holidays Spreadsheet"),
                                         validators=[validators.Required()])
    hours_employee_project = wtf.TextField(
        _(u"Hours employee - project Spreadsheet"),
        validators=[validators.Required()])
    cleaning_time_presence = wtf.IntegerField(_(u'Cleaning time presence'),
                                              validators=[
                                                  validators.Required(),
                                              ])
    absence_project_id = wtf.SelectField(_(u'Absence project'),
                                         validators=[],
                                         choices=ProjectChoices(
                                             skip_inactive=True, empty=True))
    reports_project_ids = wtf.SelectMultipleField(
        _(u'Daily report - include projects'),
        validators=[],
        choices=ProjectChoices())
    reports_omit_user_ids = wtf.SelectMultipleField(
        _(u'Daily report - omit user'), validators=[], choices=UserChoices())
    reports_without_ticket_project_ids = wtf.SelectMultipleField(
        _(u'Daily report without ticket - include projects'),
        validators=[],
        choices=ProjectChoices())
    reports_without_ticket_omit_user_ids = wtf.SelectMultipleField(
        _(u'Daily report without ticket - omit user'),
        validators=[],
        choices=UserChoices())
    freelancers = wtf.TextAreaField(
        _(u"Freelancers"),
        validators=[ListValidator(validators=[validators.Email()])])
    hours_ticket_user_id = wtf.SelectField(
        _(u'Hours per ticket synchronization user credentials'),
        validators=[],
        choices=UserChoices(empty=False))

    monthly_late_limit = wtf.IntegerField(_(u'Monthly late limit'),
                                          validators=[
                                              validators.Required(),
                                          ])
    monthly_incorrect_time_record_limit = wtf.IntegerField(
        _(u'Monthly incorrect time record limit'),
        validators=[
            validators.Required(),
        ])
Exemple #9
0
class RecipeForm(flask_wtf.FlaskForm):
    name = wtforms.StringField(
        "Recipe name", validators=[wtforms.validators.DataRequired()]
    )
    products = wtforms.SelectMultipleField(
        "Products", validators=[wtforms.validators.DataRequired()],
    )
    instruction = wtforms.StringField("Instruction")
    categories = wtforms.SelectMultipleField(
        "Categories", choices=[(c, c) for c in CATEGORIES_LIST]
    )
    submit = wtforms.SubmitField("Create")
Exemple #10
0
class UserEditForm(wtf.Form):
    """ Admin edits freelancer's profile """
    def process(self, formdata=None, obj=None, **kwargs):
        if isinstance(obj, User):
            kwargs['level'] = obj.levels_list
        super(UserEditForm, self).process(formdata, obj, **kwargs)

    is_active = wtf.BooleanField(_(u"Is active"), validators=[])
    is_programmer = wtf.BooleanField(_(u"Is programmer"), validators=[])
    is_frontend_developer = wtf.BooleanField(_(u"Is frontend developer"),
                                             validators=[])
    is_graphic_designer = wtf.BooleanField(_(u"Is graphic designer"),
                                           validators=[])

    avatar = wtf.HiddenField()
    level = wtf.SelectMultipleField(_(u'Role'), validators=[], choices=levels)

    start_work = wtf.DateField(_(u"Start work"),
                               format='%d/%m/%Y',
                               validators=[])
    start_full_time_work = wtf.DateField(_(u"Start full time work"),
                                         format='%d/%m/%Y',
                                         validators=[validators.Optional()])
    description = wtf.TextField(_(u"Description"),
                                validators=[validators.Optional()])
    location = wtf.SelectField(_(u"Office location"),
                               choices=[('', u'--None--')] +
                               [(k, v[0]) for k, v in User.LOCATIONS.items()])

    availability_link = wtf.TextField(
        _(u"Availability calendar link"),
        validators=[validators.Optional(),
                    validators.URL()])
    tasks_link = wtf.TextField(
        _(u"Tasks calendar link"),
        validators=[validators.Optional(),
                    validators.URL()])
    skype = wtf.TextField(_(u"Skype"), validators=[validators.Optional()])
    phone = wtf.TextField(_(u"Phone"), validators=[validators.Optional()])
    phone_on_desk = wtf.TextField(_(u"Deskphone"),
                                  validators=[validators.Optional()])
    irc = wtf.TextField(_(u"IRC"), validators=[validators.Optional()])

    groups = wtf.SelectMultipleField(_(u'Groups'),
                                     validators=[],
                                     choices=(
                                         ('freelancer', 'freelancer'),
                                         ('user', 'user'),
                                         ('admin', 'admin'),
                                     ))
Exemple #11
0
class UserEditForm(wtf.Form):
    """ Admin edits freelancer's profile """

    employment_contract = wtf.BooleanField(_(u"Employment contract"),
                                           validators=[])
    is_active = wtf.BooleanField(_(u"Is active"), validators=[])

    avatar = wtf.HiddenField()
    roles = wtf.SelectMultipleField(_(u'Role'),
                                    validators=[],
                                    choices=User.ROLES)

    start_work = wtf.DateField(_(u"Start work"),
                               format='%d/%m/%Y',
                               validators=[])
    start_full_time_work = wtf.DateField(_(u"Start full time work"),
                                         format='%d/%m/%Y',
                                         validators=[validators.Optional()])
    stop_work = wtf.DateField(_(u"Stop work"),
                              format='%d/%m/%Y',
                              validators=[validators.Optional()])
    description = wtf.TextField(_(u"Description"),
                                validators=[validators.Optional()])
    date_of_birth = wtf.DateField(_(u"Date of birth"),
                                  format='%d/%m/%Y',
                                  validators=[validators.Optional()])
    location = wtf.SelectField(_(u"Office location"),
                               choices=[('', u'--None--')] +
                               [(k, v[0]) for k, v in User.LOCATIONS.items()])

    availability_link = wtf.TextField(
        _(u"Availability calendar link"),
        validators=[validators.Optional(),
                    validators.URL()])
    tasks_link = wtf.TextField(
        _(u"Tasks calendar link"),
        validators=[validators.Optional(),
                    validators.URL()])
    skype = wtf.TextField(_(u"Skype"), validators=[validators.Optional()])
    phone = wtf.TextField(_(u"Phone"), validators=[validators.Optional()])
    phone_on_desk = wtf.TextField(_(u"Deskphone"),
                                  validators=[validators.Optional()])
    irc = wtf.TextField(_(u"IRC"), validators=[validators.Optional()])

    groups = wtf.SelectMultipleField(_(u'Groups'),
                                     validators=[],
                                     choices=(('freelancer',
                                               'freelancer'), ('user', 'user'),
                                              ('admin', 'admin'), ('scrum',
                                                                   'scrum')))
Exemple #12
0
class ReportsForm(wtf.Form):
    reports_project_ids = wtf.SelectMultipleField(
        _(u'Daily report - include projects'),
        validators=[],
        choices=ProjectChoices())
    reports_omit_user_ids = wtf.SelectMultipleField(
        _(u'Daily report - omit user'), validators=[], choices=UserChoices())
    reports_without_ticket_project_ids = wtf.SelectMultipleField(
        _(u'Daily report without ticket - include projects'),
        validators=[],
        choices=ProjectChoices())
    reports_without_ticket_omit_user_ids = wtf.SelectMultipleField(
        _(u'Daily report without ticket - omit user'),
        validators=[],
        choices=UserChoices())
Exemple #13
0
 class F(ReactorForm):
     es_index = wtforms.SelectMultipleField('Elasticsearch',
                                            choices=[(ix, '')
                                                     for ix in es_indices])
     pg_index = wtforms.SelectMultipleField('pg',
                                            choices=[(ix, '')
                                                     for ix in pg_indices])
     confirm = wtforms.TextField('Confirm',
                                 filters=[uppercase_filter, strip_filter],
                                 validators=[
                                     wtforms.validators.AnyOf(['CONFIRM']),
                                     wtforms.validators.DataRequired()
                                 ])
     ignore_labels = ['submit']
     css_classes = {'submit': 'btn btn-danger'}
Exemple #14
0
class VolumesFiltersForm(BaseSecureForm):
    """Form class for filters on landing page"""
    zone = wtforms.SelectMultipleField(label=_(u'Availability zones'))
    status = wtforms.SelectMultipleField(label=_(u'Status'))
    tags = TextEscapedField(label=_(u'Tags'))

    def __init__(self, request, conn=None, **kwargs):
        super(VolumesFiltersForm, self).__init__(request, **kwargs)
        self.request = request
        self.choices_manager = ChoicesManager(conn=conn)
        self.zone.choices = self.get_availability_zone_choices()
        self.status.choices = self.get_status_choices()
        self.facets = [
            {
                'name': 'zone',
                'label': self.zone.label.text,
                'options': self.get_availability_zone_choices()
            },
            {
                'name': 'status',
                'label': self.status.label.text,
                'options': self.get_status_choices()
            },
        ]

    def get_availability_zone_choices(self):
        return self.get_options_from_choices(
            self.choices_manager.availability_zones(self.region,
                                                    add_blank=False))

    @staticmethod
    def get_status_choices():
        return [{
            'key': 'creating',
            'label': _(u'Creating')
        }, {
            'key': 'available',
            'label': _(u'Available')
        }, {
            'key': 'attached',
            'label': _(u'Attached')
        }, {
            'key': 'attaching',
            'label': _(u'Attaching')
        }, {
            'key': 'detaching',
            'label': _(u'Detaching')
        }]
Exemple #15
0
class RequestPackageForm(wtf.Form):
    """ Form to request a new package. """
    pkgname = wtforms.TextField('Package name', [
        wtforms.validators.Required(),
        wtforms.validators.Regexp(PKG_NAME_RE, flags=re.IGNORECASE),
    ])
    summary = wtforms.TextField('Summary', [wtforms.validators.Required()])
    description = wtforms.TextAreaField('Description', )
    review_url = wtforms.TextField('Ticket number or URL',
                                   [wtforms.validators.Required()])
    branches = wtforms.SelectMultipleField('Collection',
                                           [wtforms.validators.Required()],
                                           choices=[(item, item)
                                                    for item in []])
    upstream_url = wtforms.TextField('Upstream URL',
                                     [wtforms.validators.optional()])
    namespace = wtforms.SelectField('Namespace',
                                    [wtforms.validators.Required()],
                                    choices=[(item, item) for item in []])

    def __init__(self, *args, **kwargs):
        """ Calls the default constructor with the normal argument but
        uses the list of collection provided to fill the choices of the
        drop-down list.
        """
        super(RequestPackageForm, self).__init__(*args, **kwargs)
        if 'collections' in kwargs:
            self.branches.choices = [(collec.branchname, collec.branchname)
                                     for collec in kwargs['collections']]

        if 'namespaces' in kwargs:
            self.namespace.choices = [(ns, ns) for ns in kwargs['namespaces']]
Exemple #16
0
class SnapshotsFiltersForm(BaseSecureForm):
    """Form class for filters on landing page"""
    status = wtforms.SelectMultipleField(label=_(u'Status'))
    tags = TextEscapedField(label=_(u'Tags'))

    def __init__(self, request, **kwargs):
        super(SnapshotsFiltersForm, self).__init__(request, **kwargs)
        self.request = request
        self.status.choices = self.get_status_choices()
        self.facets = [
            {
                'name': 'status',
                'label': self.status.label.text,
                'options': self.get_status_choices()
            },
        ]

    @staticmethod
    def get_status_choices():
        return [
            {
                'key': 'pending',
                'label': _(u'In progress')
            },
            {
                'key': 'completed',
                'label': _(u'Completed')
            },
        ]
Exemple #17
0
class EventForm(FlaskForm):
    try:
        user_list = [(u.id, u.username) for u in models.Users.query.all()]
    except Exception:
        user_list = []

    try:
        dog_list = [(d.id, d.name) for d in models.Dog.query.all()]
    except Exception:
        dog_list = []

    try:
        event_type_list = [(i.id, i.name.capitalize()) for i in models.EventType.query.all()]
    except Exception:
        event_type_list = []

    # TODO: Default get current user
    user = wtforms.SelectField('User', choices=user_list, coerce=int, validators=[validators.data_required()])
    dog = wtforms.SelectMultipleField('Dog', choices=dog_list, coerce=int, validators=[validators.data_required()])
    event = wtforms.SelectField('Event', choices=event_type_list, coerce=int)
    date = html5.DateField('Date', validators=[validators.Optional()], default=datetime.date.today)
    start_time = html5.TimeField('Start Time', validators=[validators.Optional()], default=datetime.datetime.now())
    end_time = html5.TimeField('End Time', validators=[validators.Optional()], default=None)
    note = wtforms.StringField('Note', default=None)
    accident = wtforms.BooleanField('Accident?')
    submit = wtforms.SubmitField('Submit')
Exemple #18
0
class RestaurantForm(FlaskForm):
    name = f.StringField('Name', validators=[DataRequired()])
    lat = f.FloatField('Latitude', validators=[DataRequired()])
    lon = f.FloatField('Longitude', validators=[DataRequired()])
    phone = f.StringField('Phone', validators=[DataRequired()])

    # Note: the capacity is automatically derived from tables settings

    cuisine_type = f.SelectMultipleField(
        'Cuisine types', 
        choices = Restaurant.CUISINE_TYPES.choices(),
        coerce = Restaurant.CUISINE_TYPES.coerce, 
        validators=[DataRequired()]
    )
    prec_measures = f.TextAreaField('Precautionary measures',validators=[DataRequired()])
    avg_time_of_stay = f.IntegerField('Average time of stay (in minutes)', validators=[DataRequired(), NumberRange(min=15)])

    workingdays = f.FieldList(f.FormField(WorkingDayForm), min_entries=1, max_entries=7)
    tables = f.FieldList(f.FormField(TableForm), min_entries=1, max_entries=100)
    dishes = f.FieldList(f.FormField(DishForm), min_entries=1, max_entries=100)

    display = ['name', 'lat', 'lon', 'phone', 'cuisine_type', 'prec_measures', 'avg_time_of_stay']
    
    def validate_workingdays(form, field):
        days_already_added = []
        for wd in field.data:
            if wd['day'] in days_already_added:
                raise ValidationError("There cannot be two working days with the same day")
            else:
                days_already_added.append(wd['day'])
Exemple #19
0
class AdminUserAccountForm(BaseUserAccountForm):
    """
    Class representing base user account form for admins.
    """
    enabled = wtforms.RadioField(lazy_gettext('State:'),
                                 validators=[
                                     wtforms.validators.InputRequired(),
                                 ],
                                 choices=[(True, lazy_gettext('Enabled')),
                                          (False, lazy_gettext('Disabled'))],
                                 filters=[mydojo.forms.str_to_bool],
                                 coerce=mydojo.forms.str_to_bool)
    roles = wtforms.SelectMultipleField(
        lazy_gettext('Roles:'), validators=[wtforms.validators.Optional()])
    memberships = QuerySelectMultipleField(lazy_gettext('Group memberships:'),
                                           query_factory=get_available_groups)
    managements = QuerySelectMultipleField(lazy_gettext('Group managements:'),
                                           query_factory=get_available_groups)

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        #
        # Handle additional custom keywords.
        #

        # The list of choices for 'roles' attribute comes from outside of the
        # form to provide as loose tie as possible to the outer application.
        # Another approach would be to load available choices here with:
        #
        #   roles = flask.current_app.config['ROLES']
        #
        # That would mean direct dependency on flask.Flask application.
        self.roles.choices = kwargs['choices_roles']
class SecurityGroupsFiltersForm(BaseSecureForm):
    """Form class for filters on landing page"""
    vpc_id = wtforms.SelectMultipleField(label=_(u'VPC network'))
    tags = TextEscapedField(label=_(u'Tags'))

    def __init__(self, request, vpc_conn=None, cloud_type='euca', **kwargs):
        super(SecurityGroupsFiltersForm, self).__init__(request, **kwargs)
        self.request = request
        self.cloud_type = cloud_type
        self.vpc_choices_manager = ChoicesManager(conn=vpc_conn)
        self.vpc_id.choices = self.vpc_choices_manager.vpc_networks(
            add_blank=False)
        if self.cloud_type == 'aws':
            self.vpc_id.choices.append(('None', _(u'No VPC')))
        self.vpc_id.choices = sorted(self.vpc_id.choices)
        self.facets = []
        if BaseView.is_vpc_supported(request):
            self.facets.append({
                'name':
                'vpc_id',
                'label':
                self.vpc_id.label.text,
                'options':
                self.get_options_from_choices(self.vpc_id.choices)
            })
Exemple #21
0
class AddPackageForm(wtf.Form):
    """ Form to add or edit packages. """
    pkgname = wtforms.TextField('Package name <span class="error">*</span>',
                                [wtforms.validators.Required()])
    summary = wtforms.TextField('Summary <span class="error">*</span>',
                                [wtforms.validators.Required()])
    description = wtforms.TextField('Description', )
    review_url = wtforms.TextField('Review URL',
                                   [wtforms.validators.Required()])
    status = wtforms.SelectField('Status', [wtforms.validators.Required()],
                                 choices=[(item, item) for item in []])
    critpath = wtforms.BooleanField('Package in critpath', default=False)
    branches = wtforms.SelectMultipleField('Collection',
                                           [wtforms.validators.Required()],
                                           choices=[(item, item)
                                                    for item in []])
    poc = wtforms.TextField('Point of contact <span class="error">*</span>',
                            [wtforms.validators.Required()])
    upstream_url = wtforms.TextField('Upstream URL',
                                     [wtforms.validators.optional()])

    def __init__(self, *args, **kwargs):
        """ Calls the default constructor with the normal argument but
        uses the list of collection provided to fill the choices of the
        drop-down list.
        """
        super(AddPackageForm, self).__init__(*args, **kwargs)
        if 'collections' in kwargs:
            self.branches.choices = [(collec.branchname, collec.branchname)
                                     for collec in kwargs['collections']]
        if 'pkg_status_list' in kwargs:
            self.status.choices = [(status, status)
                                   for status in kwargs['pkg_status_list']]
Exemple #22
0
 class CheckoutForm(Form):
     contents = wtforms.SelectMultipleField(
         choices=[(k, v.title) for k, v in six.iteritems(exportables)],
         validators=[
             wtforms.validators.InputRequired()])
     expand_collections = wtforms.BooleanField(default=False)
     use_choice_labels = wtforms.BooleanField(default=False)
Exemple #23
0
class NewTokenForm(PagureForm):
    """ Form to add a new token. """

    description = wtforms.StringField("description",
                                      [wtforms.validators.Optional()])
    expiration_date = wtforms.DateField(
        "expiration date",
        [wtforms.validators.DataRequired()],
        default=datetime.date.today() + datetime.timedelta(days=(30 * 6)),
    )
    acls = wtforms.SelectMultipleField("ACLs",
                                       [wtforms.validators.DataRequired()],
                                       choices=[])

    def __init__(self, *args, **kwargs):
        """ Calls the default constructor with the normal argument but
        uses the list of collection provided to fill the choices of the
        drop-down list.
        """
        super(NewTokenForm, self).__init__(*args, **kwargs)
        if "acls" in kwargs:
            self.acls.choices = [(acl.name, acl.name)
                                 for acl in kwargs["acls"]]
        if "sacls" in kwargs:
            self.acls.choices = [(acl, acl) for acl in kwargs["sacls"]]
Exemple #24
0
class ProjectTimeForm(wtf.Form):
    date_range = utils.DateRangeField(
        u'Date range',
        validators=[validators.Required()],
        format='%d-%m-%Y',
        default=lambda: h.start_end_month(datetime.date.today()),
    )
    projects = wtf.SelectMultipleField(
        _(u'Projects'),
        choices=ProjectChoices(skip_inactive=True),
        validators=[])
    group_by_client = wtf.BooleanField(_(u'Group by client'), default=True)
    group_by_project = wtf.BooleanField(_(u'Group by project'), default=True)
    group_by_bugs = wtf.BooleanField(_(u'Group by bugs'), default=True)
    group_by_user = wtf.BooleanField(_(u'Group by employee'), default=True)
    ticket_choice = wtf.RadioField(_('Tickets'),
                                   choices=[
                                       ('all', 'All'),
                                       ('without_bug_only',
                                        'Without bugs only'),
                                       ('meetings_only', 'Meetings only'),
                                   ],
                                   default='all')
    bigger_than = wtf.IntegerField(_('Bigger than'), default=0)

    def __init__(self, *args, **kwargs):
        super(ProjectTimeForm, self).__init__(*args, **kwargs)
        client = kwargs.pop('client', None)
        self.projects.choices = ProjectChoices(client=client,
                                               skip_inactive=True)
Exemple #25
0
class HoursWorkedReportFormBase(wtf.Form):
    date_range = wtf.SelectField(_(u'Report for'),
                                 validators=[],
                                 choices=[('0', u'date range'),
                                          ('1', u'current quarter'),
                                          ('2', u'previous quarter'),
                                          ('3', u'current year'),
                                          ('4', u'previous year')],
                                 default='0')
    start_date = wtf.DateField(_(u'Start'),
                               validators=[DataValidator(format='%d/%m/%Y')],
                               format='%d/%m/%Y',
                               default=datetime.date(today().year,
                                                     today().month, 1))
    end_date = wtf.DateField(_(u'End'),
                             validators=[DataValidator(format='%d/%m/%Y')],
                             format='%d/%m/%Y',
                             default=end_month)
    user_id = wtf.SelectMultipleField(_(u'Employees'),
                                      validators=[],
                                      choices=EmployeeChoices(inactive=True))
    only_fully_employed = wtf.BooleanField(_(u'Full time employees only'),
                                           default=True)
    only_red = wtf.BooleanField(_(u'Red only'), default=True)
    group_by_month = wtf.BooleanField(_(u'Group by month'), default=True)
Exemple #26
0
class UserUpdateForm(flask_wtf.FlaskForm):
    username = wtforms.StringField(
        model.User.username._verbose_name,
        [wtforms.validators.required(), wtforms.validators.length(min=2)],
        filters=[util.email_filter],
    )
    name = wtforms.StringField(
        model.User.name._verbose_name,
        [wtforms.validators.required()], filters=[util.strip_filter],
    )
    email = wtforms.StringField(
        model.User.email._verbose_name,
        [wtforms.validators.optional(), wtforms.validators.email()],
        filters=[util.email_filter],
    )
    admin = wtforms.BooleanField(model.User.admin._verbose_name)
    active = wtforms.BooleanField(model.User.active._verbose_name)
    verified = wtforms.BooleanField(model.User.verified._verbose_name)
    permissions = wtforms.SelectMultipleField(
        model.User.permissions._verbose_name,
        filters=[util.sort_filter],
    )

    _permission_choices = set()

    def __init__(self, *args, **kwds):
        super(UserUpdateForm, self).__init__(*args, **kwds)
        self.permissions.choices = [
            (p, p) for p in sorted(UserUpdateForm._permission_choices)
        ]

    @auth.permission_registered.connect
    def _permission_registered_callback(sender, permission):
        UserUpdateForm._permission_choices.add(permission)
Exemple #27
0
class AddPackageForm(wtf.Form):
    pkg_name = wtforms.TextField('Package name',
                                 [wtforms.validators.Required()])
    pkg_summary = wtforms.TextField('Summary', [wtforms.validators.Required()])
    pkg_reviewURL = wtforms.TextField('Review URL',
                                      [wtforms.validators.Required()])
    pkg_status = wtforms.SelectField('Status', [wtforms.validators.Required()],
                                     choices=[(item, item) for item in []])
    pkg_shouldopen = wtforms.BooleanField('Should open',
                                          [wtforms.validators.Required()],
                                          default=True)
    pkg_collection = wtforms.SelectMultipleField(
        'Collection', [wtforms.validators.Required()],
        choices=[(item, item) for item in []])
    pkg_poc = wtforms.TextField('Point of contact',
                                [wtforms.validators.Required()])
    pkg_upstreamURL = wtforms.TextField('Upstream URL',
                                        [wtforms.validators.optional()])

    def __init__(self, *args, **kwargs):
        """ Calls the default constructor with the normal argument but
        uses the list of collection provided to fill the choices of the
        drop-down list.
        """
        super(AddPackageForm, self).__init__(*args, **kwargs)
        if 'collections' in kwargs:
            self.pkg_collection.choices = [(collec.branchname,
                                            collec.branchname)
                                           for collec in kwargs['collections']]
        if 'pkg_status_list' in kwargs:
            self.pkg_status.choices = [(status, status)
                                       for status in kwargs['pkg_status_list']]
Exemple #28
0
class ImagesFiltersForm(BaseSecureForm):
    """Form class for filters on landing page"""
    owner_alias = wtforms.SelectField(label=_(u'Images owned by'))
    platform = wtforms.SelectMultipleField(label=_(u'Platform'))
    root_device_type = wtforms.SelectMultipleField(label=_(u'Root device type'))
    architecture = wtforms.SelectMultipleField(label=_(u'Architecture'))
    tags = wtforms.TextField(label=_(u'Tags'))

    def __init__(self, request, cloud_type='euca', **kwargs):
        super(ImagesFiltersForm, self).__init__(request, **kwargs)
        self.request = request
        self.cloud_type = cloud_type
        self.owner_alias.choices = self.get_owner_choices()
        self.platform.choices = self.get_platform_choices()
        self.root_device_type.choices = self.get_root_device_type_choices()
        self.architecture.choices = self.get_architecture_choices()
        if cloud_type == 'aws' and not self.request.params.get('owner_alias'):
            self.owner_alias.data = 'amazon'  # Default to Amazon AMIs on AWS

    def get_owner_choices(self):
        owner_choices = EUCA_IMAGE_OWNER_ALIAS_CHOICES
        if self.cloud_type == 'aws':
            owner_choices = AWS_IMAGE_OWNER_ALIAS_CHOICES
        return owner_choices

    def get_platform_choices(self):
        if self.cloud_type == 'euca':
            return (
                ('linux', 'Linux'),
                ('windows', 'Windows'),
            )
        else:
            return ('windows', 'Windows'),

    @staticmethod
    def get_root_device_type_choices():
        return (
            ('ebs', 'EBS'),
            ('instance-store', 'Instance-store'),
        )

    @staticmethod
    def get_architecture_choices():
        return (
            ('x86_64', '64-bit'),
            ('i386', '32-bit'),
        )
Exemple #29
0
class MovieSearchForm(wtforms.Form):
    title = wtforms.TextField(u'Title', [wtforms.validators.length(max=50)])

    adname = wtforms.TextField(u'Actor or Director Name',
                               [wtforms.validators.length(max=50)])

    genres = wtforms.SelectMultipleField(
        u'Genre',
        choices=MOVIE_GENRES,
    )

    rating = wtforms.SelectMultipleField(
        u'Ratings',
        choices=MOVIE_RATINGS[1:],
    )

    search = wtforms.HiddenField(u'search', )
Exemple #30
0
class DeleteTagForm(flask_wtf.FlaskForm):
    del_name = wtforms.SelectMultipleField('', coerce=int, validators=[wtforms.validators.DataRequired()])
    submit = wtforms.SubmitField('删除标签')

    def __init__(self, *args, **kwargs):
        super(DeleteTagForm, self).__init__(*args, **kwargs)
        self.del_name.choices = [(tag.id, tag.name)
                             for tag in Tag.query.order_by(Tag.id).all()]