bulk_edit.py 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. from django import forms
  2. from django.utils.translation import gettext as _
  3. from circuits.choices import CircuitStatusChoices
  4. from circuits.models import *
  5. from ipam.models import ASN
  6. from netbox.forms import NetBoxModelBulkEditForm
  7. from tenancy.models import Tenant
  8. from utilities.forms import (
  9. add_blank_choice, CommentField, DatePicker, DynamicModelChoiceField, DynamicModelMultipleChoiceField,
  10. )
  11. __all__ = (
  12. 'CircuitBulkEditForm',
  13. 'CircuitTypeBulkEditForm',
  14. 'ProviderBulkEditForm',
  15. 'ProviderNetworkBulkEditForm',
  16. )
  17. class ProviderBulkEditForm(NetBoxModelBulkEditForm):
  18. asns = DynamicModelMultipleChoiceField(
  19. queryset=ASN.objects.all(),
  20. label=_('ASNs'),
  21. required=False
  22. )
  23. account = forms.CharField(
  24. max_length=30,
  25. required=False,
  26. label=_('Account number')
  27. )
  28. description = forms.CharField(
  29. max_length=200,
  30. required=False
  31. )
  32. comments = CommentField(
  33. label=_('Comments')
  34. )
  35. model = Provider
  36. fieldsets = (
  37. (None, ('asns', 'account', )),
  38. )
  39. nullable_fields = (
  40. 'asns', 'account', 'description', 'comments',
  41. )
  42. class ProviderNetworkBulkEditForm(NetBoxModelBulkEditForm):
  43. provider = DynamicModelChoiceField(
  44. queryset=Provider.objects.all(),
  45. required=False
  46. )
  47. service_id = forms.CharField(
  48. max_length=100,
  49. required=False,
  50. label=_('Service ID')
  51. )
  52. description = forms.CharField(
  53. max_length=200,
  54. required=False
  55. )
  56. comments = CommentField(
  57. label=_('Comments')
  58. )
  59. model = ProviderNetwork
  60. fieldsets = (
  61. (None, ('provider', 'service_id', 'description')),
  62. )
  63. nullable_fields = (
  64. 'service_id', 'description', 'comments',
  65. )
  66. class CircuitTypeBulkEditForm(NetBoxModelBulkEditForm):
  67. description = forms.CharField(
  68. max_length=200,
  69. required=False
  70. )
  71. model = CircuitType
  72. fieldsets = (
  73. (None, ('description',)),
  74. )
  75. nullable_fields = ('description',)
  76. class CircuitBulkEditForm(NetBoxModelBulkEditForm):
  77. type = DynamicModelChoiceField(
  78. queryset=CircuitType.objects.all(),
  79. required=False
  80. )
  81. provider = DynamicModelChoiceField(
  82. queryset=Provider.objects.all(),
  83. required=False
  84. )
  85. status = forms.ChoiceField(
  86. choices=add_blank_choice(CircuitStatusChoices),
  87. required=False,
  88. initial=''
  89. )
  90. tenant = DynamicModelChoiceField(
  91. queryset=Tenant.objects.all(),
  92. required=False
  93. )
  94. install_date = forms.DateField(
  95. required=False,
  96. widget=DatePicker()
  97. )
  98. termination_date = forms.DateField(
  99. required=False,
  100. widget=DatePicker()
  101. )
  102. commit_rate = forms.IntegerField(
  103. required=False,
  104. label=_('Commit rate (Kbps)')
  105. )
  106. description = forms.CharField(
  107. max_length=100,
  108. required=False
  109. )
  110. comments = CommentField(
  111. label=_('Comments')
  112. )
  113. model = Circuit
  114. fieldsets = (
  115. ('Circuit', ('provider', 'type', 'status', 'description')),
  116. ('Service Parameters', ('install_date', 'termination_date', 'commit_rate')),
  117. ('Tenancy', ('tenant',)),
  118. )
  119. nullable_fields = (
  120. 'tenant', 'commit_rate', 'description', 'comments',
  121. )