Coverage for core/forms/bulk_edit.py: 100%
19 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 18:35 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 18:35 +0000
1from django import forms
2from django.utils.translation import gettext_lazy as _
4from core.choices import JobIntervalChoices
5from core.models import *
6from netbox.forms import PrimaryModelBulkEditForm
7from netbox.utils import get_data_backend_choices
8from utilities.forms.fields import ChoiceField
9from utilities.forms.rendering import FieldSet
10from utilities.forms.widgets import BulkEditNullBooleanSelect
12__all__ = (
13 'DataSourceBulkEditForm',
14)
17class DataSourceBulkEditForm(PrimaryModelBulkEditForm):
18 type = ChoiceField(
19 label=_('Type'),
20 choices=get_data_backend_choices,
21 required=False
22 )
23 enabled = forms.NullBooleanField(
24 required=False,
25 widget=BulkEditNullBooleanSelect(),
26 label=_('Enabled')
27 )
28 sync_interval = ChoiceField(
29 choices=JobIntervalChoices,
30 required=False,
31 label=_('Sync interval')
32 )
33 parameters = forms.JSONField(
34 label=_('Parameters'),
35 required=False
36 )
37 ignore_rules = forms.CharField(
38 label=_('Ignore rules'),
39 required=False,
40 widget=forms.Textarea()
41 )
43 model = DataSource
44 fieldsets = (
45 FieldSet('type', 'enabled', 'description', 'sync_interval', 'parameters', 'ignore_rules'),
46 )
47 nullable_fields = (
48 'description', 'sync_interval', 'parameters', 'ignore_rules', 'comments',
49 )