diff --git a/api/serializers/groep.py b/api/serializers/groep.py index 6262a306..b42a2337 100644 --- a/api/serializers/groep.py +++ b/api/serializers/groep.py @@ -50,10 +50,9 @@ def update(self, instance, validated_data): Groep: De bijgewerkte groep. """ students_data = validated_data.pop("studenten", instance.studenten.all()) - new_project = validated_data.get("project", instance.project) - validate_students(students_data, new_project, current_group=instance) - validate_project(instance, new_project) - validate_groep_grootte(students_data, new_project) + validated_data.pop("project", instance.project) + validate_students(students_data, instance.project, current_group=instance) + validate_groep_grootte(students_data, instance.project) super().update(instance=instance, validated_data=validated_data) instance.studenten.set(students_data) @@ -62,24 +61,6 @@ def update(self, instance, validated_data): return instance -def validate_project(instance, new_project): - """ - Valideert of het project van een groep niet kan worden aangepast. - - Args: - instance: De huidige instantie van het project. - new_project: Het nieuwe project waaraan de groep wil worden gekoppeld. - - Raises: - serializers.ValidationError: Wordt opgegooid als het project van een groep wordt aangepast. - """ - - if instance.project != new_project: - raise serializers.ValidationError( - "Het project van een groep kan niet aangepast worden" - ) - - def validate_students(students_data, project, current_group=None): """ Controleert of de opgegeven gebruikers studenten zijn en of ze al in een andere groep voor dit project zitten. diff --git a/api/views/groep.py b/api/views/groep.py index df73a9a3..411455f7 100644 --- a/api/views/groep.py +++ b/api/views/groep.py @@ -4,7 +4,7 @@ from api.models.groep import Groep from api.serializers.groep import GroepSerializer -from api.utils import has_permissions, contains +from api.utils import has_permissions @api_view(["GET", "POST"]) @@ -78,17 +78,16 @@ def groep_detail(request, id, format=None): serializer = GroepSerializer(groep) return Response(serializer.data) - if has_permissions(request.user) or contains(groep.studenten, request.user): - if request.method in ["PUT", "PATCH"]: - if request.method == "PUT": - serializer = GroepSerializer(groep, data=request.data) - else: - serializer = GroepSerializer(groep, data=request.data, partial=True) - if serializer.is_valid(): - serializer.save() - return Response(serializer.data) - return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) - + if request.method in ["PUT", "PATCH"]: + if request.method == "PUT": + serializer = GroepSerializer(groep, data=request.data) + else: + serializer = GroepSerializer(groep, data=request.data, partial=True) + if serializer.is_valid(): + serializer.save() + return Response(serializer.data) + return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) + if has_permissions(request.user): if request.method == "DELETE": groep.delete()