fix: task creation by automatically setting the creator field to the authenticated user
This commit is contained in:
parent
1f3f16a1f3
commit
7c96da524b
2 changed files with 21 additions and 8 deletions
|
|
@ -27,3 +27,7 @@ class TaskSerializer(serializers.ModelSerializer):
|
|||
|
||||
renderer_classes = [CamelCaseJSONRenderer]
|
||||
parser_classes = [CamelCaseJSONParser]
|
||||
|
||||
def create(self, validated_data):
|
||||
validated_data['creator'] = self.context['request'].user
|
||||
return super().create(validated_data)
|
||||
|
|
@ -17,21 +17,29 @@ class TaskViewSet(viewsets.ModelViewSet):
|
|||
|
||||
def retrieve(self, request, pk=None):
|
||||
task = get_cached_task_by_id(pk)
|
||||
serializer = self.get_serializer(task)
|
||||
|
||||
if not task:
|
||||
return Response({'error': 'Task not found.'}, status=status.HTTP_404_NOT_FOUND)
|
||||
serializer = self.get_serializer(task)
|
||||
|
||||
return Response(serializer.data)
|
||||
|
||||
def create(self, request, *args, **kwargs):
|
||||
serializer = self.get_serializer(data=request.data)
|
||||
|
||||
if not serializer.is_valid():
|
||||
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
task = serializer.save()
|
||||
assign_users_to_task(request.data.get('assignees', []), task)
|
||||
try:
|
||||
task = serializer.save()
|
||||
except Exception as e:
|
||||
return Response({"error": f"Task creation failed: {str(e)}"}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
|
||||
|
||||
assignees_data = request.data.get('assignees', [])
|
||||
if assignees_data:
|
||||
assign_users_to_task(assignees_data, task)
|
||||
|
||||
subtasks_data = request.data.get("subtasks", [])
|
||||
|
||||
if subtasks_data:
|
||||
create_subtasks(subtasks_data, task)
|
||||
|
||||
|
|
@ -42,6 +50,7 @@ class TaskViewSet(viewsets.ModelViewSet):
|
|||
def update(self, request, *args, **kwargs):
|
||||
task = self.get_object()
|
||||
serializer = self.get_serializer(task, data=request.data, partial=True)
|
||||
|
||||
if not serializer.is_valid():
|
||||
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue