Autocompletion: new de-duplication mechanism

This commit is contained in:
Martin Pépin 2020-07-04 13:06:24 +02:00
parent 637572ab58
commit c7ca96bce5
No known key found for this signature in database
GPG key ID: E7520278B1774448
4 changed files with 73 additions and 26 deletions

View file

@ -23,6 +23,9 @@ class KfetAccountSearch(autocomplete.ModelSearch):
qset_filter &= Q(profile__account_kfet__isnull=False)
return qset_filter
def result_uuid(self, user):
return user.username
class COFMemberSearch(autocomplete.ModelSearch):
model = User
@ -33,6 +36,9 @@ class COFMemberSearch(autocomplete.ModelSearch):
qset_filter &= Q(profile__account_kfet__isnull=True) & Q(profile__is_cof=True)
return qset_filter
def result_uuid(self, user):
return user.username
class OthersSearch(autocomplete.ModelSearch):
model = User
@ -43,13 +49,16 @@ class OthersSearch(autocomplete.ModelSearch):
qset_filter &= Q(profile__account_kfet__isnull=True) & Q(profile__is_cof=False)
return qset_filter
def result_uuid(self, user):
return user.username
class KfetAutocomplete(autocomplete.Compose):
search_units = [
("kfet", "username", KfetAccountSearch),
("users_cof", "username", COFMemberSearch),
("users_notcof", "username", OthersSearch),
("clippers", "clipper", autocomplete.LDAPSearch),
("kfet", KfetAccountSearch()),
("users_cof", COFMemberSearch()),
("users_notcof", OthersSearch()),
("clippers", autocomplete.LDAPSearch()),
]