Skip to content

Commit 1e2fc38

Browse files
authored
[change!] Removed deprecated UUIDAdmin class #328
The deprecated UUIDAdmin class has been removed. For equivalent functionality, use `CopyableFieldsAdmin` with `copyable_fields = ('uuid',)`. Closes #328
1 parent 77eadcc commit 1e2fc38

3 files changed

Lines changed: 30 additions & 25 deletions

File tree

docs/developer/admin-utilities.rst

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,28 @@ it easy to copy the fields contents.
4848

4949
Useful for auto-generated fields such as UUIDs, secret keys, tokens, etc.
5050

51-
``openwisp_utils.admin.UUIDAdmin``
52-
----------------------------------
51+
To replicate the "copy UUID" behavior previously provided by the removed
52+
``UUIDAdmin`` class, set ``copyable_fields = ("uuid",)`` on a
53+
``CopyableFieldsAdmin`` subclass and expose a ``uuid()`` display method,
54+
for example:
5355

54-
This class is a subclass of ``CopyableFieldsAdmin`` which sets ``uuid`` as
55-
the only copyable field. This class is kept for backward compatibility and
56-
convenience, since different models of various OpenWISP modules show
57-
``uuid`` as the only copyable field.
56+
.. code-block:: python
57+
58+
from django.contrib import admin
59+
from django.utils.translation import gettext_lazy as _
60+
from openwisp_utils.admin import CopyableFieldsAdmin
61+
62+
from .models import MyModel
63+
64+
65+
@admin.register(MyModel)
66+
class MyModelAdmin(CopyableFieldsAdmin):
67+
copyable_fields = ("uuid",)
68+
69+
def uuid(self, obj):
70+
return obj.pk
71+
72+
uuid.short_description = _("UUID")
5873
5974
``openwisp_utils.admin.ReceiveUrlAdmin``
6075
----------------------------------------

openwisp_utils/admin.py

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -134,22 +134,6 @@ class Media:
134134
js = ("admin/js/jquery.init.js", "openwisp-utils/js/copyable.js")
135135

136136

137-
class UUIDAdmin(CopyableFieldsAdmin):
138-
"""Sets `uuid` as copyable field.
139-
140-
Subclass of `CopyableFieldsAdmin`. This class is kept for backward
141-
compatibility and convenience, since different models of various
142-
OpenWISP modules show `uuid` as the only copyable field.
143-
"""
144-
145-
copyable_fields = ("uuid",)
146-
147-
def uuid(self, obj):
148-
return obj.pk
149-
150-
uuid.short_description = _("UUID")
151-
152-
153137
class ReceiveUrlAdmin(ModelAdmin):
154138
"""Adds a receive_url field.
155139

tests/test_project/admin.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@
44
from django.utils.translation import gettext_lazy as _
55
from openwisp_utils.admin import (
66
AlwaysHasChangedMixin,
7+
CopyableFieldsAdmin,
78
HelpTextStackedInline,
89
ReadOnlyAdmin,
910
ReceiveUrlAdmin,
1011
TimeReadonlyAdminMixin,
11-
UUIDAdmin,
1212
)
1313
from openwisp_utils.admin_theme.filters import (
1414
AutocompleteFilter,
@@ -80,12 +80,18 @@ class OperatorInline(HelpTextStackedInline):
8080

8181

8282
@admin.register(Project)
83-
class ProjectAdmin(UUIDAdmin, ReceiveUrlAdmin):
83+
class ProjectAdmin(CopyableFieldsAdmin, ReceiveUrlAdmin):
8484
inlines = [OperatorInline]
8585
list_display = ("name",)
8686
fields = ("uuid", "name", "key", "receive_url")
87-
readonly_fields = ("uuid", "receive_url")
87+
readonly_fields = ("receive_url",)
8888
receive_url_name = "receive_project"
89+
copyable_fields = ("uuid",)
90+
91+
def uuid(self, obj):
92+
return obj.pk
93+
94+
uuid.short_description = _("UUID")
8995

9096

9197
class ShelfFilter(SimpleInputFilter):

0 commit comments

Comments
 (0)