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
1 merge request!53Drag and drop based plan for scheduling
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