(self)
| 239 | return ExperimentSerializer |
| 240 | |
| 241 | def get_queryset(self) -> "QuerySet[Experiment]": |
| 242 | qs = super().get_queryset() |
| 243 | if self.action in ("list", "retrieve"): |
| 244 | qs = qs.select_related("feature").prefetch_related( |
| 245 | "feature__multivariate_options", |
| 246 | "feature__feature_states__multivariate_feature_state_values", |
| 247 | "experiment_metrics__metric", |
| 248 | ) |
| 249 | query_params = ExperimentQueryParamSerializer(data=self.request.GET) |
| 250 | query_params.is_valid(raise_exception=True) |
| 251 | if status_filter := query_params.validated_data.get("status"): |
| 252 | qs = qs.filter(status__in=status_filter) |
| 253 | |
| 254 | q = self.request.query_params.get("q") |
| 255 | if q: |
| 256 | qs = qs.filter(Q(name__icontains=q) | Q(feature__name__icontains=q)) |
| 257 | |
| 258 | return qs.order_by("-created_at") |
| 259 | |
| 260 | def list(self, request: Request, *args: object, **kwargs: object) -> Response: |
| 261 | response = super().list(request, *args, **kwargs) |
nothing calls this directly
no test coverage detected