class EvaluationRecordForm(FlaskForm): item = StringField(u'考核项目', validators=[ir(u'考核项目不能为空。')]) shiftdate = DateField(u'考核日期', format='%Y-%m-%d', validators=[ir(u'考核日期不能为空。')]) score = FloatField(u'考核得分', validators=[ir(u'考核得分不能为空。')]) submit = SubmitField(u'提交')
class ClassForm(FlaskForm): division_id = MySelectField(u'所属修学处', coerce=int) department_id = MySelectField(u'所属修学点', coerce=int) name = StringField(u'班级名称', validators=[ir(u'名称不能为空。')]) number = StringField(u'班级编号', validators=[ir(u'班级编号不能为空。')]) # 班级编号 desc = TextAreaField(u'简要描述') submit = SubmitField(u'提交') def __init__(self, *args, **kwargs): super(ClassForm, self).__init__(*args, **kwargs) self.class_ = kwargs.get('obj') division_choices = [(r.id, r.name) for r in Division.query.all()] division_choices.insert(0, (0, u'请选择所属修学处')) self.division_id.choices = division_choices if self.class_: dept_choices = [(r.id, r.name) for r in Department.query \ .filter_by(division_id=self.division_id.data).all()] else: dept_choices = [(r.id, r.name) for r in Department.query.all()] dept_choices.insert(0, (0, u'请选择所属修学点')) self.department_id.choices = dept_choices if self.class_: self.department_id.default = self.class_.department_id self.division_id.default = self.class_.department.division_id def validate_division_id(self, field): if field.data <= 0: raise ValidationError(u'请选择所属修学处。') def validate_department_id(self, field): if field.data <= 0: raise ValidationError(u'请选择所属修学点。') def validate_name(self, field): if self.class_: if field.data != self.class_.name and \ Class.query.filter_by(name=field.data).first(): raise ValidationError(u'班级名称已存在。') else: if Class.query.filter_by(name=field.data).first(): raise ValidationError(u'班级名称已存在。') def validate_number(self, field): if self.class_: if field.data != self.class_.number and \ Class.query.filter_by(number=field.data).first(): raise ValidationError(u'班级编号已存在。') else: if Class.query.filter_by(number=field.data).first(): raise ValidationError(u'班级编号已存在。')
class TrainingRecordForm(FlaskForm): name = StringField(u'培训名称', validators=[ir(u'培训名称不能为空。')]) location = StringField(u'培训地点', validators=[ir(u'培训地点不能为空。')]) content = TextAreaField(u'培训内容') remark = TextAreaField(u'备注') from_date = DateField(u'开始时间', format='%Y-%m-%d', validators=[ir(u'开始时间不能为空。')]) to_date = DateField(u'结束时间', format='%Y-%m-%d', validators=[ir(u'结束时间不能为空。')]) submit = SubmitField(u'提交')
class RegisterForm(FlaskForm): username = StringField(u'用户名', validators=[ir(u'用户名不能为空.')]) email = StringField(u'邮箱', validators=[ir(u'邮件地址不能为空.'), email(u'不是有效的Email地址')]) password = PasswordField(u'密码', validators=[ir(u'密码不能为空.')]) password_confirm = PasswordField(u'重复密码', validators=[ ir(u'重复密码不能为空.'), equal_to('password', u'两次输入的密码不一致, 请重新输入.') ]) submit = SubmitField(u'注册')
class DepartmentForm(FlaskForm): division_id = MySelectField(u'所属修学处', coerce=int) name = StringField(u'修学点名称', validators=[ir(u'名称不能为空。')]) desc = TextAreaField(u'简要描述') submit = SubmitField(u'提交') def __init__(self, *args, **kwargs): super(DepartmentForm, self).__init__(*args, **kwargs) division_choices = [ (r.id, r.name) for r in Division.query.order_by(Division.name).all() ] division_choices.insert(0, (0, u'请选择所属修学处')) self.division_id.choices = division_choices self.department = kwargs.get('obj') if self.department: self.division_id.default = self.department.division_id def validate_division_id(self, field): if field.data <= 0: raise ValidationError(u'请选择所属修学处。') def validate_name(self, field): if self.department: if field.data != self.department.name and \ Department.query.filter_by(name=field.data).first(): raise ValidationError(u'修学点名称已存在。') else: if Department.query.filter_by(name=field.data).first(): raise ValidationError(u'修学点名称已存在。')
class ChangePasswordForm(FlaskForm): old_password = PasswordField(u'旧密码', validators=[ir(u'旧密码不能为空.')]) new_password = PasswordField(u'新密码', validators=[ir(u'新密码不能为空.')]) new_password_confirm = PasswordField(u'重复新密码', validators=[ ir(u'重复新密码不能为空.'), equal_to('new_password', u'两次输入的密码不一致, 请重新输入.') ]) def __init__(self, *args, **kwargs): super(ChangePasswordForm, self).__init__(*args, **kwargs) self.user = kwargs.get('obj') def validate_old_password(self, field): if not self.user.verify_password(field.data): raise ValidationError(u'旧密码不正确.')
class SettingsUsernameForm(FlaskForm): username = StringField(u'用户名', validators=[ir(u'用户名不能为空.')]) def __init__(self, *args, **kwargs): super(SettingsUsernameForm, self).__init__(*args, **kwargs) self.user = kwargs.get('obj') def validate_username(self, field): if field.data != self.user.username and \ User.query.filter_by(username=field.data).first(): raise ValidationError(u'该用户名: %s 已经存在, 请您换一个.' % field.data)
class UploadFormExt(FlaskForm): name = StringField(u'书名:', validators=[ir(u'书名不能为空.')]) author = StringField(u'作者:', validators=[ir(u'作者不能为空.')]) book_intro = TextAreaField(u'内容简介:', validators=[ir(u'内容简介不能为空.')]) logo = FileField(u'图书封面', validators=[ FileAllowed(['jpg', 'png', 'gif', 'jpeg'], u'请上传jpg,jpeg,png,gif格式的图书封面.'), FileSizeAllowed(50 * 1024 * 1024, u'图书封面不能超过2MB.') ]) translator = StringField(u'译者:') publisher = StringField(u'出版社:') isbn = StringField(u'ISBN:') book_file = FileField(u'文件', validators=[ FileRequired(u'请选择您要上传的图书文件.'), FileAllowed(['mobi', 'epub', 'pdf', 'txt'], u'不支持的图书格式,请上传mobi,epub,pdf,txt格式的图书.'), FileSizeAllowed(50 * 1024 * 1024, u'图书大小不能超过50MB.') ]) book_edition_commnet = TextAreaField(u'版本简介') tags = StringField(u'标签') def __init__(self, *args, **kwargs): super(UploadFormExt, self).__init__(*args, **kwargs)
class DivisionForm(FlaskForm): name = StringField(u'修学处名称', validators=[ir(u'名称不能为空。')]) desc = TextAreaField(u'简要描述') submit = SubmitField(u'提交') def __init__(self, *args, **kwargs): super(DivisionForm, self).__init__(*args, **kwargs) self.division = kwargs.get('obj') def validate_name(self, field): if field.data != self.division.name and \ Division.query.filter_by(name=field.data).first(): raise ValidationError(u'修学处名称已存在。')
class SettingsPushForm(FlaskForm): email = StringField( u'邮箱', validators=[ir(u'邮箱不能为空.'), email(message=u'无效的邮箱地址.')]) def __init__(self, *args, **kwargs): super(SettingsPushForm, self).__init__(*args, **kwargs) self.user = kwargs.get('obj') def validate_email(self, field): if field.data == PushSetting.query.filter_by( user_id=self.user.id).filter_by(email=field.data).first(): raise ValidationError(u'箱邮箱已存在,请勿重复添加.')
class SettingsEmailForm(FlaskForm): email = StringField( u'登录邮箱', validators=[ir(u'登录邮箱不能为空.'), email(message=u'无效的邮箱地址.')]) def __init__(self, *args, **kwargs): super(SettingsEmailForm, self).__init__(*args, **kwargs) self.user = kwargs.get('obj') def validate_email(self, field): if field.data != self.user.email and \ User.query.filter_by(email=field.data).first(): raise ValidationError(u'该邮箱: %s 已经存在, 请您换一个.' % field.data)
class UserForm(FlaskForm): username = StringField(u'用户名', validators=[ir(u'用户名不能为空。')]) password = PasswordField(u'密码', validators=[ir(u'密码不能为空。')]) realname = StringField(u'真实姓名', validators=[ir(u'真实名或法名不能为空。')]) email = StringField(u'邮件', validators=[ir(u'邮件地址不能为空。')]) role_id = MySelectField(u'权限', coerce=int) division_id = MySelectField(u'所属修学处', coerce=int) submit = SubmitField(u'提交') def __init__(self, *args, **kwargs): super(UserForm, self).__init__(*args, **kwargs) self.user = kwargs.get('obj') role_choices = [(r.id, r.show_name) for r in Role.query.order_by(Role.name).all()] role_choices.insert(0, (0, u'请选择权限')) self.role_id.choices = role_choices division_choices = [(r.id, r.name) for r in Division.query.order_by(Division.name).all()] division_choices.insert(0, (0, u'请选择所属修学处')) self.division_id.choices = division_choices if self.user: self.role_id.default = self.user.role_id self.division_id.default = self.user.division_id def validate_role_id(self, field): if field.data <= 0: raise ValidationError(u'请选择用户权限。') def validate_username(self, field): if field.data != self.user.username and \ User.query.filter_by(username=field.data).first(): raise ValidationError(u'用户名已经存在。') def validate_email(self, field): if field.data != self.user.email and \ User.query.filter_by(email=field.data).first(): raise ValidationError(u'Email地址已经存在。')
class UploadForm(FlaskForm): book_file = FileField(u'文件', validators=[ FileRequired(u'请选择您要上传的图书文件.'), FileAllowed(set(['mobi', 'epub', 'txt', 'pdf']), u'不支持的图书格式,请上传mobi,epub,pdf,txt格式的图书3.'), FileSizeAllowed(50 * 1024 * 1024, u'图书大小不能超过50MB.') ]) douban_url = StringField(u'豆瓣链接', validators=[ ir(u'豆瓣链接不能为空,请先在右侧搜索图书,然后点击图书的“复制链接”.'), NewURL(message=u'URL无效') ]) book_edition_commnet = TextAreaField(u'版本简介') def __init__(self, *args, **kwargs): super(UploadForm, self).__init__(*args, **kwargs)
class LoginForm(FlaskForm): username = StringField(u'用户名', validators=[ir(u'用户名不能为空。')]) password = PasswordField(u'密码', validators=[ir(u'密码不能为空。')]) submit = SubmitField(u'登录')
class LoginForm(FlaskForm): username = StringField(u'用户名', validators=[ir(u'用户名不能为空.')]) password = PasswordField(u'密码', validators=[ir(u'密码不能为空.')]) verifycode = StringField(u'验证码', validators=[ir(u'请输入验证码.')]) submit = SubmitField(u'登录')
class CounselorForm(FlaskForm): username = StringField(u'姓名', validators=[ir(u'姓名不能为空。')]) religiousname = StringField(u'法名') gender = MySelectField(u'性别', coerce=unicode, choices=[(u'男', u'男'), (u'女', u'女')], validators=[]) birthday = DateField(u'生日', format='%Y-%m-%d', validators=[ir(u'生日不能为空。')]) mobile = StringField(u'手机', validators=[ ir(u'手机号码不能为空。'), regexp('^1[34578]\d{9}$', message=u'手机号码格式不正确。') ]) email = StringField(u'Email', validators=[email(u'Email格式不正确')]) division_id = MySelectField(u'修学处', coerce=int) department_id = MySelectField(u'修学点', coerce=int) class_id = MySelectField(u'班级', coerce=int) duty_id = MySelectField(u'岗位', coerce=int) submit = SubmitField(u'提交') def __init__(self, *args, **kwargs): super(CounselorForm, self).__init__(*args, **kwargs) self.counselor = kwargs.get('obj') division_choices = [(r.id, r.name) for r in Division.query.all()] division_choices.insert(0, (0, u'请选择所属修学处')) self.division_id.choices = division_choices if self.counselor: department_choices = [(r.id, r.name) for r in Department.query\ .filter_by(division_id=self.division_id.data).all()] else: department_choices = [(r.id, r.name) for r in Department.query.all()] department_choices.insert(0, (0, u'请选择所属修学点')) self.department_id.choices = department_choices if self.counselor: class_choices = [(r.id, r.name) for r in Class.query\ .filter_by(department_id=self.department_id.data).all()] else: class_choices = [(r.id, r.name) for r in Class.query.all()] class_choices.insert(0, (0, u'请选择所属班级')) self.class_id.choices = class_choices duty_choices = [(r.id, r.name) for r in Duty.query.order_by(Duty.name).all()] duty_choices.insert(0, (0, u'请选择岗位')) self.duty_id.choices = duty_choices if self.counselor: self.class_id.default = self.counselor.class_id self.department_id.default = self.counselor.class_.department_id self.division_id.default = self.counselor.class_.department.division_id self.duty_id.default = self.counselor.duty_id def validate_division_id(self, field): if field.data <= 0: raise ValidationError(u'请选择修学处。') def validate_department_id(self, field): if field.data <= 0: raise ValidationError(u'请选择修学点') def validate_class_id(self, field): if field.data <= 0: raise ValidationError(u'请选择班级') def validate_duty_id(self, field): if field.data <= 0: raise ValidationError(u'请选择岗位') def validate_username(self, field): if self.counselor: pass else: cs = db.session.query(db.func.count(Counselor.username)).filter_by( username=self.username.data).filter_by( religiousname=self.religiousname.data).scalar() if cs > 0: raise ValidationError(u'用用户+法名 重复,请改变后重新提交') def validate_email(self, field): if self.counselor: if self.counselor.email != field.data and \ Counselor.query.filter_by(email=field.data).first(): raise ValidationError(u'Email地址已存在。') else: if Counselor.query.filter_by(email=field.data).first(): raise ValidationError(u'Email地址已存在。')
class LeadClassRecordForm(FlaskForm): division_id = SelectField(u'班级所在修学处', coerce=int) department_id = SelectField(u'班级所在修学点', coerce=int) class_id = SelectField(u'所带班级', coerce=int) duty_id = SelectField(u'从事岗位', coerce=int) from_date = DateField(u'开始时间', format='%Y-%m-%d', validators=[ir(u'开始时间不能为空。')]) to_date = DateField(u'结束时间', format='%Y-%m-%d', validators=[ir(u'结束时间不能为空。')]) submit = SubmitField(u'提交') def __init__(self, *args, **kwargs): super(LeadClassRecordForm, self).__init__(*args, **kwargs) self.obj = kwargs.get('obj') division_choices = [(r.id, r.name) for r in Division.query.all()] division_choices.insert(0, (0, u'请选择所属修学处')) self.division_id.choices = division_choices if self.obj: department_choices = [(r.id, r.name) for r in Department.query \ .filter_by(division_id=self.division_id.data).all()] else: department_choices = [(r.id, r.name) for r in Department.query.all()] department_choices.insert(0, (0, u'请选择所属修学点')) self.department_id.choices = department_choices if self.obj: class_choices = [(r.id, r.name) for r in Class.query \ .filter_by(department_id=self.department_id.data).all()] else: class_choices = [(r.id, r.name) for r in Class.query.all()] class_choices.insert(0, (0, u'请选择所属班级')) self.class_id.choices = class_choices duty_choices = [(r.id, r.name) for r in Duty.query.all()] duty_choices.insert(0, (0, u'请选择带班岗位')) self.duty_id.choices = duty_choices if self.obj: self.class_id.default = self.obj.class_id self.duty_id.default = self.obj.duty_id self.department_id.default = self.obj.class_.department_id self.division_id.default = self.obj.class_.department.division_id def validate_division_id(self, field): if field.data <= 0: raise ValidationError(u'请选择班级所在修学处。') def validate_department_id(self, field): if field.data <= 0: raise ValidationError(u'请选择班级所在修学点。') def validate_class_id(self, field): if field.data <= 0: raise ValidationError(u'请选择所带班级。') def validate_duty_id(self, field): if field.data <= 0: raise ValidationError(u'请选择岗位。')