Backend Draft

This commit is contained in:
__init__
2026-02-23 20:31:53 +05:30
commit eec700af51
127 changed files with 2356 additions and 0 deletions

View File

@@ -0,0 +1,43 @@
from rest_framework import serializers
from .models import Project, Task
from accounts.serializers import UserSerializer
class TaskSerializer(serializers.ModelSerializer):
class Meta:
model = Task
fields = ['id', 'project', 'title', 'description', 'assigned_to',
'status', 'priority', 'due_date', 'created_at', 'updated_at']
read_only_fields = ['id', 'project', 'created_at', 'updated_at']
from django.contrib.auth import get_user_model
User = get_user_model()
class TaskDetailSerializer(TaskSerializer):
assigned_to = UserSerializer(read_only=True)
assigned_to_id = serializers.PrimaryKeyRelatedField(
source='assigned_to',
queryset=User.objects.all(),
required=False, allow_null=True
)
class Meta(TaskSerializer.Meta):
fields = TaskSerializer.Meta.fields + ['assigned_to_id']
class ProjectSerializer(serializers.ModelSerializer):
task_count = serializers.SerializerMethodField()
class Meta:
model = Project
fields = ['id', 'name', 'description', 'status', 'created_by', 'created_at', 'updated_at', 'task_count']
read_only_fields = ['id', 'created_by', 'created_at', 'updated_at', 'task_count']
def get_task_count(self, obj):
return obj.tasks.count()
class ProjectDetailSerializer(ProjectSerializer):
tasks = TaskSerializer(many=True, read_only=True)
created_by = UserSerializer(read_only=True)
class Meta(ProjectSerializer.Meta):
fields = ProjectSerializer.Meta.fields + ['tasks']