bulk_edit.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. from django import forms
  2. from django.utils.translation import gettext_lazy as _
  3. from core.choices import JobIntervalChoices
  4. from core.models import *
  5. from netbox.forms import PrimaryModelBulkEditForm
  6. from netbox.utils import get_data_backend_choices
  7. from utilities.forms.rendering import FieldSet
  8. from utilities.forms.widgets import BulkEditNullBooleanSelect
  9. __all__ = (
  10. 'DataSourceBulkEditForm',
  11. )
  12. class DataSourceBulkEditForm(PrimaryModelBulkEditForm):
  13. type = forms.ChoiceField(
  14. label=_('Type'),
  15. choices=get_data_backend_choices,
  16. required=False
  17. )
  18. enabled = forms.NullBooleanField(
  19. required=False,
  20. widget=BulkEditNullBooleanSelect(),
  21. label=_('Enabled')
  22. )
  23. sync_interval = forms.ChoiceField(
  24. choices=JobIntervalChoices,
  25. required=False,
  26. label=_('Sync interval')
  27. )
  28. parameters = forms.JSONField(
  29. label=_('Parameters'),
  30. required=False
  31. )
  32. ignore_rules = forms.CharField(
  33. label=_('Ignore rules'),
  34. required=False,
  35. widget=forms.Textarea()
  36. )
  37. model = DataSource
  38. fieldsets = (
  39. FieldSet('type', 'enabled', 'description', 'sync_interval', 'parameters', 'ignore_rules', 'comments'),
  40. )
  41. nullable_fields = (
  42. 'description', 'description', 'sync_interval', 'parameters', 'parameters', 'ignore_rules' 'comments',
  43. )