diff --git a/docs/developer/admin-utilities.rst b/docs/developer/admin-utilities.rst index 957256d9..0ebe6048 100644 --- a/docs/developer/admin-utilities.rst +++ b/docs/developer/admin-utilities.rst @@ -48,14 +48,6 @@ it easy to copy the fields contents. Useful for auto-generated fields such as UUIDs, secret keys, tokens, etc. -``openwisp_utils.admin.UUIDAdmin`` ----------------------------------- - -This class is a subclass of ``CopyableFieldsAdmin`` which sets ``uuid`` as -the only copyable field. This class is kept for backward compatibility and -convenience, since different models of various OpenWISP modules show -``uuid`` as the only copyable field. - ``openwisp_utils.admin.ReceiveUrlAdmin`` ---------------------------------------- diff --git a/openwisp_utils/admin.py b/openwisp_utils/admin.py index bfaba7e2..204b16ea 100644 --- a/openwisp_utils/admin.py +++ b/openwisp_utils/admin.py @@ -134,22 +134,6 @@ class Media: js = ("admin/js/jquery.init.js", "openwisp-utils/js/copyable.js") -class UUIDAdmin(CopyableFieldsAdmin): - """Sets `uuid` as copyable field. - - Subclass of `CopyableFieldsAdmin`. This class is kept for backward - compatibility and convenience, since different models of various - OpenWISP modules show `uuid` as the only copyable field. - """ - - copyable_fields = ("uuid",) - - def uuid(self, obj): - return obj.pk - - uuid.short_description = _("UUID") - - class ReceiveUrlAdmin(ModelAdmin): """Adds a receive_url field. diff --git a/tests/test_project/admin.py b/tests/test_project/admin.py index 3ea8fd49..eed7dc3e 100644 --- a/tests/test_project/admin.py +++ b/tests/test_project/admin.py @@ -4,11 +4,11 @@ from django.utils.translation import gettext_lazy as _ from openwisp_utils.admin import ( AlwaysHasChangedMixin, + CopyableFieldsAdmin, HelpTextStackedInline, ReadOnlyAdmin, ReceiveUrlAdmin, TimeReadonlyAdminMixin, - UUIDAdmin, ) from openwisp_utils.admin_theme.filters import ( AutocompleteFilter, @@ -80,12 +80,18 @@ class OperatorInline(HelpTextStackedInline): @admin.register(Project) -class ProjectAdmin(UUIDAdmin, ReceiveUrlAdmin): +class ProjectAdmin(CopyableFieldsAdmin, ReceiveUrlAdmin): inlines = [OperatorInline] list_display = ("name",) fields = ("uuid", "name", "key", "receive_url") readonly_fields = ("uuid", "receive_url") receive_url_name = "receive_project" + copyable_fields = ("uuid",) + + def uuid(self, obj): + return obj.pk + + uuid.short_description = _("UUID") class ShelfFilter(SimpleInputFilter):