bulk_edit.py 5.1 KB

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