bulk_create.py 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. from django import forms
  2. from dcim.models import *
  3. from extras.forms import CustomFieldsMixin
  4. from extras.models import Tag
  5. from utilities.forms import BootstrapMixin, DynamicModelMultipleChoiceField, form_from_model
  6. from .object_create import ComponentForm
  7. __all__ = (
  8. 'ConsolePortBulkCreateForm',
  9. 'ConsoleServerPortBulkCreateForm',
  10. 'DeviceBayBulkCreateForm',
  11. # 'FrontPortBulkCreateForm',
  12. 'InterfaceBulkCreateForm',
  13. 'InventoryItemBulkCreateForm',
  14. 'PowerOutletBulkCreateForm',
  15. 'PowerPortBulkCreateForm',
  16. 'RearPortBulkCreateForm',
  17. )
  18. #
  19. # Device components
  20. #
  21. class DeviceBulkAddComponentForm(BootstrapMixin, CustomFieldsMixin, ComponentForm):
  22. pk = forms.ModelMultipleChoiceField(
  23. queryset=Device.objects.all(),
  24. widget=forms.MultipleHiddenInput()
  25. )
  26. description = forms.CharField(
  27. max_length=100,
  28. required=False
  29. )
  30. tags = DynamicModelMultipleChoiceField(
  31. queryset=Tag.objects.all(),
  32. required=False
  33. )
  34. class ConsolePortBulkCreateForm(
  35. form_from_model(ConsolePort, ['type', 'speed', 'mark_connected']),
  36. DeviceBulkAddComponentForm
  37. ):
  38. model = ConsolePort
  39. field_order = ('name_pattern', 'label_pattern', 'type', 'mark_connected', 'description', 'tags')
  40. class ConsoleServerPortBulkCreateForm(
  41. form_from_model(ConsoleServerPort, ['type', 'speed', 'mark_connected']),
  42. DeviceBulkAddComponentForm
  43. ):
  44. model = ConsoleServerPort
  45. field_order = ('name_pattern', 'label_pattern', 'type', 'speed', 'description', 'tags')
  46. class PowerPortBulkCreateForm(
  47. form_from_model(PowerPort, ['type', 'maximum_draw', 'allocated_draw', 'mark_connected']),
  48. DeviceBulkAddComponentForm
  49. ):
  50. model = PowerPort
  51. field_order = ('name_pattern', 'label_pattern', 'type', 'maximum_draw', 'allocated_draw', 'description', 'tags')
  52. class PowerOutletBulkCreateForm(
  53. form_from_model(PowerOutlet, ['type', 'feed_leg', 'mark_connected']),
  54. DeviceBulkAddComponentForm
  55. ):
  56. model = PowerOutlet
  57. field_order = ('name_pattern', 'label_pattern', 'type', 'feed_leg', 'description', 'tags')
  58. class InterfaceBulkCreateForm(
  59. form_from_model(Interface, ['type', 'enabled', 'mtu', 'mgmt_only', 'mark_connected']),
  60. DeviceBulkAddComponentForm
  61. ):
  62. model = Interface
  63. field_order = (
  64. 'name_pattern', 'label_pattern', 'type', 'enabled', 'mtu', 'mgmt_only', 'mark_connected', 'description', 'tags',
  65. )
  66. # class FrontPortBulkCreateForm(
  67. # form_from_model(FrontPort, ['label', 'type', 'description', 'tags']),
  68. # DeviceBulkAddComponentForm
  69. # ):
  70. # pass
  71. class RearPortBulkCreateForm(
  72. form_from_model(RearPort, ['type', 'color', 'positions', 'mark_connected']),
  73. DeviceBulkAddComponentForm
  74. ):
  75. model = RearPort
  76. field_order = ('name_pattern', 'label_pattern', 'type', 'positions', 'mark_connected', 'description', 'tags')
  77. class DeviceBayBulkCreateForm(DeviceBulkAddComponentForm):
  78. model = DeviceBay
  79. field_order = ('name_pattern', 'label_pattern', 'description', 'tags')
  80. class InventoryItemBulkCreateForm(
  81. form_from_model(InventoryItem, ['manufacturer', 'part_id', 'serial', 'asset_tag', 'discovered']),
  82. DeviceBulkAddComponentForm
  83. ):
  84. model = InventoryItem
  85. field_order = (
  86. 'name_pattern', 'label_pattern', 'manufacturer', 'part_id', 'serial', 'asset_tag', 'discovered', 'description',
  87. 'tags',
  88. )