2020-10-23 11:52:01 +00:00
|
|
|
from flask import current_app, flash, redirect, render_template, url_for
|
2020-10-26 10:23:19 +00:00
|
|
|
from flask_login import current_user, login_required, logout_user
|
2020-10-26 10:17:25 +00:00
|
|
|
from . import settings, tasks
|
2020-10-23 11:52:01 +00:00
|
|
|
from .forms import (ChangePasswordForm, EditGeneralSettingsForm,
|
|
|
|
EditNotificationSettingsForm)
|
|
|
|
from .. import db
|
|
|
|
from ..decorators import admin_required
|
|
|
|
from ..models import Role, User
|
|
|
|
import os
|
|
|
|
import uuid
|
|
|
|
|
|
|
|
|
|
|
|
@settings.route('/')
|
|
|
|
@login_required
|
|
|
|
def index():
|
|
|
|
return redirect(url_for('.edit_general_settings'))
|
|
|
|
|
|
|
|
|
|
|
|
@settings.route('/change_password', methods=['GET', 'POST'])
|
|
|
|
@login_required
|
|
|
|
def change_password():
|
|
|
|
form = ChangePasswordForm()
|
|
|
|
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')
|
|
|
|
|
|
|
|
|
|
|
|
@settings.route('/edit_general_settings')
|
|
|
|
@login_required
|
|
|
|
def edit_general_settings():
|
|
|
|
form = EditGeneralSettingsForm()
|
|
|
|
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 render_template('settings/edit_general_settings.html.j2',
|
|
|
|
form=form,
|
|
|
|
title='General settings')
|
|
|
|
|
|
|
|
|
|
|
|
@settings.route('/edit_notification_settings')
|
|
|
|
@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 render_template('settings/edit_notification_settings.html.j2',
|
|
|
|
form=form,
|
|
|
|
title='Notification settings')
|
|
|
|
|
|
|
|
|
|
|
|
@settings.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 deleted!')
|
|
|
|
return redirect(url_for('main.index'))
|