wip: planning

This commit is contained in:
Michael Costa
2023-04-09 06:17:34 +11:00
parent 27a6205595
commit a76b8e034a
30 changed files with 1078 additions and 22 deletions

View File

@@ -1,9 +1,11 @@
import sys
import json
import logging
from logging import config
import yaml
from flask import Flask, render_template, redirect, request, url_for
# from thsf.backend import Backend
from thsf.backend import Backend
from thsf.schedule import Schedule
# ------------------------------------------------------------------------------
@@ -26,14 +28,15 @@ app = Flask(__name__)
# ------------------------------------------------------------------------------
app.config.from_object(__name__ + '.AppConfig')
try:
with open(app.config["CONFIG_FILENAME"], "r") as local_config_file:
with open(app.config["CONFIG_FILENAME"], mode="r", encoding="utf-8") as local_config_file:
app.local_config = yaml.load(local_config_file, Loader=yaml.SafeLoader)
app.config["SECRET_KEY"] = app.local_config["app"]["secret_key"]
app.config["LANGUAGES"] = app.local_config["app"]["languages"]
config.dictConfig(app.local_config["log"])
# backend = Backend(url=app.local_config["pretalx"]["url"],
# apiprefix=app.local_config["pretalx"]["apiprefix"],
# apikey=app.local_config["pretalx"]["apikey"])
backend = Backend(url=app.local_config["pretalx"]["url"],
apiprefix=app.local_config["pretalx"]["apiprefix"],
apikey=app.local_config["pretalx"]["apikey"])
schedule = Schedule()
except Exception as err:
logger.critical("[{}] {}".format(err.__class__, str(err)))
sys.exit(1)
@@ -54,43 +57,63 @@ def page_not_found(err):
def favicon():
return redirect(url_for('static', filename='images/favicon.png'))
@app.route('/', methods=['GET'])
def index():
return render_template("index.html")
@app.route('/planning', methods=['GET'])
def planning():
backend.get(endpoint=f"events/{app.local_config['pretalx']['event']}/schedules/{app.local_config['pretalx']['schedule']}")
return "planning"
slots = backend.get(endpoint=f"events/{app.local_config['pretalx']['event']}/schedules/{app.local_config['pretalx']['schedule']}").json()
# schedule.set_slots(slots["slots"])
return render_template("planning.html", slots=slots["slots"])
# return "toto"
# for slot in sched["slots"]:
# schedule.add_slot(slot)
# return schedule.df.to_html()
@app.route('/concerts', methods=['GET'])
def concerts():
return "concerts"
@app.route('/djsets', methods=['GET'])
def djsets():
return "djsets"
@app.route('/exhibitions', methods=['GET'])
def exhibitions():
return "exhibitions"
@app.route('/lighttalks', methods=['GET'])
def lighttalks():
return "lighttalks"
@app.route('/paneldiscussions', methods=['GET'])
def paneldiscussions():
return "paneldiscussions"
@app.route('/screenings', methods=['GET'])
def screenings():
return "screenings"
@app.route('/talks', methods=['GET'])
def talks():
return "talks"
@app.route('/workshops', methods=['GET'])
def workshops():
return "workshops"