mirror of
				https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
				synced 2025-10-31 02:32:45 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			65 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from flask_wtf import FlaskForm
 | |
| from wtforms import (
 | |
|     BooleanField,
 | |
|     FileField,
 | |
|     PasswordField,
 | |
|     SelectField,
 | |
|     StringField,
 | |
|     SubmitField,
 | |
|     TextAreaField,
 | |
|     ValidationError
 | |
| )
 | |
| from wtforms.validators import (
 | |
|     DataRequired,
 | |
|     InputRequired,
 | |
|     Email,
 | |
|     EqualTo,
 | |
|     Length,
 | |
|     Regexp
 | |
| )
 | |
| from app.models import User, UserSettingJobStatusMailNotificationLevel
 | |
| from app.auth import USERNAME_REGEX
 | |
| 
 | |
| 
 | |
| class ChangePasswordForm(FlaskForm):
 | |
|     password = PasswordField('Old password', validators=[DataRequired()])
 | |
|     new_password = PasswordField(
 | |
|         'New password',
 | |
|         validators=[
 | |
|             DataRequired(),
 | |
|             EqualTo('new_password_2', message='Passwords must match')
 | |
|         ]
 | |
|     )
 | |
|     new_password_2 = PasswordField(
 | |
|         'New password confirmation',
 | |
|         validators=[
 | |
|             DataRequired(),
 | |
|             EqualTo('new_password', message='Passwords must match')
 | |
|         ]
 | |
|     )
 | |
|     submit = SubmitField()
 | |
| 
 | |
|     def __init__(self, user, *args, **kwargs):
 | |
|         super().__init__(*args, **kwargs)
 | |
|         self.user = user
 | |
| 
 | |
|     def validate_current_password(self, field):
 | |
|         if not self.user.verify_password(field.data):
 | |
|             raise ValidationError('Invalid password')
 | |
| 
 | |
| class EditNotificationSettingsForm(FlaskForm):
 | |
|     job_status_mail_notification_level = SelectField(
 | |
|         'Job status mail notification level',
 | |
|         choices=[('', 'Choose your option')],
 | |
|         validators=[DataRequired()]
 | |
|     )
 | |
|     submit = SubmitField()
 | |
| 
 | |
|     def __init__(self, *args, **kwargs):
 | |
|         super().__init__(*args, **kwargs)
 | |
|         self.job_status_mail_notification_level.choices += [
 | |
|             (x.name, x.name.capitalize())
 | |
|             for x in UserSettingJobStatusMailNotificationLevel
 | |
|         ]
 | |
| 
 |