Feature: Adjust/Hide Events/Courses
This is a rebase of #144 It is now possible to deselect specific events/courses after providing calendar link URL to CalendarProxy.
As discussed in #144, there are multiple ways to approach the filtering. It can be done by tag, by the full course name or the X-CO-RECURRINGID included in the event series.
For now, the full course name is used.
It is planned to also provide a feature for adjusting start- and endtimes of events. I'm unsure yet if this should be included here or in a followup PR.
I think it is a good idea to include the time adjustment feature in this PR since a change in the /api/courses endpoint might be required. In fact, I already changed the endpoint for this manner:
In my opinion in makes most sense to adjust the time of an event/course per recurrence-id. Example: A course has lectures on mondays and wednesdays every week. But the lecture on wednesdays always start 15 minutes later compared to what is originally set in the calendar. For this the user can take the recurrence id of the wednesdays lectures and apply a 15-minute offset.
For now the /api/courses endpoint is adjusted in a way so that the recurrences can be displayed.
Courses can now be adjusted by selecting/setting an offset per "recurrence"/"reoccurrence". The offset value is also appended to the description of every event that is within that recurrence-series (has the same
X-CO-RECURRINGID).
With the adjustments from above, this is what the calendar would look like: The entries in white are from the adjusted iCal feed. The ones in red are just for reference. This is from an iCal feed without adjustments.
I have also added a test, validating the functionality of time adjustments via offsets.