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 return value.value
elif isinstance(value, int): elif isinstance(value, int):
return self.enum_type(value).value return self.enum_type(value).value
elif isinstance(value, str):
return self.enum_type[value].value
else: else:
return TypeError() return TypeError()
@ -144,8 +146,7 @@ class ContainerColumn(db.TypeDecorator):
def process_bind_param(self, value, dialect): def process_bind_param(self, value, dialect):
if isinstance(value, self.container_type): if isinstance(value, self.container_type):
return json.dumps(value) return json.dumps(value)
elif (isinstance(value, str) elif isinstance(value, str) and isinstance(json.loads(value), self.container_type):
and isinstance(json.loads(value), self.container_type)):
return value return value
else: else:
return TypeError() return TypeError()

View File

@ -1,24 +1,7 @@
from flask_wtf import FlaskForm from flask_wtf import FlaskForm
from wtforms import ( from wtforms import PasswordField, SelectField, SubmitField, ValidationError
BooleanField, from wtforms.validators import DataRequired, EqualTo
FileField, from app.models import UserSettingJobStatusMailNotificationLevel
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): class ChangePasswordForm(FlaskForm):
@ -47,18 +30,14 @@ class ChangePasswordForm(FlaskForm):
if not self.user.verify_password(field.data): if not self.user.verify_password(field.data):
raise ValidationError('Invalid password') raise ValidationError('Invalid password')
class EditNotificationSettingsForm(FlaskForm): class EditNotificationSettingsForm(FlaskForm):
job_status_mail_notification_level = SelectField( job_status_mail_notification_level = SelectField(
'Job status mail notification level', 'Job status mail notification level',
choices=[('', 'Choose your option')], choices=[
(x.name, x.name.capitalize())
for x in UserSettingJobStatusMailNotificationLevel
],
validators=[DataRequired()] validators=[DataRequired()]
) )
submit = SubmitField() 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 flask_login import current_user, login_required
from app import db from app import db
from app.models import ProfilePrivacySettings, UserSettingJobStatusMailNotificationLevel from app.models import UserSettingJobStatusMailNotificationLevel
from . import bp from . import bp
from .forms import ( from .forms import ChangePasswordForm, EditNotificationSettingsForm
ChangePasswordForm,
EditNotificationSettingsForm
)
@bp.route('', methods=['GET', 'POST']) @bp.route('', methods=['GET', 'POST'])
@ -20,22 +17,20 @@ def settings():
data=current_user.to_json_serializeable(), data=current_user.to_json_serializeable(),
prefix='edit-notification-settings-form' prefix='edit-notification-settings-form'
) )
# region handle change_password_form POST
if change_password_form.submit.data and change_password_form.validate(): if change_password_form.submit.data and change_password_form.validate():
current_user.password = change_password_form.new_password.data current_user.password = change_password_form.new_password.data
db.session.commit() db.session.commit()
flash('Your changes have been saved') flash('Your changes have been saved')
return redirect(url_for('.index')) return redirect(url_for('.settings'))
# endregion handle change_password_form POST
if (edit_notification_settings_form.submit # region handle edit_notification_settings_form POST
and edit_notification_settings_form.validate()): if edit_notification_settings_form.submit and edit_notification_settings_form.validate():
current_user.setting_job_status_mail_notification_level = ( current_user.setting_job_status_mail_notification_level = edit_notification_settings_form.job_status_mail_notification_level.data
UserSettingJobStatusMailNotificationLevel[
edit_notification_settings_form.job_status_mail_notification_level.data # noqa
]
)
db.session.commit() db.session.commit()
flash('Your changes have been saved') flash('Your changes have been saved')
return redirect(url_for('.settings')) return redirect(url_for('.settings'))
# endregion handle edit_notification_settings_form POST
return render_template( return render_template(
'settings/settings.html.j2', 'settings/settings.html.j2',
change_password_form=change_password_form, change_password_form=change_password_form,