mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-28 11:26:26 -06:00
Rename circuit to member on CircuitGroupAssignment
This commit is contained in:
parent
0cda10a204
commit
73fa32c01a
@ -154,14 +154,14 @@ class CircuitTerminationSerializer(NetBoxModelSerializer, CabledObjectSerializer
|
|||||||
|
|
||||||
|
|
||||||
class CircuitGroupAssignmentSerializer(CircuitGroupAssignmentSerializer_):
|
class CircuitGroupAssignmentSerializer(CircuitGroupAssignmentSerializer_):
|
||||||
circuit = CircuitSerializer(nested=True)
|
member = CircuitSerializer(nested=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = CircuitGroupAssignment
|
model = CircuitGroupAssignment
|
||||||
fields = [
|
fields = [
|
||||||
'id', 'url', 'display_url', 'display', 'group', 'circuit', 'priority', 'tags', 'created', 'last_updated',
|
'id', 'url', 'display_url', 'display', 'group', 'member', 'priority', 'tags', 'created', 'last_updated',
|
||||||
]
|
]
|
||||||
brief_fields = ('id', 'url', 'display', 'group', 'circuit', 'priority')
|
brief_fields = ('id', 'url', 'display', 'group', 'member', 'priority')
|
||||||
|
|
||||||
|
|
||||||
class VirtualCircuitSerializer(NetBoxModelSerializer):
|
class VirtualCircuitSerializer(NetBoxModelSerializer):
|
||||||
|
@ -366,22 +366,22 @@ class CircuitGroupAssignmentFilterSet(NetBoxModelFilterSet):
|
|||||||
label=_('Search'),
|
label=_('Search'),
|
||||||
)
|
)
|
||||||
provider_id = django_filters.ModelMultipleChoiceFilter(
|
provider_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
field_name='circuit__provider',
|
field_name='member__provider',
|
||||||
queryset=Provider.objects.all(),
|
queryset=Provider.objects.all(),
|
||||||
label=_('Provider (ID)'),
|
label=_('Provider (ID)'),
|
||||||
)
|
)
|
||||||
provider = django_filters.ModelMultipleChoiceFilter(
|
provider = django_filters.ModelMultipleChoiceFilter(
|
||||||
field_name='circuit__provider__slug',
|
field_name='member__provider__slug',
|
||||||
queryset=Provider.objects.all(),
|
queryset=Provider.objects.all(),
|
||||||
to_field_name='slug',
|
to_field_name='slug',
|
||||||
label=_('Provider (slug)'),
|
label=_('Provider (slug)'),
|
||||||
)
|
)
|
||||||
circuit_id = django_filters.ModelMultipleChoiceFilter(
|
member_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
queryset=Circuit.objects.all(),
|
queryset=Circuit.objects.all(),
|
||||||
label=_('Circuit (ID)'),
|
label=_('Circuit (ID)'),
|
||||||
)
|
)
|
||||||
circuit = django_filters.ModelMultipleChoiceFilter(
|
member = django_filters.ModelMultipleChoiceFilter(
|
||||||
field_name='circuit__cid',
|
field_name='member__cid',
|
||||||
queryset=Circuit.objects.all(),
|
queryset=Circuit.objects.all(),
|
||||||
to_field_name='cid',
|
to_field_name='cid',
|
||||||
label=_('Circuit (CID)'),
|
label=_('Circuit (CID)'),
|
||||||
@ -405,7 +405,7 @@ class CircuitGroupAssignmentFilterSet(NetBoxModelFilterSet):
|
|||||||
if not value.strip():
|
if not value.strip():
|
||||||
return queryset
|
return queryset
|
||||||
return queryset.filter(
|
return queryset.filter(
|
||||||
Q(circuit__cid__icontains=value) |
|
Q(member__cid__icontains=value) |
|
||||||
Q(group__name__icontains=value)
|
Q(group__name__icontains=value)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -279,7 +279,7 @@ class CircuitGroupBulkEditForm(NetBoxModelBulkEditForm):
|
|||||||
|
|
||||||
|
|
||||||
class CircuitGroupAssignmentBulkEditForm(NetBoxModelBulkEditForm):
|
class CircuitGroupAssignmentBulkEditForm(NetBoxModelBulkEditForm):
|
||||||
circuit = DynamicModelChoiceField(
|
member = DynamicModelChoiceField(
|
||||||
label=_('Circuit'),
|
label=_('Circuit'),
|
||||||
queryset=Circuit.objects.all(),
|
queryset=Circuit.objects.all(),
|
||||||
required=False
|
required=False
|
||||||
@ -292,7 +292,7 @@ class CircuitGroupAssignmentBulkEditForm(NetBoxModelBulkEditForm):
|
|||||||
|
|
||||||
model = CircuitGroupAssignment
|
model = CircuitGroupAssignment
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
FieldSet('circuit', 'priority'),
|
FieldSet('member', 'priority'),
|
||||||
)
|
)
|
||||||
nullable_fields = ('priority',)
|
nullable_fields = ('priority',)
|
||||||
|
|
||||||
|
@ -182,7 +182,7 @@ class CircuitGroupAssignmentImportForm(NetBoxModelImportForm):
|
|||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = CircuitGroupAssignment
|
model = CircuitGroupAssignment
|
||||||
fields = ('circuit', 'group', 'priority')
|
fields = ('member', 'group', 'priority')
|
||||||
|
|
||||||
|
|
||||||
class VirtualCircuitImportForm(NetBoxModelImportForm):
|
class VirtualCircuitImportForm(NetBoxModelImportForm):
|
||||||
|
@ -277,14 +277,14 @@ class CircuitGroupAssignmentFilterForm(NetBoxModelFilterSetForm):
|
|||||||
model = CircuitGroupAssignment
|
model = CircuitGroupAssignment
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
FieldSet('q', 'filter_id', 'tag'),
|
FieldSet('q', 'filter_id', 'tag'),
|
||||||
FieldSet('provider_id', 'circuit_id', 'group_id', 'priority', name=_('Assignment')),
|
FieldSet('provider_id', 'member_id', 'group_id', 'priority', name=_('Assignment')),
|
||||||
)
|
)
|
||||||
provider_id = DynamicModelMultipleChoiceField(
|
provider_id = DynamicModelMultipleChoiceField(
|
||||||
queryset=Provider.objects.all(),
|
queryset=Provider.objects.all(),
|
||||||
required=False,
|
required=False,
|
||||||
label=_('Provider')
|
label=_('Provider')
|
||||||
)
|
)
|
||||||
circuit_id = DynamicModelMultipleChoiceField(
|
member_id = DynamicModelMultipleChoiceField(
|
||||||
queryset=Circuit.objects.all(),
|
queryset=Circuit.objects.all(),
|
||||||
required=False,
|
required=False,
|
||||||
label=_('Circuit')
|
label=_('Circuit')
|
||||||
|
@ -251,7 +251,7 @@ class CircuitGroupAssignmentForm(NetBoxModelForm):
|
|||||||
label=_('Group'),
|
label=_('Group'),
|
||||||
queryset=CircuitGroup.objects.all(),
|
queryset=CircuitGroup.objects.all(),
|
||||||
)
|
)
|
||||||
circuit = DynamicModelChoiceField(
|
member = DynamicModelChoiceField(
|
||||||
label=_('Circuit'),
|
label=_('Circuit'),
|
||||||
queryset=Circuit.objects.all(),
|
queryset=Circuit.objects.all(),
|
||||||
selector=True
|
selector=True
|
||||||
@ -260,7 +260,7 @@ class CircuitGroupAssignmentForm(NetBoxModelForm):
|
|||||||
class Meta:
|
class Meta:
|
||||||
model = CircuitGroupAssignment
|
model = CircuitGroupAssignment
|
||||||
fields = [
|
fields = [
|
||||||
'group', 'circuit', 'priority', 'tags',
|
'group', 'member', 'priority', 'tags',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
@ -121,7 +121,7 @@ class CircuitGroupType(OrganizationalObjectType):
|
|||||||
)
|
)
|
||||||
class CircuitGroupAssignmentType(TagsMixin, BaseObjectType):
|
class CircuitGroupAssignmentType(TagsMixin, BaseObjectType):
|
||||||
group: Annotated["CircuitGroupType", strawberry.lazy('circuits.graphql.types')]
|
group: Annotated["CircuitGroupType", strawberry.lazy('circuits.graphql.types')]
|
||||||
circuit: Annotated["CircuitType", strawberry.lazy('circuits.graphql.types')]
|
member: Annotated["CircuitType", strawberry.lazy('circuits.graphql.types')]
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.type(
|
@strawberry_django.type(
|
||||||
|
@ -0,0 +1,32 @@
|
|||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('circuits', '0050_virtual_circuits'),
|
||||||
|
('extras', '0122_charfield_null_choices'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterModelOptions(
|
||||||
|
name='circuitgroupassignment',
|
||||||
|
options={'ordering': ('group', 'member', 'priority', 'pk')},
|
||||||
|
),
|
||||||
|
migrations.RemoveConstraint(
|
||||||
|
model_name='circuitgroupassignment',
|
||||||
|
name='circuits_circuitgroupassignment_unique_circuit_group',
|
||||||
|
),
|
||||||
|
migrations.RenameField(
|
||||||
|
model_name='circuitgroupassignment',
|
||||||
|
old_name='circuit',
|
||||||
|
new_name='member',
|
||||||
|
),
|
||||||
|
migrations.AddConstraint(
|
||||||
|
model_name='circuitgroupassignment',
|
||||||
|
constraint=models.UniqueConstraint(
|
||||||
|
fields=('member', 'group'),
|
||||||
|
name='circuits_circuitgroupassignment_unique_member_group'
|
||||||
|
),
|
||||||
|
),
|
||||||
|
]
|
@ -177,15 +177,15 @@ class CircuitGroup(OrganizationalModel):
|
|||||||
|
|
||||||
class CircuitGroupAssignment(CustomFieldsMixin, ExportTemplatesMixin, TagsMixin, ChangeLoggedModel):
|
class CircuitGroupAssignment(CustomFieldsMixin, ExportTemplatesMixin, TagsMixin, ChangeLoggedModel):
|
||||||
"""
|
"""
|
||||||
Assignment of a Circuit to a CircuitGroup with an optional priority.
|
Assignment of a physical or virtual circuit to a CircuitGroup with an optional priority.
|
||||||
"""
|
"""
|
||||||
circuit = models.ForeignKey(
|
member = models.ForeignKey(
|
||||||
Circuit,
|
Circuit,
|
||||||
on_delete=models.CASCADE,
|
on_delete=models.CASCADE,
|
||||||
related_name='assignments'
|
related_name='assignments'
|
||||||
)
|
)
|
||||||
group = models.ForeignKey(
|
group = models.ForeignKey(
|
||||||
CircuitGroup,
|
to='circuits.CircuitGroup',
|
||||||
on_delete=models.CASCADE,
|
on_delete=models.CASCADE,
|
||||||
related_name='assignments'
|
related_name='assignments'
|
||||||
)
|
)
|
||||||
@ -197,16 +197,15 @@ class CircuitGroupAssignment(CustomFieldsMixin, ExportTemplatesMixin, TagsMixin,
|
|||||||
null=True
|
null=True
|
||||||
)
|
)
|
||||||
prerequisite_models = (
|
prerequisite_models = (
|
||||||
'circuits.Circuit',
|
|
||||||
'circuits.CircuitGroup',
|
'circuits.CircuitGroup',
|
||||||
)
|
)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
ordering = ('group', 'circuit', 'priority', 'pk')
|
ordering = ('group', 'member', 'priority', 'pk')
|
||||||
constraints = (
|
constraints = (
|
||||||
models.UniqueConstraint(
|
models.UniqueConstraint(
|
||||||
fields=('circuit', 'group'),
|
fields=('member', 'group'),
|
||||||
name='%(app_label)s_%(class)s_unique_circuit_group'
|
name='%(app_label)s_%(class)s_unique_member_group'
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
verbose_name = _('Circuit group assignment')
|
verbose_name = _('Circuit group assignment')
|
||||||
|
@ -188,11 +188,11 @@ class CircuitGroupAssignmentTable(NetBoxTable):
|
|||||||
linkify=True
|
linkify=True
|
||||||
)
|
)
|
||||||
provider = tables.Column(
|
provider = tables.Column(
|
||||||
accessor='circuit__provider',
|
accessor='member__provider',
|
||||||
verbose_name=_('Provider'),
|
verbose_name=_('Provider'),
|
||||||
linkify=True
|
linkify=True
|
||||||
)
|
)
|
||||||
circuit = tables.Column(
|
member = tables.Column(
|
||||||
verbose_name=_('Circuit'),
|
verbose_name=_('Circuit'),
|
||||||
linkify=True
|
linkify=True
|
||||||
)
|
)
|
||||||
@ -206,6 +206,6 @@ class CircuitGroupAssignmentTable(NetBoxTable):
|
|||||||
class Meta(NetBoxTable.Meta):
|
class Meta(NetBoxTable.Meta):
|
||||||
model = CircuitGroupAssignment
|
model = CircuitGroupAssignment
|
||||||
fields = (
|
fields = (
|
||||||
'pk', 'id', 'group', 'provider', 'circuit', 'priority', 'created', 'last_updated', 'actions', 'tags',
|
'pk', 'id', 'group', 'provider', 'member', 'priority', 'created', 'last_updated', 'actions', 'tags',
|
||||||
)
|
)
|
||||||
default_columns = ('pk', 'group', 'provider', 'circuit', 'priority')
|
default_columns = ('pk', 'group', 'provider', 'member', 'priority')
|
||||||
|
@ -295,7 +295,7 @@ class ProviderAccountTest(APIViewTestCases.APIViewTestCase):
|
|||||||
|
|
||||||
class CircuitGroupAssignmentTest(APIViewTestCases.APIViewTestCase):
|
class CircuitGroupAssignmentTest(APIViewTestCases.APIViewTestCase):
|
||||||
model = CircuitGroupAssignment
|
model = CircuitGroupAssignment
|
||||||
brief_fields = ['circuit', 'display', 'group', 'id', 'priority', 'url']
|
brief_fields = ['display', 'group', 'id', 'member', 'priority', 'url']
|
||||||
bulk_update_data = {
|
bulk_update_data = {
|
||||||
'priority': CircuitPriorityChoices.PRIORITY_INACTIVE,
|
'priority': CircuitPriorityChoices.PRIORITY_INACTIVE,
|
||||||
}
|
}
|
||||||
@ -330,17 +330,17 @@ class CircuitGroupAssignmentTest(APIViewTestCases.APIViewTestCase):
|
|||||||
assignments = (
|
assignments = (
|
||||||
CircuitGroupAssignment(
|
CircuitGroupAssignment(
|
||||||
group=circuit_groups[0],
|
group=circuit_groups[0],
|
||||||
circuit=circuits[0],
|
member=circuits[0],
|
||||||
priority=CircuitPriorityChoices.PRIORITY_PRIMARY
|
priority=CircuitPriorityChoices.PRIORITY_PRIMARY
|
||||||
),
|
),
|
||||||
CircuitGroupAssignment(
|
CircuitGroupAssignment(
|
||||||
group=circuit_groups[1],
|
group=circuit_groups[1],
|
||||||
circuit=circuits[1],
|
member=circuits[1],
|
||||||
priority=CircuitPriorityChoices.PRIORITY_SECONDARY
|
priority=CircuitPriorityChoices.PRIORITY_SECONDARY
|
||||||
),
|
),
|
||||||
CircuitGroupAssignment(
|
CircuitGroupAssignment(
|
||||||
group=circuit_groups[2],
|
group=circuit_groups[2],
|
||||||
circuit=circuits[2],
|
member=circuits[2],
|
||||||
priority=CircuitPriorityChoices.PRIORITY_TERTIARY
|
priority=CircuitPriorityChoices.PRIORITY_TERTIARY
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
@ -349,17 +349,17 @@ class CircuitGroupAssignmentTest(APIViewTestCases.APIViewTestCase):
|
|||||||
cls.create_data = [
|
cls.create_data = [
|
||||||
{
|
{
|
||||||
'group': circuit_groups[3].pk,
|
'group': circuit_groups[3].pk,
|
||||||
'circuit': circuits[3].pk,
|
'member': circuits[3].pk,
|
||||||
'priority': CircuitPriorityChoices.PRIORITY_PRIMARY,
|
'priority': CircuitPriorityChoices.PRIORITY_PRIMARY,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'group': circuit_groups[4].pk,
|
'group': circuit_groups[4].pk,
|
||||||
'circuit': circuits[4].pk,
|
'member': circuits[4].pk,
|
||||||
'priority': CircuitPriorityChoices.PRIORITY_SECONDARY,
|
'priority': CircuitPriorityChoices.PRIORITY_SECONDARY,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'group': circuit_groups[5].pk,
|
'group': circuit_groups[5].pk,
|
||||||
'circuit': circuits[5].pk,
|
'member': circuits[5].pk,
|
||||||
'priority': CircuitPriorityChoices.PRIORITY_TERTIARY,
|
'priority': CircuitPriorityChoices.PRIORITY_TERTIARY,
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
@ -671,17 +671,17 @@ class CircuitGroupAssignmentTestCase(TestCase, ChangeLoggedFilterSetTests):
|
|||||||
assignments = (
|
assignments = (
|
||||||
CircuitGroupAssignment(
|
CircuitGroupAssignment(
|
||||||
group=circuit_groups[0],
|
group=circuit_groups[0],
|
||||||
circuit=circuits[0],
|
member=circuits[0],
|
||||||
priority=CircuitPriorityChoices.PRIORITY_PRIMARY
|
priority=CircuitPriorityChoices.PRIORITY_PRIMARY
|
||||||
),
|
),
|
||||||
CircuitGroupAssignment(
|
CircuitGroupAssignment(
|
||||||
group=circuit_groups[1],
|
group=circuit_groups[1],
|
||||||
circuit=circuits[1],
|
member=circuits[1],
|
||||||
priority=CircuitPriorityChoices.PRIORITY_SECONDARY
|
priority=CircuitPriorityChoices.PRIORITY_SECONDARY
|
||||||
),
|
),
|
||||||
CircuitGroupAssignment(
|
CircuitGroupAssignment(
|
||||||
group=circuit_groups[2],
|
group=circuit_groups[2],
|
||||||
circuit=circuits[2],
|
member=circuits[2],
|
||||||
priority=CircuitPriorityChoices.PRIORITY_TERTIARY
|
priority=CircuitPriorityChoices.PRIORITY_TERTIARY
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
@ -694,11 +694,11 @@ class CircuitGroupAssignmentTestCase(TestCase, ChangeLoggedFilterSetTests):
|
|||||||
params = {'group': [groups[0].slug, groups[1].slug]}
|
params = {'group': [groups[0].slug, groups[1].slug]}
|
||||||
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
||||||
|
|
||||||
def test_circuit(self):
|
def test_member(self):
|
||||||
circuits = Circuit.objects.all()[:2]
|
circuits = Circuit.objects.all()[:2]
|
||||||
params = {'circuit_id': [circuits[0].pk, circuits[1].pk]}
|
params = {'member_id': [circuits[0].pk, circuits[1].pk]}
|
||||||
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
||||||
params = {'circuit': [circuits[0].cid, circuits[1].cid]}
|
params = {'member': [circuits[0].cid, circuits[1].cid]}
|
||||||
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
||||||
|
|
||||||
def test_provider(self):
|
def test_provider(self):
|
||||||
|
@ -497,17 +497,17 @@ class CircuitGroupAssignmentTestCase(
|
|||||||
assignments = (
|
assignments = (
|
||||||
CircuitGroupAssignment(
|
CircuitGroupAssignment(
|
||||||
group=circuit_groups[0],
|
group=circuit_groups[0],
|
||||||
circuit=circuits[0],
|
member=circuits[0],
|
||||||
priority=CircuitPriorityChoices.PRIORITY_PRIMARY
|
priority=CircuitPriorityChoices.PRIORITY_PRIMARY
|
||||||
),
|
),
|
||||||
CircuitGroupAssignment(
|
CircuitGroupAssignment(
|
||||||
group=circuit_groups[1],
|
group=circuit_groups[1],
|
||||||
circuit=circuits[1],
|
member=circuits[1],
|
||||||
priority=CircuitPriorityChoices.PRIORITY_SECONDARY
|
priority=CircuitPriorityChoices.PRIORITY_SECONDARY
|
||||||
),
|
),
|
||||||
CircuitGroupAssignment(
|
CircuitGroupAssignment(
|
||||||
group=circuit_groups[2],
|
group=circuit_groups[2],
|
||||||
circuit=circuits[2],
|
member=circuits[2],
|
||||||
priority=CircuitPriorityChoices.PRIORITY_TERTIARY
|
priority=CircuitPriorityChoices.PRIORITY_TERTIARY
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
@ -517,7 +517,7 @@ class CircuitGroupAssignmentTestCase(
|
|||||||
|
|
||||||
cls.form_data = {
|
cls.form_data = {
|
||||||
'group': circuit_groups[3].pk,
|
'group': circuit_groups[3].pk,
|
||||||
'circuit': circuits[3].pk,
|
'member': circuits[3].pk,
|
||||||
'priority': CircuitPriorityChoices.PRIORITY_INACTIVE,
|
'priority': CircuitPriorityChoices.PRIORITY_INACTIVE,
|
||||||
'tags': [t.pk for t in tags],
|
'tags': [t.pk for t in tags],
|
||||||
}
|
}
|
||||||
|
@ -22,9 +22,13 @@
|
|||||||
<th scope="row">{% trans "Group" %}</th>
|
<th scope="row">{% trans "Group" %}</th>
|
||||||
<td>{{ object.group|linkify }}</td>
|
<td>{{ object.group|linkify }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th scope="row">{% trans "Provider" %}</th>
|
||||||
|
<td>{{ object.member.provider|linkify }}</td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row">{% trans "Circuit" %}</th>
|
<th scope="row">{% trans "Circuit" %}</th>
|
||||||
<td>{{ object.circuit|linkify }}</td>
|
<td>{{ object.member|linkify }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row">{% trans "Priority" %}</th>
|
<th scope="row">{% trans "Priority" %}</th>
|
||||||
|
Loading…
Reference in New Issue
Block a user