Files
propedal-planner/app.py
2022-06-14 13:55:26 +02:00

74 lines
2.1 KiB
Python

import logging
import json
from flask import Flask, render_template, g, request, url_for, flash, redirect
from werkzeug.exceptions import abort
import calendar_interface
import db
import auth
app = Flask(__name__)
app.config['SECRET_KEY'] = '\xacI4\x077\x16?Q\xb4")\xdb\x066\x95\x11i\x0b\x0c&\xb6rP\''
app.config['SECURITY_PASSWORD_SALT'] = '>\xe3\x9bz\xfd\xbc[\xe22\xcfK\xca\x88!\xd8\xd5,\xd0\x95\x0c\x02\xad\xfa\x9d'
app.teardown_appcontext(db.close_db)
app.cli.add_command(db.init_db_command)
app.register_blueprint(auth.bp)
@app.route('/')
@auth.login_required
def index():
events = calendar_interface.get_future_calendar_events().get("value")
calendar_interface.convert_datetimes(events)
if events is None:
abort(404)
else:
return render_template('index.html', events=events, user=g.user)
# @app.route('/<int:event_id>')
# def post(post_id):
# post = get_post(post_id)
# return render_template('show_event.html', post=post)
@app.route('/<id>/attend')
@auth.login_required
def attend(id):
event = calendar_interface.get_calendar_event(id)
user = g.user["username"]
email = g.user["email"]
# only update attendees, now the whole event
data = {}
data["attendees"] = event["attendees"]
logging.info("attempting to attend event with user: %s %s", email, user)
calendar_interface.add_attendee(data, user, email)
logging.info("Sending data for attendee update:\n%s", json.dumps(data, indent=2))
calendar_interface.update_calendar_event(id, data)
return redirect(url_for('index'))
@app.route('/<id>/unattend')
@auth.login_required
def unattend(id):
event = calendar_interface.get_calendar_event(id)
user = g.user["username"]
email = g.user["email"]
# only update attendees, now the whole event
data = {}
data["attendees"] = event["attendees"]
logging.info("attempting to unattend event with user: %s %s", email, user)
calendar_interface.delte_attendee(data, email)
logging.info("Sending data for attendee update:\n%s", json.dumps(data, indent=2))
calendar_interface.update_calendar_event(id, data)
return redirect(url_for('index'))