bulk_edit.py 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. from django import forms
  2. from django.contrib.contenttypes.models import ContentType
  3. from extras.choices import *
  4. from extras.models import *
  5. from extras.utils import FeatureQuery
  6. from utilities.forms import (
  7. BootstrapMixin, BulkEditForm, BulkEditNullBooleanSelect, ColorField, ContentTypeChoiceField, StaticSelect,
  8. )
  9. __all__ = (
  10. 'ConfigContextBulkEditForm',
  11. 'CustomFieldBulkEditForm',
  12. 'CustomLinkBulkEditForm',
  13. 'ExportTemplateBulkEditForm',
  14. 'JournalEntryBulkEditForm',
  15. 'TagBulkEditForm',
  16. 'WebhookBulkEditForm',
  17. )
  18. class CustomFieldBulkEditForm(BootstrapMixin, BulkEditForm):
  19. pk = forms.ModelMultipleChoiceField(
  20. queryset=CustomField.objects.all(),
  21. widget=forms.MultipleHiddenInput
  22. )
  23. description = forms.CharField(
  24. required=False
  25. )
  26. required = forms.NullBooleanField(
  27. required=False,
  28. widget=BulkEditNullBooleanSelect()
  29. )
  30. weight = forms.IntegerField(
  31. required=False
  32. )
  33. class Meta:
  34. nullable_fields = []
  35. class CustomLinkBulkEditForm(BootstrapMixin, BulkEditForm):
  36. pk = forms.ModelMultipleChoiceField(
  37. queryset=CustomLink.objects.all(),
  38. widget=forms.MultipleHiddenInput
  39. )
  40. content_type = ContentTypeChoiceField(
  41. queryset=ContentType.objects.all(),
  42. limit_choices_to=FeatureQuery('custom_fields'),
  43. required=False
  44. )
  45. new_window = forms.NullBooleanField(
  46. required=False,
  47. widget=BulkEditNullBooleanSelect()
  48. )
  49. weight = forms.IntegerField(
  50. required=False
  51. )
  52. button_class = forms.ChoiceField(
  53. choices=CustomLinkButtonClassChoices,
  54. required=False,
  55. widget=StaticSelect()
  56. )
  57. class Meta:
  58. nullable_fields = []
  59. class ExportTemplateBulkEditForm(BootstrapMixin, BulkEditForm):
  60. pk = forms.ModelMultipleChoiceField(
  61. queryset=ExportTemplate.objects.all(),
  62. widget=forms.MultipleHiddenInput
  63. )
  64. content_type = ContentTypeChoiceField(
  65. queryset=ContentType.objects.all(),
  66. limit_choices_to=FeatureQuery('custom_fields'),
  67. required=False
  68. )
  69. description = forms.CharField(
  70. max_length=200,
  71. required=False
  72. )
  73. mime_type = forms.CharField(
  74. max_length=50,
  75. required=False
  76. )
  77. file_extension = forms.CharField(
  78. max_length=15,
  79. required=False
  80. )
  81. as_attachment = forms.NullBooleanField(
  82. required=False,
  83. widget=BulkEditNullBooleanSelect()
  84. )
  85. class Meta:
  86. nullable_fields = ['description', 'mime_type', 'file_extension']
  87. class WebhookBulkEditForm(BootstrapMixin, BulkEditForm):
  88. pk = forms.ModelMultipleChoiceField(
  89. queryset=Webhook.objects.all(),
  90. widget=forms.MultipleHiddenInput
  91. )
  92. enabled = forms.NullBooleanField(
  93. required=False,
  94. widget=BulkEditNullBooleanSelect()
  95. )
  96. type_create = forms.NullBooleanField(
  97. required=False,
  98. widget=BulkEditNullBooleanSelect()
  99. )
  100. type_update = forms.NullBooleanField(
  101. required=False,
  102. widget=BulkEditNullBooleanSelect()
  103. )
  104. type_delete = forms.NullBooleanField(
  105. required=False,
  106. widget=BulkEditNullBooleanSelect()
  107. )
  108. http_method = forms.ChoiceField(
  109. choices=WebhookHttpMethodChoices,
  110. required=False
  111. )
  112. payload_url = forms.CharField(
  113. required=False
  114. )
  115. ssl_verification = forms.NullBooleanField(
  116. required=False,
  117. widget=BulkEditNullBooleanSelect()
  118. )
  119. secret = forms.CharField(
  120. required=False
  121. )
  122. ca_file_path = forms.CharField(
  123. required=False
  124. )
  125. class Meta:
  126. nullable_fields = ['secret', 'conditions', 'ca_file_path']
  127. class TagBulkEditForm(BootstrapMixin, BulkEditForm):
  128. pk = forms.ModelMultipleChoiceField(
  129. queryset=Tag.objects.all(),
  130. widget=forms.MultipleHiddenInput
  131. )
  132. color = ColorField(
  133. required=False
  134. )
  135. description = forms.CharField(
  136. max_length=200,
  137. required=False
  138. )
  139. class Meta:
  140. nullable_fields = ['description']
  141. class ConfigContextBulkEditForm(BootstrapMixin, BulkEditForm):
  142. pk = forms.ModelMultipleChoiceField(
  143. queryset=ConfigContext.objects.all(),
  144. widget=forms.MultipleHiddenInput
  145. )
  146. weight = forms.IntegerField(
  147. required=False,
  148. min_value=0
  149. )
  150. is_active = forms.NullBooleanField(
  151. required=False,
  152. widget=BulkEditNullBooleanSelect()
  153. )
  154. description = forms.CharField(
  155. required=False,
  156. max_length=100
  157. )
  158. class Meta:
  159. nullable_fields = [
  160. 'description',
  161. ]
  162. class JournalEntryBulkEditForm(BootstrapMixin, BulkEditForm):
  163. pk = forms.ModelMultipleChoiceField(
  164. queryset=JournalEntry.objects.all(),
  165. widget=forms.MultipleHiddenInput
  166. )
  167. kind = forms.ChoiceField(
  168. choices=JournalEntryKindChoices,
  169. required=False
  170. )
  171. comments = forms.CharField(
  172. required=False,
  173. widget=forms.Textarea()
  174. )
  175. class Meta:
  176. nullable_fields = []