mirror of
https://github.com/lucaspalomodevelop/netbox-acls.git
synced 2026-03-13 07:29:40 +00:00
Add views & URLs
This commit is contained in:
parent
4ae4d0cb15
commit
b2f1369029
@ -1,5 +1,6 @@
|
||||
from django.contrib.postgres.fields import ArrayField
|
||||
from django.db import models
|
||||
from django.urls import reverse
|
||||
|
||||
from netbox.models import NetBoxModel
|
||||
from utilities.choices import ChoiceSet
|
||||
@ -42,6 +43,10 @@ class AccessList(NetBoxModel):
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
def get_absolute_url(self):
|
||||
return reverse('plugins:netbox_access_lists:accesslist', args=[self.pk])
|
||||
|
||||
|
||||
class AccessListRule(NetBoxModel):
|
||||
access_list = models.ForeignKey(
|
||||
to=AccessList,
|
||||
@ -94,3 +99,6 @@ class AccessListRule(NetBoxModel):
|
||||
def __str__(self):
|
||||
return f'{self.access_list}: Rule {self.index}'
|
||||
|
||||
def get_absolute_url(self):
|
||||
return reverse('plugins:netbox_access_lists:accesslistrule', args=[self.pk])
|
||||
|
||||
|
||||
30
netbox_access_lists/urls.py
Normal file
30
netbox_access_lists/urls.py
Normal file
@ -0,0 +1,30 @@
|
||||
from django.urls import path
|
||||
|
||||
from netbox.views.generic import ObjectChangeLogView
|
||||
from . import models, views
|
||||
|
||||
|
||||
urlpatterns = (
|
||||
|
||||
# Access lists
|
||||
path('access-lists/', views.AccessListListView.as_view(), name='accesslist_list'),
|
||||
path('access-lists/add/', views.AccessListEditView.as_view(), name='accesslist_add'),
|
||||
path('access-lists/<int:pk>/', views.AccessListView.as_view(), name='accesslist'),
|
||||
path('access-lists/<int:pk>/edit/', views.AccessListEditView.as_view(), name='accesslist_edit'),
|
||||
path('access-lists/<int:pk>/delete/', views.AccessListDeleteView.as_view(), name='accesslist_delete'),
|
||||
path('access-lists/<int:pk>/changelog/', ObjectChangeLogView.as_view(), name='accesslist_changelog', kwargs={
|
||||
'model': models.AccessList
|
||||
}),
|
||||
|
||||
# Access list rules
|
||||
path('rules/', views.AccessListRuleListView.as_view(), name='accesslistrule_list'),
|
||||
path('rules/add/', views.AccessListRuleEditView.as_view(), name='accesslistrule_add'),
|
||||
path('rules/<int:pk>/', views.AccessListRuleView.as_view(), name='accesslistrule'),
|
||||
path('rules/<int:pk>/edit/', views.AccessListRuleEditView.as_view(), name='accesslistrule_edit'),
|
||||
path('rules/<int:pk>/delete/', views.AccessListRuleDeleteView.as_view(), name='accesslistrule_delete'),
|
||||
path('rules/<int:pk>/changelog/', ObjectChangeLogView.as_view(), name='accesslistrule_changelog', kwargs={
|
||||
'model': models.AccessListRule
|
||||
}),
|
||||
|
||||
)
|
||||
|
||||
52
netbox_access_lists/views.py
Normal file
52
netbox_access_lists/views.py
Normal file
@ -0,0 +1,52 @@
|
||||
from django.db.models import Count
|
||||
|
||||
from netbox.views import generic
|
||||
from . import forms, models, tables
|
||||
|
||||
|
||||
#
|
||||
# Access lists
|
||||
#
|
||||
|
||||
class AccessListView(generic.ObjectView):
|
||||
queryset = models.AccessList.objects.all()
|
||||
|
||||
|
||||
class AccessListListView(generic.ObjectListView):
|
||||
queryset = models.AccessList.objects.annotate(
|
||||
rule_count=Count('rules')
|
||||
)
|
||||
table = tables.AccessListTable
|
||||
|
||||
|
||||
class AccessListEditView(generic.ObjectEditView):
|
||||
queryset = models.AccessList.objects.all()
|
||||
model_form = forms.AccessListForm
|
||||
|
||||
|
||||
class AccessListDeleteView(generic.ObjectDeleteView):
|
||||
queryset = models.AccessList.objects.all()
|
||||
|
||||
|
||||
#
|
||||
# Access list rules
|
||||
#
|
||||
|
||||
class AccessListRuleView(generic.ObjectView):
|
||||
queryset = models.AccessListRule.objects.all()
|
||||
|
||||
|
||||
class AccessListRuleListView(generic.ObjectListView):
|
||||
queryset = models.AccessListRule.objects.all()
|
||||
table = tables.AccessListRuleTable
|
||||
|
||||
|
||||
class AccessListRuleEditView(generic.ObjectEditView):
|
||||
queryset = models.AccessListRule.objects.all()
|
||||
model_form = forms.AccessListRuleForm
|
||||
|
||||
|
||||
class AccessListRuleDeleteView(generic.ObjectDeleteView):
|
||||
queryset = models.AccessListRule.objects.all()
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user