Ejemplo n.º 1
0
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.')
Ejemplo n.º 2
0
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.')
Ejemplo n.º 3
0
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')
Ejemplo n.º 4
0
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())
Ejemplo n.º 6
0
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',
    )
Ejemplo n.º 7
0
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')
Ejemplo n.º 8
0
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
Ejemplo n.º 9
0
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')
Ejemplo n.º 10
0
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)
Ejemplo n.º 11
0
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())
Ejemplo n.º 12
0
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()])
Ejemplo n.º 13
0
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')
Ejemplo n.º 14
0
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)
Ejemplo n.º 15
0
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)
Ejemplo n.º 16
0
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')
Ejemplo n.º 17
0
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 วัน')])
Ejemplo n.º 18
0
class EduCurriculumnRevisionForm(ModelForm):
    class Meta:
        model = EduQACurriculumnRevision
    curriculum = QuerySelectField(u'หลักสูตร',
                                   get_label='th_name',
                                   query_factory=lambda: EduQACurriculum.query.all()
                                   )
Ejemplo n.º 19
0
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')
Ejemplo n.º 20
0
class ProfileForm(ModelForm):
    class Meta:
        model = Profile

    programs = QuerySelectField('Program',
                                query_factory=lambda: Program.query,
                                widget=Select())
    photo_upload = FileField('Photo Upload')
Ejemplo n.º 21
0
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')
Ejemplo n.º 22
0
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 รายงานฉบับสมบูรณ์')
Ejemplo n.º 23
0
class LabQualTestRecordForm(ModelForm):
    class Meta:
        model = LabQualTestRecord
    choice = QuerySelectField('Result choices',
                                  widget=Select(),
                                  allow_blank=False,
                                  validators=[Optional()]
                                 )
Ejemplo n.º 24
0
class ProjectBudgetItemOverallForm(ModelForm):
    class Meta:
        model = ProjectBudgetItemOverall

    sub_category = QuerySelectField(
        ProjectBudgetSubCategory,
        query_factory=lambda: ProjectBudgetSubCategory.query.all(),
        widget=Select())
Ejemplo n.º 25
0
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())
Ejemplo n.º 26
0
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())
Ejemplo n.º 27
0
class LabQualTestForm(ModelForm):
    class Meta:
        model = LabQualTest
    choice_set = QuerySelectField('Choice Set',
                                  widget=Select(),
                                  allow_blank=True,
                                  blank_text='ไม่ใช้ชุดคำตอบ',
                                  validators=[Optional()]
                                 )
Ejemplo n.º 28
0
    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)
Ejemplo n.º 29
0
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)
Ejemplo n.º 30
0
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()}}