From bc3e1afe93edd9f164401117161c4f94901fd0ae Mon Sep 17 00:00:00 2001 From: Arthur Hanson Date: Tue, 22 Oct 2024 09:15:59 -0700 Subject: [PATCH] fix tests --- netbox/circuits/forms/bulk_edit.py | 14 +++++++++++--- netbox/circuits/models/circuits.py | 2 +- netbox/circuits/tests/test_views.py | 3 ++- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/netbox/circuits/forms/bulk_edit.py b/netbox/circuits/forms/bulk_edit.py index 4ce0f8283..39709387f 100644 --- a/netbox/circuits/forms/bulk_edit.py +++ b/netbox/circuits/forms/bulk_edit.py @@ -1,17 +1,19 @@ from django import forms +from django.contrib.contenttypes.models import ContentType from django.utils.translation import gettext_lazy as _ from circuits.choices import CircuitCommitRateChoices, CircuitPriorityChoices, CircuitStatusChoices +from circuits.constants import CIRCUIT_TERMINATION_SCOPE_TYPES from circuits.models import * from dcim.models import Site from ipam.models import ASN from netbox.choices import DistanceUnitChoices from netbox.forms import NetBoxModelBulkEditForm from tenancy.models import Tenant -from utilities.forms import add_blank_choice -from utilities.forms.fields import ColorField, CommentField, DynamicModelChoiceField, DynamicModelMultipleChoiceField +from utilities.forms import add_blank_choice, get_field_value +from utilities.forms.fields import ColorField, CommentField, ContentTypeChoiceField, DynamicModelChoiceField, DynamicModelMultipleChoiceField from utilities.forms.rendering import FieldSet, TabbedGroups -from utilities.forms.widgets import BulkEditNullBooleanSelect, DatePicker, NumberWithOptions +from utilities.forms.widgets import BulkEditNullBooleanSelect, DatePicker, HTMXSelect, NumberWithOptions __all__ = ( 'CircuitBulkEditForm', @@ -197,6 +199,12 @@ class CircuitTerminationBulkEditForm(NetBoxModelBulkEditForm): max_length=200, required=False ) + scope_type = ContentTypeChoiceField( + queryset=ContentType.objects.filter(model__in=CIRCUIT_TERMINATION_SCOPE_TYPES), + widget=HTMXSelect(method='post', attrs={'hx-select': '#form_fields'}), + required=False, + label=_('Scope type') + ) scope = DynamicModelChoiceField( label=_('Scope'), queryset=Site.objects.none(), # Initial queryset diff --git a/netbox/circuits/models/circuits.py b/netbox/circuits/models/circuits.py index 7e12ae04e..9eed05ca4 100644 --- a/netbox/circuits/models/circuits.py +++ b/netbox/circuits/models/circuits.py @@ -382,7 +382,7 @@ class CircuitTermination( def get_peer_termination(self): peer_side = 'Z' if self.term_side == 'A' else 'A' try: - return CircuitTermination.objects.prefetch_related('site').get( + return CircuitTermination.objects.prefetch_related('scope').get( circuit=self.circuit, term_side=peer_side ) diff --git a/netbox/circuits/tests/test_views.py b/netbox/circuits/tests/test_views.py index e5f940935..198762171 100644 --- a/netbox/circuits/tests/test_views.py +++ b/netbox/circuits/tests/test_views.py @@ -364,7 +364,8 @@ class CircuitTerminationTestCase(ViewTestCases.PrimaryObjectViewTestCase): CircuitTermination(circuit=circuits[1], term_side='A', scope=sites[0]), CircuitTermination(circuit=circuits[1], term_side='Z', scope=sites[1]), ) - CircuitTermination.objects.bulk_create(circuit_terminations) + for ct in circuit_terminations: + ct.save() cls.form_data = { 'circuit': circuits[2].pk,