mirror of
				https://gitlab.crans.org/bde/nk20
				synced 2025-10-31 07:49:57 +01:00 
			
		
		
		
	Aliases should load really faster
This commit is contained in:
		| @@ -14,9 +14,11 @@ class ReadProtectedModelViewSet(viewsets.ModelViewSet): | |||||||
|  |  | ||||||
|     def __init__(self, *args, **kwargs): |     def __init__(self, *args, **kwargs): | ||||||
|         super().__init__(*args, **kwargs) |         super().__init__(*args, **kwargs) | ||||||
|         model = ContentType.objects.get_for_model(self.serializer_class.Meta.model).model_class() |         self.model = ContentType.objects.get_for_model(self.serializer_class.Meta.model).model_class() | ||||||
|  |  | ||||||
|  |     def get_queryset(self): | ||||||
|         user = get_current_authenticated_user() |         user = get_current_authenticated_user() | ||||||
|         self.queryset = model.objects.filter(PermissionBackend.filter_queryset(user, model, "view")) |         return self.model.objects.filter(PermissionBackend.filter_queryset(user, self.model, "view")) | ||||||
|  |  | ||||||
|  |  | ||||||
| class ReadOnlyProtectedModelViewSet(viewsets.ReadOnlyModelViewSet): | class ReadOnlyProtectedModelViewSet(viewsets.ReadOnlyModelViewSet): | ||||||
| @@ -26,6 +28,8 @@ class ReadOnlyProtectedModelViewSet(viewsets.ReadOnlyModelViewSet): | |||||||
|  |  | ||||||
|     def __init__(self, *args, **kwargs): |     def __init__(self, *args, **kwargs): | ||||||
|         super().__init__(*args, **kwargs) |         super().__init__(*args, **kwargs) | ||||||
|         model = ContentType.objects.get_for_model(self.serializer_class.Meta.model).model_class() |         self.model = ContentType.objects.get_for_model(self.serializer_class.Meta.model).model_class() | ||||||
|  |  | ||||||
|  |     def get_queryset(self): | ||||||
|         user = get_current_authenticated_user() |         user = get_current_authenticated_user() | ||||||
|         self.queryset = model.objects.filter(PermissionBackend.filter_queryset(user, model, "view")) |         return self.model.objects.filter(PermissionBackend.filter_queryset(user, self.model, "view")) | ||||||
|   | |||||||
| @@ -106,10 +106,8 @@ class ConsumerViewSet(ReadOnlyProtectedModelViewSet): | |||||||
|         queryset = super().get_queryset() |         queryset = super().get_queryset() | ||||||
|  |  | ||||||
|         alias = self.request.query_params.get("alias", ".*") |         alias = self.request.query_params.get("alias", ".*") | ||||||
|         queryset = queryset.filter( |         queryset = queryset.filter(normalized_name__iregex="^" + Alias.normalize(alias))\ | ||||||
|             Q(name__regex="^" + alias) |             .order_by('name').prefetch_related('note') | ||||||
|             | Q(normalized_name__regex="^" + Alias.normalize(alias)) |  | ||||||
|             | Q(normalized_name__regex="^" + alias.lower())).order_by('name') |  | ||||||
|  |  | ||||||
|         return queryset |         return queryset | ||||||
|  |  | ||||||
|   | |||||||
| @@ -111,7 +111,7 @@ | |||||||
| 				"note", | 				"note", | ||||||
| 				"alias" | 				"alias" | ||||||
| 			], | 			], | ||||||
| 			"query": "[\"AND\", [\"OR\", {\"note__in\": [\"NoteUser\", \"objects\", [\"filter\", {\"user__memberships__club__name\": \"Kfet\"}], [\"all\"]]}, {\"note__in\": [\"NoteClub\", \"objects\", [\"all\"]]}], {\"note__is_active\": true}]", | 			"query": "[\"AND\", [\"OR\", {\"note__noteuser__user__memberships__club__name\": \"Kfet\", \"note__noteuser__user__memberships__date_start__lte\": [\"today\"], \"note__noteuser__user__memberships__date_end__gte\": [\"today\"]}, {\"note__noteclub__isnull\": false}], {\"note__is_active\": true}]", | ||||||
| 			"type": "view", | 			"type": "view", | ||||||
| 			"mask": 1, | 			"mask": 1, | ||||||
| 			"field": "", | 			"field": "", | ||||||
| @@ -319,7 +319,7 @@ | |||||||
| 				"note", | 				"note", | ||||||
| 				"note" | 				"note" | ||||||
| 			], | 			], | ||||||
| 			"query": "[\"OR\", {\"pk\": [\"club\", \"note\", \"pk\"]}, {\"pk__in\": [\"NoteUser\", \"objects\", [\"filter\", {\"user__memberships__club\": [\"club\"]}], [\"all\"]]}]", | 			"query": "[\"OR\", {\"pk\": [\"club\", \"note\", \"pk\"]}, {\"noteuser__user__memberships__club\": [\"club\"], \"noteuser__user__memberships__date_start__lte\": [\"today\"], \"noteuser__user__memberships__date_end__gte\": [\"today\"]}]", | ||||||
| 			"type": "view", | 			"type": "view", | ||||||
| 			"mask": 2, | 			"mask": 2, | ||||||
| 			"field": "", | 			"field": "", | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user