From 08c8792aedb9c73f95bee7a4284cdfa4a3d958cf Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO Date: Mon, 31 Aug 2020 21:32:45 +0200 Subject: [PATCH] Fix alias deletion --- apps/note/api/views.py | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/apps/note/api/views.py b/apps/note/api/views.py index 53fcaed6..488e0d07 100644 --- a/apps/note/api/views.py +++ b/apps/note/api/views.py @@ -82,23 +82,24 @@ class AliasViewSet(ReadProtectedModelViewSet): :return: The filtered set of requested aliases """ - queryset = super().get_queryset() + queryset = super().get_queryset().distinct() - alias = self.request.query_params.get("alias", ".*") - queryset = queryset.filter( - name__iregex="^" + alias - ).union( - queryset.filter( - Q(normalized_name__iregex="^" + Alias.normalize(alias)) - & ~Q(name__iregex="^" + alias) - ), - all=True).union( - queryset.filter( - Q(normalized_name__iregex="^" + alias.lower()) - & ~Q(normalized_name__iregex="^" + Alias.normalize(alias)) - & ~Q(name__iregex="^" + alias) - ), - all=True) + alias = self.request.query_params.get("alias", None) + if alias: + queryset = queryset.filter( + name__iregex="^" + alias + ).union( + queryset.filter( + Q(normalized_name__iregex="^" + Alias.normalize(alias)) + & ~Q(name__iregex="^" + alias) + ), + all=True).union( + queryset.filter( + Q(normalized_name__iregex="^" + alias.lower()) + & ~Q(normalized_name__iregex="^" + Alias.normalize(alias)) + & ~Q(name__iregex="^" + alias) + ), + all=True) return queryset