From 1d533c4e4a5ef9183f77a3b8f886dff4de8f5bef Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Fri, 3 Jan 2025 13:18:31 -0500 Subject: [PATCH] Clean up bulk import & extend tests --- netbox/circuits/forms/bulk_import.py | 9 +++++++++ netbox/circuits/models/circuits.py | 4 +++- netbox/circuits/tests/test_views.py | 15 +++++++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/netbox/circuits/forms/bulk_import.py b/netbox/circuits/forms/bulk_import.py index 62a3a3aa2..428c636b3 100644 --- a/netbox/circuits/forms/bulk_import.py +++ b/netbox/circuits/forms/bulk_import.py @@ -179,6 +179,15 @@ class CircuitGroupImportForm(NetBoxModelImportForm): class CircuitGroupAssignmentImportForm(NetBoxModelImportForm): + member_type = CSVContentTypeField( + queryset=ContentType.objects.filter(CIRCUIT_GROUP_ASSIGNMENT_MEMBER_MODELS), + label=_('Circuit type (app & model)') + ) + priority = CSVChoiceField( + label=_('Priority'), + choices=CircuitPriorityChoices, + required=False + ) class Meta: model = CircuitGroupAssignment diff --git a/netbox/circuits/models/circuits.py b/netbox/circuits/models/circuits.py index 708c6be9c..8a8e4bdf9 100644 --- a/netbox/circuits/models/circuits.py +++ b/netbox/circuits/models/circuits.py @@ -191,7 +191,9 @@ class CircuitGroupAssignment(CustomFieldsMixin, ExportTemplatesMixin, TagsMixin, on_delete=models.PROTECT, related_name='+' ) - member_id = models.PositiveBigIntegerField() + member_id = models.PositiveBigIntegerField( + verbose_name=_('member ID') + ) member = GenericForeignKey( ct_field='member_type', fk_field='member_id' diff --git a/netbox/circuits/tests/test_views.py b/netbox/circuits/tests/test_views.py index d6aa397ec..56f874c1a 100644 --- a/netbox/circuits/tests/test_views.py +++ b/netbox/circuits/tests/test_views.py @@ -468,6 +468,7 @@ class CircuitGroupAssignmentTestCase( ViewTestCases.DeleteObjectViewTestCase, ViewTestCases.ListObjectsViewTestCase, ViewTestCases.BulkEditObjectsViewTestCase, + ViewTestCases.BulkImportObjectsViewTestCase, ViewTestCases.BulkDeleteObjectsViewTestCase ): model = CircuitGroupAssignment @@ -523,6 +524,20 @@ class CircuitGroupAssignmentTestCase( 'tags': [t.pk for t in tags], } + cls.csv_data = ( + "member_type,member_id,group,priority", + f"circuits.circuit,{circuits[0].pk},{circuit_groups[3].pk},primary", + f"circuits.circuit,{circuits[1].pk},{circuit_groups[3].pk},secondary", + f"circuits.circuit,{circuits[2].pk},{circuit_groups[3].pk},tertiary", + ) + + cls.csv_update_data = ( + "id,priority", + f"{assignments[0].pk},inactive", + f"{assignments[1].pk},inactive", + f"{assignments[2].pk},inactive", + ) + cls.bulk_edit_data = { 'priority': CircuitPriorityChoices.PRIORITY_INACTIVE, }