Source code for user.admin
from django.conf import settings
from django.contrib import admin, messages
from django.contrib.auth.admin import UserAdmin
from user.models import User
[docs]
@admin.action(description="Recover Selected Items")
def mark_undo(modeladmin, request, queryset):
"""
Custom admin action to mark selected users as recovered.
Args:
modeladmin: The ModelAdmin instance.
request (HttpRequest): The HTTP request object.
queryset (QuerySet): The queryset containing the selected users.
"""
updated_count = queryset.update(is_staff=True)
modeladmin.message_user(
request,
f"Successfully Recovered {updated_count} {modeladmin.model._meta.verbose_name_plural}",
messages.SUCCESS,
)
[docs]
class UserAdmin(UserAdmin):
"""
Custom UserAdmin configuration.
This class extends the default UserAdmin provided by Django to customize the admin interface for managing users.
Attributes:
search_fields (tuple): Fields to be used in search queries within the admin interface.
ordering (tuple): Fields to determine the default ordering of user objects in the admin interface.
fieldsets (tuple): Fieldsets to organize the fields displayed in the user detail view.
add_fieldsets (tuple): Fieldsets to organize the fields displayed in the user creation form.
actions (list): List of admin actions available for user management, including the custom action 'mark_undo'.
Usage:
This class should be used to register the User model with the Django admin interface.
"""
search_fields = ("username", "mobile_no", "email")
ordering = ("username", "email", "first_name", "last_name")
fieldsets = UserAdmin.fieldsets + (("Custom Fields", {"fields": ("mobile_no",)}),)
add_fieldsets = UserAdmin.add_fieldsets + ((None, {"fields": ("mobile_no",)}),)
actions = [mark_undo]
if settings.ENABLE_ADMIN:
admin.site.register(User, UserAdmin)