mirror of
https://github.com/netbox-community/netbox.git
synced 2025-08-23 16:06:43 -06:00
8356 review changes
This commit is contained in:
parent
7e08c3474a
commit
2718700c74
@ -321,7 +321,7 @@ class VirtualDiskFilterSet(NetBoxModelFilterSet):
|
||||
|
||||
class Meta:
|
||||
model = VirtualDisk
|
||||
fields = ['id', 'name', 'size',]
|
||||
fields = ['id', 'name', 'size']
|
||||
|
||||
def search(self, queryset, name, value):
|
||||
if not value.strip():
|
||||
|
@ -229,10 +229,16 @@ class VirtualDiskFilterForm(NetBoxModelFilterSetForm):
|
||||
fieldsets = (
|
||||
(None, ('q', 'filter_id', 'tag')),
|
||||
(_('Virtual Machine'), ('virtual_machine_id',)),
|
||||
(_('Attributes'), ('size',)),
|
||||
)
|
||||
virtual_machine_id = DynamicModelMultipleChoiceField(
|
||||
queryset=VirtualMachine.objects.all(),
|
||||
required=False,
|
||||
label=_('Virtual machine')
|
||||
)
|
||||
size = forms.IntegerField(
|
||||
label=_('Size (GB)'),
|
||||
required=False,
|
||||
min_value=1
|
||||
)
|
||||
tag = TagFilterField(model)
|
||||
|
@ -1,7 +1,8 @@
|
||||
# Generated by Django 4.2.5 on 2023-10-19 21:51
|
||||
# Generated by Django 4.2.5 on 2023-10-23 15:13
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
import django.db.models.functions.text
|
||||
import taggit.managers
|
||||
import utilities.fields
|
||||
import utilities.json
|
||||
@ -40,7 +41,7 @@ class Migration(migrations.Migration):
|
||||
'name', blank=True, max_length=100, naturalize_function=utilities.ordering.naturalize
|
||||
),
|
||||
),
|
||||
('size', models.PositiveIntegerField(blank=True, null=True)),
|
||||
('size', models.PositiveIntegerField()),
|
||||
('tags', taggit.managers.TaggableManager(through='extras.TaggedItem', to='extras.Tag')),
|
||||
(
|
||||
'virtual_machine',
|
||||
@ -58,4 +59,12 @@ class Migration(migrations.Migration):
|
||||
},
|
||||
bases=(models.Model, utilities.tracking.TrackingModelMixin),
|
||||
),
|
||||
migrations.AddConstraint(
|
||||
model_name='virtualdisk',
|
||||
constraint=models.UniqueConstraint(
|
||||
django.db.models.functions.text.Lower('name'),
|
||||
models.F('virtual_machine'),
|
||||
name='virtualization_virtualdisk_unique_name_virtual_machine',
|
||||
),
|
||||
),
|
||||
]
|
@ -396,12 +396,16 @@ class VirtualDisk(NetBoxModel, TrackingModelMixin):
|
||||
)
|
||||
size = models.PositiveIntegerField(
|
||||
verbose_name=_('size (GB)'),
|
||||
blank=True,
|
||||
null=True,
|
||||
)
|
||||
|
||||
class Meta:
|
||||
ordering = ('_name', 'pk') # Name may be non-unique
|
||||
constraints = (
|
||||
models.UniqueConstraint(
|
||||
Lower('name'), 'virtual_machine',
|
||||
name='%(app_label)s_%(class)s_unique_name_virtual_machine'
|
||||
),
|
||||
)
|
||||
verbose_name = _('virtual disk')
|
||||
verbose_name_plural = _('virtual disks')
|
||||
|
||||
|
@ -191,12 +191,8 @@ class VirtualMachineVirtualDiskTable(VirtualDiskTable):
|
||||
actions=('edit', 'delete'),
|
||||
)
|
||||
|
||||
class Meta(NetBoxTable.Meta):
|
||||
model = VirtualDisk
|
||||
class Meta(VirtualDiskTable.Meta):
|
||||
fields = (
|
||||
'pk', 'id', 'name', 'size', 'tags', 'actions',
|
||||
)
|
||||
default_columns = ('pk', 'name', 'size')
|
||||
row_attrs = {
|
||||
'data-name': lambda record: record.name,
|
||||
}
|
||||
|
@ -6,7 +6,7 @@ from tenancy.models import Tenant, TenantGroup
|
||||
from utilities.testing import ChangeLoggedFilterSetTests, create_test_device
|
||||
from virtualization.choices import *
|
||||
from virtualization.filtersets import *
|
||||
from virtualization.models import Cluster, ClusterGroup, ClusterType, VirtualDisk, VirtualMachine, VMInterface
|
||||
from virtualization.models import *
|
||||
|
||||
|
||||
class ClusterTypeTestCase(TestCase, ChangeLoggedFilterSetTests):
|
||||
|
@ -7,7 +7,7 @@ from dcim.models import DeviceRole, Platform, Site
|
||||
from ipam.models import VLAN, VRF
|
||||
from utilities.testing import ViewTestCases, create_tags, create_test_device
|
||||
from virtualization.choices import *
|
||||
from virtualization.models import Cluster, ClusterGroup, ClusterType, VirtualDisk, VirtualMachine, VMInterface
|
||||
from virtualization.models import *
|
||||
|
||||
|
||||
class ClusterGroupTestCase(ViewTestCases.OrganizationalObjectViewTestCase):
|
||||
|
@ -22,13 +22,13 @@ from tenancy.views import ObjectContactsView
|
||||
from utilities.utils import count_related
|
||||
from utilities.views import ViewTab, register_model_view
|
||||
from . import filtersets, forms, tables
|
||||
from .models import Cluster, ClusterGroup, ClusterType, VirtualDisk, VirtualMachine, VMInterface
|
||||
|
||||
from .models import *
|
||||
|
||||
#
|
||||
# Cluster types
|
||||
#
|
||||
|
||||
|
||||
class ClusterTypeListView(generic.ObjectListView):
|
||||
queryset = ClusterType.objects.annotate(
|
||||
cluster_count=count_related(Cluster, 'type')
|
||||
@ -391,19 +391,17 @@ class VirtualMachineVirtualDisksView(generic.ObjectChildrenView):
|
||||
permission='virtualization.view_virtual_disk',
|
||||
weight=500
|
||||
)
|
||||
actions = ('add', 'import', 'export', 'bulk_edit', 'bulk_delete', 'bulk_rename')
|
||||
action_perms = defaultdict(set, **{
|
||||
actions = {
|
||||
'add': {'add'},
|
||||
'import': {'add'},
|
||||
'export': {'view'},
|
||||
'bulk_edit': {'change'},
|
||||
'bulk_delete': {'delete'},
|
||||
'bulk_rename': {'change'},
|
||||
})
|
||||
}
|
||||
|
||||
def get_children(self, request, parent):
|
||||
return parent.virtualdisks.restrict(request.user, 'view').prefetch_related(
|
||||
'tags',
|
||||
)
|
||||
return parent.virtualdisks.restrict(request.user, 'view').prefetch_related('tags',)
|
||||
|
||||
|
||||
@register_model_view(VirtualMachine, 'configcontext', path='config-context')
|
||||
|
Loading…
Reference in New Issue
Block a user