create settings page, full timezone support
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
19
app/app.py
19
app/app.py
@@ -3,9 +3,9 @@ from flask import Flask, render_template, redirect, url_for, request, flash
|
||||
from flask_migrate import Migrate
|
||||
from werkzeug.security import generate_password_hash, check_password_hash
|
||||
from flask_login import (LoginManager, login_user, login_required, logout_user, current_user)
|
||||
from misc import datetime, date, time, currDay
|
||||
from misc import datetime, date, time, currDay, ZoneInfo
|
||||
from db import (db, Period, Task, Event, User)
|
||||
from forms import (TaskForm, EventForm, PeriodForm, SignupForm, LoginForm)
|
||||
from forms import (TaskForm, EventForm, PeriodForm, SignupForm, LoginForm, SettingsForm)
|
||||
from create_events import createEvents
|
||||
|
||||
basedir = os.path.abspath(os.path.dirname(__file__))
|
||||
@@ -82,6 +82,19 @@ def logout():
|
||||
logout_user()
|
||||
return redirect(url_for('index'))
|
||||
|
||||
@app.route('/settings', methods=('GET', 'POST'))
|
||||
@login_required
|
||||
def settings():
|
||||
user = User.query.get_or_404(current_user.id)
|
||||
form = SettingsForm(obj=user)
|
||||
if form.validate_on_submit():
|
||||
user.realName = form.realName.data
|
||||
user.timezone = form.timezone.data
|
||||
if form.password.data != '':
|
||||
user.password = generate_password_hash(form.password.data, method='sha256')
|
||||
db.session.commit()
|
||||
return render_template('settings.html', form=form)
|
||||
|
||||
# Periods routes
|
||||
@app.route('/periods')
|
||||
@login_required
|
||||
@@ -133,7 +146,7 @@ def events():
|
||||
periods = Period.query.all()
|
||||
createEvents(db, currDay, Period, Event)
|
||||
|
||||
return render_template('events.html', events=events, periods=periods, datetime=datetime, date=date)
|
||||
return render_template('events.html', events=events, periods=periods, datetime=datetime, date=date, ZoneInfo=ZoneInfo)
|
||||
|
||||
@app.route('/event/edit/<int:event_id>/', methods=('GET', 'POST'))
|
||||
@login_required
|
||||
|
Reference in New Issue
Block a user