Files
centurion_erp/app/api/views/project_management/project_milestone.py

91 lines
2.2 KiB
Python

from drf_spectacular.utils import extend_schema, OpenApiResponse
from rest_framework import viewsets
from access.mixin import OrganizationMixin
from api.serializers.project_management.project_milestone import ProjectMilestone, ProjectMilestoneSerializer
# from api.views.core.tickets import View
from api.views.mixin import OrganizationPermissionAPI
class View(OrganizationMixin, viewsets.ModelViewSet):
permission_classes = [
OrganizationPermissionAPI
]
queryset = ProjectMilestone.objects.all()
serializer_class = ProjectMilestoneSerializer
@extend_schema(
summary='Create a project milestone',
request = ProjectMilestoneSerializer,
responses = {
201: OpenApiResponse(
response = ProjectMilestoneSerializer,
),
}
)
def create(self, request, *args, **kwargs):
return super().create(request, *args, **kwargs)
@extend_schema(
summary='Fetch all project milestones',
methods=["GET"],
responses = {
200: OpenApiResponse(
description='Success',
response = ProjectMilestoneSerializer
)
}
)
def list(self, request, *args, **kwargs):
return super().list(request, *args, **kwargs)
@extend_schema(
summary='Fetch the selected project milestone',
methods=["GET"],
responses = {
200: OpenApiResponse(
description='Success',
response = ProjectMilestoneSerializer
)
}
)
def retrieve(self, request, *args, **kwargs):
return super().retrieve(request, *args, **kwargs)
def get_view_name(self):
if self.detail:
return ProjectMilestone._meta.verbose_name
return ProjectMilestone._meta.verbose_name_plural
def get_queryset(self):
if 'project_id' in self.kwargs:
self.queryset = self.queryset.filter(
project=self.kwargs['project_id']
)
if 'pk' in self.kwargs:
self.queryset = self.queryset.filter(
pk = self.kwargs['pk']
)
return self.queryset