Fix alias deletion

This commit is contained in:
Yohann D'ANELLO 2020-08-31 21:32:45 +02:00
parent a9da4a38e1
commit 08c8792aed
1 changed files with 17 additions and 16 deletions

View File

@ -82,23 +82,24 @@ class AliasViewSet(ReadProtectedModelViewSet):
:return: The filtered set of requested aliases :return: The filtered set of requested aliases
""" """
queryset = super().get_queryset() queryset = super().get_queryset().distinct()
alias = self.request.query_params.get("alias", ".*") alias = self.request.query_params.get("alias", None)
queryset = queryset.filter( if alias:
name__iregex="^" + alias queryset = queryset.filter(
).union( name__iregex="^" + alias
queryset.filter( ).union(
Q(normalized_name__iregex="^" + Alias.normalize(alias)) queryset.filter(
& ~Q(name__iregex="^" + alias) Q(normalized_name__iregex="^" + Alias.normalize(alias))
), & ~Q(name__iregex="^" + alias)
all=True).union( ),
queryset.filter( all=True).union(
Q(normalized_name__iregex="^" + alias.lower()) queryset.filter(
& ~Q(normalized_name__iregex="^" + Alias.normalize(alias)) Q(normalized_name__iregex="^" + alias.lower())
& ~Q(name__iregex="^" + alias) & ~Q(normalized_name__iregex="^" + Alias.normalize(alias))
), & ~Q(name__iregex="^" + alias)
all=True) ),
all=True)
return queryset return queryset