Browse Source

Reverte alter em menus.py por imcompatibilidades

pull/701/head
LeandroRoberto 8 years ago
parent
commit
c4242e8e9b
  1. 76
      sapl/base/templatetags/menus.py

76
sapl/base/templatetags/menus.py

@ -29,42 +29,43 @@ def subnav(context, path=None):
if obj: if obj:
root_pk = obj.pk 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, As implementações das Views de Modelos que são dados auxiliares e
filesystem.Loader - busca em TEMPLATE_DIRS do projeto atual de diversas app's estão concentradas em urls com prefixo 'sistema'.
app_directories.Loader - busca em todas apps instaladas Essas Views não possuem submenu de navegação e são incompativeis com a
A função nativa abaixo busca em todos os Loaders Configurados. 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() rm = request.resolver_match
menu = yaml.load(rendered) app_template = rm.app_name.rsplit('.', 1)[-1]
resolve_urls_inplace(menu, root_pk, rm, context)
except Exception as e: if path:
print(e) 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} return {'menu': menu}
@ -88,13 +89,8 @@ def resolve_urls_inplace(menu, pk, rm, context):
menu['url'] = '' menu['url'] = ''
menu['active'] = '' menu['active'] = ''
else: else:
try: menu['url'] = reverse(
menu['url'] = reverse('%s:%s' % ( '%s:%s' % (rm.app_name, menu['url']), kwargs={'pk': pk})
rm.app_name, menu['url']),
kwargs={'pk': pk})
except:
menu['url'] = reverse('%s:%s' % (rm.app_name, menu['url']))
menu['active'] = 'active'\ menu['active'] = 'active'\
if context['request'].path == menu['url'] else '' if context['request'].path == menu['url'] else ''

Loading…
Cancel
Save