Merge branch 'feature' into 3979-wireless

This commit is contained in:
jeremystretch
2021-10-21 13:19:52 -04:00
203 changed files with 3452 additions and 1022 deletions

View File

@@ -24,8 +24,8 @@ class WirelessLANGroupSerializer(NestedGroupModelSerializer):
class Meta:
model = WirelessLANGroup
fields = [
'id', 'url', 'display', 'name', 'slug', 'parent', 'description', 'custom_fields', 'created', 'last_updated',
'wirelesslan_count', '_depth',
'id', 'url', 'display', 'name', 'slug', 'parent', 'description', 'tags', 'custom_fields', 'created',
'last_updated', 'wirelesslan_count', '_depth',
]

View File

@@ -15,7 +15,7 @@ __all__ = (
)
class WirelessLANGroupBulkEditForm(BootstrapMixin, CustomFieldModelBulkEditForm):
class WirelessLANGroupBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField(
queryset=WirelessLANGroup.objects.all(),
widget=forms.MultipleHiddenInput

View File

@@ -20,11 +20,15 @@ class WirelessLANGroupForm(BootstrapMixin, CustomFieldModelForm):
required=False
)
slug = SlugField()
tags = DynamicModelMultipleChoiceField(
queryset=Tag.objects.all(),
required=False
)
class Meta:
model = WirelessLANGroup
fields = [
'parent', 'name', 'slug', 'description',
'parent', 'name', 'slug', 'description', 'tags',
]

View File

@@ -1,5 +1,5 @@
from wireless import filtersets, models
from netbox.graphql.types import ObjectType, PrimaryObjectType
from netbox.graphql.types import OrganizationalObjectType, PrimaryObjectType
__all__ = (
'WirelessLANType',
@@ -8,7 +8,7 @@ __all__ = (
)
class WirelessLANGroupType(ObjectType):
class WirelessLANGroupType(OrganizationalObjectType):
class Meta:
model = models.WirelessLANGroup

View File

@@ -10,7 +10,7 @@ class Migration(migrations.Migration):
initial = True
dependencies = [
('dcim', '0137_rename_cable_peer'),
('dcim', '0139_rename_cable_peer'),
('extras', '0062_clear_secrets_changelog'),
('ipam', '0050_iprange'),
]
@@ -26,6 +26,7 @@ class Migration(migrations.Migration):
('name', models.CharField(max_length=100, unique=True)),
('slug', models.SlugField(max_length=100, unique=True)),
('description', models.CharField(blank=True, max_length=200)),
('tags', taggit.managers.TaggableManager(through='extras.TaggedItem', to='extras.Tag')),
('lft', models.PositiveIntegerField(editable=False)),
('rght', models.PositiveIntegerField(editable=False)),
('tree_id', models.PositiveIntegerField(db_index=True, editable=False)),

View File

@@ -42,7 +42,7 @@ class WirelessAuthenticationBase(models.Model):
abstract = True
@extras_features('custom_fields', 'custom_links', 'export_templates', 'webhooks')
@extras_features('custom_fields', 'custom_links', 'export_templates', 'tags', 'webhooks')
class WirelessLANGroup(NestedGroupModel):
"""
A nested grouping of WirelessLANs

View File

@@ -23,11 +23,14 @@ class WirelessLANGroupTable(BaseTable):
url_params={'group_id': 'pk'},
verbose_name='Wireless LANs'
)
tags = TagColumn(
url_name='wireless:wirelesslangroup_list'
)
actions = ButtonsColumn(WirelessLANGroup)
class Meta(BaseTable.Meta):
model = WirelessLANGroup
fields = ('pk', 'name', 'wirelesslan_count', 'description', 'slug', 'actions')
fields = ('pk', 'name', 'wirelesslan_count', 'description', 'slug', 'tags', 'actions')
default_columns = ('pk', 'name', 'wirelesslan_count', 'description', 'actions')

View File

@@ -19,11 +19,14 @@ class WirelessLANGroupTestCase(ViewTestCases.OrganizationalObjectViewTestCase):
for group in groups:
group.save()
tags = create_tags('Alpha', 'Bravo', 'Charlie')
cls.form_data = {
'name': 'Wireless LAN Group X',
'slug': 'wireless-lan-group-x',
'parent': groups[2].pk,
'description': 'A new wireless LAN group',
'tags': [t.pk for t in tags],
}
cls.csv_data = (

View File

@@ -17,7 +17,7 @@ class WirelessLANGroupListView(generic.ObjectListView):
'group',
'wirelesslan_count',
cumulative=True
)
).prefetch_related('tags')
filterset = filtersets.WirelessLANGroupFilterSet
filterset_form = forms.WirelessLANGroupFilterForm
table = tables.WirelessLANGroupTable