mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-22 20:12:00 -06:00
PowerFeed.type to slug (#3569)
This commit is contained in:
parent
9872a46583
commit
62494f295e
@ -691,8 +691,8 @@ class PowerFeedSerializer(TaggitSerializer, CustomFieldModelSerializer):
|
|||||||
default=None
|
default=None
|
||||||
)
|
)
|
||||||
type = ChoiceField(
|
type = ChoiceField(
|
||||||
choices=POWERFEED_TYPE_CHOICES,
|
choices=PowerFeedTypeChoices,
|
||||||
default=POWERFEED_TYPE_PRIMARY
|
default=PowerFeedTypeChoices.TYPE_PRIMARY
|
||||||
)
|
)
|
||||||
status = ChoiceField(
|
status = ChoiceField(
|
||||||
choices=POWERFEED_STATUS_CHOICES,
|
choices=POWERFEED_STATUS_CHOICES,
|
||||||
|
@ -872,3 +872,23 @@ class CableLengthUnitChoices(ChoiceSet):
|
|||||||
UNIT_FOOT: 2100,
|
UNIT_FOOT: 2100,
|
||||||
UNIT_INCH: 2000,
|
UNIT_INCH: 2000,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# PowerFeeds
|
||||||
|
#
|
||||||
|
|
||||||
|
class PowerFeedTypeChoices(ChoiceSet):
|
||||||
|
|
||||||
|
TYPE_PRIMARY = 'primary'
|
||||||
|
TYPE_REDUNDANT = 'redundant'
|
||||||
|
|
||||||
|
CHOICES = (
|
||||||
|
(TYPE_PRIMARY, 'Primary'),
|
||||||
|
(TYPE_REDUNDANT, 'Redundant'),
|
||||||
|
)
|
||||||
|
|
||||||
|
LEGACY_MAP = {
|
||||||
|
TYPE_PRIMARY: 1,
|
||||||
|
TYPE_REDUNDANT: 2,
|
||||||
|
}
|
||||||
|
@ -68,12 +68,6 @@ COMPATIBLE_TERMINATION_TYPES = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Power feeds
|
# Power feeds
|
||||||
POWERFEED_TYPE_PRIMARY = 1
|
|
||||||
POWERFEED_TYPE_REDUNDANT = 2
|
|
||||||
POWERFEED_TYPE_CHOICES = (
|
|
||||||
(POWERFEED_TYPE_PRIMARY, 'Primary'),
|
|
||||||
(POWERFEED_TYPE_REDUNDANT, 'Redundant'),
|
|
||||||
)
|
|
||||||
POWERFEED_SUPPLY_AC = 1
|
POWERFEED_SUPPLY_AC = 1
|
||||||
POWERFEED_SUPPLY_DC = 2
|
POWERFEED_SUPPLY_DC = 2
|
||||||
POWERFEED_SUPPLY_CHOICES = (
|
POWERFEED_SUPPLY_CHOICES = (
|
||||||
|
@ -3860,7 +3860,7 @@ class PowerFeedCSVForm(forms.ModelForm):
|
|||||||
help_text='Operational status'
|
help_text='Operational status'
|
||||||
)
|
)
|
||||||
type = CSVChoiceField(
|
type = CSVChoiceField(
|
||||||
choices=POWERFEED_TYPE_CHOICES,
|
choices=PowerFeedTypeChoices,
|
||||||
required=False,
|
required=False,
|
||||||
help_text='Primary or redundant'
|
help_text='Primary or redundant'
|
||||||
)
|
)
|
||||||
@ -3936,7 +3936,7 @@ class PowerFeedBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldBulkEd
|
|||||||
widget=StaticSelect2()
|
widget=StaticSelect2()
|
||||||
)
|
)
|
||||||
type = forms.ChoiceField(
|
type = forms.ChoiceField(
|
||||||
choices=add_blank_choice(POWERFEED_TYPE_CHOICES),
|
choices=add_blank_choice(PowerFeedTypeChoices),
|
||||||
required=False,
|
required=False,
|
||||||
initial='',
|
initial='',
|
||||||
widget=StaticSelect2()
|
widget=StaticSelect2()
|
||||||
@ -4014,7 +4014,7 @@ class PowerFeedFilterForm(BootstrapMixin, CustomFieldFilterForm):
|
|||||||
widget=StaticSelect2Multiple()
|
widget=StaticSelect2Multiple()
|
||||||
)
|
)
|
||||||
type = forms.ChoiceField(
|
type = forms.ChoiceField(
|
||||||
choices=add_blank_choice(POWERFEED_TYPE_CHOICES),
|
choices=add_blank_choice(PowerFeedTypeChoices),
|
||||||
required=False,
|
required=False,
|
||||||
widget=StaticSelect2()
|
widget=StaticSelect2()
|
||||||
)
|
)
|
||||||
|
35
netbox/dcim/migrations/0084_3569_powerfeed_fields.py
Normal file
35
netbox/dcim/migrations/0084_3569_powerfeed_fields.py
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
POWERFEED_TYPE_CHOICES = (
|
||||||
|
(1, 'primary'),
|
||||||
|
(2, 'redundant'),
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def powerfeed_type_to_slug(apps, schema_editor):
|
||||||
|
PowerFeed = apps.get_model('dcim', 'PowerFeed')
|
||||||
|
for id, slug in POWERFEED_TYPE_CHOICES:
|
||||||
|
PowerFeed.objects.filter(type=id).update(type=slug)
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
atomic = False
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('dcim', '0083_3569_cable_fields'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
|
||||||
|
# Cable.type
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='powerfeed',
|
||||||
|
name='type',
|
||||||
|
field=models.CharField(blank=True, max_length=50),
|
||||||
|
),
|
||||||
|
migrations.RunPython(
|
||||||
|
code=powerfeed_type_to_slug
|
||||||
|
),
|
||||||
|
|
||||||
|
]
|
@ -3111,9 +3111,9 @@ class PowerFeed(ChangeLoggedModel, CableTermination, CustomFieldModel):
|
|||||||
choices=POWERFEED_STATUS_CHOICES,
|
choices=POWERFEED_STATUS_CHOICES,
|
||||||
default=POWERFEED_STATUS_ACTIVE
|
default=POWERFEED_STATUS_ACTIVE
|
||||||
)
|
)
|
||||||
type = models.PositiveSmallIntegerField(
|
type = models.CharField(
|
||||||
choices=POWERFEED_TYPE_CHOICES,
|
choices=PowerFeedTypeChoices,
|
||||||
default=POWERFEED_TYPE_PRIMARY
|
default=PowerFeedTypeChoices.TYPE_PRIMARY
|
||||||
)
|
)
|
||||||
supply = models.PositiveSmallIntegerField(
|
supply = models.PositiveSmallIntegerField(
|
||||||
choices=POWERFEED_SUPPLY_CHOICES,
|
choices=POWERFEED_SUPPLY_CHOICES,
|
||||||
|
@ -3679,22 +3679,22 @@ class PowerFeedTest(APITestCase):
|
|||||||
site=self.site1, rack_group=self.rackgroup1, name='Test Power Panel 2'
|
site=self.site1, rack_group=self.rackgroup1, name='Test Power Panel 2'
|
||||||
)
|
)
|
||||||
self.powerfeed1 = PowerFeed.objects.create(
|
self.powerfeed1 = PowerFeed.objects.create(
|
||||||
power_panel=self.powerpanel1, rack=self.rack1, name='Test Power Feed 1A', type=POWERFEED_TYPE_PRIMARY
|
power_panel=self.powerpanel1, rack=self.rack1, name='Test Power Feed 1A', type=PowerFeedTypeChoices.TYPE_PRIMARY
|
||||||
)
|
)
|
||||||
self.powerfeed2 = PowerFeed.objects.create(
|
self.powerfeed2 = PowerFeed.objects.create(
|
||||||
power_panel=self.powerpanel2, rack=self.rack1, name='Test Power Feed 1B', type=POWERFEED_TYPE_REDUNDANT
|
power_panel=self.powerpanel2, rack=self.rack1, name='Test Power Feed 1B', type=PowerFeedTypeChoices.TYPE_REDUNDANT
|
||||||
)
|
)
|
||||||
self.powerfeed3 = PowerFeed.objects.create(
|
self.powerfeed3 = PowerFeed.objects.create(
|
||||||
power_panel=self.powerpanel1, rack=self.rack2, name='Test Power Feed 2A', type=POWERFEED_TYPE_PRIMARY
|
power_panel=self.powerpanel1, rack=self.rack2, name='Test Power Feed 2A', type=PowerFeedTypeChoices.TYPE_PRIMARY
|
||||||
)
|
)
|
||||||
self.powerfeed4 = PowerFeed.objects.create(
|
self.powerfeed4 = PowerFeed.objects.create(
|
||||||
power_panel=self.powerpanel2, rack=self.rack2, name='Test Power Feed 2B', type=POWERFEED_TYPE_REDUNDANT
|
power_panel=self.powerpanel2, rack=self.rack2, name='Test Power Feed 2B', type=PowerFeedTypeChoices.TYPE_REDUNDANT
|
||||||
)
|
)
|
||||||
self.powerfeed5 = PowerFeed.objects.create(
|
self.powerfeed5 = PowerFeed.objects.create(
|
||||||
power_panel=self.powerpanel1, rack=self.rack3, name='Test Power Feed 3A', type=POWERFEED_TYPE_PRIMARY
|
power_panel=self.powerpanel1, rack=self.rack3, name='Test Power Feed 3A', type=PowerFeedTypeChoices.TYPE_PRIMARY
|
||||||
)
|
)
|
||||||
self.powerfeed6 = PowerFeed.objects.create(
|
self.powerfeed6 = PowerFeed.objects.create(
|
||||||
power_panel=self.powerpanel2, rack=self.rack3, name='Test Power Feed 3B', type=POWERFEED_TYPE_REDUNDANT
|
power_panel=self.powerpanel2, rack=self.rack3, name='Test Power Feed 3B', type=PowerFeedTypeChoices.TYPE_REDUNDANT
|
||||||
)
|
)
|
||||||
|
|
||||||
def test_get_powerfeed(self):
|
def test_get_powerfeed(self):
|
||||||
@ -3727,7 +3727,7 @@ class PowerFeedTest(APITestCase):
|
|||||||
'name': 'Test Power Feed 4A',
|
'name': 'Test Power Feed 4A',
|
||||||
'power_panel': self.powerpanel1.pk,
|
'power_panel': self.powerpanel1.pk,
|
||||||
'rack': self.rack4.pk,
|
'rack': self.rack4.pk,
|
||||||
'type': POWERFEED_TYPE_PRIMARY,
|
'type': PowerFeedTypeChoices.TYPE_PRIMARY,
|
||||||
}
|
}
|
||||||
|
|
||||||
url = reverse('dcim-api:powerfeed-list')
|
url = reverse('dcim-api:powerfeed-list')
|
||||||
@ -3747,13 +3747,13 @@ class PowerFeedTest(APITestCase):
|
|||||||
'name': 'Test Power Feed 4A',
|
'name': 'Test Power Feed 4A',
|
||||||
'power_panel': self.powerpanel1.pk,
|
'power_panel': self.powerpanel1.pk,
|
||||||
'rack': self.rack4.pk,
|
'rack': self.rack4.pk,
|
||||||
'type': POWERFEED_TYPE_PRIMARY,
|
'type': PowerFeedTypeChoices.TYPE_PRIMARY,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'name': 'Test Power Feed 4B',
|
'name': 'Test Power Feed 4B',
|
||||||
'power_panel': self.powerpanel1.pk,
|
'power_panel': self.powerpanel1.pk,
|
||||||
'rack': self.rack4.pk,
|
'rack': self.rack4.pk,
|
||||||
'type': POWERFEED_TYPE_REDUNDANT,
|
'type': PowerFeedTypeChoices.TYPE_REDUNDANT,
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -3770,7 +3770,7 @@ class PowerFeedTest(APITestCase):
|
|||||||
data = {
|
data = {
|
||||||
'name': 'Test Power Feed X',
|
'name': 'Test Power Feed X',
|
||||||
'rack': self.rack4.pk,
|
'rack': self.rack4.pk,
|
||||||
'type': POWERFEED_TYPE_REDUNDANT,
|
'type': PowerFeedTypeChoices.TYPE_REDUNDANT,
|
||||||
}
|
}
|
||||||
|
|
||||||
url = reverse('dcim-api:powerfeed-detail', kwargs={'pk': self.powerfeed1.pk})
|
url = reverse('dcim-api:powerfeed-detail', kwargs={'pk': self.powerfeed1.pk})
|
||||||
|
Loading…
Reference in New Issue
Block a user