diff --git a/core/apps/projects/urls.py b/core/apps/projects/urls.py index df3bfb8..4c3d99e 100644 --- a/core/apps/projects/urls.py +++ b/core/apps/projects/urls.py @@ -17,6 +17,7 @@ urlpatterns = [ path('change_folder/', project_views.ChangeProjectFolderApiView.as_view()), path('archive//', project_views.ArchiveProjectApiView.as_view()), path('/un_archive/', project_views.UnArchiveProjectApiView.as_view()), + path('archived_list/', project_views.ArchivedProjectListApiView.as_view()), ] )), path('project_folder/', include( diff --git a/core/apps/projects/views/project.py b/core/apps/projects/views/project.py index 726a157..6ebff6f 100644 --- a/core/apps/projects/views/project.py +++ b/core/apps/projects/views/project.py @@ -25,6 +25,22 @@ class ProjectListApiView(generics.ListAPIView): .exclude(folder__isnull=False) ) + +class ArchivedProjectListApiView(generics.ListAPIView): + serializer_class = serializers.ProjectListSerializer + queryset = Project.objects.all() + permission_classes = [HasRolePermission] + required_permissions = ['project'] + pagination_class = CustomPageNumberPagination + + def get_queryset(self): + return ( + Project.objects + .select_related('location') + .exclude(is_archive=False) + ) + + class ProjectDetailApiView(generics.RetrieveAPIView): serializer_class = serializers.ProjectDetailSerialzier queryset = Project.objects.select_related('location', 'folder', 'builder').prefetch_related(