class verificationForm(FlaskForm): SSN = PasswordField('Last 4 of SSN') DOB = DateField('DOB (YYYY-MM-DD)') submit = SubmitField('Submit')
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
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')
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")
class TestForm(FlaskForm): date1 = DateField(u'date', widget=DatePickerWidget()) pass
class UpdateForm(FlaskForm): name = StringField('Name', default=None) birthdate = DateField('Date') submit_button = SubmitField('Update')
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()])
class AddExpensesForm(FlaskForm): sum_uah = TextField('sum_uah', validators=[Required()]) date = DateField('date') category = SelectField(coerce=int) details = TextField('details') submit = SubmitField('submit')
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, )
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")
class SearchFilterForm(FlaskForm): fromdate = DateField('From') todate = DateField('To') filter = SubmitField('Filter By Date')
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", })
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')
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
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')
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')
class BabyForm(FlaskForm): name = StringField('Name', validators=[DataRequired()]) birthdate = DateField('Date', validators=[DataRequired()]) submit_button = SubmitField('Create Baby')
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')
class DateForm(Form): dt = DateField('Pick a Date', format="%m/%d/%Y")
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()
class SpendForm(Form): date = DateField('Date', format='%d/%m/%Y') value = FloatField('Value') item = StringField('Item')
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')
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'))
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"})
class ColorForm(Form): date = DateField('date', validators=[DataRequired()]) colors = TextAreaField('colors', validators=[DataRequired()])
class RequiredDateFilterForm(StripWhitespaceForm): start_date = DateField("Start Date") end_date = DateField("End Date")
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')
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())
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')
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')