From c4242e8e9bd093f96aae9515fe8fc76593be0d75 Mon Sep 17 00:00:00 2001 From: LeandroRoberto Date: Wed, 5 Oct 2016 15:20:37 -0300 Subject: [PATCH] Reverte alter em menus.py por imcompatibilidades --- sapl/base/templatetags/menus.py | 76 ++++++++++++++++----------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/sapl/base/templatetags/menus.py b/sapl/base/templatetags/menus.py index 36287fec4..61c468acf 100644 --- a/sapl/base/templatetags/menus.py +++ b/sapl/base/templatetags/menus.py @@ -29,42 +29,43 @@ def subnav(context, path=None): if obj: root_pk = obj.pk - request = context['request'] + if root_pk: + request = context['request'] - """ - As implementações das Views de Modelos que são dados auxiliares e - de diversas app's estão concentradas em urls com prefixo 'sistema'. - Essas Views não possuem submenu de navegação e são incompativeis com a - execução deste subnav. Inicialmente, a maneira mais prática encontrada - de isolar foi com o teste abaixo. - """ - - rm = request.resolver_match - app_template = rm.app_name.rsplit('.', 1)[-1] - - if path: - yaml_path = path - elif 'subnav_template_name' in context: - yaml_path = context['subnav_template_name'] - else: - yaml_path = '%s/%s' % (app_template, 'subnav.yaml') - - if not yaml_path: - return - - try: """ - Por padrão, são carragados dois Loaders, - filesystem.Loader - busca em TEMPLATE_DIRS do projeto atual - app_directories.Loader - busca em todas apps instaladas - A função nativa abaixo busca em todos os Loaders Configurados. + As implementações das Views de Modelos que são dados auxiliares e + de diversas app's estão concentradas em urls com prefixo 'sistema'. + Essas Views não possuem submenu de navegação e são incompativeis com a + execução deste subnav. Inicialmente, a maneira mais prática encontrada + de isolar foi com o teste abaixo. """ - yaml_template = template.loader.get_template(yaml_path) - rendered = yaml_template.render() - menu = yaml.load(rendered) - resolve_urls_inplace(menu, root_pk, rm, context) - except Exception as e: - print(e) + + rm = request.resolver_match + app_template = rm.app_name.rsplit('.', 1)[-1] + + if path: + yaml_path = path + elif 'subnav_template_name' in context: + yaml_path = context['subnav_template_name'] + else: + yaml_path = '%s/%s' % (app_template, 'subnav.yaml') + + if not yaml_path: + return + + try: + """ + Por padrão, são carragados dois Loaders, + filesystem.Loader - busca em TEMPLATE_DIRS do projeto atual + app_directories.Loader - busca em todas apps instaladas + A função nativa abaixo busca em todos os Loaders Configurados. + """ + yaml_template = template.loader.get_template(yaml_path) + rendered = yaml_template.render() + menu = yaml.load(rendered) + resolve_urls_inplace(menu, root_pk, rm, context) + except Exception as e: + print(e) return {'menu': menu} @@ -88,13 +89,8 @@ def resolve_urls_inplace(menu, pk, rm, context): menu['url'] = '' menu['active'] = '' else: - try: - menu['url'] = reverse('%s:%s' % ( - rm.app_name, menu['url']), - kwargs={'pk': pk}) - except: - menu['url'] = reverse('%s:%s' % (rm.app_name, menu['url'])) - + menu['url'] = reverse( + '%s:%s' % (rm.app_name, menu['url']), kwargs={'pk': pk}) menu['active'] = 'active'\ if context['request'].path == menu['url'] else ''