From 980b8cc1d34452d1f8e0e970fba834e63fba1fec Mon Sep 17 00:00:00 2001
From: Patrick Jentsch <p.jentsch@uni-bielefeld.de>
Date: Thu, 22 Dec 2022 16:02:12 +0100
Subject: [PATCH] Codestyle enhancements

---
 app/models.py          |  5 +++--
 app/settings/forms.py  | 37 ++++++++-----------------------------
 app/settings/routes.py | 25 ++++++++++---------------
 3 files changed, 21 insertions(+), 46 deletions(-)

diff --git a/app/models.py b/app/models.py
index 8ab09e6d..38c44020 100644
--- a/app/models.py
+++ b/app/models.py
@@ -127,6 +127,8 @@ class IntEnumColumn(db.TypeDecorator):
             return value.value
         elif isinstance(value, int):
             return self.enum_type(value).value
+        elif isinstance(value, str):
+            return self.enum_type[value].value
         else:
             return TypeError()
 
@@ -144,8 +146,7 @@ class ContainerColumn(db.TypeDecorator):
     def process_bind_param(self, value, dialect):
         if isinstance(value, self.container_type):
             return json.dumps(value)
-        elif (isinstance(value, str)
-                  and isinstance(json.loads(value), self.container_type)):
+        elif isinstance(value, str) and isinstance(json.loads(value), self.container_type):
             return value
         else:
             return TypeError()
diff --git a/app/settings/forms.py b/app/settings/forms.py
index 55279927..e90d9dda 100644
--- a/app/settings/forms.py
+++ b/app/settings/forms.py
@@ -1,24 +1,7 @@
 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
+from wtforms import PasswordField, SelectField, SubmitField, ValidationError
+from wtforms.validators import DataRequired, EqualTo
+from app.models import UserSettingJobStatusMailNotificationLevel
 
 
 class ChangePasswordForm(FlaskForm):
@@ -47,18 +30,14 @@ class ChangePasswordForm(FlaskForm):
         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')],
+        choices=[
+            (x.name, x.name.capitalize())
+            for x in UserSettingJobStatusMailNotificationLevel
+        ],
         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
-        ]
-
diff --git a/app/settings/routes.py b/app/settings/routes.py
index 754a98cd..a07869b8 100644
--- a/app/settings/routes.py
+++ b/app/settings/routes.py
@@ -1,12 +1,9 @@
-from flask import abort, flash, redirect, render_template, url_for
+from flask import flash, redirect, render_template, url_for
 from flask_login import current_user, login_required
 from app import db
-from app.models import ProfilePrivacySettings, UserSettingJobStatusMailNotificationLevel
+from app.models import UserSettingJobStatusMailNotificationLevel
 from . import bp
-from .forms import (
-    ChangePasswordForm,
-    EditNotificationSettingsForm
-)
+from .forms import ChangePasswordForm, EditNotificationSettingsForm
 
 
 @bp.route('', methods=['GET', 'POST'])
@@ -20,22 +17,20 @@ def settings():
         data=current_user.to_json_serializeable(),
         prefix='edit-notification-settings-form'
     )
+    # region handle change_password_form POST
     if change_password_form.submit.data and change_password_form.validate():
         current_user.password = change_password_form.new_password.data
         db.session.commit()
         flash('Your changes have been saved')
-        return redirect(url_for('.index'))
-    
-    if (edit_notification_settings_form.submit
-            and edit_notification_settings_form.validate()):
-        current_user.setting_job_status_mail_notification_level = (
-            UserSettingJobStatusMailNotificationLevel[
-                edit_notification_settings_form.job_status_mail_notification_level.data  # noqa
-            ]
-        )
+        return redirect(url_for('.settings'))
+    # endregion handle change_password_form POST
+    # region handle edit_notification_settings_form POST
+    if edit_notification_settings_form.submit and edit_notification_settings_form.validate():
+        current_user.setting_job_status_mail_notification_level = edit_notification_settings_form.job_status_mail_notification_level.data
         db.session.commit()
         flash('Your changes have been saved')
         return redirect(url_for('.settings'))
+    # endregion handle edit_notification_settings_form POST
     return render_template(
         'settings/settings.html.j2',
         change_password_form=change_password_form,
-- 
GitLab