0079_3569_rack_fields.py 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. from django.db import migrations, models
  2. RACK_TYPE_CHOICES = (
  3. (100, '2-post-frame'),
  4. (200, '4-post-frame'),
  5. (300, '4-post-cabinet'),
  6. (1000, 'wall-frame'),
  7. (1100, 'wall-cabinet'),
  8. )
  9. RACK_STATUS_CHOICES = (
  10. (0, 'reserved'),
  11. (1, 'available'),
  12. (2, 'planned'),
  13. (3, 'active'),
  14. (4, 'deprecated'),
  15. )
  16. RACK_DIMENSION_CHOICES = (
  17. (1000, 'mm'),
  18. (2000, 'in'),
  19. )
  20. def rack_type_to_slug(apps, schema_editor):
  21. Rack = apps.get_model('dcim', 'Rack')
  22. for id, slug in RACK_TYPE_CHOICES:
  23. Rack.objects.filter(type=str(id)).update(type=slug)
  24. def rack_status_to_slug(apps, schema_editor):
  25. Rack = apps.get_model('dcim', 'Rack')
  26. for id, slug in RACK_STATUS_CHOICES:
  27. Rack.objects.filter(status=str(id)).update(status=slug)
  28. def rack_outer_unit_to_slug(apps, schema_editor):
  29. Rack = apps.get_model('dcim', 'Rack')
  30. for id, slug in RACK_DIMENSION_CHOICES:
  31. Rack.objects.filter(status=str(id)).update(status=slug)
  32. class Migration(migrations.Migration):
  33. atomic = False
  34. dependencies = [
  35. ('dcim', '0078_3569_site_fields'),
  36. ]
  37. operations = [
  38. # Rack.type
  39. migrations.AlterField(
  40. model_name='rack',
  41. name='type',
  42. field=models.CharField(blank=True, default='', max_length=50),
  43. ),
  44. migrations.RunPython(
  45. code=rack_type_to_slug
  46. ),
  47. migrations.AlterField(
  48. model_name='rack',
  49. name='type',
  50. field=models.CharField(blank=True, max_length=50),
  51. ),
  52. # Rack.status
  53. migrations.AlterField(
  54. model_name='rack',
  55. name='status',
  56. field=models.CharField(default='active', max_length=50),
  57. ),
  58. migrations.RunPython(
  59. code=rack_status_to_slug
  60. ),
  61. # Rack.outer_unit
  62. migrations.AlterField(
  63. model_name='rack',
  64. name='outer_unit',
  65. field=models.CharField(blank=True, default='', max_length=50),
  66. ),
  67. migrations.RunPython(
  68. code=rack_outer_unit_to_slug
  69. ),
  70. migrations.AlterField(
  71. model_name='rack',
  72. name='outer_unit',
  73. field=models.CharField(blank=True, max_length=50),
  74. ),
  75. ]