Skip to content

Commit 6fe6450

Browse files
committed
Přidání stránky s kalendářem.
1 parent 65a2ae7 commit 6fe6450

2 files changed

Lines changed: 22 additions & 1 deletion

File tree

naucse/routes.py

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,12 @@
33
import calendar
44

55
from flask import Flask, render_template, url_for, send_from_directory
6-
from flask import abort, redirect
6+
from flask import abort, redirect, Response
77
from jinja2 import StrictUndefined
88
from jinja2.exceptions import TemplateNotFound
99
from werkzeug.local import LocalProxy
1010
from pathlib import Path
11+
import ics
1112

1213
from naucse import models
1314
from naucse.urlconverters import register_url_converters
@@ -325,3 +326,22 @@ def course_calendar(course):
325326
months=list_months(course.start_date,
326327
course.end_date),
327328
calendar=calendar.Calendar())
329+
330+
331+
@app.route('/<course:course>/calendar.ics')
332+
def course_calendar_ics(course):
333+
if not course.start_date:
334+
abort(404)
335+
calendar = ics.Calendar()
336+
for session in course.sessions.values():
337+
combined = datetime.datetime.combine(session.date, datetime.time())
338+
cal_event = ics.Event(
339+
name = session.title,
340+
begin = combined,
341+
uid = url_for("session_coverpage",
342+
course=course,
343+
session=session),
344+
)
345+
cal_event.make_all_day()
346+
calendar.events.append(cal_event)
347+
return Response(str(calendar), mimetype="text/calendar")

requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ ansi2html
33
elsa>=0.1.3
44
flask
55
frozen-flask
6+
ics
67
ipython
78
jinja2
89
jupyter_client

0 commit comments

Comments
 (0)