bulk_edit.py 5.0 KB

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