plural to singular

This commit is contained in:
dreng
2023-05-06 22:57:12 +02:00
parent 60c272acb7
commit 7e2ffc575f
18 changed files with 78 additions and 78 deletions
+5 -5
View File
@@ -2,7 +2,7 @@ from dcim.models import Device, DeviceRole
from rest_framework.serializers import ModelSerializer
from netbox.api.serializers import NetBoxModelSerializer
from netbox_topology_views.models import RoleImage, IndividualOptions, CoordinateGroups, Coordinates
from netbox_topology_views.models import RoleImage, IndividualOptions, CoordinateGroup, Coordinate
class TopologyDummySerializer(ModelSerializer):
@@ -22,14 +22,14 @@ class DeviceRoleSerializer(ModelSerializer):
model = DeviceRole
fields = ("name", "slug", "color", "vm_role", "description")
class CoordinateGroupsSerializer(NetBoxModelSerializer):
class CoordinateGroupSerializer(NetBoxModelSerializer):
class Meta:
model = CoordinateGroups
model = CoordinateGroup
fields = ("name", "description")
class CoordinatesSerializer(NetBoxModelSerializer):
class CoordinateSerializer(NetBoxModelSerializer):
class Meta:
model = Coordinates
model = Coordinate
fields = ("x", "y")
class IndividualOptionsSerializer(NetBoxModelSerializer):
+2 -2
View File
@@ -1,7 +1,7 @@
import django_filters
from dcim.choices import DeviceStatusChoices
from dcim.models import Device, DeviceRole, Location, Rack, Region, Site
from .models import Coordinates
from .models import Coordinate
from django.db.models import Q
from netbox.filtersets import NetBoxModelFilterSet
from tenancy.filtersets import TenancyFilterSet
@@ -57,7 +57,7 @@ class DeviceFilterSet(TenancyFilterSet, NetBoxModelFilterSet):
class CoordinateFilterSet(NetBoxModelFilterSet):
class Meta:
model = Coordinates
model = Coordinate
fields = ('id', 'group', 'device', 'x', 'y')
def search(self, queryset, name, value):
+6 -6
View File
@@ -21,7 +21,7 @@ from utilities.forms.fields import (
)
from .models import IndividualOptions, CoordinateGroups, Coordinates
from .models import IndividualOptions, CoordinateGroup, Coordinate
class DeviceFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
model = Device
@@ -148,23 +148,23 @@ class CoordinateGroupsForm(NetBoxModelForm):
)
class Meta:
model = CoordinateGroups
model = CoordinateGroup
fields = ('name', 'description')
class CoordinatesForm(NetBoxModelForm):
fieldsets = (
('Coordinates', ('group', 'device', 'x', 'y')),
('Coordinate', ('group', 'device', 'x', 'y')),
)
class Meta:
model = Coordinates
model = Coordinate
fields = ('group', 'device', 'x', 'y')
class CoordinatesFilterForm(NetBoxModelFilterSetForm):
model = Coordinates
model = Coordinate
group = forms.ModelMultipleChoiceField(
queryset=CoordinateGroups.objects.all(),
queryset=CoordinateGroup.objects.all(),
required=False
)
@@ -1,4 +1,4 @@
# Generated by Django 4.1.8 on 2023-05-01 08:21
# Generated by Django 4.1.8 on 2023-05-01 16:13
from django.db import migrations, models
import django.db.models.deletion
@@ -16,7 +16,7 @@ class Migration(migrations.Migration):
operations = [
migrations.CreateModel(
name='CoordinateGroups',
name='CoordinateGroup',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False)),
('created', models.DateTimeField(auto_now_add=True, null=True)),
@@ -31,7 +31,7 @@ class Migration(migrations.Migration):
},
),
migrations.CreateModel(
name='Coordinates',
name='Coordinate',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False)),
('created', models.DateTimeField(auto_now_add=True, null=True)),
@@ -40,7 +40,7 @@ class Migration(migrations.Migration):
('x', models.IntegerField()),
('y', models.IntegerField()),
('device', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='dcim.device')),
('group', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='netbox_topology_views.coordinategroups')),
('group', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='netbox_topology_views.coordinategroup')),
('tags', taggit.managers.TaggableManager(through='extras.TaggedItem', to='extras.Tag')),
],
options={
+5 -5
View File
@@ -95,7 +95,7 @@ class RoleImage(ChangeLoggingMixin, ExportTemplatesMixin, WebhooksMixin):
return self.get_default_image(dir)
return static(f"/{self.image}")
class CoordinateGroups(NetBoxModel):
class CoordinateGroup(NetBoxModel):
"""
A coordinate group is used to display the topology for a particular group.
This allows different visualizations with the same devices.
@@ -117,16 +117,16 @@ class CoordinateGroups(NetBoxModel):
return self.name
def get_absolute_url(self):
return reverse('plugins:netbox_topology_views:coordinategroups', args=[self.pk])
return reverse('plugins:netbox_topology_views:coordinategroup', args=[self.pk])
class Coordinates(NetBoxModel):
class Coordinate(NetBoxModel):
"""
Coordinates are being used to place devices in a topology view onto a certian
position. Devices belong to one or more coordinate groups. They have to
be unique together.
"""
device = models.ForeignKey(Device, on_delete=models.CASCADE)
group = models.ForeignKey(CoordinateGroups, on_delete=models.CASCADE)
group = models.ForeignKey(CoordinateGroup, on_delete=models.CASCADE)
x = models.IntegerField(
help_text='X-coordinate of the device (horizontal) on the canvas. '
@@ -145,7 +145,7 @@ class Coordinates(NetBoxModel):
return f'{self.x};{self.y}'
def get_absolute_url(self):
return reverse('plugins:netbox_topology_views:coordinates', args=[self.pk])
return reverse('plugins:netbox_topology_views:coordinate', args=[self.pk])
def set_xy_from_text_coords(self, coords: str):
xy = coords.split(';')
+6 -6
View File
@@ -1,18 +1,18 @@
from extras.plugins import PluginMenu, PluginMenuItem, PluginMenuButton
from utilities.choices import ButtonColorChoices
coordinategroups_buttons = [
coordinategroup_buttons = [
PluginMenuButton(
link='plugins:netbox_topology_views:coordinategroups_add',
link='plugins:netbox_topology_views:coordinategroup_add',
title='Add',
icon_class='mdi mdi-plus-thick',
color=ButtonColorChoices.GREEN,
)
]
coordinates_buttons = [
coordinate_buttons = [
PluginMenuButton(
link='plugins:netbox_topology_views:coordinates_add',
link='plugins:netbox_topology_views:coordinate_add',
title='Add',
icon_class='mdi mdi-plus-thick',
color=ButtonColorChoices.GREEN,
@@ -26,8 +26,8 @@ menu = PluginMenu(
('TOPOLOGY',
(
PluginMenuItem(link="plugins:netbox_topology_views:home", link_text="Topology"),
PluginMenuItem(link="plugins:netbox_topology_views:coordinategroups_list", link_text="Coordinate Groups", buttons=coordinategroups_buttons),
PluginMenuItem(link="plugins:netbox_topology_views:coordinates_list", link_text="Coordinates", buttons=coordinates_buttons),
PluginMenuItem(link="plugins:netbox_topology_views:coordinategroup_list", link_text="Coordinate Groups", buttons=coordinategroup_buttons),
PluginMenuItem(link="plugins:netbox_topology_views:coordinate_list", link_text="Coordinates", buttons=coordinate_buttons),
),
),
('PREFERENCES',
+3 -3
View File
@@ -1,9 +1,9 @@
from netbox.search import SearchIndex, register_search
from .models import CoordinateGroups, Coordinates
from .models import CoordinateGroup, Coordinate
@register_search
class CoordinateGroupsIndex(SearchIndex):
model = CoordinateGroups
model = CoordinateGroup
fields = (
('name', 100),
('description', 2000),
@@ -11,7 +11,7 @@ class CoordinateGroupsIndex(SearchIndex):
@register_search
class CoordinatesIndex(SearchIndex):
model = Coordinates
model = Coordinate
fields = (
('group', 100),
('device', 200),
+3 -3
View File
@@ -1,7 +1,7 @@
import django_tables2 as tables
from netbox.tables import NetBoxTable, ChoiceFieldColumn
from .models import CoordinateGroups, Coordinates
from .models import CoordinateGroup, Coordinate
class CoordinateGroupListTable(NetBoxTable):
name = tables.Column(
@@ -9,7 +9,7 @@ class CoordinateGroupListTable(NetBoxTable):
)
class Meta(NetBoxTable.Meta):
model = CoordinateGroups
model = CoordinateGroup
fields = ('pk', 'name', 'description')
default_columns = ('name', 'description')
@@ -23,7 +23,7 @@ class CoordinateListTable(NetBoxTable):
)
class Meta(NetBoxTable.Meta):
model = Coordinates
model = Coordinate
fields = ('pk', 'group', 'device', 'x', 'y')
default_columns = ('id', 'group', 'device', 'x', 'y')
+12 -12
View File
@@ -12,18 +12,18 @@ urlpatterns = (
path("individualoptions/", views.TopologyIndividualOptionsView.as_view(), name="individualoptions"),
# Coordinate Group
path("coordinate-groups/", views.CoordinateGroupListView.as_view(), name="coordinategroups_list"),
path("coordinate-groups/add/", views.CoordinateGroupAddView.as_view(), name="coordinategroups_add"),
path("coordinate-groups/<int:pk>/", views.CoordinateGroupView.as_view(), name="coordinategroups"),
path("coordinate-groups/<int:pk>/edit/", views.CoordinateGroupEditView.as_view(), name="coordinategroups_edit"),
path("coordinate-groups/<int:pk>/delete/", views.CoordinateGroupDeleteView.as_view(), name="coordinategroups_delete"),
path("coordinate-groups/<int:pk>/changelog/", views.CoordinateGroupChangeLogView.as_view(), name="coordinategroups_changelog", kwargs={'model': models.CoordinateGroups}),
path("coordinate-groups/", views.CoordinateGroupListView.as_view(), name="coordinategroup_list"),
path("coordinate-groups/add/", views.CoordinateGroupAddView.as_view(), name="coordinategroup_add"),
path("coordinate-groups/<int:pk>/", views.CoordinateGroupView.as_view(), name="coordinategroup"),
path("coordinate-groups/<int:pk>/edit/", views.CoordinateGroupEditView.as_view(), name="coordinategroup_edit"),
path("coordinate-groups/<int:pk>/delete/", views.CoordinateGroupDeleteView.as_view(), name="coordinategroup_delete"),
path("coordinate-groups/<int:pk>/changelog/", views.CoordinateGroupChangeLogView.as_view(), name="coordinategroup_changelog", kwargs={'model': models.CoordinateGroup}),
# Coordinate
path("coordinates/", views.CoordinateListView.as_view(), name="coordinates_list"),
path("coordinates/add/", views.CoordinateAddView.as_view(), name="coordinates_add"),
path("coordinates/<int:pk>/", views.CoordinateView.as_view(), name="coordinates"),
path("coordinates/<int:pk>/edit/", views.CoordinateEditView.as_view(), name="coordinates_edit"),
path("coordinates/<int:pk>/delete/", views.CoordinateDeleteView.as_view(), name="coordinates_delete"),
path("coordinates/<int:pk>/changelog/", views.CoordinateChangeLogView.as_view(), name="coordinates_changelog", kwargs={'model': models.Coordinates}),
path("coordinate/", views.CoordinateListView.as_view(), name="coordinate_list"),
path("coordinate/add/", views.CoordinateAddView.as_view(), name="coordinate_add"),
path("coordinate/<int:pk>/", views.CoordinateView.as_view(), name="coordinate"),
path("coordinate/<int:pk>/edit/", views.CoordinateEditView.as_view(), name="coordinate_edit"),
path("coordinate/<int:pk>/delete/", views.CoordinateDeleteView.as_view(), name="coordinate_delete"),
path("coordinate/<int:pk>/changelog/", views.CoordinateChangeLogView.as_view(), name="coordinate_changelog", kwargs={'model': models.Coordinate}),
)
+32 -32
View File
@@ -34,7 +34,7 @@ from netbox.views.generic import ObjectView, ObjectListView, ObjectEditView, Obj
from netbox_topology_views.filters import DeviceFilterSet, CoordinateFilterSet
from netbox_topology_views.forms import DeviceFilterForm, IndividualOptionsForm, CoordinateGroupsForm, CoordinatesForm, CoordinatesFilterForm
from netbox_topology_views.models import RoleImage, CoordinateGroups, Coordinates, IndividualOptions
from netbox_topology_views.models import RoleImage, CoordinateGroup, Coordinate, IndividualOptions
from netbox_topology_views.tables import CoordinateGroupListTable, CoordinateListTable
from netbox_topology_views.utils import (
CONF_IMAGE_DIR,
@@ -755,81 +755,81 @@ class TopologyImagesView(PermissionRequiredMixin, View):
)
class CoordinateView(PermissionRequiredMixin, ObjectView):
permission_required = 'netbox_topology_views.view_coordinates'
permission_required = 'netbox_topology_views.view_coordinate'
queryset = Coordinates.objects.all()
queryset = Coordinate.objects.all()
class CoordinateAddView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'netbox_topology_views.add_coordinates'
permission_required = 'netbox_topology_views.add_coordinate'
queryset = Coordinates.objects.all()
queryset = Coordinate.objects.all()
form = CoordinatesForm
template_name = 'netbox_topology_views/coordinates_add.html'
template_name = 'netbox_topology_views/coordinate_add.html'
class CoordinateListView(PermissionRequiredMixin, ObjectListView):
permission_required = 'netbox_topology_views.view_coordinates'
permission_required = 'netbox_topology_views.view_coordinate'
queryset = Coordinates.objects.all()
queryset = Coordinate.objects.all()
table = CoordinateListTable
template_name = 'netbox_topology_views/coordinates_list.html'
template_name = 'netbox_topology_views/coordinate_list.html'
filterset = CoordinateFilterSet
filterset_form = CoordinatesFilterForm
class CoordinateEditView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'netbox_topology_views.change_coordinates'
permission_required = 'netbox_topology_views.change_coordinate'
queryset = Coordinates.objects.all()
queryset = Coordinate.objects.all()
form = CoordinatesForm
template_name = 'netbox_topology_views/coordinates_edit.html'
template_name = 'netbox_topology_views/coordinate_edit.html'
class CoordinateDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'netbox_topology_views.delete_coordinates'
permission_required = 'netbox_topology_views.delete_coordinate'
queryset = Coordinates.objects.all()
queryset = Coordinate.objects.all()
class CoordinateChangeLogView(PermissionRequiredMixin, ObjectChangeLogView):
permission_required = 'netbox_topology_views.view_coordinates'
permission_required = 'netbox_topology_views.view_coordinate'
queryset = Coordinates.objects.all()
queryset = Coordinate.objects.all()
class CoordinateGroupView(PermissionRequiredMixin, ObjectView):
permission_required = 'netbox_topology_views.view_coordinategroups'
permission_required = 'netbox_topology_views.view_coordinategroup'
queryset = CoordinateGroups.objects.all()
queryset = CoordinateGroup.objects.all()
class CoordinateGroupAddView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'netbox_topology_views.add_coordinategroups'
permission_required = 'netbox_topology_views.add_coordinategroup'
queryset = CoordinateGroups.objects.all()
queryset = CoordinateGroup.objects.all()
form = CoordinateGroupsForm
template_name = 'netbox_topology_views/coordinategroups_add.html'
template_name = 'netbox_topology_views/coordinategroup_add.html'
class CoordinateGroupListView(PermissionRequiredMixin, ObjectListView):
permission_required = 'netbox_topology_views.view_coordinategroups'
permission_required = 'netbox_topology_views.view_coordinategroup'
queryset = CoordinateGroups.objects.all()
queryset = CoordinateGroup.objects.all()
table = CoordinateGroupListTable
template_name = 'netbox_topology_views/coordinategroups_list.html'
template_name = 'netbox_topology_views/coordinategroup_list.html'
class CoordinateGroupEditView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'netbox_topology_views.change_coordinategroups'
permission_required = 'netbox_topology_views.change_coordinategroup'
queryset = CoordinateGroups.objects.all()
queryset = CoordinateGroup.objects.all()
form = CoordinateGroupsForm
template_name = 'netbox_topology_views/coordinategroups_edit.html'
template_name = 'netbox_topology_views/coordinategroup_edit.html'
class CoordinateGroupDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'netbox_topology_views.delete_coordinategroups'
permission_required = 'netbox_topology_views.delete_coordinategroup'
queryset = CoordinateGroups.objects.all()
queryset = CoordinateGroup.objects.all()
class CoordinateGroupChangeLogView(PermissionRequiredMixin, ObjectChangeLogView):
permission_required = 'netbox_topology_views.view_coordinategroups'
permission_required = 'netbox_topology_views.view_coordinategroup'
queryset = CoordinateGroups.objects.all()
queryset = CoordinateGroup.objects.all()
class TopologyIndividualOptionsView(PermissionRequiredMixin, View):
permission_required = 'netbox_topology_views.change_individualoptions'
permission_required = 'netbox_topology_views.change_individualoption'
def post(self, request):
instance = IndividualOptions.objects.get(user_id=request.user.id)