feat: Add event co-managers permissions and allow managers/admins to signup guests on skill-restricted shifts

This commit is contained in:
Richard
2026-07-31 11:06:47 +02:00
parent 821e14fcab
commit e2b311b634
23 changed files with 589 additions and 485 deletions
+9
View File
@@ -1,5 +1,9 @@
from rest_framework import serializers
from django.contrib.auth import get_user_model
from .models import Skill, Event, TaskArea, Shift, ShiftSignup, EventTemplate
from apps.users.serializers import UserSerializer
User = get_user_model()
class SkillSerializer(serializers.ModelSerializer):
class Meta:
@@ -65,12 +69,17 @@ class TaskAreaSerializer(serializers.ModelSerializer):
class EventSerializer(serializers.ModelSerializer):
task_areas = TaskAreaSerializer(many=True, read_only=True)
created_by_name = serializers.SerializerMethodField()
co_managers = UserSerializer(many=True, read_only=True)
co_manager_ids = serializers.PrimaryKeyRelatedField(
queryset=User.objects.all(), many=True, write_only=True, required=False, source='co_managers'
)
class Meta:
model = Event
fields = [
'id', 'title', 'description', 'location',
'start_date', 'end_date', 'is_active', 'created_by', 'created_by_name',
'co_managers', 'co_manager_ids',
'task_areas', 'created_at', 'updated_at'
]
read_only_fields = ['created_by', 'created_at', 'updated_at']