From e38829cf313e6a14bbc096b1918e2541964882dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20H=C3=A4ttasch?= <benjamin.haettasch@fachschaft.informatik.tu-darmstadt.de> Date: Thu, 1 Dec 2022 22:49:16 +0100 Subject: [PATCH 1/2] Fix room adding form Make sure calendar is only loaded when event was already set --- .../admin/AKModel/room_change_form.html | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/AKModel/templates/admin/AKModel/room_change_form.html b/AKModel/templates/admin/AKModel/room_change_form.html index aac03532..a8db3671 100644 --- a/AKModel/templates/admin/AKModel/room_change_form.html +++ b/AKModel/templates/admin/AKModel/room_change_form.html @@ -7,18 +7,20 @@ {% block extrahead %} {{ block.super }} {% bootstrap_javascript jquery='slim' %} - {% include "AKModel/load_fullcalendar_availabilities.html" %} + {% if original.event %} + {% include "AKModel/load_fullcalendar_availabilities.html" %} - <script> - {% get_current_language as LANGUAGE_CODE %} + <script> + {% get_current_language as LANGUAGE_CODE %} - document.addEventListener('DOMContentLoaded', function () { - createAvailabilityEditors( - '{{ original.event.timezone }}', - '{{ LANGUAGE_CODE }}', - '{{ original.event.start | timezone:original.event.timezone | date:"Y-m-d H:i:s" }}', - '{{ original.event.end | timezone:original.event.timezone | date:"Y-m-d H:i:s" }}' - ); - }); - </script> + document.addEventListener('DOMContentLoaded', function () { + createAvailabilityEditors( + '{{ original.event.timezone }}', + '{{ LANGUAGE_CODE }}', + '{{ original.event.start | timezone:original.event.timezone | date:"Y-m-d H:i:s" }}', + '{{ original.event.end | timezone:original.event.timezone | date:"Y-m-d H:i:s" }}' + ); + }); + </script> + {% endif %} {% endblock %} -- GitLab From 1bacaa705cc5f8c0512c27179d5000e2d9506e51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20H=C3=A4ttasch?= <benjamin.haettasch@fachschaft.informatik.tu-darmstadt.de> Date: Fri, 2 Dec 2022 20:25:55 +0100 Subject: [PATCH 2/2] Improve room import for virtual rooms --- AKModel/views.py | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/AKModel/views.py b/AKModel/views.py index dde2d17f..973ef0c8 100644 --- a/AKModel/views.py +++ b/AKModel/views.py @@ -586,25 +586,32 @@ class RoomBatchCreationView(EventSlugMixin, IntermediateAdminView): def form_valid(self, form): from django.apps import apps - VIRTUAL_ROOMS_SUPPORT = False - if apps.is_installed("AKOnline"): - VIRTUAL_ROOMS_SUPPORT = True - from AKOnline.models import VirtualRoom - + virtual_rooms_support = False created_count = 0 rooms_raw_dict: csv.DictReader = form.cleaned_data["rooms"] + + if apps.is_installed("AKOnline") and "url" in rooms_raw_dict.fieldnames: + virtual_rooms_support = True + from AKOnline.models import VirtualRoom + for raw_room in rooms_raw_dict: name = raw_room["name"] location = raw_room["location"] if "location" in rooms_raw_dict.fieldnames else "" capacity = raw_room["capacity"] if "capacity" in rooms_raw_dict.fieldnames else -1 - url = raw_room["url"] if "url" in rooms_raw_dict.fieldnames else "" try: - if VIRTUAL_ROOMS_SUPPORT and url != "": - VirtualRoom.objects.create(name=name, location=location, capacity=capacity, url=url, event=self.event) + if virtual_rooms_support and raw_room["url"] != "": + VirtualRoom.objects.create(name=name, + location=location, + capacity=capacity, + url=raw_room["url"], + event=self.event) else: - Room.objects.create(name=name, location=location, capacity=capacity, event=self.event) + Room.objects.create(name=name, + location=location, + capacity=capacity, + event=self.event) created_count += 1 except django.db.Error as e: messages.add_message(self.request, messages.WARNING, -- GitLab