mirror of
				https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
				synced 2025-11-03 20:02:47 +00:00 
			
		
		
		
	A lot of database changes and add options to change notification level
This commit is contained in:
		@@ -1,6 +1,6 @@
 | 
			
		||||
from flask_wtf import FlaskForm
 | 
			
		||||
from wtforms import (BooleanField, PasswordField, StringField, SubmitField,
 | 
			
		||||
                     ValidationError)
 | 
			
		||||
from wtforms import (BooleanField, PasswordField, SelectField, StringField,
 | 
			
		||||
                     SubmitField, ValidationError)
 | 
			
		||||
from wtforms.validators import DataRequired, Email, EqualTo
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -11,6 +11,20 @@ class EditEmailForm(FlaskForm):
 | 
			
		||||
 | 
			
		||||
class EditGeneralSettingsForm(FlaskForm):
 | 
			
		||||
    dark_mode = BooleanField('Dark mode')
 | 
			
		||||
    job_status_mail_notifications = SelectField(
 | 
			
		||||
        'Job status mail notifications',
 | 
			
		||||
        choices=[('', 'Choose your option'),
 | 
			
		||||
                 ('all', 'Notify on all status changes'),
 | 
			
		||||
                 ('end', 'Notify only when a job ended'),
 | 
			
		||||
                 ('none', 'No status update notifications')],
 | 
			
		||||
        validators=[DataRequired()])
 | 
			
		||||
    job_status_site_notifications = SelectField(
 | 
			
		||||
        'Job status site notifications',
 | 
			
		||||
        choices=[('', 'Choose your option'),
 | 
			
		||||
                 ('all', 'Notify on all status changes'),
 | 
			
		||||
                 ('end', 'Notify only when a job ended'),
 | 
			
		||||
                 ('none', 'No status update notifications')],
 | 
			
		||||
        validators=[DataRequired()])
 | 
			
		||||
    save_settings = SubmitField('Save settings')
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -11,8 +11,7 @@ from .. import db
 | 
			
		||||
def settings():
 | 
			
		||||
    edit_email_form = EditEmailForm(prefix='edit-email-form')
 | 
			
		||||
    edit_general_settings_form = EditGeneralSettingsForm(
 | 
			
		||||
        prefix='edit-general-settings-form'
 | 
			
		||||
    )
 | 
			
		||||
        prefix='edit-general-settings-form')
 | 
			
		||||
    edit_password_form = EditPasswordForm(prefix='edit-password-form',
 | 
			
		||||
                                          user=current_user)
 | 
			
		||||
    # Check if edit_email_form is submitted and valid
 | 
			
		||||
@@ -25,7 +24,12 @@ def settings():
 | 
			
		||||
    # Check if edit_settings_form is submitted and valid
 | 
			
		||||
    if (edit_general_settings_form.save_settings.data
 | 
			
		||||
            and edit_general_settings_form.validate_on_submit()):
 | 
			
		||||
        current_user.setting_dark_mode = edit_general_settings_form.dark_mode.data
 | 
			
		||||
        current_user.setting_dark_mode = \
 | 
			
		||||
            edit_general_settings_form.dark_mode.data
 | 
			
		||||
        current_user.setting_job_status_mail_notifications = \
 | 
			
		||||
            edit_general_settings_form.job_status_mail_notifications.data
 | 
			
		||||
        current_user.setting_job_status_site_notifications = \
 | 
			
		||||
            edit_general_settings_form.job_status_site_notifications.data
 | 
			
		||||
        db.session.add(current_user)
 | 
			
		||||
        db.session.commit()
 | 
			
		||||
        flash('Your settings have been updated.')
 | 
			
		||||
@@ -41,6 +45,10 @@ def settings():
 | 
			
		||||
    # If no form is submitted or valid, fill out fields with current values
 | 
			
		||||
    edit_email_form.email.data = current_user.email
 | 
			
		||||
    edit_general_settings_form.dark_mode.data = current_user.setting_dark_mode
 | 
			
		||||
    edit_general_settings_form.job_status_site_notifications.data = \
 | 
			
		||||
        current_user.setting_job_status_site_notifications
 | 
			
		||||
    edit_general_settings_form.job_status_mail_notifications.data = \
 | 
			
		||||
        current_user.setting_job_status_mail_notifications
 | 
			
		||||
    return render_template(
 | 
			
		||||
        'profile/settings.html.j2',
 | 
			
		||||
        edit_email_form=edit_email_form,
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user