From 16a44015f2b2085ad437f4deb7538bf6f25525a9 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Mon, 30 Jun 2014 00:34:32 -0400 Subject: [PATCH] Remove urlresolver monkey patch and use Django's resolve function --- .../templatetags/navigation_tags.py | 7 ++- mayan/apps/navigation/utils.py | 46 ------------------- 2 files changed, 5 insertions(+), 48 deletions(-) delete mode 100644 mayan/apps/navigation/utils.py diff --git a/mayan/apps/navigation/templatetags/navigation_tags.py b/mayan/apps/navigation/templatetags/navigation_tags.py index e118a15c53..2de89529ee 100644 --- a/mayan/apps/navigation/templatetags/navigation_tags.py +++ b/mayan/apps/navigation/templatetags/navigation_tags.py @@ -5,7 +5,7 @@ import re import urlparse import urllib -from django.core.urlresolvers import reverse, NoReverseMatch +from django.core.urlresolvers import NoReverseMatch, resolve, reverse from django.template import (TemplateSyntaxError, Library, VariableDoesNotExist, Node, Variable) from django.utils.text import unescape_string_literal @@ -17,11 +17,14 @@ from common.utils import urlquote from ..api import (object_navigation, multi_object_navigation, top_menu_entries, sidebar_templates) from ..forms import MultiItemForm -from ..utils import resolve_to_name register = Library() +def resolve_to_name(path, urlconf=None): + return resolve(path, urlconf=urlconf).view_name + + class TopMenuNavigationNode(Node): def render(self, context): request = Variable('request').resolve(context) diff --git a/mayan/apps/navigation/utils.py b/mayan/apps/navigation/utils.py deleted file mode 100644 index b6a740866c..0000000000 --- a/mayan/apps/navigation/utils.py +++ /dev/null @@ -1,46 +0,0 @@ -# TODO: Django now has a resolve function use it instead of this -# http://www.djangosnippets.org/snippets/1378/ - -from django.core.urlresolvers import RegexURLResolver, RegexURLPattern, Resolver404, get_resolver - - -__all__ = ('resolve_to_name',) - - -def _pattern_resolve_to_name(self, path): - match = self.regex.search(path) - if match: - name = "" - if self.name: - name = self.name - elif hasattr(self, '_callback_str'): - name = self._callback_str - else: - name = "%s.%s" % (self.callback.__module__, self.callback.func_name) - return name - - -def _resolver_resolve_to_name(self, path): - tried = [] - match = self.regex.search(path) - if match: - new_path = path[match.end():] - for pattern in self.url_patterns: - try: - name = pattern.resolve_to_name(new_path) - except Resolver404, e: - tried.extend([(pattern.regex.pattern + ' ' + t) for t in e.args[0]['tried']]) - else: - if name: - return name - tried.append(pattern.regex.pattern) - raise Resolver404, {'tried': tried, 'path': new_path} - - -# here goes monkeypatching -RegexURLPattern.resolve_to_name = _pattern_resolve_to_name -RegexURLResolver.resolve_to_name = _resolver_resolve_to_name - - -def resolve_to_name(path, urlconf=None): - return get_resolver(urlconf).resolve_to_name(path)