PowerFeed.type to slug (#3569)

This commit is contained in:
Jeremy Stretch 2019-11-25 21:03:11 -05:00
parent 9872a46583
commit 62494f295e
7 changed files with 73 additions and 24 deletions

View File

@ -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,

View File

@ -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,
}

View File

@ -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 = (

View File

@ -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()
) )

View 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
),
]

View File

@ -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,

View File

@ -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})