diff --git a/netbox/core/forms/mixins.py b/netbox/core/forms/mixins.py new file mode 100644 index 000000000..3e76f67a2 --- /dev/null +++ b/netbox/core/forms/mixins.py @@ -0,0 +1,25 @@ +from django import forms +from django.utils.translation import gettext as _ + +from core.models import DataFile, DataSource +from utilities.forms.fields import DynamicModelChoiceField + +__all__ = ( + 'SyncedDataMixin', +) + + +class SyncedDataMixin(forms.Form): + data_source = DynamicModelChoiceField( + queryset=DataSource.objects.all(), + required=False, + label=_('Data source') + ) + data_file = DynamicModelChoiceField( + queryset=DataFile.objects.all(), + required=False, + label=_('File'), + query_params={ + 'source_id': '$data_source', + } + ) diff --git a/netbox/core/forms/model_forms.py b/netbox/core/forms/model_forms.py index 405d70437..666a19e85 100644 --- a/netbox/core/forms/model_forms.py +++ b/netbox/core/forms/model_forms.py @@ -2,8 +2,8 @@ import copy from django import forms +from core.forms.mixins import SyncedDataMixin from core.models import * -from extras.forms.mixins import SyncedDataMixin from netbox.forms import NetBoxModelForm from netbox.registry import registry from utilities.forms import get_field_value diff --git a/netbox/extras/forms/mixins.py b/netbox/extras/forms/mixins.py index 4e05e3a1e..be45f5211 100644 --- a/netbox/extras/forms/mixins.py +++ b/netbox/extras/forms/mixins.py @@ -1,16 +1,14 @@ -from django.contrib.contenttypes.models import ContentType from django import forms +from django.contrib.contenttypes.models import ContentType from django.utils.translation import gettext as _ -from core.models import DataFile, DataSource -from extras.models import * from extras.choices import CustomFieldVisibilityChoices -from utilities.forms.fields import DynamicModelChoiceField, DynamicModelMultipleChoiceField +from extras.models import * +from utilities.forms.fields import DynamicModelMultipleChoiceField __all__ = ( 'CustomFieldsMixin', 'SavedFiltersMixin', - 'SyncedDataMixin', ) @@ -74,19 +72,3 @@ class SavedFiltersMixin(forms.Form): 'usable': True, } ) - - -class SyncedDataMixin(forms.Form): - data_source = DynamicModelChoiceField( - queryset=DataSource.objects.all(), - required=False, - label=_('Data source') - ) - data_file = DynamicModelChoiceField( - queryset=DataFile.objects.all(), - required=False, - label=_('File'), - query_params={ - 'source_id': '$data_source', - } - ) diff --git a/netbox/extras/forms/model_forms.py b/netbox/extras/forms/model_forms.py index bc79d8fe5..2f617b682 100644 --- a/netbox/extras/forms/model_forms.py +++ b/netbox/extras/forms/model_forms.py @@ -5,9 +5,9 @@ from django.db.models import Q from django.contrib.contenttypes.models import ContentType from django.utils.translation import gettext as _ +from core.forms.mixins import SyncedDataMixin from dcim.models import DeviceRole, DeviceType, Location, Platform, Region, Site, SiteGroup from extras.choices import * -from extras.forms.mixins import SyncedDataMixin from extras.models import * from extras.utils import FeatureQuery from netbox.forms import NetBoxModelForm diff --git a/netbox/utilities/forms/bulk_import.py b/netbox/utilities/forms/bulk_import.py index 5538f4f0c..675f0149d 100644 --- a/netbox/utilities/forms/bulk_import.py +++ b/netbox/utilities/forms/bulk_import.py @@ -6,7 +6,7 @@ import yaml from django import forms from django.utils.translation import gettext as _ -from extras.forms.mixins import SyncedDataMixin +from core.forms.mixins import SyncedDataMixin from utilities.choices import ImportFormatChoices from utilities.forms.utils import parse_csv from ..choices import ImportMethodChoices