Skip to content
Snippets Groups Projects
Unverified Commit dd4038fd authored by Erwan Rouchet's avatar Erwan Rouchet
Browse files

Fix user search field in OAuthCredentials admin

parent b8b650e7
No related branches found
No related tags found
1 merge request!2034Fix user search field in OAuthCredentials admin
......@@ -127,7 +127,16 @@ class OAuthCredentialAdmin(admin.ModelAdmin):
list_filter = [('status', EnumFieldListFilter), ]
fields = ('id', 'user', 'token', 'refresh_token', 'expiry', 'status')
readonly_fields = ('id', )
search_fields = ('user', )
search_fields = ('searchable_email', )
def get_queryset(self, request):
qs = super().get_queryset(request)
qs = qs.select_related('user')
# Django's search uses ILIKE, but LIKE is not supported in PostgreSQL with nondeterministic collations.
# We are using a case-insensitive collation to get unique case-insensitive emails, so to search properly,
# we first have to set the collation back to its default value, making it case-sensitive again;
# since Django uses ILIKE, it will be case-insensitive anyway.
return qs.annotate(searchable_email=Collate('user__email', 'default'))
admin.site.register(User, UserAdmin)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment