Allow users to create new FHRP group directly from the interface view

This commit is contained in:
jeremystretch 2021-11-02 13:06:58 -04:00
parent 736d6cb675
commit aeb4996ac2
2 changed files with 20 additions and 4 deletions

View File

@ -3,6 +3,7 @@ from django.db.models import Prefetch
from django.db.models.expressions import RawSQL
from django.http import Http404
from django.shortcuts import get_object_or_404, redirect, render
from django.urls import reverse
from dcim.models import Device, Interface
from netbox.views import generic
@ -867,6 +868,16 @@ class FHRPGroupEditView(generic.ObjectEditView):
queryset = FHRPGroup.objects.all()
model_form = forms.FHRPGroupForm
def get_return_url(self, request, obj=None):
return_url = super().get_return_url(request, obj)
# If we're redirecting the user to the FHRPGroupAssignment creation form,
# initialize the group field with the FHRPGroup we just saved.
if return_url.startswith(reverse('ipam:fhrpgroupassignment_add')):
return_url += f'&group={obj.pk}'
return return_url
class FHRPGroupDeleteView(generic.ObjectDeleteView):
queryset = FHRPGroup.objects.all()

View File

@ -35,11 +35,16 @@
</tbody>
</table>
</div>
{% if perms.ipam.add_fhrpgroupassignment %}
<div class="card-footer text-end noprint">
<div class="card-footer text-end noprint">
{% if perms.ipam.add_fhrpgroup %}
<a href="{% url 'ipam:fhrpgroup_add' %}?return_url={% url 'ipam:fhrpgroupassignment_add' %}%3Fcontent_type={{ object|meta:"app_label" }}.{{ object|meta:"model_name" }}%26object_id={{ object.pk }}" class="btn btn-sm btn-primary">
<span class="mdi mdi-plus-thick" aria-hidden="true"></span> Create Group
</a>
{% endif %}
{% if perms.ipam.add_fhrpgroupassignment %}
<a href="{% url 'ipam:fhrpgroupassignment_add' %}?content_type={{ object|meta:"app_label" }}.{{ object|meta:"model_name" }}&object_id={{ object.pk }}" class="btn btn-sm btn-primary">
<span class="mdi mdi-plus-thick" aria-hidden="true"></span> Assign Group
</a>
</div>
{% endif %}
{% endif %}
</div>
</div>