Просмотр исходного кода

Closes #8794: Support dynamic configuration for JournalEntry kinds

jeremystretch 3 лет назад
Родитель
Сommit
ca44a654a5

+ 1 - 0
docs/configuration/optional-settings.md

@@ -207,6 +207,7 @@ The following model fields support configurable choices:
 * `dcim.PowerFeed.status`
 * `dcim.Rack.status`
 * `dcim.Site.status`
+* `extras.JournalEntry.kind`
 * `ipam.IPAddress.status`
 * `ipam.IPRange.status`
 * `ipam.Prefix.status`

+ 5 - 2
docs/plugins/development/models.md

@@ -161,13 +161,16 @@ class StatusChoices(ChoiceSet):
     STATUS_BAR = 'bar'
     STATUS_BAZ = 'baz'
 
-    CHOICES = (
+    CHOICES = [
         (STATUS_FOO, 'Foo', 'red'),
         (STATUS_BAR, 'Bar', 'green'),
         (STATUS_BAZ, 'Baz', 'blue'),
-    )
+    ]
 ```
 
+!!! warning
+    For dynamic configuration to work properly, `CHOICES` must be a mutable list, rather than a tuple.
+
 ```python
 # models.py
 from django.db import models

+ 3 - 2
netbox/extras/choices.py

@@ -83,18 +83,19 @@ class ObjectChangeActionChoices(ChoiceSet):
 #
 
 class JournalEntryKindChoices(ChoiceSet):
+    key = 'JournalEntry.kind'
 
     KIND_INFO = 'info'
     KIND_SUCCESS = 'success'
     KIND_WARNING = 'warning'
     KIND_DANGER = 'danger'
 
-    CHOICES = (
+    CHOICES = [
         (KIND_INFO, 'Info', 'cyan'),
         (KIND_SUCCESS, 'Success', 'green'),
         (KIND_WARNING, 'Warning', 'yellow'),
         (KIND_DANGER, 'Danger', 'red'),
-    )
+    ]
 
 
 #