|
@@ -1,4 +1,5 @@
|
|
|
from django import forms
|
|
from django import forms
|
|
|
|
|
+from django.conf import settings
|
|
|
from django.utils.translation import gettext_lazy as _
|
|
from django.utils.translation import gettext_lazy as _
|
|
|
|
|
|
|
|
from dcim.choices import InterfaceModeChoices
|
|
from dcim.choices import InterfaceModeChoices
|
|
@@ -13,6 +14,7 @@ from tenancy.models import Tenant
|
|
|
from utilities.forms import BulkRenameForm, add_blank_choice
|
|
from utilities.forms import BulkRenameForm, add_blank_choice
|
|
|
from utilities.forms.fields import DynamicModelChoiceField, DynamicModelMultipleChoiceField
|
|
from utilities.forms.fields import DynamicModelChoiceField, DynamicModelMultipleChoiceField
|
|
|
from utilities.forms.rendering import FieldSet
|
|
from utilities.forms.rendering import FieldSet
|
|
|
|
|
+from utilities.forms.utils import get_capacity_unit_label
|
|
|
from utilities.forms.widgets import BulkEditNullBooleanSelect
|
|
from utilities.forms.widgets import BulkEditNullBooleanSelect
|
|
|
from virtualization.choices import *
|
|
from virtualization.choices import *
|
|
|
from virtualization.models import *
|
|
from virtualization.models import *
|
|
@@ -138,11 +140,11 @@ class VirtualMachineBulkEditForm(PrimaryModelBulkEditForm):
|
|
|
)
|
|
)
|
|
|
memory = forms.IntegerField(
|
|
memory = forms.IntegerField(
|
|
|
required=False,
|
|
required=False,
|
|
|
- label=_('Memory (MB)')
|
|
|
|
|
|
|
+ label=_('Memory')
|
|
|
)
|
|
)
|
|
|
disk = forms.IntegerField(
|
|
disk = forms.IntegerField(
|
|
|
required=False,
|
|
required=False,
|
|
|
- label=_('Disk (MB)')
|
|
|
|
|
|
|
+ label=_('Disk')
|
|
|
)
|
|
)
|
|
|
config_template = DynamicModelChoiceField(
|
|
config_template = DynamicModelChoiceField(
|
|
|
queryset=ConfigTemplate.objects.all(),
|
|
queryset=ConfigTemplate.objects.all(),
|
|
@@ -159,6 +161,13 @@ class VirtualMachineBulkEditForm(PrimaryModelBulkEditForm):
|
|
|
'site', 'cluster', 'device', 'role', 'tenant', 'platform', 'vcpus', 'memory', 'disk', 'description', 'comments',
|
|
'site', 'cluster', 'device', 'role', 'tenant', 'platform', 'vcpus', 'memory', 'disk', 'description', 'comments',
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
|
|
+ def __init__(self, *args, **kwargs):
|
|
|
|
|
+ super().__init__(*args, **kwargs)
|
|
|
|
|
+
|
|
|
|
|
+ # Set unit labels based on configured RAM_BASE_UNIT / DISK_BASE_UNIT (MB vs MiB)
|
|
|
|
|
+ self.fields['memory'].label = _('Memory ({unit})').format(unit=get_capacity_unit_label(settings.RAM_BASE_UNIT))
|
|
|
|
|
+ self.fields['disk'].label = _('Disk ({unit})').format(unit=get_capacity_unit_label(settings.DISK_BASE_UNIT))
|
|
|
|
|
+
|
|
|
|
|
|
|
|
class VMInterfaceBulkEditForm(OwnerMixin, NetBoxModelBulkEditForm):
|
|
class VMInterfaceBulkEditForm(OwnerMixin, NetBoxModelBulkEditForm):
|
|
|
virtual_machine = forms.ModelChoiceField(
|
|
virtual_machine = forms.ModelChoiceField(
|
|
@@ -304,7 +313,7 @@ class VirtualDiskBulkEditForm(OwnerMixin, NetBoxModelBulkEditForm):
|
|
|
)
|
|
)
|
|
|
size = forms.IntegerField(
|
|
size = forms.IntegerField(
|
|
|
required=False,
|
|
required=False,
|
|
|
- label=_('Size (MB)')
|
|
|
|
|
|
|
+ label=_('Size')
|
|
|
)
|
|
)
|
|
|
description = forms.CharField(
|
|
description = forms.CharField(
|
|
|
label=_('Description'),
|
|
label=_('Description'),
|
|
@@ -318,6 +327,12 @@ class VirtualDiskBulkEditForm(OwnerMixin, NetBoxModelBulkEditForm):
|
|
|
)
|
|
)
|
|
|
nullable_fields = ('description',)
|
|
nullable_fields = ('description',)
|
|
|
|
|
|
|
|
|
|
+ def __init__(self, *args, **kwargs):
|
|
|
|
|
+ super().__init__(*args, **kwargs)
|
|
|
|
|
+
|
|
|
|
|
+ # Set unit label based on configured DISK_BASE_UNIT (MB vs MiB)
|
|
|
|
|
+ self.fields['size'].label = _('Size ({unit})').format(unit=get_capacity_unit_label(settings.DISK_BASE_UNIT))
|
|
|
|
|
+
|
|
|
|
|
|
|
|
class VirtualDiskBulkRenameForm(BulkRenameForm):
|
|
class VirtualDiskBulkRenameForm(BulkRenameForm):
|
|
|
pk = forms.ModelMultipleChoiceField(
|
|
pk = forms.ModelMultipleChoiceField(
|