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

1from django import forms 

2from django.utils.translation import gettext_lazy as _ 

3 

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 

11 

12__all__ = ( 

13 'DataSourceBulkEditForm', 

14) 

15 

16 

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 ) 

42 

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 )