(self)
| 34 | pagination_class = CustomPagination |
| 35 | |
| 36 | def get_queryset(self) -> QuerySet[AuditLog]: |
| 37 | if getattr(self, "swagger_fake_view", False): |
| 38 | return AuditLog.objects.none() # type: ignore[no-any-return] |
| 39 | |
| 40 | q = self._get_base_filters() |
| 41 | |
| 42 | serializer = AuditLogsQueryParamSerializer(data=self.request.GET) |
| 43 | serializer.is_valid(raise_exception=True) |
| 44 | |
| 45 | if project_id := serializer.data.get("project"): |
| 46 | q = q & Q(project__id=project_id) |
| 47 | if environment_ids := serializer.data.get("environments"): |
| 48 | q = q & Q(environment__id__in=environment_ids) |
| 49 | if is_system_event := serializer.data.get("is_system_event") is not None: |
| 50 | q = q & Q(is_system_event=is_system_event) |
| 51 | |
| 52 | search = serializer.data.get("search") |
| 53 | if search: |
| 54 | q = q & Q(log__icontains=search) |
| 55 | |
| 56 | queryset = AuditLog.objects.filter(q).select_related( |
| 57 | "project", "environment", "author" |
| 58 | ) |
| 59 | |
| 60 | return self._apply_visibility_limits(queryset) |
| 61 | |
| 62 | def get_serializer_class(self): # type: ignore[no-untyped-def] |
| 63 | return {"retrieve": AuditLogRetrieveSerializer}.get( |
nothing calls this directly
no test coverage detected