Coverage for api/views/project.py: 100.00%
110 statements
« prev ^ index » next coverage.py v7.8.0, created at 2025-06-06 22:17 +0000
« prev ^ index » next coverage.py v7.8.0, created at 2025-06-06 22:17 +0000
1from rest_framework import permissions, viewsets
3# TODO: Break up this massive import list
4from api.serializers.project import BuiltInIssuePrioritySerializer, BuiltInIssueSeveritySerializer, BuiltInIssueStatusSerializer, BuiltInIssueTypeSerializer, ComponentSerializer, ComponentDataSerializer, CustomIssuePrioritySerializer, CustomIssuePriorityDataSerializer, CustomIssueSeveritySerializer, CustomIssueSeverityDataSerializer, CustomIssueStatusSerializer, CustomIssueStatusDataSerializer, CustomIssueTypeSerializer, CustomIssueTypeDataSerializer, GitRepositorySerializer, GitRepositoryDataSerializer, IssueSerializer, IssueDataSerializer, ProjectSerializer, ProjectDataSerializer, VersionSerializer, VersionDataSerializer
6from core.models import user as core_user_models
7from project.models.git_repository import GitRepository, GitRepositoryData
8from project.models.issue_type import BuiltInIssueType, CustomIssueType, CustomIssueTypeData
9from project.models.issue import Issue, IssueData
10from project.models.priority import BuiltInIssuePriority, CustomIssuePriority, CustomIssuePriorityData
11from project.models.project import Project, ProjectData
12from project.models.status import BuiltInIssueStatus, CustomIssueStatus, CustomIssueStatusData
13from project.models.component import Component, ComponentData
14from project.models.severity import BuiltInIssueSeverity, CustomIssueSeverity, CustomIssueSeverityData
15from project.models.version import Version, VersionData
18class BuiltInIssuePriorityViewSet(viewsets.ModelViewSet):
19 """
20 API endpoint that allows built-in issue priorities to be viewed or edited.
21 """
23 queryset = BuiltInIssuePriority.active_objects.all()
24 serializer_class = BuiltInIssuePrioritySerializer
25 permission_classes = [permissions.IsAuthenticated]
28class BuiltInIssueSeverityViewSet(viewsets.ModelViewSet):
29 """
30 API endpoint that allows built-in issue priorities to be viewed or edited.
31 """
33 queryset = BuiltInIssueSeverity.active_objects.all()
34 serializer_class = BuiltInIssueSeveritySerializer
35 permission_classes = [permissions.IsAuthenticated]
38class BuiltInIssueStatusViewSet(viewsets.ModelViewSet):
39 """
40 API endpoint that allows built-in issue statuses to be viewed or edited.
41 """
43 queryset = BuiltInIssueStatus.active_objects.all()
44 serializer_class = BuiltInIssueStatusSerializer
45 permission_classes = [permissions.IsAuthenticated]
48class BuiltInIssueTypeViewSet(viewsets.ModelViewSet):
49 """
50 API endpoint that allows built-in issue types to be viewed or edited.
51 """
53 queryset = BuiltInIssueType.active_objects.all()
54 serializer_class = BuiltInIssueTypeSerializer
55 permission_classes = [permissions.IsAuthenticated]
58class ComponentViewSet(viewsets.ModelViewSet):
59 """
60 API endpoint that allows custom issue priorities to be viewed or edited.
61 """
63 queryset = Component.active_objects.all()
64 serializer_class = ComponentSerializer
65 permission_classes = [permissions.IsAuthenticated]
68class ComponentDataViewSet(viewsets.ModelViewSet):
69 """
70 API endpoint that allows built-in issue types to be viewed or edited.
71 """
73 queryset = ComponentData.active_objects.all()
74 serializer_class = ComponentDataSerializer
75 permission_classes = [permissions.IsAuthenticated]
78class CustomIssuePriorityViewSet(viewsets.ModelViewSet):
79 """
80 API endpoint that allows custom issue priorities to be viewed or edited.
81 """
83 queryset = CustomIssuePriority.active_objects.all()
84 serializer_class = CustomIssuePrioritySerializer
85 permission_classes = [permissions.IsAuthenticated]
88class CustomIssuePriorityDataViewSet(viewsets.ModelViewSet):
89 """
90 API endpoint that allows custom issue priorities to be viewed or edited.
91 """
93 queryset = CustomIssuePriorityData.active_objects.all()
94 serializer_class = CustomIssuePriorityDataSerializer
95 permission_classes = [permissions.IsAuthenticated]
98class CustomIssueSeverityViewSet(viewsets.ModelViewSet):
99 """
100 API endpoint that allows custom issue priorities to be viewed or edited.
101 """
103 queryset = CustomIssueSeverity.active_objects.all()
104 serializer_class = CustomIssueSeveritySerializer
105 permission_classes = [permissions.IsAuthenticated]
108class CustomIssueSeverityDataViewSet(viewsets.ModelViewSet):
109 """
110 API endpoint that allows custom issue priorities to be viewed or edited.
111 """
113 queryset = CustomIssueSeverityData.active_objects.all()
114 serializer_class = CustomIssueSeverityDataSerializer
115 permission_classes = [permissions.IsAuthenticated]
118class CustomIssueStatusViewSet(viewsets.ModelViewSet):
119 """
120 API endpoint that allows custom issue statuses to be viewed or edited.
121 """
123 queryset = CustomIssueStatus.active_objects.all()
124 serializer_class = CustomIssueStatusSerializer
125 permission_classes = [permissions.IsAuthenticated]
128class CustomIssueStatusDataViewSet(viewsets.ModelViewSet):
129 """
130 API endpoint that allows custom issue statuses to be viewed or edited.
131 """
133 queryset = CustomIssueStatusData.active_objects.all()
134 serializer_class = CustomIssueStatusDataSerializer
135 permission_classes = [permissions.IsAuthenticated]
138class CustomIssueTypeViewSet(viewsets.ModelViewSet):
139 """
140 API endpoint that allows custom issue types to be viewed or edited.
141 """
143 queryset = CustomIssueType.active_objects.all()
144 serializer_class = CustomIssueTypeSerializer
145 permission_classes = [permissions.IsAuthenticated]
148class CustomIssueTypeDataViewSet(viewsets.ModelViewSet):
149 """
150 API endpoint that allows custom issue types to be viewed or edited.
151 """
153 queryset = CustomIssueTypeData.active_objects.all()
154 serializer_class = CustomIssueTypeDataSerializer
155 permission_classes = [permissions.IsAuthenticated]
158class GitRepositoryViewSet(viewsets.ModelViewSet):
159 """
160 API endpoint that allows git repositories to be viewed or edited.
161 """
163 queryset = GitRepository.active_objects.all()
164 serializer_class = GitRepositorySerializer
165 permission_classes = [permissions.IsAuthenticated]
167 def get_queryset(self):
168 logged_in_user = core_user_models.CoreUser.active_objects.get(user__username=self.request.user)
169 # Get unique repositories from organizations and projects
170 organization_repositories = logged_in_user.organizationmembers_set.values_list('git_repositories', flat=True)
171 project_repositories = logged_in_user.list_projects().values_list('git_repositories', flat=True)
172 # Combine the repository IDs and get distinct repositories
173 repository_ids = set(organization_repositories).union(set(project_repositories))
174 repositories = GitRepository.objects.filter(id__in=repository_ids)
175 return repositories.all()
178class GitRepositoryDataViewSet(viewsets.ModelViewSet):
179 """
180 API endpoint that allows git repositories to be viewed or edited.
181 """
183 queryset = GitRepositoryData.active_objects.all()
184 serializer_class = GitRepositoryDataSerializer
185 permission_classes = [permissions.IsAuthenticated]
188class IssueViewSet(viewsets.ModelViewSet):
189 """
190 API endpoint that allows issues to be viewed or edited.
191 """
193 queryset = Issue.active_objects.all()
194 serializer_class = IssueSerializer
195 permission_classes = [permissions.IsAuthenticated]
198class IssueDataViewSet(viewsets.ModelViewSet):
199 """
200 API endpoint that allows issues to be viewed or edited.
201 """
203 queryset = IssueData.active_objects.all()
204 serializer_class = IssueDataSerializer
205 permission_classes = [permissions.IsAuthenticated]
208class ProjectViewSet(viewsets.ModelViewSet):
209 """
210 API endpoint that allows projects to be viewed or edited.
211 """
213 queryset = Project.active_objects.all()
214 serializer_class = ProjectSerializer
215 permission_classes = [permissions.IsAuthenticated]
217 def get_queryset(self):
218 logged_in_user = core_user_models.CoreUser.active_objects.get(user__username=self.request.user)
219 return logged_in_user.list_projects()
222class ProjectDataViewSet(viewsets.ModelViewSet):
223 """
224 API endpoint that allows projects to be viewed or edited.
225 """
227 queryset = ProjectData.active_objects.all()
228 serializer_class = ProjectDataSerializer
229 permission_classes = [permissions.IsAuthenticated]
232class VersionViewSet(viewsets.ModelViewSet):
233 """
234 API endpoint that allows versions to be viewed or edited.
235 """
237 queryset = Version.active_objects.all()
238 serializer_class = VersionSerializer
239 permission_classes = [permissions.IsAuthenticated]
242class VersionDataViewSet(viewsets.ModelViewSet):
243 """
244 API endpoint that allows versions to be viewed or edited.
245 """
247 queryset = VersionData.active_objects.all()
248 serializer_class = VersionDataSerializer
249 permission_classes = [permissions.IsAuthenticated]