class RegistrationForm(FlaskForm): email = StringField( 'Email', validators=[DataRequired(), Length(min=6, max=64), Email()]) username = StringField('Full Name', validators=[DataRequired(), Length(min=6, max=64)]) role = QuerySelectField("Role", allow_blank=True, get_label='name') company = QuerySelectField("Company", allow_blank=True, get_label='company_name') password = PasswordField('Password', validators=[ DataRequired(), EqualTo('password2', message='Passwords must match.') ]) password2 = PasswordField('Confirm password', validators=[DataRequired()]) submit = SubmitField('Register') def __init__(self, *args, **kwargs): super(RegistrationForm, self).__init__(*args, **kwargs) self.role.query_factory = lambda: Role.query.order_by(Role.id) self.company.query_factory = lambda: Company.query.order_by( Company.company_name) def validate_email(self, field): if User.query.filter_by(email=field.data).first(): raise ValidationError('Email already registered.')
class EditProfileAdminForm(FlaskForm): email = StringField( 'Email', validators=[DataRequired(), Length(min=6, max=64), Email()]) username = StringField('Full Name', validators=[DataRequired(), Length(min=6, max=64)]) confirmed = BooleanField('Confirmed') role = QuerySelectField("Role", allow_blank=True, get_label='name') company = QuerySelectField("Company", allow_blank=True, get_label='company_name') position = StringField('Position', validators=[Length(min=0, max=64)]) contact_number = StringField('Contact Number', validators=[Length(min=0, max=64)]) submit = SubmitField('Submit') def __init__(self, user, *args, **kwargs): super(EditProfileAdminForm, self).__init__(*args, **kwargs) self.role.query_factory = lambda: Role.query.order_by(Role.id) self.company.query_factory = lambda: Company.query.\ order_by(Company.company_name) self.user = user def validate_email(self, field): if field.data != self.user.email and \ User.query.filter_by(email=field.data).first(): raise ValidationError('Email already registered.')
class AddStudentForm(FlaskForm): def get_teachers(): return Teachers.query def get_instruments(): return Instruments.query first_name = StringField('First Name', render_kw={"placeholder": "First Name"}, validators=[DataRequired()]) last_name = StringField('Last Name', render_kw={"placeholder": "Last Name"}, validators=[DataRequired()]) instrument = QuerySelectField('Select Instrument...', query_factory=get_instruments, allow_blank=False, validators=[DataRequired()]) teacher_ID = QuerySelectField('Select Teacher...', query_factory=get_teachers, allow_blank=False, validators=[DataRequired()]) notes = TextAreaField('Notes', render_kw={'placeholder': 'Notes'}, validators=[DataRequired()]) submit = SubmitField('Add Student')
class NewExportFileForm(Form): path = StringField("File name", [validators.InputRequired()]) session = QuerySelectField( "Session", get_label="name", render_kw={"class": "form-control select2"} ) filters = FormField(ExportFilter) template = QuerySelectField("Template", render_kw={"class": "form-control select2"})
class F(Form): a = QuerySelectField(get_label=(lambda model: model.name), query_factory=lambda: sess.query(self.Test), widget=LazySelect()) b = QuerySelectField(allow_blank=True, query_factory=lambda: sess.query(self.PKTest), widget=LazySelect())
class experimentForm(ModelForm): class Meta: model = Experiment exclude = ['active'] photos = MultipleFileField('Experiment Photos') main_objective = TextAreaField( u'Main Objective', validators=[DataRequired(), Length(max=3000)]) project_id = qs(query_factory=lambda: Project.getByAll(), get_pk=lambda a: a.id, get_label=lambda a: a.name, allow_blank=False, label='Project Name') experimenter_id = QuerySelectField( query_factory=lambda: Person.getByAll(), get_pk=lambda a: a.id, get_label=lambda a: "{0} {1}, {2}".format(a.firstSurname, a. secondSurname, a.name), allow_blank=False, label='Experimenter Name', ) witness_id = QuerySelectField( query_factory=lambda: Person.getByAll(), get_pk=lambda a: a.id, get_label=lambda a: "{0} {1}, {2}".format(a.firstSurname, a. secondSurname, a.name), allow_blank=False, label='Assistant Name', )
class EmployeeAssignForm(FlaskForm): """ Form for admin to assign departments and roles to employees """ department = QuerySelectField(query_factory=lambda: Department.query.all(), get_label="name") role = QuerySelectField(query_factory=lambda: Role.query.all(), get_label="name") submit = SubmitField('save')
class TranscriptAcademicsForm(FlaskForm): title = "Academics" grading_scale = QuerySelectField("Normal:", allow_blank=True, blank_text="Default 4.0") ap_grading_scale = QuerySelectField("AP:", allow_blank=True, blank_text="Default 5.0") years = FieldList(FormField(YearForm)) def __init__(self, **kwargs): super().__init__(**kwargs) transcript = kwargs.get('obj', None) user = kwargs.get('user', None) db = kwargs.get('db', None) user_id = None if transcript and transcript.user_id: user_id = transcript.user_id elif user: user_id = user.id if user_id and db: query = GradingService(db).get_grading_scales_query(user_id) self.grading_scale.query = query self.ap_grading_scale.query = query
class ProviderProfileForm(ModelForm, FlaskForm): class Meta: model = Provider provider_category = QuerySelectField(query_factory=lambda: ProviderCategory.query) provider_facility = QuerySelectField(query_factory=lambda: Facility.query) submit = SubmitField('Create Provider') submit_edit = SubmitField('Save Changes')
class ShipForm(ModelForm): class Meta: model = Ship date_format = '%Y-%m-%d' engine = QuerySelectField(query_factory=engine_query, allow_blank=True) builder = QuerySelectField(query_factory=builder_query, allow_blank=True) ship_type = QuerySelectField(query_factory=ship_type_query, allow_blank=True) ship_status = QuerySelectField(query_factory=ship_status_query, allow_blank=True)
class OtCompensationRateForm(ModelForm): class Meta: model = OtCompensationRate announcement = QuerySelectField(u'ประกาศ', get_label='topic', query_factory=lambda: OtPaymentAnnounce.query.all()) work_at_org = QuerySelectField(get_label='name', query_factory=lambda: Org.query.all()) work_for_org = QuerySelectField(u'หน่วยงาน', get_label='name', query_factory=lambda: Org.query.all())
class ModifyRoleForm(ModelForm): email = QuerySelectField("User", query_factory=lambda: User.query.all(), get_pk=lambda user: user.id, get_label=lambda user: user.email, validators=[DataRequired()]) role = QuerySelectField("Role", query_factory=lambda: Role.query.all(), get_pk=lambda role: role.id, get_label=lambda role: role.name, validators=[DataRequired()])
class ServiceSlotForm(ModelForm): class Meta: model = HealthServiceTimeSlot service = QuerySelectField(label='Service', validators=[Required()], widget=Select(), query_factory=lambda: HealthServiceService.query.all(), get_label='name', blank_text='Please specify the service') site = QuerySelectField(label='Site', validators=[Required()], widget=Select(), query_factory=lambda: HealthServiceSite.query.all(), get_label='name', blank_text='Please specify the site')
class SearchServiceForm(ModelForm): location = QuerySelectField('Location', validators=[InputRequired()], query_factory=lambda: Service.query, get_label='location', get_pk=lambda x: x.location) title = QuerySelectField('Title', validators=[InputRequired()], query_factory=lambda: Service.query, get_label='title', get_pk=lambda x: x.title) category = QuerySelectField('Category', validators=[InputRequired()], query_factory=lambda: Category.query)
class ModuleForm(ModelForm): class Meta: model = Module exclude = [ 'datachange_createtime', 'datachange_lasttime', 'project_id' ] field_args = { 'module_name': { 'label': u'模块名' }, 'module_testers': { 'label': u'测试人员' }, 'module_developer': { 'label': u'开发人员' }, 'module_version': { 'label': u'模块版本' }, 'module_desc': { 'label': '模块描述' }, 'is_active': { 'label': '是否可用' } } project = QuerySelectField(u'项目名称', query_factory=get_projects, get_label='project_name', allow_blank=False)
class StudentDataMixin(): foundation_year = BooleanField('Foundation year') cohort = IntegerField( 'Cohort', validators=[InputRequired(message="Cohort is required")], description='Enter the year the student joined the university. ' 'If this needs to be adjusted because the student did a foundation year, ' 'or for other reasons such as resitting years, this will be accommodated ' 'separately.') repeated_years = IntegerField( 'Number of repeat years', default=0, validators=[ InputRequired(message="Number of repeat years is required"), value_is_nonnegative ], description='Enter the number of repeat years the student has used.') programme = QuerySelectField('Degree programme', query_factory=GetActiveDegreeProgrammes, get_label=BuildDegreeProgrammeName) intermitting = BooleanField('Currently intermitting')
class EventForm(FlaskForm): event_type = SelectField(u'ประเภทกิจกรรม', choices=[('academic', u'กิจกรรมวิชาการ'), ('service', u'กิจกรรมบำเพ็ญประโยชน์'), ('ethics', u'กิจกรรมส่งเสริมจริยธรรม'), ('amusement', u'กิจกรรมนันทนาการ'), ('other', u'กิจกรรมอื่นๆ')]) title = StringField(u'ชื่อกิจกรรม', validators=[DataRequired()]) desc = TextAreaField(u'รายละเอียด') start = DateTimeField(u'เริ่ม', validators=[DataRequired()]) end = DateTimeField(u'สิ้นสุด', validators=[DataRequired()]) location = StringField(u'สถานที่', validators=[DataRequired()]) organiser = QuerySelectField(query_factory=lambda:Org.query.all(), get_label='name', label=u'ผู้จัดงาน') registration = StringField(u'ช่องทางลงทะเบียน (ใส่ link การลงทะเบียน)', validators=[DataRequired()]) upload = FileField(u'อัพโหลดภาพ') post_option = SelectField(u'ตัวเลือกเวลาที่ประกาศ', choices=[('postnow', u'ประกาศตอนนี้'), ('postlater', u'ตั้งเวลาประกาศ')], default='postlater') post_time = DateTimeField(u'เวลาที่ต้องการประกาศ', validators=[DataRequired()]) remind_option = SelectField(u'แจ้งเตือนก่อนเวลา', choices=[('none', u'ไม่เตือน'), ('30mins', u'30 นาที'), ('60mins', u'60 นาที'), ('1day', u'1 วัน')])
class EduCurriculumnRevisionForm(ModelForm): class Meta: model = EduQACurriculumnRevision curriculum = QuerySelectField(u'หลักสูตร', get_label='th_name', query_factory=lambda: EduQACurriculum.query.all() )
class SProductForm(FlaskForm): name = StringField('Product name', validators=[InputRequired(), Length(1, 64)]) images = MultipleFileField( 'Product Images', validators=[InputRequired(), FileAllowed(images, 'Images only!')]) description = TextAreaField('Description', [InputRequired()]) categories = QuerySelectMultipleField( 'Categories', validators=[InputRequired()], get_label='name', query_factory=lambda: db.session.query(MCategory).order_by('order')) availability = BooleanField(u'Is it currently available?') min_order_quantity = IntegerField('Min number of units per order e.g 1', default=1) length = FloatField('Length in numbers only e.g 0.99') weight = FloatField('Weight in numbers only e.g 0.21') height = FloatField('Height in numbers only e.g 10') price = FloatField('Price, Figures only e.g 16.99') price_currency = QuerySelectField( 'Price currency', validators=[InputRequired()], get_label='name', query_factory=lambda: db.session.query(MCurrency).order_by('name')) is_featured = BooleanField("Is Featured ?") lead_time = StringField('Delivery time') submit = SubmitField('Submit')
class ProfileForm(ModelForm): class Meta: model = Profile programs = QuerySelectField('Program', query_factory=lambda: Program.query, widget=Select()) photo_upload = FileField('Photo Upload')
class consecutiveForm(ModelForm): class Meta: model = Consecutive table_name_id = QuerySelectField( query_factory=lambda: TableRef.query.filter_by(isHidden=0).order_by( text("description asc")), get_pk=lambda a: a.name, get_label=lambda a: a.description, allow_blank=False, label='Table Name', ) type_id = QuerySelectField(query_factory=lambda: Code.getByAll(), get_pk=lambda a: a.id, get_label=lambda a: a.description, allow_blank=False, label='Code')
class ProjectRecordForm(ModelForm): class Meta: model = ProjectRecord exclude = ['approved_at', 'created_at', 'updated_at'] parent = QuerySelectField( ParentProjectRecord, query_factory=lambda: ParentProjectRecord.query.all(), allow_blank=True, blank_text='โครงการเดี่ยว', widget=Select()) fund_source = QuerySelectField( ProjectFundSource, query_factory=lambda: ProjectFundSource.query.all(), widget=Select()) contract_upload = FileField('Upload เอกสารสัญญา') final_report_upload = FileField('Upload รายงานฉบับสมบูรณ์')
class LabQualTestRecordForm(ModelForm): class Meta: model = LabQualTestRecord choice = QuerySelectField('Result choices', widget=Select(), allow_blank=False, validators=[Optional()] )
class ProjectBudgetItemOverallForm(ModelForm): class Meta: model = ProjectBudgetItemOverall sub_category = QuerySelectField( ProjectBudgetSubCategory, query_factory=lambda: ProjectBudgetSubCategory.query.all(), widget=Select())
class AliasForm(ModelForm): class Meta: model = Alias only = ["domain", "source", "destination", "is_active"] attr_errors = False domain = QuerySelectField(label="Domain", query_factory=lambda: Domain.query.all())
class OtRecordForm(ModelForm): class Meta: model = OtRecord start_datetime = DateField(u'วันที่') start_time = SelectField(u'เวลาเริ่มต้น', choices=[("None","")]+[(t,t) for t in time_slots]) end_time = SelectField(u'เวลาสิ้นสุด', choices=[("None","")]+[(t,t) for t in time_slots]) compensation = QuerySelectField(get_label='role', query_factory=lambda: OtCompensationRate.query.all())
class LabQualTestForm(ModelForm): class Meta: model = LabQualTest choice_set = QuerySelectField('Choice Set', widget=Select(), allow_blank=True, blank_text='ไม่ใช้ชุดคำตอบ', validators=[Optional()] )
class AssignMarkerForm(Form, PeriodSelectorMixinFactory(config, is_admin)): if uses_marker: # 2nd marker marker = QuerySelectField('Assign 2nd marker', query_factory=partial( MarkerQuery, live_project), get_label=BuildMarkerLabel, allow_blank=True)
class NodeSelectForm(FlaskForm): block = QuerySelectField("Block", allow_blank=True, get_label='node_name') level_1 = SelectField("Level 1", choices=[], coerce=int) level_2 = SelectField("Level 2", choices=[], coerce=int) def __init__(self, *args, **kwargs): super(NodeSelectForm, self).__init__(*args, **kwargs) self.block.query_factory = lambda: Node.query.filter_by( boiler_id=kwargs.get('boiler_id')).filter_by(parent_id=None)
class MedicineForm(ModelForm): active_substance = QuerySelectField(query_factory=lambda: db.session.query(models.ActiveSubstance), label=u"Действующее вещество", allow_blank=True, blank_text=u"Не задано") class Meta: model = models.Medicine field_args = {'descr': {'widget': TextArea()}}