mirror of
https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
synced 2024-12-25 02:44:18 +00:00
76 lines
2.8 KiB
Python
76 lines
2.8 KiB
Python
from flask import flash, redirect, render_template, url_for
|
|
from flask_login import current_user, login_required, logout_user
|
|
from . import bp, tasks
|
|
from .forms import (ChangePasswordForm, EditGeneralSettingsForm,
|
|
EditNotificationSettingsForm)
|
|
from .. import db
|
|
|
|
|
|
@bp.route('/')
|
|
@login_required
|
|
def index():
|
|
return redirect(url_for('.edit_general_settings'))
|
|
|
|
|
|
@bp.route('/change_password', methods=['GET', 'POST'])
|
|
@login_required
|
|
def change_password():
|
|
form = ChangePasswordForm(current_user._get_current_object())
|
|
if form.validate_on_submit():
|
|
current_user.password = form.new_password.data
|
|
db.session.commit()
|
|
flash('Your password has been updated.')
|
|
return redirect(url_for('.change_password'))
|
|
return render_template('settings/change_password.html.j2',
|
|
form=form, title='Change password')
|
|
|
|
|
|
@bp.route('/edit_general_settings', methods=['GET', 'POST'])
|
|
@login_required
|
|
def edit_general_settings():
|
|
form = EditGeneralSettingsForm(current_user._get_current_object())
|
|
if form.validate_on_submit():
|
|
current_user.email = form.email.data
|
|
current_user.setting_dark_mode = form.dark_mode.data
|
|
current_user.username = form.username.data
|
|
db.session.commit()
|
|
flash('Your changes have been saved.')
|
|
return redirect(url_for('.edit_general_settings'))
|
|
form.dark_mode.data = current_user.setting_dark_mode
|
|
form.email.data = current_user.email
|
|
form.username.data = current_user.username
|
|
return render_template('settings/edit_general_settings.html.j2',
|
|
form=form, title='General settings')
|
|
|
|
|
|
@bp.route('/edit_notification_settings', methods=['GET', 'POST'])
|
|
@login_required
|
|
def edit_notification_settings():
|
|
form = EditNotificationSettingsForm()
|
|
if form.validate_on_submit():
|
|
current_user.setting_job_status_mail_notifications = \
|
|
form.job_status_mail_notifications.data
|
|
current_user.setting_job_status_site_notifications = \
|
|
form.job_status_site_notifications.data
|
|
db.session.commit()
|
|
flash('Your changes have been saved.')
|
|
return redirect(url_for('.edit_notification_settings'))
|
|
form.job_status_mail_notifications.data = \
|
|
current_user.setting_job_status_mail_notifications
|
|
form.job_status_site_notifications.data = \
|
|
current_user.setting_job_status_site_notifications
|
|
return render_template('settings/edit_notification_settings.html.j2',
|
|
form=form, title='Notification settings')
|
|
|
|
|
|
@bp.route('/delete')
|
|
@login_required
|
|
def delete():
|
|
"""
|
|
View to delete current_user and all associated data.
|
|
"""
|
|
tasks.delete_user(current_user.id)
|
|
logout_user()
|
|
flash('Your account has been marked for deletion!')
|
|
return redirect(url_for('main.index'))
|