Commit Graph

29 Commits

Author SHA1 Message Date
Marc Koch ef1cdb0441
👔 filter calendars when searching for alternatives
Filter out calendars which are:
- not administrated by the current user
- not set as an alternative to the calendar of the declined event
2025-08-20 13:47:50 +02:00
Marc Koch 34f48c7482
🐛 fix: other bookings displayed as declined 2025-08-20 10:31:51 +02:00
Marc Koch 46e62a94ed
introduce max search horizon config
Adds `MAX_SEARCH_HORIZON` environment variable to control the
maximum range of days for search operations.

Splits longer search periods into multiple requests, preventing
potential performance issues or timeouts with large datasets.
2025-08-19 17:04:24 +02:00
Marc Koch 13dc40302c
🥅 catch errors when searching for calendars 2025-08-19 15:30:07 +02:00
Marc Koch 2aed79e796
🐛 do not identify cacelled events as overlapping 2025-08-19 15:18:11 +02:00
Marc Koch 16984bdbb4
🔊 improve logging 2025-08-19 14:43:01 +02:00
Marc Koch bab3ef6ec0
🐛 fix bug in regex expression for priority tokens 2025-08-19 14:42:53 +02:00
Marc Koch 4752e9d555
♻️ move recurring event canellation into method 2025-08-19 13:00:01 +02:00
Marc Koch 037cfa0d5e
Adds HTML email template support
Enables the use of HTML email templates, providing richer formatting and
improved user experience.

This includes:
- Modifying the EmailTemplate model to include both plaintext and HTML fields.
- Updating the clear_bookings script to use the HTML template when available,
  for sending notifications.
- Adds the possibility to add alternative calendars to the calendar model.
- Adds the possibility to consider calendar alternatives when clearing bookings.
- Provides a list of alternative rooms to the email template.

The available template variables were also updated in the README.
2025-08-18 12:35:13 +02:00
Marc Koch 66cb2f01f8
🩹 round event end time to nearest minute
Ensures that the event end time is rounded down to the nearest minute.

This prevents potential collision issues where events start and end at
very close times (seconds/milliseconds), especially when creating new events.
2025-07-16 15:00:30 +02:00
Marc Koch f7755cd61d
🐛 fix: cannot decline invitation for shared calendar
If the principal of the calendar does not own it, because it is a shared calendar, invitations cannot be declined because the principal is not invited. This fix causes the appointment to be canceled in the calendar instead.
2025-07-15 13:03:42 +02:00
Marc Koch ee4ff38f13
🐛 fix: remove hardcoded mailserver
Oops 🤦‍♂️
2025-07-15 11:03:11 +02:00
Marc Koch 76c2bf1631
♻️ reorders imports 2025-07-14 20:15:56 +02:00
Marc Koch e3e9ac3c58
💄show duration in event list display 2025-07-14 20:13:31 +02:00
Marc Koch 14dd63ad72
🐛 fix: declined events not cancelled
Events were declined but not cancelled what lead to a loop of allready declined events getting declined again in every run.
2025-07-14 19:54:20 +02:00
Marc Koch f053f4456f
💄 improve list display of calendars amd events
Enhances the calendar admin interface by adding more relevant
fields to the list display, such as associated users,
auto-clearing settings, and the email template used.

Also improves the event admin by including calendar, creation
date, start, and end times to the list display,
and orders events by calendar in addition to start and end times.
2025-07-14 19:52:51 +02:00
Marc Koch 3fa2763ebf
🐛 fix: corrects placement of cancellation type assignment 2025-07-14 16:40:32 +02:00
Marc Koch 4bd038bf10
adds prioritized event support
This commit introduces support for prioritized events, allowing certain events to take precedence over others during overlap resolution.

This is achieved by:
- Introducing a `PriorityEventToken` model to manage tokens for priority events.
- Modifying the overlap resolution logic to skip overlaps if a prioritized event is involved.
- Updating email templates to include information about prioritization and overlap events.
- Adding a check for priority tokens in event descriptions.
2025-07-14 15:41:04 +02:00
Marc Koch 67ec6ccf5e
implement clearing of bookings 2025-07-10 19:58:12 +02:00
Marc Koch e6ab41594d
add automatic event overlap clearing
Implements a mechanism to automatically clear overlapping events in user calendars.

Introduces a new model for email templates, enabling customizable notifications to event organizers when their events are declined due to overlaps.

Adds a background task to find overlapping events based on calendar settings and automatically cancels the later event, sending a notification email to the organizer, if configured.
2025-06-25 17:01:52 +02:00
Marc Koch cf95da9d81
🐛 fix info endpoint 2025-06-18 17:02:15 +02:00
Marc Koch 6f03a47129
🩹 use csrf_exempt decorator instead of CSRF_TRUSTED_ORIGINS 2025-06-18 17:02:14 +02:00
Marc Koch 828b4096a3
♻️ renamed variables and environment variables
Also introduces an env variable to set the DJANGO_DATA_DIR
2025-06-18 17:02:13 +02:00
Marc Koch 3e5e53a929
🐛 show short event_id in description 2025-04-25 17:57:08 +02:00
Marc Koch 4a37e61265
add csrf env settion 2025-04-25 17:33:35 +02:00
Marc Koch 1a2e88948a
separate data from code 2025-04-25 17:06:49 +02:00
Marc Koch 244c9f376e
display app version 2025-04-25 16:39:10 +02:00
Marc Koch 0e2e80529c
provide event_id in event description 2025-04-25 16:38:19 +02:00
Marc Koch fad27fe7f0
🎉 Initial commit 2025-01-05 22:10:07 +01:00