コード例 #1
0
ファイル: routes.py プロジェクト: certasun/achAPP
class verificationForm(FlaskForm):
    SSN = PasswordField('Last 4 of SSN')
    DOB = DateField('DOB (YYYY-MM-DD)')
    submit = SubmitField('Submit')
コード例 #2
0
class FormFiltro(FlaskForm):
    """Valida pesquisa de arquivos.

    Usa wtforms para facilitar a validação dos campos de pesquisa da tela
    search_files.html

    """
    pagina_atual = IntegerField('Pagina', default=1)
    # order = None
    numero = StringField(u'Número', validators=[optional()], default='')
    start = DateField('Start', validators=[optional()])
    end = DateField('End', validators=[optional()])
    alerta = BooleanField('Alerta', validators=[optional()], default=False)
    zscore = FloatField('Z-Score', validators=[optional()], default=3.)
    contrast = BooleanField(validators=[optional()], default=False)
    color = BooleanField(validators=[optional()], default=False)
    filtro_auditoria = SelectField(u'Filtros de Auditoria',
                                   validators=[optional()], default=0)
    tag_usuario = BooleanField('Exclusivamente Tag do usuário',
                               validators=[optional()], default=False)
    filtro_tags = SelectField(u'Filtrar por estas tags',
                              validators=[optional()], default=0)
    texto_ocorrencia = StringField(u'Texto Ocorrência',
                                   validators=[optional()], default='')

    def initialize(self, db):
        self.db = db
        self.auditoria_object = Auditoria(db)
        self.tags_object = Tags(db)
        self.filtro_tags.choices = self.tags_object.tags_text
        self.filtro_auditoria.choices = self.auditoria_object.filtros_auditoria_desc

    def recupera_filtro_personalizado(self):
        """Usa variável global para guardar filtros personalizados entre posts."""
        key = 'filtros' + current_user.id
        self.filtro_personalizado = g.get(key)

    def valida(self):
        """Lê formulário e adiciona campos ao filtro se necessário."""
        if self.validate():  # configura filtro básico
            self.filtro = {}
            # pagina_atual = self.pagina_atual.data
            numero = self.numero.data
            start = self.start.data
            end = self.end.data
            alerta = self.alerta.data
            zscore = self.zscore.data
            if numero == 'None':
                numero = None
            if start and end:
                start = datetime.combine(start, datetime.min.time())
                end = datetime.combine(end, datetime.max.time())
                self.filtro['metadata.dataescaneamento'] = {'$lte': end, '$gte': start}
            if numero:
                self.filtro['metadata.numeroinformado'] = \
                    {'$regex': '^' + mongo_sanitizar(self.numero), '$options': 'i'}
            if alerta:
                self.filtro['metadata.xml.alerta'] = True
            if zscore:
                self.filtro['metadata.zscore'] = {'$gte': zscore}
            # Auditoria
            filtro_escolhido = self.filtro_auditoria.data
            if filtro_escolhido and filtro_escolhido != '0':
                auditoria_object = Auditoria(self.db)
                filtro_auditoria = \
                    auditoria_object.dict_auditoria.get(filtro_escolhido)
                if filtro_auditoria:
                    self.filtro.update(filtro_auditoria.get('filtro'))
                    order = filtro_auditoria.get('order')
            tag_escolhida = self.filtro_tags.data
            tag_usuario = self.tag_usuario.data
            if tag_escolhida and tag_escolhida != '0':
                filtro_tag = {'tag': tag_escolhida}
                if tag_usuario:
                    filtro_tag.update({'usuario': current_user.id})
                self.filtro['metadata.tags'] = {'$elemMatch': filtro_tag}
            texto_ocorrencia = self.texto_ocorrencia.data
            if texto_ocorrencia:
                self.filtro.update(
                    {'metadata.ocorrencias': {'$exists': True},
                     'metadata.ocorrencias.texto':
                         {'$regex':
                              '^' + mongo_sanitizar(texto_ocorrencia), '$options': 'i'
                          }
                     })
            print('FILTRO: ', self.filtro)
            return True
        return False
コード例 #3
0
ファイル: forms.py プロジェクト: danny-burrows/dbcoursework
class TestForm(FlaskForm):
    name = StringField('Test Name', validators=[DataRequired()])
    max_mark = IntegerField('Maximum Mark (Numbers Only)',
                            validators=[DataRequired()])
    date = DateField('Date', validators=[DataRequired()])
    submit = SubmitField('Submit')
コード例 #4
0
class FiltraMovimientosForm(FlaskForm):
    fechaDesde = DateField("Desde", validators=[fecha_por_debajo_de_hoy])
    fechaHasta = DateField("Hasta", validators=[fecha_por_debajo_de_hoy])
    texto = StringField("Concepto")
    submit = SubmitField("Filtrar")
コード例 #5
0
ファイル: forms.py プロジェクト: retaw/poker_game_controller
class TestForm(FlaskForm):
    date1 = DateField(u'date', widget=DatePickerWidget())
    pass
コード例 #6
0
class UpdateForm(FlaskForm):
    name = StringField('Name', default=None)
    birthdate = DateField('Date')
    submit_button = SubmitField('Update')
コード例 #7
0
class NewWorkshopForm(BaseForm):
    title = StringField('Title', [validators.Required()])
    description = TextAreaField('Description', [validators.Required()])
    expected_participants = IntegerField('Expected number of pariticipants',
                                         [validators.Required()])
    date = DateField('Preferred Date', [validators.Required()])
コード例 #8
0
ファイル: forms.py プロジェクト: Alex0M/fwallet
class AddExpensesForm(FlaskForm):
    sum_uah = TextField('sum_uah', validators=[Required()])
    date = DateField('date')
    category = SelectField(coerce=int)
    details = TextField('details')
    submit = SubmitField('submit')
コード例 #9
0
class EnquirySearchForm(FlaskForm):
    uid = SelectField(
        _('enquiry user'),
        validators=[
            InputRequired(),  # 可以为0
        ],
        default=DEFAULT_SEARCH_CHOICES_INT_OPTION,
        coerce=int,
        description=_('enquiry user'),
        render_kw={
            'rel': 'tooltip',
            'title': _('enquiry user'),
        })
    supplier_cid = IntegerField(_('supplier company id'),
                                validators=[
                                    InputRequired(),
                                ],
                                default=0,
                                description=_('supplier company id'),
                                render_kw={
                                    'rel': 'tooltip',
                                    'title': _('supplier company id'),
                                    'placeholder': _('supplier company id'),
                                    'autocomplete': 'off',
                                    'type': 'hidden',
                                })
    supplier_company_name = StringField(_('supplier company name'),
                                        validators=[],
                                        description=_('supplier company name'),
                                        render_kw={
                                            'placeholder':
                                            _('supplier company name'),
                                            'rel':
                                            'tooltip',
                                            'title':
                                            _('supplier company name'),
                                        })

    start_create_time = DateField(_('start time'),
                                  validators=[Optional()],
                                  description=_('start time'),
                                  render_kw={
                                      'placeholder': _('start time'),
                                      'type': 'date',
                                      'rel': 'tooltip',
                                      'title': _('start time'),
                                  })
    end_create_time = DateField(_('end time'),
                                validators=[Optional()],
                                description=_('end time'),
                                render_kw={
                                    'placeholder': _('end time'),
                                    'type': 'date',
                                    'rel': 'tooltip',
                                    'title': _('end time'),
                                })
    op = IntegerField(
        _('operation'),
        validators=[],
        default=OPERATION_SEARCH,
    )
    page = IntegerField(
        _('page'),
        validators=[],
        default=1,
    )
コード例 #10
0
ファイル: CreateEventForm.py プロジェクト: alanhdu/eventum
class CreateEventForm(Form):
    """A form for the creation of a :class:`~app.models.Event` object.

    :ivar title: :class:`wtforms.fields.StringField` - The title of the event.
    :ivar slug: :class:`wtforms.fields.StringField` - A unique url fragment for
        this blog post. This may only contain letters, numbers, and dashes
        (``-``).
    :ivar location: :class:`wtforms.fields.StringField` - The location of the
        event.
    :ivar start_date: :class:`wtforms.fields.DateField` - The date the event
        starts on.
    :ivar end_date: :class:`wtforms.fields.DateField` - The date the event
        ends on.
    :ivar start_time: :class:`TimeField` - The time the event starts.
    :ivar end_time: :class:`TimeField` - The time the event ends.
    :ivar is_recurring: :class:`wtforms.fields.BooleanField` - True if the
        event is recurring.
    :ivar frequency: :class:`wtforms.fields.SelectField` - The interval of the
        occurrence. Can only take the value ``"weekly"``.
    :ivar every: :class:`wtforms.fields.IntegerField` - The number of
        ``frequency`` units after which the event repeats. For example,
        ``frequency = "weekly"`` and ``every = 2`` indicates that the event
        occurs every two weeks.
    :ivar ends: :class:`wtforms.fields.RadioField` - ``"after"`` if the event
        ends after ``num_occurrences`` occurrences, or ``"on"`` if the date
        ends on ``recurrence_end_date``.
    :ivar num_occurrences: :class:`wtforms.fields.IntegerField` - The number of
        occurrences for a recurring event.  Should be set only if ``ends`` is
        set to ``"after"``.
    :ivar recurrence_end_date: :class:`wtforms.fields.DateField` - The date
        that the recurrence ends on.  Should be set only if ``ends`` is set to
        ``"on"``.
    :ivar recurrence_summary: :class:`wtforms.fields.StringField` - A plain
        English explanation of the recurrence. Generated in JavaScript but
        stored here.
    :ivar short_description: :class:`wtforms.fields.TextAreaField` - The
        markdown text of the short description for the event.
    :ivar long_description: :class:`wtforms.fields.TextAreaField` - The
        markdown text of the long description for the event.
    :ivar published: :class:`wtforms.fields.BooleanField` - True if the event
        is published.
    :ivar facebook_url: :class:`wtforms.fields.StringField` - The URL of the
        associated Facebook event.
    :ivar event_image: :class:`wtforms.fields.StringField` - The filename of
        the headline image.
    """

    title = StringField('Title',
                        [Required(message="Please provide an event title.")])
    slug = StringField('Slug', [UniqueEvent(),
                                Regexp(Regex.SLUG_REGEX,
                                       message=INVALID_SLUG)])
    location = StringField('Location')
    start_date = DateField('Start date', [Optional()], format=DATE_FORMAT)
    start_time = TimeField('Start time', [Optional()])
    end_date = DateField('End date', [Optional()], format=DATE_FORMAT)
    end_time = TimeField('End time', [Optional()])
    is_recurring = BooleanField('Is Recurring')
    frequency = SelectField('Repeats', choices=[('weekly', 'Weekly')],
                            default="weekly")
    every = IntegerField('Every', [NumberRange(min=1, max=30)], default=1)
    ends = RadioField('Ends', choices=[("after", "After"), ("on", "On")],
                      default="after")
    num_occurrences = IntegerField('Every', [NumberRange(min=1)], default=1)
    recurrence_end_date = DateField('Repeat End Date', [Optional()],
                                    format=DATE_FORMAT)
    recurrence_summary = StringField('Summary')
    short_description = TextAreaField('Short description',
                                      default=SHORT_DESCRIPTION_PLACEHOLDER)
    long_description = TextAreaField('Long description',
                                     default=LONG_DESCRIPTION_PLACEHOLDER)
    published = BooleanField('Published')
    facebook_url = StringField('Facebook  URL', [Optional(), URL()])
    event_image = StringField('Image', [image_with_same_name])

    def post_validate(self, validation_stopped):
        """Make sure that the start datetime comes before the end datetime.


        :param self: The form to validate
        :type self: :class:`Form`
        :param bool validation_stopped: True if any validator raised
            :class:`~wtforms.validators.StopValidation`.
        :raises: :class:`wtforms.validators.ValidationError`
        """
        if not validation_stopped:
            start_date = self.start_date.data
            start_time = self.start_time.data
            end_date = self.end_date.data
            end_time = self.end_time.data

            # Start and end dates should be in order.
            if start_date and end_date and start_date > end_date:
                raise ValidationError("Start date should come before end date")
            if (all([start_date, start_time, end_date, end_time]) and
                    start_time > end_time):
                raise ValidationError("Start time should come before end date")
コード例 #11
0
ファイル: forms.py プロジェクト: DjangoDNA/ITWS2-FinalProject
class SearchFilterForm(FlaskForm):
    fromdate = DateField('From')
    todate = DateField('To')
    filter = SubmitField('Filter By Date')
コード例 #12
0
ファイル: forms.py プロジェクト: 156101zhj/Python-Flask-
class MovieForm(FlaskForm):
    """
    电影表单
    """
    title = StringField(label="片名",
                        validators=[DataRequired("请输入片名!")],
                        description="片名",
                        render_kw={
                            "class": "form-control",
                            "id": "input_title",
                            "placeholder": "请输入片名!"
                        })
    url = FileField(
        label="文件",
        validators=[DataRequired("请上传文件!")],
        description="文件",
    )
    info = TextAreaField(label="简介",
                         validators=[DataRequired("请输入简介!")],
                         description="简介",
                         render_kw={
                             "class": "form-control",
                             "id": "input_info",
                             "rows": 10
                         })
    logo = FileField(
        label="封面",
        validators=[DataRequired("请上传封面!")],
        description="封面",
    )
    star = SelectField(label="星级",
                       validators=[DataRequired("请选择星级!")],
                       coerce=int,
                       choices=[(1, "1星"), (2, "2星"), (3, "3星"), (4, "4星"),
                                (5, "5星")],
                       description="星级",
                       render_kw={
                           "class": "form-control",
                           "id": "input_star"
                       })
    tag_id = SelectField(label="标签",
                         validators=[DataRequired("请选择标签!")],
                         coerce=int,
                         choices=[(v.id, v.name) for v in tags],
                         description="标签",
                         render_kw={
                             "class": "form-control",
                             "id": "input_tag_id"
                         })
    area = StringField(label="地区",
                       validators=[DataRequired("请输入地区!")],
                       description="地区",
                       render_kw={
                           "class": "form-control",
                           "id": "input_area",
                           "placeholder": "请输入地区!"
                       })
    length = StringField(label="片长",
                         validators=[DataRequired("请输入片长!")],
                         description="片长",
                         render_kw={
                             "class": "form-control",
                             "id": "input_length",
                             "placeholder": "请输入片长!"
                         })
    release_time = DateField(label="上映时间",
                             validators=[DataRequired("请选择上映时间!")],
                             description="上映时间",
                             render_kw={
                                 "class": "form-control",
                                 "placeholder": "请选择上映时间!",
                                 "id": "input_release_time"
                             })
    submit = SubmitField(label="编辑", render_kw={
        "class": "btn btn-primary",
    })
コード例 #13
0
ファイル: forms.py プロジェクト: Julzpeter/book-grao-booking
class RoomoccupationForm(FlaskForm):
    date = DateField('Choose date',
                     format="%m/%d/%Y",
                     validators=[DataRequired()])
    submit = SubmitField('Check')


# class LoginForm(FlaskForm):
#     username = StringField('Username', validators=[DataRequired()])
#     password = PasswordField('Password', validators=[DataRequired()])
#     remember_me = BooleanField('Remember Me')
#     submit = SubmitField('Sign In')

# class RegistrationForm(FlaskForm):
#     username = StringField('Username', validators=[DataRequired()])
#     password = PasswordField('Password', validators=[DataRequired()])
#     password2 = PasswordField('Password', validators=[DataRequired(), EqualTo('password')])
#     fullname=StringField('Full Name',validators=[DataRequired()])
#     position=StringField('Position',validators=[DataRequired()])
#     teamId=IntegerField('Team number',validators=[DataRequired()])
#     teamName=StringField('Team name',validators=[DataRequired()])
#     submit=SubmitField('Register')

#     def validate_username(self,username):
#         user=User.query.filter_by(username=self.username.data).first()
#         if user is not None: # username exist
#             raise ValidationError('Please use a different username.')

#     # def validate_teamId(self,teamId):
#     #     team=Team.query.filter_by(id=teamId.data).first()
#     #     if team is not None:
#     #         if team.teamName!=self.teamName.data:
#     #             raise ValidationError('Team name does not match, try again.')

# class AddteamForm(FlaskForm):
#     id=IntegerField('Team number',validators=[DataRequired()])
#     teamName=StringField('Team name',validators=[DataRequired()])
#     submit=SubmitField('Add')

#     def validate_id(self,id):
#         team=Team.query.filter_by(id=id.data).first()
#         if team is not None:
#             raise ValidationError('Team Exist, try again')

#     def validate_teamName(self,teamName):
#         team=Team.query.filter_by(teamName=teamName.data).first()
#         if team is not None:
#             raise ValidationError('Team Name Exist, try again')

# class AdduserForm(FlaskForm):
#     username = StringField('Username', validators=[DataRequired()])
#     password = PasswordField('Password', validators=[DataRequired()])
#     fullname=StringField('Full Name',validators=[DataRequired()])
#     position=StringField('Position',validators=[DataRequired()])
#     teamId=IntegerField('Team number',validators=[DataRequired()])
#     teamName=StringField('Team name',validators=[DataRequired()])
#     submit=SubmitField('Register')

#     def validate_username(self,username):
#         user=User.query.filter_by(username=self.username.data).first()
#         if user is not None: # username exist
#             raise ValidationError('Please use a different username.')

#     def validate_teamId(self,teamId):
#         team=Team.query.filter_by(id=teamId.data).first()
#         if team is not None:
#             if team.teamName!=self.teamName.data:
#                 raise ValidationError('Team name does not match, try again.')

# # use this so that the choice can be refreshed every time
# class TeamChoiceIterable(object):
#     def __iter__(self):
#         teams=Team.query.all()
#         choices=[(team.id,team.teamName) for team in teams]
#         choices=[choice for choice in choices if choice[1]!='Admin']
#         for choice in choices:
#             yield choice

# class DeleteteamForm(FlaskForm):
#     ids=SelectField('Choose Team',choices=TeamChoiceIterable(),coerce=int)
#     submit=SubmitField('Delete')

# class UserChoiceIterable(object):
#     def __iter__(self):
#         users=User.query.all()
#         choices=[(user.id,f'{user.fullname}, team {Team.query.filter_by(id=user.teamId).first().teamName}') for user in users]
#         choices=[choice for choice in choices if 'admin' not in choice[1]] # do not delete admin
#         for choice in choices:
#             yield choice

# class PartnerChoiceIterable(object):
#     def __iter__(self):
#         partners=Businesspartner.query.all()
#         choices=[(partner.id,f'{partner.name} from {partner.representing}') for partner in partners]
#         #choices=[choice for choice in choices if choice[1]!='admin'] # do not delete admin
#         for choice in choices:
#             yield choice

# class DeleteuserForm(FlaskForm):
#     ids=SelectField('Choose User',coerce=int,choices=UserChoiceIterable())
#     submit=SubmitField('Delete')

# class RoomChoiceIterable(object):
#     def __iter__(self):
#         rooms=Room.query.all()
#         choices=[(room.id,room.roomName) for room in rooms]
#         for choice in choices:
#             yield choice

# class BookmeetingForm(FlaskForm):
#     title=StringField('Meeting title',validators=[DataRequired()])
#     rooms=SelectField('Choose room',coerce=int,choices=RoomChoiceIterable())
#     date=DateField('Choose date', format="%m/%d/%Y",validators=[DataRequired()])
#     startTime=SelectField('Choose starting time(in 24hr expression)',coerce=int,choices=[(i,i) for i in range(9,19)])
#     duration=SelectField('Choose duration of the meeting(in hours)',coerce=int,choices=[(i,i) for i in range(1,6)])
#     participants_user=SelectMultipleField('Choose participants from company',coerce=int,choices=UserChoiceIterable(),option_widget=widgets.CheckboxInput(),widget=widgets.ListWidget(prefix_label=False),validators=[DataRequired()])
#     participants_partner=SelectMultipleField('Choose participants from partners',coerce=int,choices=PartnerChoiceIterable(),option_widget=widgets.CheckboxInput(),widget=widgets.ListWidget(prefix_label=False))
#     submit=SubmitField('Book')

#     def validate_title(self,title):
#         meeting=Meeting.query.filter_by(title=self.title.data).first()
#         if meeting is not None: # username exist
#             raise ValidationError('Please use another meeting title.')

#     def validate_date(self,date):
#         if self.date.data<datetime.datetime.now().date():
#             raise ValidationError('You can only book for day after today.')

# class MeetingChoiceIterable(object):
#     def __iter__(self):
#         meetings=Meeting.query.filter_by(bookerId=current_user.id).all()
#         choices=[(meeting.id,f'{meeting.title} in {Room.query.filter_by(id=meeting.roomId).first().roomName} start at {meeting.date.date()} from {meeting.startTime}') for meeting in meetings]
#         for choice in choices:
#             yield choice

# class CancelbookingForm(FlaskForm):
#     #def __init__(self,userId,**kw):
#      #   super(CancelbookingForm, self).__init__(**kw)
#       #  self.name.userId =userId
#     ids=SelectField('Choose meeting to cancel',coerce=int,choices=MeetingChoiceIterable())
#     submit=SubmitField('Cancel')

# class RoomavailableForm(FlaskForm):
#     date=DateField('Choose date', format="%m/%d/%Y",validators=[DataRequired()])
#     startTime=SelectField('Choose starting time(in 24hr expression)',coerce=int,choices=[(i,i) for i in range(9,19)])
#     duration=SelectField('Choose duration of the meeting(in hours)',coerce=int,choices=[(i,i) for i in range(1,6)])
#     submit=SubmitField('Check')

# class RoomoccupationForm(FlaskForm):
#     date=DateField('Choose date', format="%m/%d/%Y",validators=[DataRequired()])
#     submit=SubmitField('Check')

# class MeetingChoiceAllIterable(object):
#     def __iter__(self):
#         meetings=Meeting.query.all()
#         choices=[(meeting.id,f'{meeting.title} in {Room.query.filter_by(id=meeting.roomId).first().roomName} start at {meeting.date.date()} from {meeting.startTime}') for meeting in meetings]
#         for choice in choices:
#             yield choice

# class MeetingparticipantsForm(FlaskForm):
#     ids=SelectField('Choose meeting',coerce=int,choices=MeetingChoiceAllIterable())
#     submit=SubmitField('Check')

# class CostaccruedForm(FlaskForm):
#     startdate=DateField('Choose start date', format="%m/%d/%Y",validators=[DataRequired()])
#     enddate=DateField('Choose end date', format="%m/%d/%Y",validators=[DataRequired()])
#     submit=SubmitField('Check')

#     def validate_enddate(self,enddate):
#         if enddate.data<self.startdate.data:
#             raise ValidationError('End Date must be after Start Date')
コード例 #14
0
ファイル: forms.py プロジェクト: kcraybould/nomad
class DriverForm(FlaskForm):
    destination = SelectField(
        validators=[InputRequired("Please select a destination.")])

    departure_name = StringField()
    departure_lat = HiddenField()
    departure_lon = HiddenField()

    departure_date = DateField()
    departure_hour = SelectField(choices=time_select_tuples(), default='9')

    return_date = DateField()
    return_hour = SelectField(choices=time_select_tuples(), default='9')

    vehicle_description = StringField()
    vehicle_capacity = SelectField(choices=[(str(x), x) for x in range(1, 9)])

    notes = TextAreaField()

    def validate(self):
        if not super(DriverForm, self).validate():
            return False

        result = True

        if self.departure_name.data and len(self.departure_name.data) > 120:
            self.departure_name.errors.append(
                "The name you entered was too long."
                " Please make it less than 120 characters.")
            result = False

        if not (self.departure_lon.data and self.departure_lat.data):
            self.departure_name.errors.append(
                "No location was found. Try a nearby "
                "street intersection or business.")
            result = False

        try:
            self.departure_lon.data = float(self.departure_lon.data)
            self.departure_lat.data = float(self.departure_lat.data)
        except:
            self.departure_name.errors.append(
                "Your location didn't convert to a valid lat/lon."
                " Try a different address.")
            result = False

        if not (self.destination.data):
            self.destination.errors.append("Please select a destination.")
            result = False

        self.departure_datetime = datetime.datetime(
            self.departure_date.data.year, self.departure_date.data.month,
            self.departure_date.data.day, int(self.departure_hour.data))

        self.return_datetime = datetime.datetime(self.return_date.data.year,
                                                 self.return_date.data.month,
                                                 self.return_date.data.day,
                                                 int(self.return_hour.data))

        if self.departure_datetime >= self.return_datetime:
            self.departure_date.errors.append(
                "Your return date should be after your departure date.")
            result = False

        if self.return_datetime < datetime.datetime.today():
            self.return_date.errors.append(
                "Your carpool cannot happen in the past.")
            result = False

        delta = self.return_datetime - self.departure_datetime
        max_trip_length = current_app.config.get('TRIP_MAX_LENGTH_DAYS')
        if delta.days > max_trip_length:
            self.return_date.errors.append(
                "Please return within {} days.".format(max_trip_length))
            result = False

        today = datetime.datetime.today()
        max_days_in_future = current_app.config.get('TRIP_MAX_DAYS_IN_FUTURE')
        if (self.departure_datetime - today).days > max_days_in_future:
            self.departure_date.errors.append(
                "You're leaving too far into the future.")
            result = False

        return result
コード例 #15
0
ファイル: schemas.py プロジェクト: DmitriiDenisov/bank-bot
class TaskParamsSchema(Form):
    first_name = StringField('first_name', [validators.DataRequired()])
    second_name = StringField('second_name', [validators.DataRequired()])
    nick = StringField('nick', [validators.DataRequired()])
    join_date = DateField('join_date', [validators.DataRequired()])
    token = StringField('token')
コード例 #16
0
ファイル: forms.py プロジェクト: AthmanZiri/ican
class EditTaskForm(Form):
    title = StringField('Task Title')
    description = TextField('Task Description')
    deadline = DateField('When is this task due? (YYYY-MM-DD)')
    submit = SubmitField('Update Task')
コード例 #17
0
class BabyForm(FlaskForm):
    name = StringField('Name', validators=[DataRequired()])
    birthdate = DateField('Date', validators=[DataRequired()])
    submit_button = SubmitField('Create Baby')
コード例 #18
0
ファイル: forms.py プロジェクト: AthmanZiri/ican
class TaskCreationForm(Form):
    universities = MultiCheckboxField("Universities", coerce=int)
    title = StringField('Task Title')
    description = TextField('Task Description')
    deadline = DateField('When is this task due? (YYYY-MM-DD)')
    submit = SubmitField('Create Task')
コード例 #19
0
class DateForm(Form):
    dt = DateField('Pick a Date', format="%m/%d/%Y")
コード例 #20
0
ファイル: forms.py プロジェクト: james-lan/event-creator
class EventForm(FlaskForm):
    eventType = SelectField('Type', choices=[], validators=[DataRequired()])
    eventStatus = SelectField('Status', choices=[], validators=[Optional()])
    eventTag = SelectField('Tag', choices=[], validators=[Optional()])

    eventTitle = StringField('Title', validators=[DataRequired()])
    image_file = FileField('Event Picture',
                           validators=[FileAllowed(['jpg', 'png'])])
    instructorName = StringField('Instructor Name',
                                 validators=[DataRequired()])
    instructorEmail = StringField('Instructor Email',
                                  validators=[DataRequired(),
                                              Email()])
    eventLocation = StringField('Location')
    eventDescription = TextAreaField('Description', render_kw={"rows": 10})
    registrationURL = StringField('Registration URL')
    registrationLimit = IntegerField('Registration Limit')
    if useHtml5Fields:
        eventDate = DateField('Date', default=date.today())
        starttime = TimeField(label='Start Time')
    else:
        eventDate = DateField('Date', default=date.today(), format='%m/%d/%Y')
        starttime = TimeField(label='Start Time', format="%H:%M %p")

    duration = FloatField(label='Duration')
    minAge = IntegerField('Min. Age', validators=[Optional()])
    maxAge = IntegerField('Max. Age', validators=[Optional()])
    memberPrice = DecimalField('Member Price',
                               places=2,
                               validators=[Optional()])
    nonMemberPrice = DecimalField('Non-Member Price',
                                  places=2,
                                  validators=[Optional()])

    authorizations = SelectMultipleField('Required Authorizations', choices=[])
    platforms = SelectMultipleField('Platforms', choices=[])
    resources = SelectMultipleField('Resources', choices=[])

    submit = SubmitField('Submit')

    template_map = {}
    templates = []

    selectedTemplateName = ""

    def validate(self):
        if not super().validate():
            return False

        result = True
        start_datetime = datetime.combine(self.eventDate.data,
                                          self.starttime.data)

        if not start_datetime > datetime.now():
            self.eventDate.errors.append(
                'start of event must be in the future')
            self.starttime.errors.append(
                'start of event must be in the future')
            result = False

        return result

    def collectEventDetails(self):
        details = {
            'title': self.eventTitle.data.strip(),
            'image_file': self.image_file.data,
            'status': self.eventStatus.data,
            'event_type': self.eventType.data,
            'host_email': self.instructorEmail.data.strip(),
            'host_name': self.instructorName.data.strip(),
            'location': self.eventLocation.data.strip(),
            'start_date': self.eventDate.data,
            'start_time': self.starttime.data,
            'duration': timedelta(hours=self.duration.data),
            'description': self.eventDescription.data.strip(),
            'min_age': self.minAge.data if self.minAge.data is not None else 0,
            'max_age': self.maxAge.data if self.maxAge.data is not None else 0,
            'registration_limit': self.registrationLimit.data,
            'prices': [],
            'authorizations': self.authorizations.data,
            'platforms': self.platforms.data,
            'resources': self.resources.data,
            'tags': [self.eventTag.data],
        }

        if self.memberPrice is not None:
            details['prices'].append({
                'name': 'MakeICT Members',
                'price': float(self.memberPrice.data),
                'description': '',
                'availability': ['Members']
            })

        if self.nonMemberPrice is not None:
            details['prices'].append({
                'name': 'Non-Members',
                'price': float(self.nonMemberPrice.data),
                'description': '',
                'availability': ['Everyone']
            })

        return details

    def loadTemplates(self):
        self.template_map = {}
        self.templates = []

        for t in EventTemplate.query.all():
            self.template_map[t.uniqueName()] = t.id
        self.templates.append("Select Template")

        for t in sorted(self.template_map.keys(), key=str.lower):
            self.templates.append(t)

    def populate(self, event):
        """
        Loads values from the provided Event or EventTemplate object into the
        form.
        """
        assert isinstance(event, (EventTemplate, Event)), "Unsupported type"

        # fields shared between events and templates
        self.eventTitle.data = event.title
        self.instructorName.data = event.host_name
        self.instructorEmail.data = event.host_email
        self.eventLocation.data = event.location
        self.eventDescription.data = event.description
        self.registrationLimit.data = event.registration_limit
        self.minAge.data = event.min_age
        self.maxAge.data = event.max_age
        self.templateRequiredAuths = [
            auth.name for auth in event.authorizations
        ]
        self.calendarResources = [res.name for res in event.resources]
        self.eventPlatforms = [plat.name for plat in event.platforms]
        self.starttime.data = event.start_time
        self.duration.data = event.duration.seconds / 3600
        self.eventType.data = event.event_type.name
        self.eventTag.data = event.tags[0].name
        self.starttime.data = event.start_time
        # self.image_file.data = event.image_file
        # self.image_file.default = event.image_file

        if event.authorizations:
            self.authorizations.default = [
                auth.name for auth in event.authorizations
            ]
        if event.resources:
            self.resources.default = [res.name for res in event.resources]
        self.platforms.default = [plat.name for plat in event.platforms]

        for price in event.prices:
            if (price.name == 'MakeICT Members'):
                self.memberPrice.data = price.value
            elif (price.name == 'Non-Members'):
                self.nonMemberPrice.data = price.value
        if isinstance(event, Event):
            # fields specific to real events
            self.eventDate.data = event.start_date
            self.eventStatus.data = event.status.name
        else:
            # fields specific to templates
            self.eventDate.data = datetime.now().date()
            self.eventStatus.data = EventStatus.draft.name
            self.selectedTemplateName = event.uniqueName()
コード例 #21
0
ファイル: forms.py プロジェクト: CavalcanteLucas/payday
class SpendForm(Form):
    date = DateField('Date', format='%d/%m/%Y')
    value = FloatField('Value')
    item = StringField('Item')
コード例 #22
0
class AdmissionForm(FlaskForm):

    #Student Info
    name = StringField('Name*',
                       validators=[DataRequired(),
                                   Length(min=2, max=20)])
    email = StringField('Email*')
    dob = DateField('Date of Birth*',
                    validators=[DataRequired()],
                    format='%Y-%m-%d')
    gender = RadioField('Gender*',
                        choices=[('m', 'Male'), ('fm', 'Female'),
                                 ('othr', 'Others')],
                        validators=[DataRequired()])
    nationality = RadioField('Nationality*',
                             choices=[('indian', 'Indian'), ('nri', 'NRI')],
                             validators=[DataRequired()])

    #parental Info

    fathername = StringField('Father Name*',
                             validators=[Length(min=2, max=20)])
    fage = IntegerField("Age*", validators=[])
    fedu = StringField('Education*', validators=[Length(min=2, max=10)])
    fincome = IntegerField('Annual Income*', validators=[])
    fphno = StringField('Phone no*', validators=[Length(min=10, max=10)])

    mothername = StringField('Mother Name*',
                             validators=[Length(min=2, max=20)])
    mage = IntegerField("Age*", validators=[])
    medu = StringField('Education*', validators=[Length(min=2, max=10)])
    mincome = IntegerField('Annual Income*', validators=[])
    mphno = StringField('Phone no*', validators=[Length(min=10, max=10)])

    guardianname = StringField('Guardian Name*',
                               validators=[Length(min=2, max=20)])
    gage = IntegerField("Age*", validators=[])
    gedu = StringField('Education*', validators=[Length(min=2, max=10)])
    gincome = IntegerField('Annual Income*', validators=[])
    gphno = StringField('Phone no*', validators=[Length(min=10, max=10)])

    #Permanent address

    hldno = StringField('Holding No. / Quarters No. *',
                        validators=[DataRequired()])
    city = StringField('City*', validators=[DataRequired()])
    dist = StringField('District*', validators=[DataRequired()])
    state = StringField('State*', validators=[DataRequired()])
    pin = StringField('PIN*',
                      validators=[DataRequired(),
                                  Length(min=6, max=6)])
    ephno = StringField('Emergency Phone No.*',
                        validators=[DataRequired(),
                                    Length(min=10, max=10)])
    mobile = StringField('Mobile*',
                         validators=[DataRequired(),
                                     Length(min=10, max=10)])
    telphn = StringField('Telephone No.')

    #Temporary Address
    chck = BooleanField(' Same as Permanent Address', default=False)
    thldno = StringField('Holding No. / Quarters No. *')
    tcity = StringField('City*')
    tdist = StringField('District*')
    tstate = StringField('State*')
    tpin = StringField('PIN*', validators=[Length(min=6, max=6)])

    #Additional Information

    caste = RadioField('Caste [ attach a copy of attested certificate ]*',
                       choices=[('gen', 'General'), ('sc', 'S.C.'),
                                ('st', 'S.T.'), ('obc', 'OBC'),
                                ('othr', 'Others')],
                       validators=[DataRequired()])
    mtoungue = RadioField('Mother Tongue*',
                          choices=[('ben', 'Bengali'), ('hin', 'Hindi'),
                                   ('eng', 'English'), ('othr', 'Others')],
                          validators=[DataRequired()])
    lang = StringField('Languages Known*',
                       validators=[DataRequired(),
                                   Length(min=2, max=20)])

    #Health Information

    blgrp = StringField('Blood Group*',
                        validators=[DataRequired(),
                                    Length(min=2, max=3)])
    teeth = IntegerField('Number of Teeth')
    height = StringField('Height*',
                         validators=[DataRequired(),
                                     Length(min=2, max=10)])
    weight = StringField('Weight [Kg]*',
                         validators=[DataRequired(),
                                     Length(min=2, max=3)])
    illness = StringField('Is your child suffering from any illness?',
                          validators=[Length(min=2, max=20)])

    #Income

    famincome = RadioField('Family Income*',
                           choices=[('1-', 'Less than 1 lac'),
                                    ('3-', 'Upto 3 lacs'),
                                    ('3+', 'More than 3 lacs')],
                           validators=[DataRequired()])

    # More Info

    pschool = StringField('Previous School',
                          validators=[Length(min=2, max=20)])
    classval = SelectField('Class*',
                           choices=[('nur', 'Nursery'), ('lkg', 'LKG'),
                                    ('ukg', 'UKG'), ('1', '1'), ('2', '2'),
                                    ('3', '3'), ('4', '4'), ('5', '5'),
                                    ('6', '6'), ('7', '7'), ('8', '8')])
    reference = StringField('Reference', validators=[Length(min=2, max=20)])
    xdoc = StringField('Xerox Copies of')
    odoc = StringField('Original copies of')
    subj = StringField('Subjects opted for *', validators=[DataRequired()])
    coa = StringField('Wether applied for change of Date of Birth/ Address ?')

    #uploads

    document = FileField(
        'Document',
        validators=[FileAllowed(['pdf', 'jpg', 'png'], 'Image or PDF only!')])
    profile = FileField(
        'Profile', validators=[FileAllowed(['jpg', 'png'], 'Images only!')])

    #submit
    dec = 'DECLARE'
    acc = 'ACCEPT'
    declare = StringField("", validators=[DataRequired()])
    accept = StringField("", validators=[DataRequired()])
    submit = SubmitField('Submit')
コード例 #23
0
class CustomerContactItemEditForm(FlaskForm):
    """
    编辑表单(字段默认选项需要去除)
    """
    def __init__(self, *args, **kwargs):
        kwargs['csrf_enabled'] = False  # disable csrf
        FlaskForm.__init__(self, *args, **kwargs)

    id = IntegerField(_('customer contact id'),
                      validators=[],
                      default=0,
                      render_kw={
                          'type': 'hidden',
                      })
    cid = IntegerField(_('customer id'),
                       validators=[],
                       default=0,
                       render_kw={
                           'type': 'hidden',
                       })
    company_name = StringField(_('company name'),
                               validators=[],
                               description=_('company name'),
                               render_kw={
                                   'placeholder': _('company name'),
                                   'rel': 'tooltip',
                                   'title': _('company name'),
                               })
    contact_name = StringField(_('contact name'),
                               validators=[
                                   DataRequired(),
                                   Length(min=1, max=20),
                               ],
                               description=_('contact name'),
                               render_kw={
                                   'rel': 'tooltip',
                                   'title': _('contact name'),
                                   'placeholder': _('contact name'),
                                   'autocomplete': 'off',
                               })
    salutation = StringField(_('salutation'),
                             validators=[
                                 Length(max=20),
                             ],
                             description=_('salutation'),
                             render_kw={
                                 'rel': 'tooltip',
                                 'title': _('salutation'),
                                 'placeholder': _('salutation'),
                                 'autocomplete': 'off',
                             })
    mobile = StringField(_('mobile'),
                         validators=[
                             Length(max=20),
                         ],
                         description=_('mobile'),
                         render_kw={
                             'rel': 'tooltip',
                             'title': _('mobile'),
                             'placeholder': _('mobile'),
                             'autocomplete': 'off',
                         })
    tel = StringField(_('tel'),
                      validators=[
                          Length(max=20),
                      ],
                      description=_('tel'),
                      render_kw={
                          'rel': 'tooltip',
                          'title': _('tel'),
                          'placeholder': _('tel'),
                          'autocomplete': 'off',
                      })
    fax = StringField(_('fax'),
                      validators=[
                          Length(max=20),
                      ],
                      description=_('fax'),
                      render_kw={
                          'rel': 'tooltip',
                          'title': _('fax'),
                          'placeholder': _('fax'),
                          'autocomplete': 'off',
                      })
    email = StringField(_('email'),
                        validators=[
                            Length(max=60),
                        ],
                        description=_('email'),
                        render_kw={
                            'rel': 'tooltip',
                            'title': _('email'),
                            'placeholder': _('email'),
                            'autocomplete': 'off',
                        })
    address = StringField(_('address'),
                          validators=[
                              Length(max=100),
                          ],
                          description=_('address'),
                          render_kw={
                              'rel': 'tooltip',
                              'title': _('address'),
                              'placeholder': _('address'),
                              'autocomplete': 'off',
                          })
    note = StringField(_('note'),
                       validators=[
                           Length(max=256),
                       ],
                       description=_('note'),
                       render_kw={
                           'rel': 'tooltip',
                           'title': _('note'),
                           'placeholder': _('note'),
                           'autocomplete': 'off',
                       })
    status_default = BooleanField(_('default status'),
                                  default=False,
                                  validators=[],
                                  render_kw={
                                      'rel': 'tooltip',
                                      'title': _('default status'),
                                  })
    status_delete = IntegerField(_('delete status'),
                                 validators=[],
                                 default=0,
                                 description=_('delete status'))
    delete_time = DateField(_('delete time'),
                            validators=[],
                            description=_('delete time'))
    create_time = DateField(_('create time'),
                            validators=[],
                            description=_('create time'))
    update_time = DateField(_('update time'),
                            validators=[],
                            description=_('update time'))
コード例 #24
0
class DateFilterForm(StripWhitespaceForm):
    start_date = DateField("Start Date", [validators.optional()])
    end_date = DateField("End Date", [validators.optional()])
    include_from_test_key = BooleanField("Include test keys", default="checked", false_values={"N"})
コード例 #25
0
ファイル: forms.py プロジェクト: kurohai/colord
class ColorForm(Form):
    date = DateField('date', validators=[DataRequired()])
    colors = TextAreaField('colors', validators=[DataRequired()])
コード例 #26
0
class RequiredDateFilterForm(StripWhitespaceForm):
    start_date = DateField("Start Date")
    end_date = DateField("End Date")
コード例 #27
0
class Eval(FlaskForm):
    full_name = StringField(
        "Full Name",
        render_kw={
            "placeholder": "Full Name",
            "data-validation": "custom",
            "data-validation-regexp": "^([a-zA-Z]+)( ([a-zA-Z]+))+$",
            "data-validation-error-msg": " "},
        validators=[DataRequired()])
    birth_date = DateField(
        'DOB',
        format='%Y-%m-%d',
        render_kw={
            "type": "date",
            "data-validation": "date",
            "data-validation-error-msg": " "})
    home_address = StringField(
        'Home Address',
        render_kw={
            "placeholder": "45 Highcourt Pl",
            "data-validation": "custom",
            "data-validation-regexp": "^([a-zA-Z0-9]+)( ([a-zA-Z]+))+$",  # nopep8
            "data-validation-error-msg": " "},
        validators=[DataRequired()])
    island = SelectField(
        'Island',
        render_kw={
            "data-validation": "required",
            "data-validation-error-msg": " "},
        choices=islands,
        validators=[DataRequired()])
    profession = SelectField(
        'Profession',
        render_kw={
            "data-validation": "required",
            "data-validation-error-msg": " "},
        choices=professions,
        validators=[DataRequired()])
    income = IntegerField(
        'Income',
        render_kw={
            "type": "number",
            "data-validation": "custom",
            "data-validation-regexp": "^([0-9]+)$",
            "step": "1000",
            "data-validation-error-msg": " "},
        validators=[DataRequired()])
    married = BooleanField('Are you married?')
    kids = SelectField(
        'How many kids do you have?',
        choices=[
            ('0', 'I have no children'),
            ('1', 'I have but one child'),
            ('2', 'I have two lovely children'),
            ('3', 'There are three children in my household'),
            ('4', 'Four children have graced my life with their smiles'),
            ('5', 'Not four but five! Five children are there to greet me when I wake'),  # nopep8
            ('6', 'The number of children I have is more than five but less than seven alas'),  # nopep8
            ('7', 'I have one child for each day of the beautiful week and I have named them accordingly'),  # nopep8
            ('8', 'My children are bountiful as the apples on the trees, as the islands of Agea, as the eight wise elders'),  # nopep8
            ('9', 'I have nine children')],
        render_kw={
            "data-validation": "required",
            "data-validation-error-msg": " "},
        validators=[DataRequired(message='kids')])
    lonely = BooleanField(
        'Are you lonely?',
        default=True)
    eval_submit = SubmitField('Submit for evaluation')
コード例 #28
0
class TodoForm(FlaskForm):
    new_title = StringField('title', [validators.Length(min=4, max=25)],
                            widget=TextArea())
    new_desc = StringField('desc', [validators.Length(min=6, max=35)],
                           widget=TextArea())
    new_due = DateField('due', widget=TextArea())
コード例 #29
0
class CancelForm(FlaskForm):
    email = StringField('Email', validators=[DataRequired(), Email(message='Invalid Email'), Length(max=50)])
    department = SelectField('Department', choices=departments, validators=[DataRequired()])
    date = DateField('Date', format="%m/%d/%Y", default=datetime.today(), validators=[DataRequired()])
    time = TimeField('Time', format="%I:%M %p", default=datetime.now().time(), validators=[DataRequired()])
    submit = SubmitField('Submit')
コード例 #30
0
ファイル: forms.py プロジェクト: ashikmahmud1/newnotes
class AssignmentForm(FlaskForm):
    title = StringField('Title', validators=[InputRequired()])
    description = CKEditorField('Body', validators=[DataRequired()])
    submission_date = DateField('Submission Date', format='%m/%d/%Y', validators=[InputRequired()])
    submit = SubmitField('Submit')