|
@@ -3,6 +3,7 @@
|
|
|
import requests
|
|
|
import json
|
|
|
import datetime
|
|
|
+import pathlib
|
|
|
from jinja2 import Environment, FileSystemLoader
|
|
|
from flask import Flask
|
|
|
from flask import render_template, request
|
|
@@ -10,7 +11,8 @@ from flask import render_template, request
|
|
|
app = Flask(__name__)
|
|
|
|
|
|
gancio_instance = 'balotta.org'
|
|
|
-template_name = 'simple'
|
|
|
+templates = [x.stem for x in pathlib.Path('./templates/flyers/').glob("*.html")]
|
|
|
+default_template = 'simple'
|
|
|
events_ep = f'https://{gancio_instance}/api/events'
|
|
|
|
|
|
def day2giorno(day):
|
|
@@ -48,14 +50,20 @@ def fetch_events(api_endpoint):
|
|
|
@app.route("/")
|
|
|
def main():
|
|
|
events = fetch_events(events_ep)
|
|
|
- return render_template('index.html', events=events)
|
|
|
+ return render_template('index.html',
|
|
|
+ events=events,
|
|
|
+ templates=templates,
|
|
|
+ default_template=default_template)
|
|
|
|
|
|
|
|
|
@app.route("/flyer")
|
|
|
def flyer():
|
|
|
relevant_events = request.args.getlist('events', type=int)
|
|
|
+ template = request.args.get("template", default=default_template, type=str)
|
|
|
+ if template not in templates:
|
|
|
+ return "template not found", 404
|
|
|
events = fetch_events(events_ep)
|
|
|
events = [ e for e in events if e['id'] in relevant_events ]
|
|
|
- return render_template(f'flyers/{template_name}.html', events=events)
|
|
|
+ return render_template(f'flyers/{template}.html', events=events)
|
|
|
|
|
|
|