Codestyle enhancements

This commit is contained in:
Patrick Jentsch 2022-12-22 16:02:12 +01:00
parent 320811279c
commit 980b8cc1d3
3 changed files with 21 additions and 46 deletions

View File

@ -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()

View File

@ -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
]

View File

@ -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,