diff --git a/netbox_access_lists/api/serializers.py b/netbox_access_lists/api/serializers.py index 00c509e..e47ef76 100644 --- a/netbox_access_lists/api/serializers.py +++ b/netbox_access_lists/api/serializers.py @@ -42,7 +42,7 @@ class AccessListSerializer(NetBoxModelSerializer): class Meta: model = AccessList fields = ( - 'id', 'url', 'display', 'name', 'default_action', 'comments', 'tags', 'custom_fields', 'created', + 'id', 'url', 'display', 'name', 'type', 'default_action', 'comments', 'tags', 'custom_fields', 'created', 'last_updated', 'rule_count', ) diff --git a/netbox_access_lists/forms.py b/netbox_access_lists/forms.py index 5fcc002..66e2aac 100644 --- a/netbox_access_lists/forms.py +++ b/netbox_access_lists/forms.py @@ -11,7 +11,7 @@ class AccessListForm(NetBoxModelForm): class Meta: model = AccessList - fields = ('name', 'default_action', 'comments', 'tags') + fields = ('name', 'type', 'default_action', 'comments', 'tags') class AccessListRuleForm(NetBoxModelForm): diff --git a/netbox_access_lists/migrations/0001_initial.py b/netbox_access_lists/migrations/0001_initial.py index 9435c28..028e5ac 100644 --- a/netbox_access_lists/migrations/0001_initial.py +++ b/netbox_access_lists/migrations/0001_initial.py @@ -23,6 +23,7 @@ class Migration(migrations.Migration): ('last_updated', models.DateTimeField(auto_now=True, null=True)), ('custom_field_data', models.JSONField(blank=True, default=dict, encoder=django.core.serializers.json.DjangoJSONEncoder)), ('name', models.CharField(max_length=100)), + ('type', models.CharField(max_length=100)), ('default_action', models.CharField(max_length=30)), ('comments', models.TextField(blank=True)), ('tags', taggit.managers.TaggableManager(through='extras.TaggedItem', to='extras.Tag')), diff --git a/netbox_access_lists/models.py b/netbox_access_lists/models.py index b512d97..afcaa20 100644 --- a/netbox_access_lists/models.py +++ b/netbox_access_lists/models.py @@ -16,6 +16,14 @@ class ActionChoices(ChoiceSet): ] +class TypeChoices(ChoiceSet): + + CHOICES = [ + ('standard', 'Standard', 'blue'), + ('extended', 'Extended', 'purple'), + ] + + class ProtocolChoices(ChoiceSet): CHOICES = [ @@ -29,6 +37,10 @@ class AccessList(NetBoxModel): name = models.CharField( max_length=100 ) + type = models.CharField( + max_length=30, + choices=TypeChoices + ) default_action = models.CharField( max_length=30, choices=ActionChoices @@ -49,6 +61,9 @@ class AccessList(NetBoxModel): def get_default_action_color(self): return ActionChoices.colors.get(self.default_action) + def get_type_color(self): + return TypeChoices.colors.get(self.type) + class AccessListRule(NetBoxModel): access_list = models.ForeignKey( diff --git a/netbox_access_lists/tables.py b/netbox_access_lists/tables.py index 754a7c1..16772e5 100644 --- a/netbox_access_lists/tables.py +++ b/netbox_access_lists/tables.py @@ -8,13 +8,14 @@ class AccessListTable(NetBoxTable): name = tables.Column( linkify=True ) + type = ChoiceFieldColumn() default_action = ChoiceFieldColumn() rule_count = tables.Column() class Meta(NetBoxTable.Meta): model = AccessList - fields = ('pk', 'id', 'name', 'rule_count', 'default_action', 'comments', 'actions') - default_columns = ('name', 'rule_count', 'default_action') + fields = ('pk', 'id', 'name', 'type', 'rule_count', 'default_action', 'comments', 'actions') + default_columns = ('name', 'type', 'rule_count', 'default_action') class AccessListRuleTable(NetBoxTable): diff --git a/netbox_access_lists/templates/netbox_access_lists/accesslist.html b/netbox_access_lists/templates/netbox_access_lists/accesslist.html index 8da0355..c903a34 100644 --- a/netbox_access_lists/templates/netbox_access_lists/accesslist.html +++ b/netbox_access_lists/templates/netbox_access_lists/accesslist.html @@ -12,6 +12,10 @@