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

refactored UI for local config context

This commit is contained in:
John Anderson
2018-09-18 11:52:12 -04:00
parent e3e9211e8a
commit 4039753b2f
18 changed files with 38 additions and 140 deletions

View File

@ -107,7 +107,7 @@ class VirtualMachineSerializer(TaggitSerializer, CustomFieldModelSerializer):
fields = [
'id', 'name', 'status', 'site', 'cluster', 'role', 'tenant', 'platform', 'primary_ip', 'primary_ip4',
'primary_ip6', 'vcpus', 'memory', 'disk', 'comments', 'tags', 'custom_fields', 'created', 'last_updated',
'local_config_context_data',
'local_context_data',
]
@ -118,7 +118,7 @@ class VirtualMachineWithConfigContextSerializer(VirtualMachineSerializer):
fields = [
'id', 'name', 'status', 'cluster', 'role', 'tenant', 'platform', 'primary_ip', 'primary_ip4', 'primary_ip6',
'vcpus', 'memory', 'disk', 'comments', 'tags', 'custom_fields', 'config_context', 'created', 'last_updated',
'local_config_context_data',
'local_context_data',
]
def get_config_context(self, obj):

View File

@ -248,6 +248,7 @@ class VirtualMachineForm(BootstrapMixin, TenancyForm, CustomFieldForm):
)
)
tags = TagField(required=False)
local_context_data = JSONField(required=False)
class Meta:
model = VirtualMachine
@ -255,6 +256,9 @@ class VirtualMachineForm(BootstrapMixin, TenancyForm, CustomFieldForm):
'name', 'status', 'cluster_group', 'cluster', 'role', 'tenant', 'platform', 'primary_ip4', 'primary_ip6',
'vcpus', 'memory', 'disk', 'comments', 'tags',
]
help_texts = {
'local_context_data': "Local config context data overwrites all sources contexts in the final rendered config context",
}
def __init__(self, *args, **kwargs):
@ -303,16 +307,6 @@ class VirtualMachineForm(BootstrapMixin, TenancyForm, CustomFieldForm):
self.fields['primary_ip6'].widget.attrs['readonly'] = True
class VirtualMachineLocalConfigContextForm(BootstrapMixin, forms.ModelForm):
local_config_context_data = JSONField()
class Meta:
model = VirtualMachine
fields = [
'local_config_context_data',
]
class VirtualMachineCSVForm(forms.ModelForm):
status = CSVChoiceField(
choices=VM_STATUS_CHOICES,

View File

@ -13,7 +13,7 @@ class Migration(migrations.Migration):
operations = [
migrations.AddField(
model_name='virtualmachine',
name='local_config_context_data',
name='local_context_data',
field=django.contrib.postgres.fields.jsonb.JSONField(blank=True, null=True),
),
]

View File

@ -245,10 +245,6 @@ class VirtualMachine(ChangeLoggedModel, ConfigContextModel, CustomFieldModel):
content_type_field='obj_type',
object_id_field='obj_id'
)
local_config_context_data = JSONField(
blank=True,
null=True,
)
tags = TaggableManager()

View File

@ -49,8 +49,6 @@ urlpatterns = [
url(r'^virtual-machines/(?P<pk>\d+)/edit/$', views.VirtualMachineEditView.as_view(), name='virtualmachine_edit'),
url(r'^virtual-machines/(?P<pk>\d+)/delete/$', views.VirtualMachineDeleteView.as_view(), name='virtualmachine_delete'),
url(r'^virtual-machines/(?P<pk>\d+)/config-context/$', views.VirtualMachineConfigContextView.as_view(), name='virtualmachine_configcontext'),
url(r'^virtual-machines/(?P<pk>\d+)/config-context/edit-local/$', views.VirtualMachineEditLocalConfigContextView.as_view(), name='virtualmachine_edit_localconfigcontext'),
url(r'^virtual-machines/(?P<pk>\d+)/config-context/clear-local/$', views.VirtualMachineClearLocalContextDataView.as_view(), name='virtualmachine_delete_localconfigcontext'),
url(r'^virtual-machines/(?P<pk>\d+)/changelog/$', ObjectChangeLogView.as_view(), name='virtualmachine_changelog', kwargs={'model': VirtualMachine}),
url(r'^virtual-machines/(?P<virtualmachine>\d+)/services/assign/$', ServiceCreateView.as_view(), name='virtualmachine_service_assign'),

View File

@ -14,7 +14,7 @@ from extras.views import ObjectConfigContextView
from ipam.models import Service
from utilities.views import (
BulkComponentCreateView, BulkDeleteView, BulkEditView, BulkImportView, ComponentCreateView, ObjectDeleteView,
ObjectEditView, ObjectListView, ObjectSetFieldNullView,
ObjectEditView, ObjectListView,
)
from . import filters, forms, tables
from .models import Cluster, ClusterGroup, ClusterType, VirtualMachine
@ -285,19 +285,6 @@ class VirtualMachineCreateView(PermissionRequiredMixin, ObjectEditView):
default_return_url = 'virtualization:virtualmachine_list'
class VirtualMachineEditLocalConfigContextView(VirtualMachineCreateView):
permission_required = 'virtualization.change_device'
model_form = forms.VirtualMachineLocalConfigContextForm
template_name = 'virtualization/virtualmachine_edit_local_config_context.html'
class VirtualMachineClearLocalContextDataView(ObjectSetFieldNullView):
permission_required = 'virtualization.change_virtualmachine'
model = VirtualMachine
field = 'local_config_context_data'
field_human_friendly_name = 'local config context'
class VirtualMachineEditView(VirtualMachineCreateView):
permission_required = 'virtualization.change_virtualmachine'