From 6956d88bf9fea60dab4029646e17724fe0f7151d Mon Sep 17 00:00:00 2001 From: Arthur Hanson Date: Fri, 19 Jul 2024 13:12:17 +0700 Subject: [PATCH] 7025 assignments --- netbox/circuits/forms/model_forms.py | 6 ------ netbox/circuits/tables/circuits.py | 13 +++++++++++-- netbox/circuits/views.py | 11 +++++++++-- netbox/templates/circuits/circuitgroup.html | 8 ++++++++ 4 files changed, 28 insertions(+), 10 deletions(-) diff --git a/netbox/circuits/forms/model_forms.py b/netbox/circuits/forms/model_forms.py index 0efbf90cf..7317840e6 100644 --- a/netbox/circuits/forms/model_forms.py +++ b/netbox/circuits/forms/model_forms.py @@ -190,16 +190,10 @@ class CircuitGroupAssignmentForm(NetBoxModelForm): group = DynamicModelChoiceField( label=_('Group'), queryset=CircuitGroup.objects.all(), - initial_params={ - 'groups': '$group' - } ) circuit = DynamicModelChoiceField( label=_('Circuit'), queryset=Circuit.objects.all(), - initial_params={ - 'circuits': '$circuit' - } ) class Meta: diff --git a/netbox/circuits/tables/circuits.py b/netbox/circuits/tables/circuits.py index 8e46e293e..76fd1a0a1 100644 --- a/netbox/circuits/tables/circuits.py +++ b/netbox/circuits/tables/circuits.py @@ -128,13 +128,22 @@ class CircuitGroupTable(NetBoxTable): verbose_name=_('Name'), linkify=True ) + circuit_group_assignment_count = columns.LinkedCountColumn( + viewname='circuits:circuitgroupassignment_list', + url_params={'group_id': 'pk'}, + verbose_name=_('Circuits') + ) + tags = columns.TagColumn( + url_name='circuits:circuitgroup_list' + ) class Meta(NetBoxTable.Meta): model = CircuitGroup fields = ( - 'pk', 'name', 'created', 'last_updated', 'actions', + 'pk', 'name', 'circuit_group_assignment_count', 'tags', + 'created', 'last_updated', 'actions', ) - default_columns = ('pk', 'name',) + default_columns = ('pk', 'name', 'circuit_group_assignment_count') class CircuitGroupAssignmentTable(NetBoxTable): diff --git a/netbox/circuits/views.py b/netbox/circuits/views.py index 161cf5435..22ae7f1d2 100644 --- a/netbox/circuits/views.py +++ b/netbox/circuits/views.py @@ -447,16 +447,23 @@ register_model_view(CircuitTermination, 'trace', kwargs={'model': CircuitTermina # class CircuitGroupListView(generic.ObjectListView): - queryset = CircuitGroup.objects.all() + queryset = CircuitGroup.objects.annotate( + circuit_group_assignment_count=count_related(CircuitGroupAssignment, 'group') + ) filterset = filtersets.CircuitGroupFilterSet filterset_form = forms.CircuitGroupFilterForm table = tables.CircuitGroupTable @register_model_view(CircuitGroup) -class CircuitGroupView(generic.ObjectView): +class CircuitGroupView(GetRelatedModelsMixin, generic.ObjectView): queryset = CircuitGroup.objects.all() + def get_extra_context(self, request, instance): + return { + 'related_models': self.get_related_models(request, instance), + } + @register_model_view(CircuitGroup, 'edit') class CircuitGroupEditView(generic.ObjectEditView): diff --git a/netbox/templates/circuits/circuitgroup.html b/netbox/templates/circuits/circuitgroup.html index e5185dd74..4148f3f46 100644 --- a/netbox/templates/circuits/circuitgroup.html +++ b/netbox/templates/circuits/circuitgroup.html @@ -10,6 +10,14 @@ {% endblock %} +{% block extra_controls %} + {% if perms.circuit.add_circuitgroupassignment %} + + {% trans "Add Circuit Assignment" %} + + {% endif %} +{% endblock extra_controls %} + {% block content %}