Introduce DRF views for ticket creation, listing, updating, and commenting, integrate admin registrations for new models, and provide a demo data command to seed initial content. This enables full project management workflow within the backend.
26 lines
902 B
Python
26 lines
902 B
Python
from rest_framework import generics, permissions
|
|
|
|
from src.notes.models import ProjectNote
|
|
from src.notes.serializers import ProjectNoteSerializer
|
|
|
|
|
|
class ProjectNoteListCreateView(generics.ListCreateAPIView):
|
|
serializer_class = ProjectNoteSerializer
|
|
permission_classes = (permissions.IsAuthenticated,)
|
|
|
|
def get_queryset(self):
|
|
qs = ProjectNote.objects.select_related("created_by")
|
|
project_id = self.request.query_params.get("project")
|
|
if project_id:
|
|
qs = qs.filter(project_id=project_id)
|
|
return qs.order_by("-note_date", "-created_at")
|
|
|
|
def perform_create(self, serializer):
|
|
serializer.save(created_by=self.request.user)
|
|
|
|
|
|
class ProjectNoteDetailView(generics.RetrieveUpdateDestroyAPIView):
|
|
queryset = ProjectNote.objects.all()
|
|
serializer_class = ProjectNoteSerializer
|
|
permission_classes = (permissions.IsAuthenticated,)
|