| 46 | |
| 47 | |
| 48 | class LessPassUserAdmin(BaseUserAdmin): |
| 49 | form = UserChangeForm |
| 50 | add_form = UserCreationForm |
| 51 | |
| 52 | list_display = ("email", "is_admin", "column_passwords_count") |
| 53 | list_filter = ("is_admin", "is_active") |
| 54 | fieldsets = ( |
| 55 | (None, {"fields": ("email", "password")}), |
| 56 | ("Permissions", {"fields": ("is_admin",)}), |
| 57 | ) |
| 58 | add_fieldsets = ( |
| 59 | (None, {"classes": ("wide",), "fields": ("email", "password1", "password2")}), |
| 60 | ) |
| 61 | search_fields = ("email",) |
| 62 | ordering = ("email",) |
| 63 | filter_horizontal = () |
| 64 | |
| 65 | def get_queryset(self, request): |
| 66 | return models.LessPassUser.objects.annotate(passwords_count=Count("passwords")) |
| 67 | |
| 68 | def column_passwords_count(self, instance): |
| 69 | return instance.passwords_count |
| 70 | |
| 71 | column_passwords_count.short_description = "Password count" |
| 72 | column_passwords_count.admin_order_field = "passwords_count" |
| 73 | |
| 74 | |
| 75 | class PasswordAdmin(admin.ModelAdmin): |
nothing calls this directly
no outgoing calls
no test coverage detected