Source code for abstract.admin
from django.conf import settings
from django.contrib import admin, messages
[docs]
@admin.action(description="Recover Selected Items")
def mark_undo(modeladmin, request, queryset):
"""
Custom admin action to mark selected items as recovered.
Args:
modeladmin: The ModelAdmin instance.
request (HttpRequest): The HTTP request object.
queryset (QuerySet): The queryset containing the selected items.
"""
updated_count = queryset.update(status=True)
modeladmin.message_user(
request,
f"Successfully Recovered {updated_count} {modeladmin.model._meta.verbose_name_plural}",
messages.SUCCESS,
)
[docs]
class ModelAdmin(admin.ModelAdmin):
"""
Custom ModelAdmin class with additional functionalities.
Attributes:
list_per_page (int): Number of items to display per page in the admin list view.
exclude (list): List of fields to exclude from the admin interface.
list_display (list): List of fields to display in the admin list view.
actions (list): List of custom actions to perform on selected items in the admin interface.
"""
list_per_page = 12
exclude = ["status", "created_by", "updated_by"]
list_display = ["__str__", "status", "created_by", "updated_by"]
actions = [mark_undo]
[docs]
def delete_queryset(self, request, queryset):
"""
Custom action to soft-delete selected items in the queryset.
Args:
request (HttpRequest): The HTTP request object.
queryset (QuerySet): The queryset containing the selected items to delete.
"""
queryset.update(status=False)