From 66670a5d5943d9aa08c67360c93db97b2ee2ed0e Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Thu, 31 Jan 2019 01:10:59 -0400 Subject: [PATCH] Update fallback to redirect view When there is no HTTP referer fallback to common.settings_home_view instead of LOGIN_REDIRECT_URL. Signed-off-by: Roberto Rosario --- mayan/apps/common/mixins.py | 8 +++++--- mayan/apps/common/views.py | 10 +++++----- mayan/apps/documents/views/document_page_views.py | 4 ++-- mayan/apps/navigation/classes.py | 6 +++--- 4 files changed, 15 insertions(+), 13 deletions(-) diff --git a/mayan/apps/common/mixins.py b/mayan/apps/common/mixins.py index fcc9036426..e0a1144919 100644 --- a/mayan/apps/common/mixins.py +++ b/mayan/apps/common/mixins.py @@ -5,7 +5,8 @@ from django.contrib import messages from django.contrib.contenttypes.models import ContentType from django.core.exceptions import ImproperlyConfigured, PermissionDenied from django.http import Http404, HttpResponseRedirect -from django.shortcuts import get_object_or_404, resolve_url +from django.shortcuts import get_object_or_404 +from django.urls import reverse from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ungettext from django.views.generic.detail import SingleObjectMixin @@ -19,6 +20,7 @@ from .literals import ( PK_LIST_SEPARATOR, TEXT_CHOICE_ITEMS, TEXT_CHOICE_LIST, TEXT_LIST_AS_ITEMS_PARAMETER, TEXT_LIST_AS_ITEMS_VARIABLE_NAME ) +from .settings import setting_home_view __all__ = ( 'DeleteExtraDataMixin', 'DynamicFormViewMixin', 'ExtraContextMixin', @@ -367,14 +369,14 @@ class RedirectionMixin(object): self.next_url = self.request.POST.get( 'next', self.request.GET.get( 'next', post_action_redirect if post_action_redirect else self.request.META.get( - 'HTTP_REFERER', resolve_url(settings.LOGIN_REDIRECT_URL) + 'HTTP_REFERER', reverse(setting_home_view.value) ) ) ) self.previous_url = self.request.POST.get( 'previous', self.request.GET.get( 'previous', action_cancel_redirect if action_cancel_redirect else self.request.META.get( - 'HTTP_REFERER', resolve_url(settings.LOGIN_REDIRECT_URL) + 'HTTP_REFERER', reverse(setting_home_view.value) ) ) ) diff --git a/mayan/apps/common/views.py b/mayan/apps/common/views.py index f7fc56e2ae..6ef6f2389a 100644 --- a/mayan/apps/common/views.py +++ b/mayan/apps/common/views.py @@ -6,9 +6,9 @@ from django.conf import settings from django.contrib import messages from django.contrib.contenttypes.models import ContentType from django.http import HttpResponseRedirect -from django.shortcuts import get_object_or_404, resolve_url +from django.shortcuts import get_object_or_404 from django.template import RequestContext -from django.urls import reverse_lazy +from django.urls import reverse, reverse_lazy from django.utils import timezone, translation from django.utils.http import urlencode from django.utils.translation import ugettext_lazy as _ @@ -282,7 +282,7 @@ def multi_object_action_view(request): next = request.POST.get( 'next', request.GET.get( 'next', request.META.get( - 'HTTP_REFERER', resolve_url(settings.LOGIN_REDIRECT_URL) + 'HTTP_REFERER', reverse(setting_home_view.value) ) ) ) @@ -299,7 +299,7 @@ def multi_object_action_view(request): messages.error(request, _('No action selected.')) return HttpResponseRedirect( request.META.get( - 'HTTP_REFERER', resolve_url(settings.LOGIN_REDIRECT_URL) + 'HTTP_REFERER', reverse(setting_home_view.value) ) ) @@ -307,7 +307,7 @@ def multi_object_action_view(request): messages.error(request, _('Must select at least one item.')) return HttpResponseRedirect( request.META.get( - 'HTTP_REFERER', resolve_url(settings.LOGIN_REDIRECT_URL) + 'HTTP_REFERER', reverse(setting_home_view.value) ) ) diff --git a/mayan/apps/documents/views/document_page_views.py b/mayan/apps/documents/views/document_page_views.py index 928bb852df..de7ab24807 100644 --- a/mayan/apps/documents/views/document_page_views.py +++ b/mayan/apps/documents/views/document_page_views.py @@ -6,7 +6,6 @@ from furl import furl from django.conf import settings from django.contrib import messages -from django.shortcuts import resolve_url from django.urls import reverse from django.utils.encoding import force_text from django.utils.translation import ugettext_lazy as _ @@ -14,6 +13,7 @@ from django.views.generic import RedirectView from mayan.apps.common.generics import SimpleView, SingleObjectListView from mayan.apps.common.mixins import ExternalObjectMixin +from mayan.apps.common.settings import setting_home_view from mayan.apps.common.utils import resolve from mayan.apps.converter.literals import DEFAULT_ROTATION, DEFAULT_ZOOM_LEVEL @@ -104,7 +104,7 @@ class DocumentPageNavigationBase(ExternalObjectMixin, RedirectView): try: previous_url = self.get_object().get_absolute_url() except AttributeError: - previous_url = resolve_url(settings.LOGIN_REDIRECT_URL) + previous_url = reverse(setting_home_view.value) parsed_url = furl(url=previous_url) diff --git a/mayan/apps/navigation/classes.py b/mayan/apps/navigation/classes.py index a009827667..a49bbca026 100644 --- a/mayan/apps/navigation/classes.py +++ b/mayan/apps/navigation/classes.py @@ -10,10 +10,9 @@ from django.conf import settings from django.contrib.admin.utils import label_for_field from django.core.exceptions import FieldDoesNotExist, PermissionDenied from django.db.models.constants import LOOKUP_SEP -from django.shortcuts import resolve_url from django.template import VariableDoesNotExist, Variable from django.template.defaulttags import URLNode -from django.urls import resolve +from django.urls import reverse, resolve from django.utils.encoding import force_str, force_text from django.utils.translation import ugettext_lazy as _ @@ -22,6 +21,7 @@ from mayan.apps.common.literals import ( TEXT_SORT_ORDER_CHOICE_ASCENDING, TEXT_SORT_ORDER_CHOICE_DESCENDING, TEXT_SORT_ORDER_PARAMETER, TEXT_SORT_ORDER_VARIABLE_NAME ) +from mayan.apps.common.settings import setting_home_view from mayan.apps.common.utils import resolve_attribute from mayan.apps.permissions import Permission @@ -170,7 +170,7 @@ class Link(object): parsed_url = furl( force_str( request.get_full_path() or request.META.get( - 'HTTP_REFERER', resolve_url(settings.LOGIN_REDIRECT_URL) + 'HTTP_REFERER', reverse(setting_home_view.value) ) ) )