1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Misc cleanup for config contexts

This commit is contained in:
Jeremy Stretch
2018-07-10 16:16:23 -04:00
parent 43ed38a6e9
commit 484a74defd
3 changed files with 23 additions and 1 deletions

View File

@ -11,7 +11,7 @@ from taggit.forms import TagField
from taggit.models import Tag
from dcim.models import Region
from utilities.forms import add_blank_choice, BootstrapMixin, BulkEditForm, LaxURLField, SlugField
from utilities.forms import add_blank_choice, BootstrapMixin, BulkEditForm, LaxURLField, JSONField, SlugField
from .constants import (
CF_FILTER_DISABLED, CF_TYPE_BOOLEAN, CF_TYPE_DATE, CF_TYPE_INTEGER, CF_TYPE_SELECT, CF_TYPE_URL,
OBJECTCHANGE_ACTION_CHOICES,
@ -213,6 +213,7 @@ class ConfigContextForm(BootstrapMixin, forms.ModelForm):
queryset=Region.objects.all(),
required=False
)
data = JSONField()
class Meta:
model = ConfigContext

View File

@ -31,6 +31,10 @@
{% endif %}
<pre>{{ context.data|render_json }}</pre>
</div>
{% empty %}
<div class="panel-body">
<span class="text-muted">None found</span>
</div>
{% endfor %}
</div>
</div>

View File

@ -6,6 +6,7 @@ import re
from django import forms
from django.conf import settings
from django.contrib.postgres.forms import JSONField as _JSONField
from django.db.models import Count
from django.urls import reverse_lazy
from mptt.forms import TreeNodeMultipleChoiceField
@ -536,6 +537,22 @@ class LaxURLField(forms.URLField):
default_validators = [EnhancedURLValidator()]
class JSONField(_JSONField):
"""
Custom wrapper around Django's built-in JSONField to avoid presenting "null" as the default text.
"""
def __init__(self, *args, **kwargs):
super(JSONField, self).__init__(*args, **kwargs)
if not self.help_text:
self.help_text = 'Enter context data in <a href="https://json.org/">JSON</a> format.'
self.widget.attrs['placeholder'] = ''
def prepare_value(self, value):
if value is None:
return ''
return super(JSONField, self).prepare_value(value)
#
# Forms
#