(self)
| 132 | pagination_class = CustomPagination |
| 133 | |
| 134 | def get_queryset(self): # type: ignore[no-untyped-def] |
| 135 | if getattr(self, "swagger_fake_view", False): |
| 136 | return MetadataField.objects.none() |
| 137 | |
| 138 | project = get_object_or_404( |
| 139 | self.request.user.get_permitted_projects(VIEW_PROJECT), # type: ignore[union-attr] |
| 140 | pk=self.kwargs["project_pk"], |
| 141 | ) |
| 142 | |
| 143 | queryset = MetadataField.objects.filter( |
| 144 | organisation=project.organisation, |
| 145 | project_id=project.id, |
| 146 | ) |
| 147 | |
| 148 | serializer = ProjectMetadataFieldQuerySerializer(data=self.request.query_params) |
| 149 | serializer.is_valid(raise_exception=True) |
| 150 | |
| 151 | if serializer.validated_data.get("include_organisation"): |
| 152 | overridden_names = queryset.values_list("name", flat=True) |
| 153 | org_fields = MetadataField.objects.filter( |
| 154 | organisation=project.organisation, |
| 155 | project__isnull=True, |
| 156 | ).exclude(name__in=overridden_names) |
| 157 | queryset = queryset | org_fields |
| 158 | |
| 159 | entity = serializer.validated_data.get("entity") |
| 160 | if entity: |
| 161 | content_type = get_object_or_404(ContentType, model=entity) |
| 162 | queryset = queryset.filter( |
| 163 | metadatamodelfield__content_type=content_type, |
| 164 | ) |
| 165 | |
| 166 | return queryset.prefetch_related("metadatamodelfield_set__is_required_for") |
nothing calls this directly
no test coverage detected