Redirect to existing variant if present
This commit is contained in:
committed by
Paul J Stevens
parent
63d5de9803
commit
4deaaa985f
@ -111,7 +111,8 @@ def toggle(request, segment_id):
|
|||||||
|
|
||||||
|
|
||||||
def copy_page_view(request, page_id, segment_id):
|
def copy_page_view(request, page_id, segment_id):
|
||||||
"""Copy page with selected segment.
|
"""Copy page with selected segment. If the page for the selected segment
|
||||||
|
already exists the user will be redirected to that particular page.
|
||||||
|
|
||||||
:param request: The http request
|
:param request: The http request
|
||||||
:type request: django.http.HttpRequest
|
:type request: django.http.HttpRequest
|
||||||
@ -126,8 +127,12 @@ def copy_page_view(request, page_id, segment_id):
|
|||||||
if request.user.has_perm('wagtailadmin.access_admin'):
|
if request.user.has_perm('wagtailadmin.access_admin'):
|
||||||
segment = get_object_or_404(Segment, pk=segment_id)
|
segment = get_object_or_404(Segment, pk=segment_id)
|
||||||
page = get_object_or_404(Page, pk=page_id).specific
|
page = get_object_or_404(Page, pk=page_id).specific
|
||||||
new_page = page.copy_for_segment(segment)
|
variants = page.variants_for_segments([segment])
|
||||||
edit_url = reverse('wagtailadmin_pages:edit', args=[new_page.id])
|
if variants.exists():
|
||||||
|
variant = variants.first()
|
||||||
|
else:
|
||||||
|
variant = page.copy_for_segment(segment)
|
||||||
|
edit_url = reverse('wagtailadmin_pages:edit', args=[variant.id])
|
||||||
|
|
||||||
return HttpResponseRedirect(edit_url)
|
return HttpResponseRedirect(edit_url)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user