bulk_edit.py 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  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. 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. nullable_fields = ('description',)
  34. class CustomLinkBulkEditForm(BulkEditForm):
  35. pk = forms.ModelMultipleChoiceField(
  36. queryset=CustomLink.objects.all(),
  37. widget=forms.MultipleHiddenInput
  38. )
  39. content_type = ContentTypeChoiceField(
  40. queryset=ContentType.objects.all(),
  41. limit_choices_to=FeatureQuery('custom_links'),
  42. required=False
  43. )
  44. enabled = forms.NullBooleanField(
  45. required=False,
  46. widget=BulkEditNullBooleanSelect()
  47. )
  48. new_window = forms.NullBooleanField(
  49. required=False,
  50. widget=BulkEditNullBooleanSelect()
  51. )
  52. weight = forms.IntegerField(
  53. required=False
  54. )
  55. button_class = forms.ChoiceField(
  56. choices=add_blank_choice(CustomLinkButtonClassChoices),
  57. required=False,
  58. widget=StaticSelect()
  59. )
  60. class ExportTemplateBulkEditForm(BulkEditForm):
  61. pk = forms.ModelMultipleChoiceField(
  62. queryset=ExportTemplate.objects.all(),
  63. widget=forms.MultipleHiddenInput
  64. )
  65. content_type = ContentTypeChoiceField(
  66. queryset=ContentType.objects.all(),
  67. limit_choices_to=FeatureQuery('export_templates'),
  68. required=False
  69. )
  70. description = forms.CharField(
  71. max_length=200,
  72. required=False
  73. )
  74. mime_type = forms.CharField(
  75. max_length=50,
  76. required=False
  77. )
  78. file_extension = forms.CharField(
  79. max_length=15,
  80. required=False
  81. )
  82. as_attachment = forms.NullBooleanField(
  83. required=False,
  84. widget=BulkEditNullBooleanSelect()
  85. )
  86. nullable_fields = ('description', 'mime_type', 'file_extension')
  87. class WebhookBulkEditForm(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=add_blank_choice(WebhookHttpMethodChoices),
  110. required=False,
  111. label='HTTP method'
  112. )
  113. payload_url = forms.CharField(
  114. required=False,
  115. label='Payload URL'
  116. )
  117. ssl_verification = forms.NullBooleanField(
  118. required=False,
  119. widget=BulkEditNullBooleanSelect(),
  120. label='SSL verification'
  121. )
  122. secret = forms.CharField(
  123. required=False
  124. )
  125. ca_file_path = forms.CharField(
  126. required=False,
  127. label='CA file path'
  128. )
  129. nullable_fields = ('secret', 'conditions', 'ca_file_path')
  130. class TagBulkEditForm(BulkEditForm):
  131. pk = forms.ModelMultipleChoiceField(
  132. queryset=Tag.objects.all(),
  133. widget=forms.MultipleHiddenInput
  134. )
  135. color = ColorField(
  136. required=False
  137. )
  138. description = forms.CharField(
  139. max_length=200,
  140. required=False
  141. )
  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. nullable_fields = ('description',)
  161. class JournalEntryBulkEditForm(BulkEditForm):
  162. pk = forms.ModelMultipleChoiceField(
  163. queryset=JournalEntry.objects.all(),
  164. widget=forms.MultipleHiddenInput
  165. )
  166. kind = forms.ChoiceField(
  167. choices=add_blank_choice(JournalEntryKindChoices),
  168. required=False
  169. )
  170. comments = forms.CharField(
  171. required=False,
  172. widget=forms.Textarea()
  173. )