Skip to content
Snippets Groups Projects
Commit 945411f2 authored by Benjamin Hättasch's avatar Benjamin Hättasch Committed by Nadja Geisler
Browse files

Scheduling: Load resources dynamically

parent 9164082d
No related branches found
No related tags found
No related merge requests found
from django.apps import apps
from django.urls import include, path from django.urls import include, path
from rest_framework.routers import DefaultRouter from rest_framework.routers import DefaultRouter
...@@ -11,6 +12,10 @@ api_router.register('ak', views.AKViewSet, basename='AK') ...@@ -11,6 +12,10 @@ api_router.register('ak', views.AKViewSet, basename='AK')
api_router.register('room', views.RoomViewSet, basename='Room') api_router.register('room', views.RoomViewSet, basename='Room')
api_router.register('akslot', views.AKSlotViewSet, basename='AKSlot') api_router.register('akslot', views.AKSlotViewSet, basename='AKSlot')
if apps.is_installed("AKScheduling"):
from AKScheduling.api import ResourcesViewSet
api_router.register('scheduling-resources', ResourcesViewSet, basename='scheduling-resources')
app_name = 'model' app_name = 'model'
urlpatterns = [ urlpatterns = [
......
from rest_framework import viewsets, permissions, mixins, serializers
from AKModel.models import Room
from AKModel.views import EventSlugMixin
class ResourceSerializer(serializers.ModelSerializer):
class Meta:
model = Room
fields = ['id', 'title']
title = serializers.SerializerMethodField('transform_title')
def transform_title(self, obj):
if obj.capacity > 0:
return f"{obj.title} [{obj.capacity}]"
return obj.title
class ResourcesViewSet(EventSlugMixin, mixins.RetrieveModelMixin, mixins.ListModelMixin, viewsets.GenericViewSet):
permission_classes = (permissions.DjangoModelPermissionsOrAnonReadOnly,)
serializer_class = ResourceSerializer
def get_queryset(self):
return Room.objects.filter(event=self.event)
...@@ -83,14 +83,7 @@ ...@@ -83,14 +83,7 @@
eventColor: '#127ba3', eventColor: '#127ba3',
datesAboveResources: true, datesAboveResources: true,
resourceAreaHeaderContent: '{% trans "Room" %}', resourceAreaHeaderContent: '{% trans "Room" %}',
resources: [ resources: '{% url "model:scheduling-resources-list" event_slug=event.slug %}',
{% for room in rooms %}
{
'id': '{{ room.title }}',
'title': '{{ room.title }}',
},
{% endfor %}
],
events: [ events: [
{% for slot in akslots %} {% for slot in akslots %}
{% if slot.start %} {% if slot.start %}
......
...@@ -33,8 +33,6 @@ class SchedulingAdminView(AdminViewMixin, FilterByEventSlugMixin, ListView): ...@@ -33,8 +33,6 @@ class SchedulingAdminView(AdminViewMixin, FilterByEventSlugMixin, ListView):
context["start"] = self.event.start context["start"] = self.event.start
context["end"] = self.event.end context["end"] = self.event.end
context["rooms"] = self.event.room_set.all()
context["availabilities"] = Availability.objects.filter(event=self.event, room__isnull=False) context["availabilities"] = Availability.objects.filter(event=self.event, room__isnull=False)
return context return context
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment