Skip to content

Commit 9b064e6

Browse files
committed
20683 remove swap Circuit Terminations
1 parent be74436 commit 9b064e6

File tree

3 files changed

+0
-89
lines changed

3 files changed

+0
-89
lines changed

netbox/circuits/urls.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,6 @@
1818
path('circuit-types/<int:pk>/', include(get_model_urls('circuits', 'circuittype'))),
1919

2020
path('circuits/', include(get_model_urls('circuits', 'circuit', detail=False))),
21-
path(
22-
'circuits/<int:pk>/terminations/swap/',
23-
views.CircuitSwapTerminations.as_view(),
24-
name='circuit_terminations_swap'
25-
),
2621
path('circuits/<int:pk>/', include(get_model_urls('circuits', 'circuit'))),
2722

2823
path('circuit-terminations/', include(get_model_urls('circuits', 'circuittermination', detail=False))),

netbox/circuits/views.py

Lines changed: 0 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,8 @@
1-
from django.contrib import messages
2-
from django.db import router, transaction
3-
from django.shortcuts import get_object_or_404, redirect, render
4-
from django.utils.translation import gettext_lazy as _
51

62
from dcim.views import PathTraceView
73
from ipam.models import ASN
84
from netbox.object_actions import AddObject, BulkDelete, BulkEdit, BulkExport, BulkImport
95
from netbox.views import generic
10-
from utilities.forms import ConfirmationForm
116
from utilities.query import count_related
127
from utilities.views import GetRelatedModelsMixin, register_model_view
138
from . import filtersets, forms, tables
@@ -373,82 +368,6 @@ class CircuitBulkDeleteView(generic.BulkDeleteView):
373368
table = tables.CircuitTable
374369

375370

376-
class CircuitSwapTerminations(generic.ObjectEditView):
377-
"""
378-
Swap the A and Z terminations of a circuit.
379-
"""
380-
queryset = Circuit.objects.all()
381-
382-
def get(self, request, pk):
383-
circuit = get_object_or_404(self.queryset, pk=pk)
384-
form = ConfirmationForm()
385-
386-
# Circuit must have at least one termination to swap
387-
if not circuit.termination_a and not circuit.termination_z:
388-
messages.error(request, _(
389-
"No terminations have been defined for circuit {circuit}."
390-
).format(circuit=circuit))
391-
return redirect('circuits:circuit', pk=circuit.pk)
392-
393-
return render(request, 'circuits/circuit_terminations_swap.html', {
394-
'circuit': circuit,
395-
'termination_a': circuit.termination_a,
396-
'termination_z': circuit.termination_z,
397-
'form': form,
398-
'panel_class': 'light',
399-
'button_class': 'primary',
400-
'return_url': circuit.get_absolute_url(),
401-
})
402-
403-
def post(self, request, pk):
404-
circuit = get_object_or_404(self.queryset, pk=pk)
405-
form = ConfirmationForm(request.POST)
406-
407-
if form.is_valid():
408-
409-
termination_a = CircuitTermination.objects.filter(pk=circuit.termination_a_id).first()
410-
termination_z = CircuitTermination.objects.filter(pk=circuit.termination_z_id).first()
411-
412-
if termination_a and termination_z:
413-
# Use a placeholder to avoid an IntegrityError on the (circuit, term_side) unique constraint
414-
with transaction.atomic(using=router.db_for_write(CircuitTermination)):
415-
termination_a.term_side = '_'
416-
termination_a.save()
417-
termination_z.term_side = 'A'
418-
termination_z.save()
419-
termination_a.term_side = 'Z'
420-
termination_a.save()
421-
circuit.refresh_from_db()
422-
circuit.termination_a = termination_z
423-
circuit.termination_z = termination_a
424-
circuit.save()
425-
elif termination_a:
426-
termination_a.term_side = 'Z'
427-
termination_a.save()
428-
circuit.refresh_from_db()
429-
circuit.termination_a = None
430-
circuit.save()
431-
else:
432-
termination_z.term_side = 'A'
433-
termination_z.save()
434-
circuit.refresh_from_db()
435-
circuit.termination_z = None
436-
circuit.save()
437-
438-
messages.success(request, _("Swapped terminations for circuit {circuit}.").format(circuit=circuit))
439-
return redirect('circuits:circuit', pk=circuit.pk)
440-
441-
return render(request, 'circuits/circuit_terminations_swap.html', {
442-
'circuit': circuit,
443-
'termination_a': circuit.termination_a,
444-
'termination_z': circuit.termination_z,
445-
'form': form,
446-
'panel_class': 'default',
447-
'button_class': 'primary',
448-
'return_url': circuit.get_absolute_url(),
449-
})
450-
451-
452371
#
453372
# Circuit terminations
454373
#

netbox/templates/circuits/inc/circuit_termination.html

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,6 @@ <h2 class="card-header d-flex justify-content-between">
1414
<a href="{% url 'circuits:circuittermination_edit' pk=termination.pk %}?return_url={{ object.get_absolute_url }}" class="btn btn-sm btn-ghost-warning">
1515
<span class="mdi mdi-pencil" aria-hidden="true"></span> {% trans "Edit" %}
1616
</a>
17-
<a href="{% url 'circuits:circuit_terminations_swap' pk=object.pk %}?return_url={{ object.get_absolute_url }}" class="btn btn-sm btn-ghost-primary">
18-
<span class="mdi mdi-swap-vertical" aria-hidden="true"></span> {% trans "Swap" %}
19-
</a>
2017
{% endif %}
2118
{% if termination and perms.circuits.delete_circuittermination %}
2219
<a href="{% url 'circuits:circuittermination_delete' pk=termination.pk %}?return_url={{ object.get_absolute_url }}" class="btn btn-sm btn-ghost-danger">

0 commit comments

Comments
 (0)