diff --git a/AKModel/urls.py b/AKModel/urls.py index b2cffbeae2f4e4e1d702ce0dc2333361f2ba1b98..19e0083d3242a4bb6899579b9695cb1df3f1fed4 100644 --- a/AKModel/urls.py +++ b/AKModel/urls.py @@ -12,18 +12,32 @@ api_router.register('ak', views.AKViewSet, basename='AK') api_router.register('room', views.RoomViewSet, basename='Room') api_router.register('akslot', views.AKSlotViewSet, basename='AKSlot') + +extra_paths = [] if apps.is_installed("AKScheduling"): - from AKScheduling.api import ResourcesViewSet + from AKScheduling.api import ResourcesViewSet, RoomAvailabilitiesView, EventsView + api_router.register('scheduling-resources', ResourcesViewSet, basename='scheduling-resources') + extra_paths = [ + path('api/scheduling-events/', EventsView.as_view(), name='scheduling-events'), + path('api/scheduling-room-availabilities/', RoomAvailabilitiesView.as_view(), name='scheduling-room-availabilities'), + ] + + +event_specific_paths = [ + path('api/', include(api_router.urls), name='api'), + ] +event_specific_paths.extend(extra_paths) + + app_name = 'model' + urlpatterns = [ path( '<slug:event_slug>/', - include([ - path('api/', include(api_router.urls), name='api'), - ]) + include(event_specific_paths) ), path('user/', views.UserView.as_view(), name="user"), ] diff --git a/AKScheduling/templates/admin/AKScheduling/scheduling.html b/AKScheduling/templates/admin/AKScheduling/scheduling.html index 66da8585027cef33236deabc85834c71c37ba6e0..e87aab7aa987a80d65fe0e36c2910cea61ba2ee2 100644 --- a/AKScheduling/templates/admin/AKScheduling/scheduling.html +++ b/AKScheduling/templates/admin/AKScheduling/scheduling.html @@ -84,35 +84,9 @@ datesAboveResources: true, resourceAreaHeaderContent: '{% trans "Room" %}', resources: '{% url "model:scheduling-resources-list" event_slug=event.slug %}', - events: [ - {% for slot in akslots %} - {% if slot.start %} - { - 'title': '{{ slot.ak.short_name }}', - 'description': '{{ slot.ak.name }}', - 'start': '{{ slot.start | timezone:event.timezone | date:"Y-m-d H:i:s" }}', - 'end': '{{ slot.end | timezone:event.timezone | date:"Y-m-d H:i:s" }}', - 'resourceId': '{{ slot.room.title }}', - 'backgroundColor': '{{ slot|highlight_change_colors }}', - 'borderColor': '{{ slot.ak.category.color }}', - 'url': '{% url 'submit:ak_detail' event_slug=event.slug pk=slot.ak.pk %}', - constraint: 'roomAvailable', - }, - {% endif %} - {% endfor %} - {% for a in availabilities %} - {% if a.room != None %} - { - title: '', - start: '{{ a.start | timezone:event.timezone | date:"Y-m-d H:i:s" }}', - end: '{{ a.end | timezone:event.timezone | date:"Y-m-d H:i:s" }}', - resourceId: '{{ a.room.title }}', - backgroundColor: '#28B62C', - display: 'background', - groupId: 'roomAvailable', - }, - {% endif %} - {% endfor %} + eventSources: [ + '{% url "model:scheduling-events" event_slug=event.slug %}', + '{% url "model:scheduling-room-availabilities" event_slug=event.slug %}' ], schedulerLicenseKey: 'GPL-My-Project-Is-Open-Source', dayMinWidth: 100, diff --git a/AKScheduling/views.py b/AKScheduling/views.py index 61d4e2aeb899379c29e89a1d1e0506bbe61e2bd9..c0649ab78f3bf7d57d392b4ab936419f0e0d9e7e 100644 --- a/AKScheduling/views.py +++ b/AKScheduling/views.py @@ -33,6 +33,4 @@ class SchedulingAdminView(AdminViewMixin, FilterByEventSlugMixin, ListView): context["start"] = self.event.start context["end"] = self.event.end - context["availabilities"] = Availability.objects.filter(event=self.event, room__isnull=False) - return context