create settings page, full timezone support
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2022-11-23 20:36:38 -05:00
parent 5c26838c50
commit 8ed6336e20
8 changed files with 58 additions and 10 deletions

View File

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