0081_3569_device_fields.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. from django.db import migrations, models
  2. DEVICE_FACE_CHOICES = (
  3. (0, 'front'),
  4. (1, 'rear'),
  5. )
  6. DEVICE_STATUS_CHOICES = (
  7. (0, 'offline'),
  8. (1, 'active'),
  9. (2, 'planned'),
  10. (3, 'staged'),
  11. (4, 'failed'),
  12. (5, 'inventory'),
  13. (6, 'decommissioning'),
  14. )
  15. def device_face_to_slug(apps, schema_editor):
  16. Device = apps.get_model('dcim', 'Device')
  17. for id, slug in DEVICE_FACE_CHOICES:
  18. Device.objects.filter(face=str(id)).update(face=slug)
  19. def device_status_to_slug(apps, schema_editor):
  20. Device = apps.get_model('dcim', 'Device')
  21. for id, slug in DEVICE_STATUS_CHOICES:
  22. Device.objects.filter(status=str(id)).update(status=slug)
  23. class Migration(migrations.Migration):
  24. atomic = False
  25. dependencies = [
  26. ('dcim', '0080_3569_devicetype_fields'),
  27. ]
  28. operations = [
  29. # Device.face
  30. migrations.AlterField(
  31. model_name='device',
  32. name='face',
  33. field=models.CharField(blank=True, default='', max_length=50),
  34. ),
  35. migrations.RunPython(
  36. code=device_face_to_slug
  37. ),
  38. migrations.AlterField(
  39. model_name='device',
  40. name='face',
  41. field=models.CharField(blank=True, max_length=50),
  42. ),
  43. # Device.status
  44. migrations.AlterField(
  45. model_name='device',
  46. name='status',
  47. field=models.CharField(default='active', max_length=50),
  48. ),
  49. migrations.RunPython(
  50. code=device_status_to_slug
  51. ),
  52. ]