@ -125,93 +125,73 @@ def resolve_urls_inplace(menu, pk, rm, context):
if not req or not req . user . has_perm ( menu [ ' check_permission ' ] ) :
if not req or not req . user . has_perm ( menu [ ' check_permission ' ] ) :
return ' '
return ' '
menu [ ' url ' ] = ' '
if ' / ' in url_name :
menu [ ' active ' ] = ' '
pass
els e :
elif ' : ' in url_nam e :
if ' / ' in url_name :
try :
pass
menu [ ' url ' ] = reverse ( ' %s ' % menu [ ' url ' ] )
elif ' : ' in url_name :
except :
try :
try :
menu [ ' url ' ] = reverse ( ' %s ' % menu [ ' url ' ] )
menu [ ' url ' ] = reverse ( ' %s ' % menu [ ' url ' ] ,
kwargs = { ' pk ' : pk } )
except :
except :
try :
log = """
menu [ ' url ' ] = reverse ( ' %s ' % menu [ ' url ' ] ,
Erro na construção do Menu :
kwargs = { ' pk ' : pk } )
menu : { }
except :
url : { }
# tem que ser root_pk pois quando está sendo
1 ) Verifique se a url existe
# renderizado um detail, update, delete
2 ) Se existe no contexto um desses itens :
# e ainda sim é necessário colocar o menu,
- context [ ' root_pk ' ] pk do master
# nestes, casos o pk da url é do detail, e não
- context [ ' object ' ] objeto do master
# do master, porém, os menus do subnav, apontam para
""" .format(menu[ ' title ' ], menu[ ' url ' ])
# outras áreas que as urls destas são construídas
logger . error ( log )
# com pk do master, e não do detail... por isso
raise Exception ( log )
# no contexto deve ter, ou root_pk, ou object
else :
# sendo que qualquer um dos dois,deverá ser o
try :
# master.
menu [ ' url ' ] = reverse ( ' %s : %s ' % (
# Estes detalhes são relevantes quando usa-se
rm . app_name , menu [ ' url ' ] ) )
# o menu isolado. Por outro lado, quando usado
except :
# conjuntamente com o crud, este configura o contexto
# como se deve para o menus.py
log = """
Erro na construção do Menu :
menu : { }
url : { }
1 ) Verifique se a url existe
2 ) Se existe no contexto um desses itens :
- context [ ' root_pk ' ] pk do master
- context [ ' object ' ] objeto do master
""" .format(menu[ ' title ' ], menu[ ' url ' ])
logger . error ( log )
raise Exception ( log )
else :
try :
try :
menu [ ' url ' ] = reverse ( ' %s : %s ' % (
menu [ ' url ' ] = reverse ( ' %s : %s ' % (
rm . app_name , menu [ ' url ' ] ) )
rm . app_name , menu [ ' url ' ] ) , kwargs = { ' pk ' : pk } )
except :
try :
menu [ ' url ' ] = reverse ( ' %s : %s ' % (
rm . app_name , menu [ ' url ' ] ) , kwargs = { ' pk ' : pk } )
except :
log = """ Erro na construção do Menu:
menu : { }
url : { }
1 ) Verifique se a url existe
2 ) Se existe no contexto um desses itens :
- context [ ' root_pk ' ] pk do master
- context [ ' object ' ] objeto do master
""" .format(menu[ ' title ' ], menu[ ' url ' ])
logger . error ( log )
raise Exception ( log )
#menu['active'] = 'active'\
#if context['request'].path == menu['url'] else ''
req = context . get ( ' request ' )
menu [ ' active ' ] = ' active ' if req and req . path == menu [ ' url ' ] else ' '
if not menu [ ' active ' ] :
"""
Se não encontrada diretamente ,
procura a url acionada dentro do crud , caso seja um .
Serve para manter o active no subnav correto ao acionar
as funcionalidades diretas do MasterDetailCrud , como :
- visualização de detalhes , adição , edição , remoção .
"""
try :
if ' view ' in context :
view = context [ ' view ' ]
if hasattr ( view , ' crud ' ) :
urls = view . crud . get_urls ( )
for u in urls :
if ( u . name == url_name or
' urls_extras ' in menu and
u . name in menu [ ' urls_extras ' ] ) :
menu [ ' active ' ] = ' active '
break
except :
except :
url_active = menu . get ( ' url ' , ' ' )
log = """ Erro na construção do Menu:
logger . warning (
menu : { }
f ' Não foi possível definir se url { url_active } é a url ativa. ' )
url : { }
1 ) Verifique se a url existe
2 ) Se existe no contexto um desses itens :
- context [ ' root_pk ' ] pk do master
- context [ ' object ' ] objeto do master
""" .format(menu[ ' title ' ], menu[ ' url ' ])
logger . error ( log )
raise Exception ( log )
req = context . get ( ' request ' )
menu [ ' active ' ] = ' active ' if req and req . path == menu [ ' url ' ] else ' '
if not menu [ ' active ' ] :
"""
Se não encontrada diretamente ,
procura a url acionada dentro do crud , caso seja um .
Serve para manter o active no subnav correto ao acionar
as funcionalidades diretas do MasterDetailCrud , como :
- visualização de detalhes , adição , edição , remoção .
"""
try :
if ' view ' in context :
view = context [ ' view ' ]
if hasattr ( view , ' crud ' ) :
urls = view . crud . get_urls ( )
for u in urls :
if ( u . name == url_name or
' urls_extras ' in menu and
u . name in menu [ ' urls_extras ' ] ) :
menu [ ' active ' ] = ' active '
break
except :
url_active = menu . get ( ' url ' , ' ' )
logger . warning (
f ' Não foi possível definir se url { url_active } é a url ativa. ' )
elif ' check_permission ' in menu and not context [
elif ' check_permission ' in menu and not context [
' request ' ] . user . has_perm ( menu [ ' check_permission ' ] ) :
' request ' ] . user . has_perm ( menu [ ' check_permission ' ] ) :
menu [ ' active ' ] = ' '
menu [ ' active ' ] = ' '