7025 fix forms/tests for CircuitGroup

This commit is contained in:
Arthur Hanson 2024-07-19 15:17:06 +07:00
parent 6956d88bf9
commit 3d6548aa43
8 changed files with 35 additions and 63 deletions

View File

@ -84,10 +84,10 @@ class CircuitGroupSerializer(NetBoxModelSerializer):
class Meta:
model = CircuitGroup
fields = [
'id', 'url', 'display_url', 'display', 'name',
'id', 'url', 'display_url', 'display', 'name', 'slug', 'description',
'tags', 'custom_fields', 'created', 'last_updated',
]
brief_fields = ('id', 'url', 'display', 'name',)
brief_fields = ('id', 'url', 'display', 'name', 'slug',)
class CircuitGroupAssignmentSerializer(NetBoxModelSerializer):

View File

@ -224,19 +224,26 @@ class CircuitTerminationBulkEditForm(NetBoxModelBulkEditForm):
class CircuitGroupBulkEditForm(NetBoxModelBulkEditForm):
description = forms.CharField(
label=_('Description'),
max_length=200,
required=False
)
priority = forms.ChoiceField(
label=_('Priority'),
choices=add_blank_choice(CircuitPriorityChoices),
required=False
)
tenant = DynamicModelChoiceField(
label=_('Tenant'),
queryset=Tenant.objects.all(),
required=False
)
comments = CommentField()
model = CircuitGroup
fieldsets = (
FieldSet('tenant', name=_('Tenancy')),
)
nullable_fields = (
'tenant', 'comments',
'priority', 'description', 'tenant',
)

View File

@ -165,7 +165,7 @@ class CircuitGroupImportForm(NetBoxModelImportForm):
class Meta:
model = CircuitGroup
fields = ('name', 'tenant', 'tags')
fields = ('name', 'slug', 'description', 'tenant', 'tags')
class CircuitGroupAssignmentImportForm(NetBoxModelImportForm):

View File

@ -176,13 +176,12 @@ class CircuitTerminationForm(NetBoxModelForm):
class CircuitGroupForm(TenancyForm, NetBoxModelForm):
comments = CommentField()
slug = SlugField()
class Meta:
model = CircuitGroup
fields = [
'name', 'tenant_group', 'tenant',
'comments', 'tags',
'name', 'slug', 'description', 'tenant_group', 'tenant', 'tags',
]

View File

@ -100,7 +100,7 @@ class CircuitType(NetBoxObjectType, ContactsMixin):
fields='__all__',
filters=CircuitGroupFilter
)
class CircuitGroupType(CustomFieldsMixin, TagsMixin, ObjectType):
class CircuitGroupType(NetBoxObjectType):
pass

View File

@ -1,4 +1,4 @@
# Generated by Django 5.0.7 on 2024-07-19 04:18
# Generated by Django 5.0.7 on 2024-07-19 08:04
import django.db.models.deletion
import taggit.managers
@ -25,10 +25,9 @@ class Migration(migrations.Migration):
'custom_field_data',
models.JSONField(blank=True, default=dict, encoder=utilities.json.CustomFieldJSONEncoder),
),
('name', models.CharField(max_length=100, unique=True)),
('slug', models.SlugField(max_length=100, unique=True)),
('description', models.CharField(blank=True, max_length=200)),
('comments', models.TextField(blank=True)),
('name', models.CharField(max_length=100)),
('slug', models.SlugField(max_length=100)),
('tags', taggit.managers.TaggableManager(through='extras.TaggedItem', to='extras.Tag')),
(
'tenant',

View File

@ -153,17 +153,9 @@ class Circuit(ContactsMixin, ImageAttachmentsMixin, PrimaryModel):
raise ValidationError({'provider_account': "The assigned account must belong to the assigned provider."})
class CircuitGroup(PrimaryModel):
class CircuitGroup(OrganizationalModel):
"""
"""
name = models.CharField(
verbose_name=_('name'),
max_length=100
)
slug = models.SlugField(
verbose_name=_('slug'),
max_length=100
)
tenant = models.ForeignKey(
to='tenancy.Tenant',
on_delete=models.PROTECT,

View File

@ -208,57 +208,32 @@ class CircuitTerminationTest(APIViewTestCases.APIViewTestCase):
class CircuitGroupTest(APIViewTestCases.APIViewTestCase):
model = CircuitGroup
brief_fields = ['name', 'description', 'display', 'id', 'url']
brief_fields = ['id', 'url', 'display', 'name']
bulk_update_data = {
'status': 'planned',
'comments': 'New comments',
}
@classmethod
def setUpTestData(cls):
providers = (
Provider(name='Provider 1', slug='provider-1'),
Provider(name='Provider 2', slug='provider-2'),
circuit_groups = (
CircuitGroup(name="Circuit Group 1", slug='circuit-group-1'),
CircuitGroup(name="Circuit Group 2", slug='circuit-group-2'),
CircuitGroup(name="Circuit Group 3", slug='circuit-group-3'),
)
Provider.objects.bulk_create(providers)
provider_accounts = (
ProviderAccount(name='Provider Account 1', provider=providers[0], account='1234'),
ProviderAccount(name='Provider Account 2', provider=providers[1], account='2345'),
)
ProviderAccount.objects.bulk_create(provider_accounts)
circuit_types = (
CircuitType(name='Circuit Type 1', slug='circuit-type-1'),
CircuitType(name='Circuit Type 2', slug='circuit-type-2'),
)
CircuitType.objects.bulk_create(circuit_types)
circuits = (
Circuit(cid='Circuit 1', provider=providers[0], provider_account=provider_accounts[0], type=circuit_types[0]),
Circuit(cid='Circuit 2', provider=providers[0], provider_account=provider_accounts[0], type=circuit_types[0]),
Circuit(cid='Circuit 3', provider=providers[0], provider_account=provider_accounts[0], type=circuit_types[0]),
)
Circuit.objects.bulk_create(circuits)
CircuitGroup.objects.bulk_create(circuit_groups)
cls.create_data = [
{
'cid': 'Circuit 4',
'provider': providers[1].pk,
'provider_account': provider_accounts[1].pk,
'type': circuit_types[1].pk,
'name': 'Circuit Group 4',
'slug': 'circuit-group-4',
},
{
'cid': 'Circuit 5',
'provider': providers[1].pk,
'provider_account': provider_accounts[1].pk,
'type': circuit_types[1].pk,
'name': 'Circuit Group 5',
'slug': 'circuit-group-5',
},
{
'cid': 'Circuit 6',
'provider': providers[1].pk,
# Omit provider account to test uniqueness constraint
'type': circuit_types[1].pk,
'name': 'Circuit Group 6',
'slug': 'circuit-group-6',
},
]