mirror of
https://github.com/netbox-community/netbox.git
synced 2025-08-13 02:58:17 -06:00
Condense view logic
This commit is contained in:
parent
a16564f9fc
commit
b8a2c62e9e
@ -3185,37 +3185,25 @@ class CableEditView(generic.ObjectEditView):
|
|||||||
template_name = 'dcim/cable_edit.html'
|
template_name = 'dcim/cable_edit.html'
|
||||||
htmx_template_name = 'dcim/htmx/cable_edit.html'
|
htmx_template_name = 'dcim/htmx/cable_edit.html'
|
||||||
|
|
||||||
def dispatch(self, request, *args, **kwargs):
|
|
||||||
|
|
||||||
# If creating a new Cable, initialize the form class using URL query params
|
|
||||||
if 'pk' not in kwargs:
|
|
||||||
a_terminations_type = request.POST.get('a_terminations_type') or request.GET.get('a_terminations_type')
|
|
||||||
b_terminations_type = request.POST.get('b_terminations_type') or request.GET.get('b_terminations_type')
|
|
||||||
self.form = forms.get_cable_form(
|
|
||||||
a_type=CABLE_TERMINATION_TYPES.get(a_terminations_type),
|
|
||||||
b_type=CABLE_TERMINATION_TYPES.get(b_terminations_type)
|
|
||||||
)
|
|
||||||
|
|
||||||
return super().dispatch(request, *args, **kwargs)
|
|
||||||
|
|
||||||
def alter_object(self, obj, request, url_args, url_kwargs):
|
def alter_object(self, obj, request, url_args, url_kwargs):
|
||||||
"""
|
"""
|
||||||
Hack into get_object() to set the form class when editing an existing Cable, since ObjectEditView
|
Hack into alter_object() to set the form class when editing an existing Cable, since ObjectEditView
|
||||||
doesn't currently provide a hook for dynamic class resolution.
|
doesn't currently provide a hook for dynamic class resolution.
|
||||||
"""
|
"""
|
||||||
a_terminations_type = request.POST.get('a_terminations_type') or request.GET.get('a_terminations_type')
|
a_terminations_type = CABLE_TERMINATION_TYPES.get(
|
||||||
b_terminations_type = request.POST.get('b_terminations_type') or request.GET.get('b_terminations_type')
|
request.GET.get('a_terminations_type') or request.POST.get('a_terminations_type')
|
||||||
|
)
|
||||||
|
b_terminations_type = CABLE_TERMINATION_TYPES.get(
|
||||||
|
request.GET.get('b_terminations_type') or request.POST.get('b_terminations_type')
|
||||||
|
)
|
||||||
|
|
||||||
if obj.pk:
|
if obj.pk:
|
||||||
if not a_terminations_type and (termination_a := obj.terminations.filter(cable_end='A').first()):
|
if not a_terminations_type and (termination_a := obj.terminations.filter(cable_end='A').first()):
|
||||||
a_type = termination_a.termination._meta.model
|
a_terminations_type = termination_a.termination._meta.model
|
||||||
else:
|
|
||||||
a_type = CABLE_TERMINATION_TYPES.get(a_terminations_type)
|
|
||||||
if not b_terminations_type and (termination_b := obj.terminations.filter(cable_end='B').first()):
|
if not b_terminations_type and (termination_b := obj.terminations.filter(cable_end='B').first()):
|
||||||
b_type = termination_b.termination._meta.model
|
b_terminations_type = termination_b.termination._meta.model
|
||||||
else:
|
|
||||||
b_type = CABLE_TERMINATION_TYPES.get(b_terminations_type)
|
|
||||||
|
|
||||||
self.form = forms.get_cable_form(a_type, b_type)
|
self.form = forms.get_cable_form(a_terminations_type, b_terminations_type)
|
||||||
|
|
||||||
return super().alter_object(obj, request, url_args, url_kwargs)
|
return super().alter_object(obj, request, url_args, url_kwargs)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user