
Zc           @   s  d  d l  Z  d  d l Z d  d l m Z d  d l m Z d  d l Z d  d l Z d  d l m Z d  d l	 m
 Z
 d  d l m Z d  d l m Z m Z m Z m Z d  d l Z d  d l Z d  d l Z d  d l m Z d  d	 l m Z d  d
 l m Z m Z d  d l m Z d  d l m Z m  Z  d  d l! m" Z" d  d l# m$ Z$ e$ e%  Z& e j'   Z' d Z( d Z) d Z* d   Z+ e, e+ _- e j. e, d   Z/ d   Z0 d   Z1 d   Z2 d   Z3 d   Z4 d   Z5 e j. d    Z6 e, d  Z7 e, e, e, e, e, e, e, d  Z8 e, e, e, e, e, d  Z9 e, d  Z: e, e, e, e, e, e; e; e< e< e< e< d  Z= e< d   Z> e, e, e, e, e, d!  Z? e j. e, e, e, e, e, d"   Z@ e, e, e, e, e, d#  ZA e, e, e, e, e, d$  ZB e j. e, e, e, e, e, d%   ZC e, e, e, e, e, d&  ZD e, e, e, e, e, d'  ZE e j. e, e, e, e, e, d(   ZF e, e, e, e, e, d)  ZG e, e, e, e, e, d*  ZH e j. e, e, e, e, e, d+   ZI d,   ZJ d-   ZK e jL d.    ZM d/   ZN d0   ZO e jL d1    ZP d2   ZQ d3   ZR e jL d4    ZS e jL d5    ZT e jL d6    ZU d7   ZV e jL d8    ZW d9   ZX e jL d:    ZY e jL d;    ZZ e jL d<    Z[ e jL d=    Z\ e jL d>    Z] d?   Z^ e jL d@    Z_ dA   Z` dB   Za e jL dC    Zb e jL dD    Zc dE   Zd dF   Ze dG   Zf e jL dH    Zg d S(I   iN(   t   deepcopy(   t   datetime(   t   _acla(   t   _tpcr(   t   Transaction(   t   SessionMenuItemt   ApplicationMenut   MenuItemt   MenuViewItem(   t   ContainerSettings(   t   getUserInfo(   t   convertToContainerUrlt   buildMenuItemUrl(   t	   Preferiti(   t
   Cronologiat   ProcedureMenuHiddenItem(   t   container010_tbcronologia(   t
   LogFactorys    > t   +t   ,c          C   s,   t  j r t  j St j d  }  |  t  _ |  S(   Ns   ^@command:.*$(   t#   getInternalCommandRegularExpressiont   cachet   ret   compile(   t   regexp(    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyR   6   s
    		c      '   C   s  | d  k	 r0 | j   r' t |  } q0 d  } n  t j   } | r t |   r t j |   } t j |  d d } yM | j	 d | j
 |  \ } } | d  k r t j d | | d d  n  Wq t k
 r } t j d t |   q Xn  | d  k r| rd n d } t j   j d	  j   j |  j d d d
 d
 d	 d	 d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d  }	 n | rd
 n d }
 t j   j d	  j |  j d  j |
  j d d d
 d
 d	 d	 d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d  }	 | d  k rt j d  } n  g  } |	 d  k rt j |  i d  d! 6d" d# 6 S|	 st j |  i d  d! 6d$ d# 6 Sd  } | d  k s| rt |   } n  x |	 D] } t |  |  } | d  k rD| j d% | d  | d <n  | r~t | d  } | | k r~| | | d& d' <q~n  | j |  qWt j |  |  S((   Nt   protocoli   s   tp_%ss$   Empty node removed for parent %s: %si    s5   Error during call removeEmptyNodesFromSessionMenu: %st   orderingt   idt   parentt   itemIdt   urlt   paramst   captiont   tooltipt   commandt   targett   menut   shortcutMenut   isNodet   applicationIds   application.Idt   applicationDescrs   application.descriptiont   codet   applicationt   siglat   environmentt   ambientet   dbnamet   is_single_wrkas   (\s*\(TM\))t	   emptymenut   __notificationt   errort   __reasont   pendings   &#8482;t   datat   smiid(   t   Nonet   isdigitt   intt   _utilst   hasMenuViewEnabledt   hasPendingMenust
   GetSessiont   bp084_tbvoci_menu_utentet   Tablet   removeEmptyNodesFromSessionMenut
   session_idt   logt   debugt	   Exceptiont   strR   t   findt   byt   nullt   ordert	   returningt   eqR   R   t   sendjsont   getSelectedItemst   _buildMenuItemResponseObjectt   subt   append(   t   reqR   t   hasMenuViewt   st   tb84t   rett   errt   whyR   t   itemst
   orderingIdt   reTMt	   menuItemst   selectedItemst   itemt   menuItemt   k(    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyt   getMenuD   s    	"'3	c         C   sK  t  |   } t j   } | r? t j d | j | j f  } n t j d | j | j f  } t j |  d d } i  } d  } t
 | d  r | j d  k	 r t | j  } | r t |  } q n  | j | d d d t \ } } | d  k rG| d  k	 rGxH | D]= }	 t |	 j  }
 | |
 k rt |	 j  } |
 | | <qqWn  | S(	   Nst  select vwm.bp088_id itemid, vwmr.bp088_id rootid

from bp084_tbvoci_menu_utente vmu

inner join bp081_tbvoci_menu vm on vm.bp081_id=vmu.bp084_voce_menu_id_bp081 and vm.bp081_flg_selected=True
inner join bp083_tbmenu_utente mu on vmu.bp084_menu_utente_id_bp083=mu.bp083_id and mu.bp083_utente_id_bp001=%s and mu.bp083_azienda_id_bp003=%s

inner join bp081_tbvoci_menu vmr on vmr.bp081_menu_id_bp080=mu.bp083_menu_id_bp080 and vmr.bp081_voce_menu_padre_id_bp081 is null

inner join bp088_tbvista_menu vwm on vwm.bp088_voce_menu_id_bp081=vm.bp081_id
inner join bp088_tbvista_menu vwmr on vwmr.bp088_voce_menu_id_bp081=vmr.bp081_id
s  select vm.bp081_id itemid, vmr.bp081_id rootid
from bp084_tbvoci_menu_utente vmu

inner join bp081_tbvoci_menu vm on vm.bp081_id=vmu.bp084_voce_menu_id_bp081 and vm.bp081_flg_selected=True
inner join bp083_tbmenu_utente mu on vmu.bp084_menu_utente_id_bp083=mu.bp083_id and mu.bp083_utente_id_bp001=%s and mu.bp083_azienda_id_bp003=%s

inner join bp081_tbvoci_menu vmr on vmr.bp081_menu_id_bp080=mu.bp083_menu_id_bp080 and vmr.bp081_voce_menu_padre_id_bp081 is null
R   i   t   start_wa_itemidt   returnerrorst   Gt   all(   R
   R:   R;   t   _dbt   SQLQueryt   login_id_utentet   login_id_aziendaR>   R?   R7   t   hasattrRa   R9   t   getViewIdFromItemIdt
   db_executet   Truet   itemidRE   t   rootid(   RQ   t   userRR   t   sqlt   userMenuItemsTableR\   t   initialAppMenuIdt   recsRV   t   rect   vR_   (    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyRM      s,    !c         C   s(   d } t  j | | f  } t |  |  S(   Ns  
WITH RECURSIVE q AS
        (
        SELECT  h
                ,ARRAY[itemid] AS ipath
        FROM    bp081_tbsession_menu h
        WHERE   itemid = %s

        UNION ALL

        SELECT  hi
                ,q.ipath || hi.itemid
        FROM    q
        JOIN    bp081_tbsession_menu hi
                ON hi.itemid = (q.h).parent
        )
SELECT  
    (q.h).*,
    app.bp090_sigla_procedura AS applicationcode,
    vm.bp081_flg_acla
        
FROM    q
LEFT JOIN bp083_tbmenu_utente mu ON mu.bp083_id=(q.h).idusermenu
LEFT JOIN bp080_tbmenu m ON m.bp080_id=mu.bp083_menu_id_bp080
LEFT JOIN bp090_tbprocedure app ON app.bp090_id=m.bp080_procedura_id_bp090
LEFT JOIN bp081_tbvoci_menu vm ON vm.bp081_id=(q.h).itemid
ORDER BY ipath
(   Re   Rf   t   _loadMenuItemExecuteQuery(   RQ   R   t   _sqlRp   (    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyt   _loadMenuItemByItemId  s    c         C   s(   d } t  j | | f  } t |  |  S(   Ns)  
WITH RECURSIVE q AS
        (
        SELECT  h
                ,ARRAY[itemid] AS ipath
        FROM    bp081_tbsession_menu h
        WHERE   itemid = %s

        UNION ALL

        SELECT  hi
                ,q.ipath || hi.itemid
        FROM    q
        JOIN    bp081_tbsession_menu hi
                ON hi.itemid = (q.h).parent
        )
SELECT  
    (q.h).*,
    app.bp090_sigla_procedura AS applicationcode,
    vm.bp081_flg_acla
        
FROM    q
LEFT JOIN bp083_tbmenu_utente mu ON mu.bp083_id=(q.h).idusermenu
LEFT JOIN bp080_tbmenu m ON m.bp080_id=mu.bp083_menu_id_bp080
LEFT JOIN bp090_tbprocedure app ON app.bp090_id=m.bp080_procedura_id_bp090
LEFT JOIN bp088_tbvista_menu mv ON mv.bp088_id=(q.h).itemid
LEFT JOIN bp081_tbvoci_menu vm ON vm.bp081_id=mv.bp088_voce_menu_id_bp081
ORDER BY ipath
(   Re   Rf   Rv   (   RQ   t   viewIdRw   Rp   (    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyt   _loadMenuItemByViewId/  s    c         C   s(   d } t  j | | f  } t |  |  S(   Ns  
WITH RECURSIVE q AS
        (
        SELECT  h
                ,ARRAY[itemid] AS ipath
        FROM    bp081_tbsession_menu h
        WHERE   code = %s

        UNION ALL

        SELECT  hi
                ,q.ipath || hi.itemid
        FROM    q
        JOIN    bp081_tbsession_menu hi
                ON hi.itemid = (q.h).parent
        )
SELECT  
    (q.h).*,
    app.bp090_sigla_procedura AS applicationcode,
    vm.bp081_flg_acla
        
FROM    q
LEFT JOIN bp083_tbmenu_utente mu ON mu.bp083_id=(q.h).idusermenu
LEFT JOIN bp080_tbmenu m ON m.bp080_id=mu.bp083_menu_id_bp080
LEFT JOIN bp090_tbprocedure app ON app.bp090_id=m.bp080_procedura_id_bp090
LEFT JOIN bp081_tbvoci_menu vm ON vm.bp081_id=(q.h).itemid
ORDER BY ipath
(   Re   Rf   Rv   (   RQ   t   itemCodeRw   Rp   (    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyt   _loadMenuItemByCodeT  s    c         C   s(   d } t  j | | f  } t |  |  S(   Ns'  
WITH RECURSIVE q AS
        (
        SELECT  h
                ,ARRAY[itemid] AS ipath
        FROM    bp081_tbsession_menu h
        WHERE   code = %s

        UNION ALL

        SELECT  hi
                ,q.ipath || hi.itemid
        FROM    q
        JOIN    bp081_tbsession_menu hi
                ON hi.itemid = (q.h).parent
        )
SELECT  
    (q.h).*,
    app.bp090_sigla_procedura AS applicationcode,
    vm.bp081_flg_acla
        
FROM    q
LEFT JOIN bp083_tbmenu_utente mu ON mu.bp083_id=(q.h).idusermenu
LEFT JOIN bp080_tbmenu m ON m.bp080_id=mu.bp083_menu_id_bp080
LEFT JOIN bp090_tbprocedure app ON app.bp090_id=m.bp080_procedura_id_bp090
LEFT JOIN bp088_tbvista_menu mv ON mv.bp088_id=(q.h).itemid
LEFT JOIN bp081_tbvoci_menu vm ON vm.bp081_id=mv.bp088_voce_menu_id_bp081
ORDER BY ipath
(   Re   Rf   Rv   (   RQ   R{   Rw   Rp   (    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyt   _loadMenuItemByCodeWithViewsw  s    c   
      C   s(  t  j |  d  } | j |  d d } d  } | j | d d d t \ } } | d  k r$| r$g  } x| D]} | d  k ri | j d 6| j d 6| j d	 6| j	 d
 6| j
 d 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d 6d d 6d d  6g  d! 6} n  | j d  k r| j | j  | d  d  d"  | d! <d# j g  | D] }	 |	 ^ q | d  <d# j g  | d! D] }	 |	 ^ q | d <Pqm | j | j  qm Wn  | S($   Nt   bp081_tbsession_menuR   i   Rb   Rc   Rd   R   Rm   R   R   R   R    R!   R"   R#   R*   R$   R   t   shortcutmenut   isnodet	   nchildrent
   idusermenuR)   R+   R-   R.   R/   t   applicationcodet	   aclacheckt    t
   breadcrumbt   revbreadcrumbt   pathis    > (   R:   t   import_temp_tableR?   R7   Rk   Rl   R   Rm   R   R   R   R    R!   R"   R#   R*   R$   R   R   R   R   R   R)   R+   R-   R.   R/   R   t   bp081_flg_aclaRP   t   join(
   RQ   Rp   t
   modSesMenut	   tbSesMenuR^   Rs   RV   R   Rt   RS   (    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyRv     sV    !






















&*c         C   s   g  } d } | d  k	 r | j   r t |  } t j   j d  j |  j   } | r | j d  k	 r~ t	 |  d | } n  | r | d d } q q n  i | d 6| d 6} t
 j |  |  S(   Ni    R   t
   sourceItemR   t   parentIdR$   (   R7   R8   R9   R   RF   RG   RK   t   resultR   t
   _loadLevelR:   RL   (   RQ   R   t
   menuBranchR   R   t   response(    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyt   getMenuBranchByItem  s    
$
c      '   C   s  t  j   j d  j | j  j d  j d  j d d d d d d d d d d d d d d d	 d	 d
 d
 d d d d d d d d d d d d d d d d d d d d  } d  } t j	   r t
 |   } n  g  } | d  k	 rzx | D] } t |  |  } | d  k	 r,| d | j k r,t |  | d <n  | rft | d  } | | k rf| | | d d <qfn  | j |  q Wn  | r| d d }	 |	 d  k	 rt  j   j d  j |	  j   }
 |
 j d  k	 rt |  d |
 d | } qqn  | S(   NR   R   R   R   R   R   R    R!   R"   R#   R$   R%   R&   R'   s   application.IdR(   s   application.descriptionR)   R*   R+   R,   R-   R.   R/   R5   R6   i    R   t   subMenu(   R   RF   RG   RK   R   RI   RJ   R7   R:   R;   RM   RN   R   R    RE   RP   R   R   (   RQ   R   R   RX   R\   R[   R]   R^   R_   R   t   sourceParentItem(    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyR     sR    6	$!c      	   C   so  d } t  j   } d }	 | d  k	 r | d d k rt d d j g  | d D] }
 d t  j |
 j    ^ qH  }	 qg  } xR | d D]F } | j d	 d j g  | D] }
 d t  j |
 j    ^ q   q Wd
 d j |  }	 n3 | r | r d }	 n | r	d }	 n | rd }	 n  | d k s0| d k rG|	 d | | f }	 n | d  k	 r| d  k	 r| r||	 d | | f }	 q|	 d | | f }	 nh | d  k	 r| r|	 d | }	 q|	 d | }	 n4 | d  k	 r| r|	 d | }	 q|	 d | }	 n  | |	 } | d  k	 rd } n? | r5| r5| | f } n$ | rG| f } n | rY| f } n  t j | |  } | S(   Nso  
WITH RECURSIVE q AS
        (
        SELECT  h
                ,ARRAY[itemid] AS ipath
        FROM    bp081_tbsession_menu h
        WHERE   itemid IN (SELECT itemid FROM bp081_tbsession_menu %s)

        UNION ALL

        SELECT  hi
                ,q.ipath || hi.itemid
        FROM    q
        JOIN    bp081_tbsession_menu hi
                ON hi.itemid = (q.h).parent
        )
SELECT  
        (q.h).itemid
        ,(q.h).parent
        ,(q.h).isnode
        ,(q.h).caption
        ,0 AS relpos
        ,(q.h).application
        ,(q.h).menu
        ,(q.h).command
        ,(q.h).target
FROM    q
ORDER BY ipath
R   t   opi    s   WHERE tags && ARRAY[%s]R   t   tagss   '%s's   (tags && ARRAY[%s])s   WHERE %ss    AND s,   WHERE (caption ILIKE %s OR command ILIKE %s)s   WHERE caption ILIKE %ss   WHERE command = UPPER(%s)isS    AND (itemid=%s OR menu IN (SELECT menu FROM bp081_tbsession_menu WHERE parent=%s))s*    AND (application=%s OR menu=%s OR menu=0)s     AND (application=%s OR menu=%s)s&    AND (application=%s OR application=0)s    AND application=%ss    AND (menu=%s OR menu=0)s    AND menu=%s(    (	   R:   R;   R7   R   t   dbescapet   stripRP   Re   Rf   (   t   _unusedt   textToSearcht   cmdToSearcht   tagsToSearcht   appIdt   menuIdt   nodeIdRw   RR   t   searchConditiont   tagToSearcht   group_conditionst   groupt   queryParametersRp   (    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyt   _buildSearchSQLOptimizedE  sR    @D			

	c         C   s  d } t  j   } d } | r- | r- d } n | r< d } n | rK d } n  d d g }	 | d k so | d k r d |	 d <d	 |	 d
 <n | d  k	 r | d  k	 r | r d |	 d <d |	 d
 <qkd |	 d <d |	 d
 <n | d  k	 r| r d |	 d <d |	 d
 <qkd |	 d <d |	 d
 <nY | d  k	 rR| r;d |	 d <d |	 d
 <qkd |	 d <d |	 d
 <n | d  k	 rk| d } n  | d  k	 r| d  k	 r| d k r| d k r| d } n  | r| d  k	 r| d k r| d | } n  | r| d  k	 r| d k r| d | } n  | |	 d |	 d
 | f } | d k s9| d k r| rr| rr| | | | |  r]|  n d  g | | f }
 q| r| | | | |  r|  n d  g | f }
 q| r| | | | |  r|  n d  g | f }
 qn| d  k	 r| d  k	 r| r)| r)| | | | |  r|  n d  g | | | f }
 q| r\| | | | |  rG|  n d  g | | f }
 q| r| | | | |  rz|  n d  g | | f }
 qn.| d  k	 r(| r| r| | |  r|  n d  g | | f }
 q| r| | |  r|  n d  g | f }
 q| r| | |  r|  n d  g | f }
 qn| d  k	 r| rg| rg| | |  rR|  n d  g | | f }
 q| r| | |  r|  n d  g | f }
 q| r| | |  r|  n d  g | f }
 qn| d  k	 rK| r| r|  r|  n d  g | | | f }
 q| r!|  r|  n d  g | | f }
 q| r|  r3|  n d  g | | f }
 qnu | rx| rx|  rc|  n d  g | | f }
 nH | r|  r|  n d  g | f }
 n$ | r|  r|  n d  g | f }
 n  t j | |
  } | S(   Nsp  
WITH RECURSIVE q AS
        (
        SELECT  h
                ,ARRAY[itemid] AS ipath
                ,caption as breadcrumb
                ,caption as revbreadcrumb
        FROM    bp081_tbsession_menu h
        WHERE   parent is null %s               
        
        UNION ALL
                
        SELECT  hi
                , q.ipath || hi.itemid
                , q.breadcrumb || ' > ' || hi.caption
                , hi.caption || ' > ' || q.revbreadcrumb
        FROM    q
        JOIN    bp081_tbsession_menu hi
                ON      hi.parent = (q.h).itemid
        %s
        )
SELECT  
        (q.h).itemid
        ,(q.h).isnode
        ,(q.h).caption
        ,(q.h).command
        ,spcontainer_calc_menu_item_relative_pos( ipath, %%s::bigint[] ) AS relpos
        ,breadcrumb
        ,revbreadcrumb
FROM    q
%s
ORDER BY
        relpos, ipath             
R   s6   WHERE (q.h).caption ilike %s or (q.h).command ilike %ss   WHERE (q.h).caption ilike %ss   WHERE (q.h).command = UPPER(%s)isT   AND (h.itemid=%s OR menu in (select menu from bp081_tbsession_menu where parent=%s))i    sX   WHERE hi.itemid=%s OR hi.menu in (select menu from bp081_tbsession_menu where parent=%s)i   s)   AND (application=%s OR menu=%s OR menu=0)s4   WHERE (hi.application=%s OR hi.menu=%s OR hi.menu=0)s   AND (application=%s OR menu=%s)s'   WHERE (hi.application=%s OR hi.menu=%s)s%   AND (application=%s OR application=0)s-   WHERE (hi.application=%s OR hi.application=0)s   AND application=%ss   WHERE hi.application=%ss   AND (menu=%s OR menu=0)s   WHERE (hi.menu=%s OR hi.menu=0)s   AND menu=%ss   WHERE hi.menu=%ss    AND %s = ANY(ipath)s    AND (q.h).application=%ss    AND (q.h).menu=%s(   R:   R;   R7   Re   Rf   (   t   refItemPathIdsR   R   R   R   R   Rw   RR   R   t   scopeConditionsR   Rp   (    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyt   _buildSearchSQL  s*   F			






0c         C   sm   i d d 6d d 6d  d 6d d 6d  d 6d d 6d d	 6t d
 6t d 6t d 6d d 6} |  ri | j |   n  | S(   Ni    R   R   R    R"   t   labelR#   R   t   relposR   t   isgroupt   issepRn   (   R7   t   Falset   update(   t   valuesR]   (    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyt   _getSearchResultItem  s    
c   ,      C   s  t  } t } g  } | r7 | r7 | r7 t j |  |  S| d  k	 r| rR t } n t } | } | rd } d } d } | d  k	 r t |  } n  | d  k	 r t |  } n  | d k r | d k r | d  k	 r t |  } n  g  } | r&| d  k	 r&t |  d | d t  } | r&| j	   q&n  t j
 |  d  } | j |  d d } | rt | t  ryi d d 6| d 6} q| j t  } t |  d k ri d d 6g  | d j t  D] } | ^ qd 6} qi d d 6g  | D] } | j t  ^ qd 6} n  | rd	 | } n  | r,| r,| } n  | d
 k sD| d
 k rF| d k rk| d  k	 rkt |  } n  | r| | d | d d
 d d
 d | } q| r| r| | d | d | j   d d
 d d
 d | } q| r
| | d | d d  d d
 d d
 d | } q| r| | d d  d | j   d d
 d d
 d | } qn| d k r-| r| | d | d d  d d  d | } q| r| r| | d | d | j   d d  d d  d | } q| r| | d | d d  d d  d d  d | } q| r| | d d  d | j   d d  d d  d | } qn| d k r/| d k r/| rr| | d | d | d | d d  } n | r| r| | d | d | j   d | d | d d  } nl | r| | d | d d  d | d | d d  } n9 | r| | d d  d | j   d | d | d d  } n  t rt  } qn| d k r| rh| | d | d | d d  d d  } q| r| r| | d | d | j   d | d d  d d  } q| r| | d | d d  d | d d  d d  } q| r| | d d  d | j   d | d d  d d  } qn| d k r| rO| | d | d d  d | d d  } q| r| r| | d | d | j   d d  d | d d  } q| r| | d | d d  d d  d | d d  } q| r| | d d  d | j   d d  d | d d  } qn | r*| | d | d d  d d  d d  } n | ri| ri| | d | d | j   d d  d d  d d  } nl | r| | d | d d  d d  d d  d d  } n9 | r| | d d  d | j   d d  d d  d d  } n  | j | d d d t  \ } } | d  k r| d  k	 r| rt j   } g  }  i  }! t }" |	 rd }# t  }$ |  j d  k	 r~d |  j k r~|  j d d k r~t }$ n  d }% n  x| D]y}& |& j d  k r|" st }' |! s	t  }' t   }! |& j |! d <|& j |! d <|& j |! d <|& j |! d <|& j |! d <|& j |! d <n |	 r+	|& j |! d <n  |	 r|# |& j k r	|& j }# t   }( |& j |( d <|& j |( d <|& j |( d <|& j |( d <|& j |( d <t  |( d <|& j |( d <| j |(  |' r	t }' q	n  |  j |& j  g  |  d  d  d
  D] }) |) ^ q	}* | r
t j  |*  |! d <| r$
d n d  }+ t |*  |+ k rf
|' rH
d n |% t j  |* |+  |! d <q|' rr
d n |% t j  |*  |! d <n(|$ rt j  |*  |! d <t |   d k r
|' r
d n |% t j  g  |  d! d  d
  D] }) |) ^ q
 |! d <q|' r	d n |% |  d |! d <n t j  g  |  D] }) |) ^ q+ |! d <t |   d k r|' rbd n |% t j  g  |  d d
 !D] }) |) ^ qy |! d <n |' rd n |% |  d |! d <| r|! d" r|! d" d# |! d |! d <qn|  j |& j  | rg  |  d  d  d
  D] }) |) ^ q}* t j  |*  |! d <| r?d n d  }+ t |*  |+ k rqt j  |* |+  |! d <qt j  |*  |! d <n|
 r8d |! d$ <t j  |*  |! d <t |   d% k rt j  g  |  d  d  d
  d  D] }) |) ^ q t d& |! d' <qt j  g  |  d  d  d
  d
  D] }) |) ^ q |! d' <ng t j  g  |  D] }) |) ^ qE |! d$ <t j  g  |  d  d  d
  D] }) |) ^ qx |! d <|! d |! d <| j |!  n  t }" g  }  i  }! q|! s| d  k	 r| d  k	 r| d k r| d k r| |& j! k rt  }" qn  | r| d  k	 rN| d k rN| |& j! k rNt  }" qNn  |" r| d  k	 r| d k r| |& j" k rt  }" qqn  |" st   }! |& j |! d <|& j |! d <|& j# |! d" <|& j |! d <|& j |! d <|& j |! d <qn  |" s|  j |& j  qqWqxu | D]j }& t   }! |& j |! d <|& j |! d <|& j$ |! d <|& j% |! d$ <|& j |! d <|& j |! d <| j |!  qWqqn  | S((   Ni    R   t   returnCodesR~   R   i   R   R   s   %%%s%%iR   R   R   R   R   R   Rb   Rc   Rd   t   container_prefs_nav_path_dirR   R   R    R#   R   R   Rn   R   R   R   i   i   iR"   s    - R   i   s   ...t
   pathtoleaf(&   Rl   R   R:   RL   R7   R   R   R9   t   _getItemBreadcrumbFromDbt   popR   R?   t
   isinstancet   listt   splitt   TAGS_GROUPS_SEPARATORt   lent   TAGS_SEPERATORR   t   hasSmartDesktopRk   R;   t   SESR   R   Rm   R    R#   R   R   RP   t   BREADCRUMB_SEPARATORR   R*   R$   R"   R   R   (,   RQ   t   string2Searcht	   refItemIdt   appScopet	   menuScopet	   nodeScopet   findTextt   findCmdt   findTagst   enableGroupingt   enableTabularListt   mergeCommandAndCaptiont   enableOptimizedSearcht   createSearchResultsShortPathsR[   t
   DDLBuildert   needleR   R   R   R   R   R   t   searchTagsCriteriat   tags_groupst   gt   searchTextCriteriat   searchCmdCriteriaRp   Rs   RV   RR   R   R^   t   skipt   lastApplicationIdt   straightPathDirt
   itemIndentRt   t   matchInRootR]   RS   R   t   lmt(    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyt   _searchMenuEn  s   	$-)		!					
&*&F!&@ &
B:&3	0			c   
      C   s   d  } t j |  d  } | j |  d d } | rK t j d | f  } n t j d | f  } | j | d d d t \ } } | d  k r | d  k	 r | r g  | j j	 d	  D] }	 t
 |	  ^ q } q | j } n  | S(
   NR~   R   i   s  WITH RECURSIVE q AS (
    SELECT  h
            ,ARRAY[itemid] AS ipath
    FROM    bp081_tbsession_menu h
    WHERE   parent is null
        
    UNION ALL
        
    SELECT  hi
            , q.ipath || hi.itemid
    FROM    q
    JOIN    bp081_tbsession_menu hi 
            ON hi.parent = (q.h).itemid
)
 SELECT  
        array_to_string(ipath, ',') AS breadcrumb
 FROM    q
 WHERE (q.h).itemid=%s
 ORDER BY
        ipath
s  WITH RECURSIVE q AS (
    SELECT  h
            ,ARRAY[itemid] AS ipath
            ,caption as breadcrumb
    FROM    bp081_tbsession_menu h
    WHERE   parent is null
        
    UNION ALL
        
    SELECT  hi
            , q.ipath || hi.itemid
            , q.breadcrumb || ' > ' || hi.caption
    FROM    q
    JOIN    bp081_tbsession_menu hi 
            ON hi.parent = (q.h).itemid
)
 SELECT  
        breadcrumb
 FROM    q
 WHERE (q.h).itemid=%s
 ORDER BY
        ipath
Rb   Rc   Rd   R   (   R7   R:   R   R?   Re   Rf   Rk   R   R   R   R9   (
   RQ   R   R   R   R   R   Rp   Rt   RV   t   i(    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyR   "  s    !.c         C   s   |  j  d  k	 r d |  j  k r |  j  d r t d |  d | d | d | d | d | d t d	 t d
 t d t d t d t  } nK t d |  d | d | d | d | d | d t d	 t d
 t d t d t  } | S(   Nt   container_prefs_show_aliasesRQ   R   R   R   R   R   R   R   R   R   R   R   (   R   R7   R   Rl   R   (   RQ   R    R   R   R   R   t   results(    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyt   _searchMenu  s    +c         C   s+   t  |  | | | | |  } t j |  |  S(   N(   R   R:   RL   (   RQ   R    R   R   R   R   R   (    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyt
   searchMenu  s    c         C   s=   t  d |  d | d | d | d | d | d t d t d	 t  	S(
   NRQ   R   R   R   R   R   R   R   R   (   R   R   Rl   (   RQ   R    R   R   R   R   (    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyt   _searchCommand  s    c         C   s=   t  d |  d | d | d | d | d | d t d t d	 t  	S(
   NRQ   R   R   R   R   R   R   R   R   (   R   R   Rl   (   RQ   R    R   R   R   R   (    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyt   _searchTags  s    c         C   s+   t  |  | | | | |  } t j |  |  S(   N(   R   R:   RL   (   RQ   R    R   R   R   R   R   (    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyt   searchCommand  s    c         C   s  | d  k r4 | |  d | d d  d d  d d  d d  St t f } | d  k	 rw t | |  rw | j   rw t |  } n  | d  k	 r t | |  r | j   s | d k r t |  } n  | d  k	 r t | |  r | j   s | d k r t |  } n  | d  k	 r4t | |  r4| j   r4t |  } n  | d k rR| d k rRt j |  } | d  k	 rR| j }	 |	 d  k	 rO|	 j d k s|	 j d	 k rO| }
 t	 j
   } | rt |  }
 n  t j |
  } | d  k	 rL| j }	 |	 d  k	 r|	 j d k s|	 j d	 k s| j d  k	 rI| |  d | d | d | d | d d  SqLqOqRn  | d
 k r| d
 k r| |  d | d | d d
 d d
 d | S| |  d | d | d d  d | d d  Sd  S(   NR    R   R   R   R   s   -1i    t   pgt   pwi(   R7   R9   t   longR   R8   R   t   findByIDR*   R)   R:   R;   t   getItemIdFromViewIdR   t   typeR%   (   RQ   t   funR    R   R   R   R   t   numericalTypest   appMenut   appR   RR   t
   parentItem(    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyt   _searchAuto  s<    !(44(	*	
9(c         C   s+   t  |  t d | d | d | d | d | S(   NR    R   R   R   R   (   R   R   (   RQ   R    R   R   R   R   (    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyt   _searchMenuAuto	  s    c   
      C   s%  t  |  d | d | d | d | d | } t rt |  | | | | |  } | r t   } t | d <t d | d <| d <t | d	 <| j d
 |  | | } n  t |  | | | | |  }	 |	 rt   } t | d <t d | d <| d <t | d <|	 j d
 |  |	 | } qn  t j	 |  |  S(   NR    R   R   R   R   R   s   PAROLE CHIAVER   t   istagi    t   COMANDIt   isalias(
   R   R   t   _searchTagsAutoR   Rl   t   Tt   insertt   _searchCommandAutoR:   RL   (
   RQ   R    R   R   R   R   R   R   R]   t   commands(    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyt   searchMenuAuto  s(    	

	

c         C   s+   t  |  t d | d | d | d | d | S(   NR    R   R   R   R   (   R   R   (   RQ   R    R   R   R   R   (    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyR   )  s    c         C   s+   t  |  t d | d | d | d | d | S(   NR    R   R   R   R   (   R   R   (   RQ   R    R   R   R   R   (    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyR   -  s    c         C   s:   t  |  d | d | d | d | d | } t j |  |  S(   NR    R   R   R   R   (   R   R:   RL   (   RQ   R    R   R   R   R   R   (    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyt   searchCommandAuto1  s    c         C   s  t  |  | j | j | j  } i	 | j d 6| j d 6| j d 6| d 6| j d 6| j d 6| j d 6| j	 d 6i	 | j
 d	 6| j d
 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d  k	 r t j | j  n d  d 6d 6} | j rt j d | j  d | d <n  | S(   NR   R    R!   R   R   R"   R#   R   t   ssidR   R   R   t   itemcodeR,   R.   R/   R   R5   s/   /www/container/container_menu/getMenu?parent=%si   R$   (   R   R   R   R#   Rm   R    R!   t   parentidR"   R   R   R+   t   appidR$   R   R-   R.   R/   R7   R:   t   qs2dictR   R   t	   crypt_url(   RQ   R]   R   R^   (    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyt#   _buildMenuItemResponseObjectFromRec:  s.    














/	!c         C   s  t  |  | j | j | j  } i | j d 6| j d 6| j d 6| d 6| j d 6| j d 6| j d 6i
 | j	 d 6| j
 d	 6| j d
 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d  k	 r t j | j  n d  d 6d 6} | j rt j d | j  d | d <n  | S(   NR   R    R!   R   R   R"   R#   R   R   R   t   appDescrR   R   R,   R.   R/   R   R5   s/   /www/container/container_menu/getMenu?parent=%si   R$   (   R   R   R   R#   R   R    R!   R   R"   R   R*   R'   R(   R$   R)   R,   R.   R/   R7   R:   R   R&   R   R   (   RQ   R]   R   R^   (    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyRN   \  s.    .














/	!c         C   s$   t  } | r t |   St |   Sd  S(   N(   Rl   t   _chronologyOptimizedt   _chronology(   RQ   R   (    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyt
   chronology  s    
c         C   s%  g  } t  j   } t   } | j } | j j } t  j |  d  } | j |  d d } | r{ t j	 d | | | f  } n t j	 d | | | f  } | j
 | d d d t \ }	 }
 |
 d  k r|	 d  k	 rxC |	 D]8 } t |  |  } | j j d	  | d
 <| j |  q Wn  t  j |  |  S(   NR~   R   i   s  
WITH RECURSIVE q AS
        (
        SELECT  h
                ,caption as breadcrumb
        FROM    bp081_tbsession_menu h
        WHERE   parent is null                
        
        UNION ALL
                
        SELECT  hi
                , q.breadcrumb || ' > ' || hi.caption
        FROM    q
        JOIN    bp081_tbsession_menu hi
                ON      hi.parent = (q.h).itemid

        )
SELECT 
    (q.h).id
    ,(q.h).itemid
    ,(q.h).parent AS parentid
    ,(q.h).url
    ,(q.h).params
    ,(q.h).caption
    ,(q.h).tooltip
    ,(q.h).command
    ,(q.h).target
    ,(q.h).application AS appid
    ,(q.h).menu
    --,app.bp090_sigla_procedura AS application
    ,(q.h).shortcutmenu
    ,(q.h).isnode
    ,(q.h).nchildren
    ,(q.h).idusermenu
    ,(q.h).code
    ,(q.h).sigla
    ,(q.h).ambiente
    ,(q.h).dbname
    ,(q.h).is_single_wrka
    ,breadcrumb
    ,vm.bp081_codice AS itemcode
    ,cr.container010_dataora_ins as timeadded
            
FROM    q
INNER JOIN bp083_tbmenu_utente mu ON mu.bp083_id=(q.h).idusermenu
INNER JOIN bp080_tbmenu m ON m.bp080_id=mu.bp083_menu_id_bp080
--INNER JOIN bp090_tbprocedure app ON app.bp090_id=m.bp080_procedura_id_bp090

INNER JOIN bp088_tbvista_menu vw ON vw.bp088_id=(q.h).itemid
INNER JOIN bp081_tbvoci_menu vm ON vm.bp081_id=vw.bp088_voce_menu_id_bp081

INNER JOIN container010_tbcronologia cr ON vm.bp081_codice=cr.container010_uri and cr.container010_utente_id_bp001=%s

WHERE (q.h).itemid IN 
(
    SELECT vw.bp088_id FROM container010_tbcronologia cr
    INNER JOIN bp081_tbvoci_menu vm ON vm.bp081_codice=cr.container010_uri
    INNER JOIN bp088_tbvista_menu vw ON vw.bp088_voce_menu_id_bp081=vm.bp081_id
    WHERE cr.container010_utente_id_bp001=%s
)

ORDER BY cr.container010_dataora_ins DESC
LIMIT %s
sX  
WITH RECURSIVE q AS
        (
        SELECT  h
                ,caption as breadcrumb
        FROM    bp081_tbsession_menu h
        WHERE   parent is null                
        
        UNION ALL
                
        SELECT  hi
                , q.breadcrumb || ' > ' || hi.caption
        FROM    q
        JOIN    bp081_tbsession_menu hi
                ON      hi.parent = (q.h).itemid

        )
SELECT 
    (q.h).id
    ,(q.h).itemid
    ,(q.h).parent AS parentid
    ,(q.h).url
    ,(q.h).params
    ,(q.h).caption
    ,(q.h).tooltip
    ,(q.h).command
    ,(q.h).target
    ,(q.h).application AS appid
    ,(q.h).menu
    --,app.bp090_sigla_procedura AS application
    ,(q.h).shortcutmenu
    ,(q.h).isnode
    ,(q.h).nchildren
    ,(q.h).idusermenu
    ,(q.h).code
    ,(q.h).sigla
    ,(q.h).ambiente
    ,(q.h).dbname
    ,(q.h).is_single_wrka
    ,breadcrumb
    ,vm.bp081_codice AS itemcode
    ,cr.container010_dataora_ins as timeadded
            
FROM    q
INNER JOIN bp083_tbmenu_utente mu ON mu.bp083_id=(q.h).idusermenu
INNER JOIN bp080_tbmenu m ON m.bp080_id=mu.bp083_menu_id_bp080
--INNER JOIN bp090_tbprocedure app ON app.bp090_id=m.bp080_procedura_id_bp090
INNER JOIN bp081_tbvoci_menu vm ON vm.bp081_id=(q.h).itemid
INNER JOIN container010_tbcronologia cr ON vm.bp081_codice=cr.container010_uri and cr.container010_utente_id_bp001=%s

WHERE (q.h).itemid IN 
(
    SELECT vm.bp081_id FROM container010_tbcronologia cr
    INNER JOIN bp081_tbvoci_menu vm ON vm.bp081_codice=cr.container010_uri
    WHERE cr.container010_utente_id_bp001=%s
)

ORDER BY cr.container010_dataora_ins DESC
LIMIT %s
Rb   Rc   Rd   s   %Y-%m-%d %H:%M:%St	   timeadded(   R:   R;   R	   t   maxChronologyEntriest
   loggedUserRg   R   R?   Re   Rf   Rk   Rl   R7   R  R  t   strftimeRP   RL   (   RQ   R[   RR   t   containerSettingsR  t   userIdR   R   Rp   Rs   RV   Rt   R^   (    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyR    s&    		=?;!c         C   sS  g  } |  j  d  k	 o. d |  j  k o. |  j  d } t j   } t   } | j } | j j } t j |  d  } | j	 |  d d } | r t
 j d | | | f  }	 n t
 j d | | | f  }	 | j |	 d d d	 t \ }
 } | d  k r|
 d  k	 rg  } i  } d  } g  } x|
 D]} | d  k	 rP| j | k rP| j | j  qn  | s| j } t |  |  } | j j d
  | d <n  | j d  k r| j | j  g  | d  d  d  D] } | ^ q} t j |  | d <t rf| rd n d } t |  | k r#t j | |  | d <n t j |  | d <| r| d r| d d | d | d <qn- | r| d r| d d | d | d <n  | j |  | rx= | D]2 } t |  } | j d
  | d <| j |  qWn  g  } i  } d  } g  } q| j | j  qWn  | rCt j |  t | d d   d t  St j |  |  S(   NR   R~   R   i   s  
WITH RECURSIVE q AS
        (
        SELECT  h
                ,ARRAY[itemid] AS ipath
        FROM    bp081_tbsession_menu h
        WHERE   itemid in (
                    SELECT vw.bp088_id FROM container010_tbcronologia cr
                    INNER JOIN bp081_tbvoci_menu vm ON vm.bp081_codice=cr.container010_uri
                    INNER JOIN bp088_tbvista_menu vw ON vw.bp088_voce_menu_id_bp081=vm.bp081_id
                    WHERE cr.container010_utente_id_bp001=%s
                    ORDER BY cr.container010_dataora_ins DESC LIMIT %s
                )
        
        UNION ALL
                
        SELECT  hi
                ,q.ipath || hi.itemid
        FROM    q
        JOIN    bp081_tbsession_menu hi
                ON hi.itemid = (q.h).parent

        )
SELECT 
    (q.h).id
    ,(q.h).itemid
    ,(q.h).parent AS parentid
    ,(q.h).url
    ,(q.h).params
    ,(q.h).caption
    ,(q.h).tooltip
    ,(q.h).command
    ,(q.h).target
    ,(q.h).application AS appid
    ,(q.h).menu
    ,(q.h).shortcutmenu
    ,(q.h).isnode
    ,(q.h).nchildren
    ,(q.h).idusermenu
    ,(q.h).code AS itemcode
    ,(q.h).sigla
    ,(q.h).ambiente
    ,(q.h).dbname
    ,(q.h).is_single_wrka
    ,'' breadcrumb
    ,cr.container010_dataora_ins as timeadded
            
FROM    q
LEFT JOIN container010_tbcronologia cr ON (q.h).code=cr.container010_uri and cr.container010_utente_id_bp001=%s
ORDER BY ipath
s  
WITH RECURSIVE q AS
        (
        SELECT  h
                ,ARRAY[itemid] AS ipath
        FROM    bp081_tbsession_menu h
        WHERE   itemid in (
                    SELECT vm.bp081_id FROM container010_tbcronologia cr
                    INNER JOIN bp081_tbvoci_menu vm ON vm.bp081_codice=cr.container010_uri
                    WHERE cr.container010_utente_id_bp001=%s 
                    ORDER BY cr.container010_dataora_ins DESC LIMIT %s
                )
        
        UNION ALL
                
        SELECT  hi
                ,q.ipath || hi.itemid
        FROM    q
        JOIN    bp081_tbsession_menu hi
                ON hi.itemid = (q.h).parent

        )
SELECT 
    (q.h).id
    ,(q.h).itemid
    ,(q.h).parent AS parentid
    ,(q.h).url
    ,(q.h).params
    ,(q.h).caption
    ,(q.h).tooltip
    ,(q.h).command
    ,(q.h).target
    ,(q.h).application AS appid
    ,(q.h).menu
    ,(q.h).shortcutmenu
    ,(q.h).isnode
    ,(q.h).nchildren
    ,(q.h).idusermenu
    ,(q.h).code AS itemcode
    ,(q.h).sigla
    ,(q.h).ambiente
    ,(q.h).dbname
    ,(q.h).is_single_wrka
    ,'' breadcrumb
    ,cr.container010_dataora_ins as timeadded

FROM    q
LEFT JOIN container010_tbcronologia cr ON (q.h).code=cr.container010_uri and cr.container010_utente_id_bp001=%s
ORDER BY ipath
Rb   Rc   Rd   s   %Y-%m-%d %H:%M:%SR  iR   i   i   R    R"   s    - t   keyc         S   s   |  d S(   NR  (    (   R_   (    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyt   <lambda>	  s    t   reverse(   R   R7   R:   R;   R	   R  R  Rg   R   R?   Re   Rf   Rk   Rl   Rm   RP   R  R  R	  R   R    R   R   R   R   R    RL   t   sorted(   RQ   R[   R   RR   R
  R  R  R   R   Rp   Rs   RV   R   R^   t
   lastItemIdt   multipleItemsRt   RS   R   R   t   tmt   clonedMenuItem(    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyR    sl    +		8271!	& 	%c         C   s  |  j  } i d  d 6t d 6d d 6d d 6} d  } d  } y t | j  } Wn$ y | j j   } Wqq qq Xn X| r | r d | d <t d  | d <t j	 |  |  S| r | r t
 |  |  } | s d	 | d <t d  | d <t j	 |  |  Sn  t j   } t | d
  o| j d k } | r:t |  |  } n t |  |  } | d  k rd | d <t d  | d <t j	 |  |  St   } t }	 | st j   j d  j | j j  j d  j | d  j   }
 |
 r}t |
  d k r|
 d } t j   | _ qy2 t   # x |
 D] } t j |  qWWd  QXWn7 t k
 rs} d | d <| j | d <t j	 |  |  SXt  }	 qt  }	 ns t! |  | j j  } | d  k	 r| j" | d k rt j# | j$  } | d  k	 rt j   | _ qt  }	 n t  }	 |	 rKt  | d <t d | d d | d d t j   d | j j d | d  } n  y: t   + t j% |  t& |  | j j | j'  Wd  QXWn7 t k
 r} d | d <| j | d <t j	 |  |  SX| | d <t j	 |  |  S(   NR]   t   addedi    RV   R   t   msgi   s   Parametri non validii   t	   addAlwayst   truei   s   Voce menu non trovatat	   utente_idt   uriR)   i   t   descriptionR    t   dataora_insR   ((   t   formR7   R   R9   R   R{   R   R   R:   RL   t   _itemIdFromCodeR;   Ri   R  Rz   Rx   R	   R   RF   RG   RK   R  Rg   R   R   R   t   nowR  R   t   deleteRD   t   messageRl   t   getLastChronologyEntryt   container010_uriR   t   container010_idt   savet   removeOldChronologyEntriesR  (   RQ   R  R   R   R{   RR   R  R^   R
  t   createNewRecordt   entriest   chronologyEntryt   et   ext
   lastRecord(    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyt   saveChronology	  s    	



	@


			





c         C   s   t  j |  d d } t j d | f  } | j | d d d t \ } } | d  k r} | d  k	 r} t |  d k r} | d Sd  S(   NR   i   s~   SELECT * FROM container010_tbcronologia WHERE container010_utente_id_bp001 = %s ORDER BY container010_dataora_ins DESC LIMIT 1Rb   Rc   Rd   i    (   R   R?   Re   Rf   Rk   Rl   R7   R   (   RQ   R  t   tbCronologiaRp   Rs   RV   (    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyR!  +
  s    !*c         C   sh   | d k r t  St j |  d d } t j d | | f  } | j | d d d t  \ } } | d  k S(   Ni    R   i   sJ  
DELETE FROM container010_tbcronologia
WHERE container010_id IN
(
    SELECT container010_id
    FROM
    (
        SELECT container010_id, row_number() OVER (ORDER BY container010_dataora_ins DESC) RowNumber
        FROM container010_tbcronologia
        WHERE container010_utente_id_bp001=%s
    ) tt
    WHERE RowNumber > %s
)
Rb   Rc   Rd   (   R   R   R?   Re   Rf   Rk   R7   (   RQ   R  t   limitR-  Rp   t   _recsRV   (    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyR%  6
  s    !c         C   s  t  j   } g  } i  } t  j |  d  } | j |  d d } g  } t j d  } | j | d d d t \ } }	 |	 d  k r| d  k	 rt	   }
 |
 j
 } t j   j d  j |
 j j  j   } | r x! | D] } | j | j  q Wn  x| D]} | j j d	  } d	 j g  | D] } d
 | d
 ^ q } | rOd | } n
 d | } d  } d  } t j |  } | j | d d d t \ } }	 |	 d  k r | d  k	 r g  } xQ | D]I } t |  |  } d | d d <d | k rg  | d <n  | j |  qW| rd  } xJ | D]B } x9 | D]1 } | | d d k r'| | d <| d } q'q'WqWd } x(t |  D]} x| D] } | | d d k r| d d | k r| j d d   | d k r| j d d   i d | d 6t d  d 6| d d <n  | d  k	 r#| d j |  n  | } | d | k rU| | d d j |  q| d | k r| } | | | d <qqqW| d } qsW| d  k	 r| j |  qqq q Wn  | rxA | j   D]0 \ } } d | k r| d r| j   qqWn  t |  d k rUd | d k r7| d d } n  x | D] } d  | d <q>Wn  | rr| rr| j i   nU d   } t | d | } x7 | D]/ } d | k rt | d d | | d <qqWt  j |  |  S(   NR~   R   i   s/  
SELECT  
    substring(replace(sm.shortcutmenu,'"','') from 'item:\[(.*?)\]') path
FROM bp081_tbsession_menu sm
INNER JOIN bp080_tbmenu m ON m.bp080_id=sm.menu
WHERE sm.shortcutmenu is not null 
        and sm.shortcutmenu ~* '^\{"type":"procedure"\b*,\b*.*?\}$'
ORDER BY m.bp080_valore_ordinale, path
Rb   Rc   Rd   Ro   R   t   's  
SELECT 

    sm.id
    ,sm.itemid
    ,sm.parent AS parentid
    ,sm.url
    ,sm.params
    ,sm.caption
    ,sm.tooltip
    ,sm.command
    ,sm.target
    ,sm.application AS appid
    ,sm.menu
    --,app.bp090_sigla_procedura AS application
    ,sm.ordering
    ,sm.shortcutmenu
    ,sm.isnode
    ,sm.nchildren
    ,sm.idusermenu
    ,sm.code
    ,sm.sigla
    ,sm.ambiente
    ,sm.dbname
    ,sm.is_single_wrka
    ,''::text breadcrumb
    ,vm.bp081_codice itemcode

FROM bp081_tbvoci_menu vm

INNER JOIN bp088_tbvista_menu vw ON vw.bp088_voce_menu_id_bp081=vm.bp081_id
INNER JOIN bp081_tbsession_menu sm on sm.itemid=vw.bp088_id

WHERE vm.bp081_codice IN (
    %s
)
sR  
SELECT 

    sm.id
    ,sm.itemid
    ,sm.parent AS parentid
    ,sm.url
    ,sm.params
    ,sm.caption
    ,sm.tooltip
    ,sm.command
    ,sm.target
    ,sm.application AS appid
    ,sm.menu
    --,app.bp090_sigla_procedura AS application
    ,sm.ordering
    ,sm.shortcutmenu
    ,sm.isnode
    ,sm.nchildren
    ,sm.idusermenu
    ,sm.code
    ,sm.sigla
    ,sm.ambiente
    ,sm.dbname
    ,sm.is_single_wrka
    ,''::text breadcrumb
    ,vm.bp081_codice itemcode

FROM bp081_tbvoci_menu vm

INNER JOIN bp081_tbsession_menu sm on sm.itemid=vm.bp081_id

WHERE vm.bp081_codice IN (
    %s
)
R5   t   optionsR$   R   R   R   i    R   s@   /www/container/skins/themes/%s/icons/Icone16x16_Pos/089a_pos.pngt   srcs   Nasconde questa STARTt   titlet   iconc         S   s   |  j  d d  j   S(   NR    R   (   t   gett   lower(   R_   (    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyt   keyFun  s    R  (    R:   R;   R   R?   Re   Rf   Rk   Rl   R7   R	   t	   themeNameR   RF   RG   RK   R  Rg   R   RP   R{   R   R   R   R  t   reversedR   R   RX   t   clearR   R  RL   (   RQ   RR   t   fullMenut   menuItemsReferencesR   R   t   removedItemsRp   t   rsCandidatesRV   R
  R8  R'  R)  t   rsCandidatet	   itemCodesR   t   itemCodesValuesRw   t   lastItemR   t   rsItemsR[   t   rsItemR^   R   R{   R   R7  R]   (    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyt   procedureMenuR
  s    
	!		**ML
!	
(		!c         C   s   i d d 6d d 6} t    } | j j } |  j } t d | j d |  } y! t    t j |  Wd  QXWn* t k
 r } d | d <| j	 | d <n Xt
 j |  |  S(   Ni    RV   R   R  R{   Ro   i   (   R	   R  Rg   R  R   R{   R   R$  RD   R   R:   RL   (   RQ   R   R
  R  R  t   entityR)  (    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyt   procedureMenuHideItem  s    				

c         C   s   i t  d 6d d 6d d 6} t   } t j   j d  j | j j  j   } | r y< t	 | d <t
   # x | D] } t j |  qr WWd  QXWq t k
 r } d | d <| j | d <q Xn  t j |  |  S(   Nt   donei    RV   R   R  Ro   i   (   R   R	   R   RF   RG   RK   R  Rg   R   Rl   R   R  RD   R   R:   RL   (   RQ   R   R
  R'  R)  (    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyt   procedureMenuHiddenItemsRestore  s    	*


c   	      C   s   t  |   } t | j  } t | j  } t j |  d d } t j d | | f  } | j | d d d t	 \ } } | d  k r | d  k	 r x | D]
 } | j SWn  | d  k r d Sd S(	   NR   i   s   
SELECT COUNT(*) n FROM bp083_tbmenu_utente WHERE bp083_utente_id_bp001=%s AND bp083_azienda_id_bp003=%s AND bp083_flg_batch_execution = True
Rb   Rc   Rd   i    i(   R
   R9   Rg   Rh   t   bp083_tbmenu_utenteR?   Re   Rf   Rk   Rl   R7   t   n(	   RQ   Ro   R  t	   companyIdt   userMenuTableRp   Rs   RV   Rt   (    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyR<     s    !c         C   s   |  j  } i g  d 6} t | d  r | j j   } | d k r g  | j d  D]$ } t |  d k rP t |  ^ qP } t |  |  | d <q n  t j |  |  S(   Nt   pendingMenuItemst   itemIdsR   R   i    (	   R  Ri   RO  R   R   R9   t   _checkPendingMenusR:   RL   (   RQ   R  R   RO  R   t   ids(    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyt   checkPendingMenus  s    	:c         C   s	  g  } | rt  |   } t | j  } t | j  } t j |  d  } | j |  d d } d d j g  | D] } t |  ^ qm  f }	 t	 j
 |	 | | f  }
 | j |
 d d d t \ } } | d  k r| d  k	 rx! | D] } | j | j  q Wqn  | S(	   NR~   R   i   s   
SELECT sm.itemid
FROM bp081_tbsession_menu sm
INNER JOIN bp083_tbmenu_utente mu ON mu.bp083_menu_id_bp080=sm.menu AND bp083_utente_id_bp001=%%s AND bp083_azienda_id_bp003=%%s AND bp083_flg_batch_execution = True
WHERE sm.itemid IN (%s)
R   Rb   Rc   Rd   (   R
   R9   Rg   Rh   R:   R   R?   R   RE   Re   Rf   Rk   Rl   R7   RP   Rm   (   RQ   RQ  RN  Ro   R  RL  R   R   R   t   ddlRp   Rs   RV   Rt   (    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyRP    s    	/	!c         C   s`  |  j  } t | d  r6 | j d  k	 r6 t | j  n d  } t | d  ri | j d  k	 ri | j j   n d  } t | d  o | j d k } t | d  r | j j   n d } t | d  r | j	 j   n d } t | d  r | j
 j   n d  } t | d	  r | j d  k	 r | j n d  } d  }	 | r]| r]t j |  i d
 d 6t d  d 6 S| s| r| rt j |  i d d 6t d  d 6 Sn  t   }
 | r|
 j |  } nd  } t j   } | r| rt |  |  } q+t |  |  } n0 | r+| rt |  |  } q+t |  |  } n  | d  k r[t j |  i d d 6t d  d 6 S| d rt j |  | d  st j |  i d d 6t d  d 6 Sn  | r|
 j | d t } n | r|
 j | d t } n  | d } | d } | d }	 | sd j | d  } n  | s8d t j | d  } n  | sK| d } n  t } | d  k r|
 j   rt j |  i |
 j   d 6|
 j    d 6 S|
 j!   } | | d <| | d <|	 | d <| | d	 <| | d <| | d <| | d <| | d <n t } | | d <|
 j" |  s;t j |  i |
 j   d 6|
 j    d 6 St j |  i d d 6| d 6| d 6 S(    NR   R{   t   externR  R  R   R  R   t   customParametersi   t   cods,   La uri del preferito deve essere specificataR  i   s(   Non è possibile registrare il preferitoi   sL   Si sta tentando di registrare un preferito di una voce di menu non esistenteR   R)   i   s!   Non si hanno i permessi necessarit   hasCustomParametersRm   R"   s    / R   s   portal/iframe%sR   i    R  t   favorite(#   R  Ri   R   R7   R9   R{   R   RT  R  R  R   RU  R:   RL   R   R   t   getFavoriteByUrlR;   Rz   Rx   R}   R|   R   t   checkt   getFavoriteByItemIdR   t   getFavoriteByItemCodeR   t   py2urlRl   t	   hasErrorst   getLastErrort   getLastErrorMsgt   createDataStructuret
   saveRecord(   RQ   R  R   R{   t   isExternt   favoriteUrit   favoriteDescriptiont   favoriteBreadcrumbRU  t   itemCommandt	   preferitit   recordR^   RR   t   isNewFavorite(    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyt   addFavorite+  s    	33$$$-	
	










c         C   s   |  j  } d  } t | d  r0 t | j  } nE t | d  rQ t | j  } n$ t j |  i d d 6t	 d  d 6 St
   } | j |  s t j |  i | j   d 6| j   d 6 St j |  i d d 6 S(   NR   R)   i   RV  s   Id o codice non definitoR  i    (   R  R7   Ri   R9   R   RE   R)   R:   RL   R   R   t   deleteRecordR_  R`  (   RQ   R  t   itemIdentifierRh  (    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyt   removeFavorite  s    		c         C   sy  |  j  } d  } t | d  rZ | j d  k r3 d  n! | j j   rQ t | j  n d  } n  t } t | d  r | j d k } n  t   } | j	 d | d | d t
  } | rit } g  } x6 | d D]* } | d	 d  k	 r | j | d	  q q W| rit |  |  }	 |	 rfxR| d D]C} | d	 d  k	 r3| d	 |	 k r3| d
 s]| d s]| d r| r| d r| d
 r| d rd | d | d f | d <qnu |	 | d	 d j d d  j d d  }
 | r| d r| d
 r| d rd | d |
 f | d <n
 |
 | d <|	 | d	 d | d <n  | d rd | d | d f | d <qqWqfqin  t j |  |  S(   NR   t   includeFoldersR  t   1t   yt   yest   checkMenuItemt	   favoritesR   t   isFolderRT  t   isCustomDescR"   s   %s - %sR  R   t   /s   &#47;t   >RU  s   %s (%s)(   R  Rp  Rq  Rr  (   R  R7   Ri   R   R8   R9   R   Ro  R   t   getUserFavoritesRl   RP   t   getMenuItemsBreadcrumbt   replaceR:   RL   (   RQ   R  R   Ro  Rh  t   favoritesListR   t   menuIdsRX  t   breadcrumbsR  (    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyRt    s>    	<	 &"*&

,c         C   s  t  } d  } |  j } t | d  r y t | j  } | d k r t j   } | r t |  } | d  k r t j	 |  i | d 6 Sn  t
   } | j |  \ } } } n  Wq t k
 r q Xn6 t | d  r t
   } | j | j  \ } } } n  t j	 |  i | d 6| d 6 S(   Nt
   menuItemIdi    t
   isFavoritet   menuItemCodeR   (   R   R7   R  Ri   R9   R  R:   R;   R   RL   R   t   existsByMenuItemRD   t   existsByMenuItemCodeR  (   RQ   t   favoriteExistst
   favoriteIdR  R  RR   Rh  t   _err(    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyR    s(    			c         C   sS   i  } |  j  } t | d  r< t   } | j | j  } n  t j |  i | d 6 S(   Nt   menuItemCodesR   (   R  Ri   R   t   existByMenuItemCodesR  R:   RL   (   RQ   R|  R  Rh  (    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyt   areFavorites,  s    		c         C   s   d j  g  | D] } t |  ^ q  } d | } t j |  } t j |  d  } | j |  d d } | j | d d d t \ } }	 |	 d  k	 s | d  k r d  Si  }
 | d  k	 r x4 | D]) } i | d	 d	 6| d
 d
 6|
 | j
 <q Wn  |
 S(   NR   sI  
WITH RECURSIVE q AS
    (
        SELECT  h
                ,caption as breadcrumb
                ,caption as revbreadcrumb
        FROM    bp081_tbsession_menu h
        WHERE   parent is null
          
        UNION ALL
                  
        SELECT  hi
                , q.breadcrumb || ' > ' || hi.caption
                , hi.caption::text || ' > ' || q.breadcrumb
        FROM    q
        JOIN    bp081_tbsession_menu hi
                ON hi.parent = (q.h).itemid
    )
SELECT 
    (q.h).itemid,
    breadcrumb,
    revbreadcrumb

FROM    q
  
WHERE (q.h).itemid IN (%s)R~   R   i   Rb   Rc   Rd   R   R   (   R   RE   Re   Rf   R:   R   R?   Rk   Rl   R7   Rm   (   RQ   t   itemsIdsR   RQ  Rw   Rp   R   R   Rs   RV   R~  Rt   (    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyRz  8  s    (
!c         C   s0  |  j  } d  } d  } t | d  rK t |  t | j   \ } } } } n0 t | d  r{ t |  | j  \ } } } } n  | d  k	 r | r | r |  j d  k	 r d |  j k r |  j d r | d | } | t	 |  d } | d | d | d <q n  i t
 |  d 6| d 6| d	 6} n  t j |  |  S(
   NR  R  R   s    - i   t   crumbR   R    RX   (   R  R7   Ri   t   _getBreadcrumbByItemIdR9   R  t   _getBreadcrumbByItemCodeR  R   R   R   R:   RL   (   RQ   R  R   t   breadcrumbItemsR   R    R"   R]   (    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyt   getMenuItemBreadcrumbk  s$    	'!1c   
      C   s
  d } t  j | | f  } t j |  d  } | j |  d d } | j | d d d t \ } } | d  k	 s{ | d  k r d  d  d  g  f S| s d  d  d  g  f S| d d	 | d d
 | d d g  t | d d  D], \ } }	 i |	 d 6| d d | d 6^ q f S(   Ns  
WITH RECURSIVE q AS
    (
        SELECT  h
                ,ARRAY[caption] as breadcrumb
                ,ARRAY[itemid] as itemsid
                ,caption
                ,command
                ,url
        FROM    bp081_tbsession_menu h
        WHERE   parent is null

        UNION ALL

        SELECT  hi
                ,q.breadcrumb || hi.caption
                ,q.itemsid || hi.itemid
                ,hi.caption
                ,hi.command
                ,hi.url
        FROM    q
        JOIN    bp081_tbsession_menu hi
                ON hi.parent = (q.h).itemid
    )
SELECT itemsid, breadcrumb, caption, command, url

FROM    q

WHERE (q.h).code = %sR~   R   i   Rb   Rc   Rd   i    R   R    R"   t   itemsidRm   R   R  (	   Re   Rf   R:   R   R?   Rk   Rl   R7   t	   enumerate(
   RQ   R{   Rw   Rp   R   R   Rs   RV   t   idxRm   (    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyR    s    !,c   
      C   s
  d } t  j | | f  } t j |  d  } | j |  d d } | j | d d d t \ } } | d  k	 s{ | d  k r d  d  d  g  f S| s d  d  d  g  f S| d d	 | d d
 | d d g  t | d d  D], \ } }	 i |	 d 6| d d | d 6^ q f S(   Ns  
WITH RECURSIVE q AS
    (
        SELECT  h
                ,ARRAY[caption] as breadcrumb
                ,ARRAY[itemid] as itemsid
                ,caption
                ,command
                ,url
        FROM    bp081_tbsession_menu h
        WHERE   parent is null

        UNION ALL

        SELECT  hi
                ,q.breadcrumb || hi.caption
                ,q.itemsid || hi.itemid
                ,hi.caption
                ,hi.command
                ,hi.url
        FROM    q
        JOIN    bp081_tbsession_menu hi
                ON hi.parent = (q.h).itemid
    )
SELECT itemsid, breadcrumb, caption, command, url

FROM    q

WHERE (q.h).itemid = %sR~   R   i   Rb   Rc   Rd   i    R   R    R"   R  Rm   R   R  (	   Re   Rf   R:   R   R?   Rk   Rl   R7   R  (
   RQ   R   Rw   Rp   R   R   Rs   RV   R  Rm   (    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyR    s    !!c         C   s  |  j  } i  } d  } | j } t | d t  } | d  k	 rt j | t  } t j   } | r d | ro d n d | f } n d | r d n d | f } t j	 |  } t j
 |  d  }	 |	 j |  d d }
 |
 j | d	 d
 d t \ } } | d  k r| d  k	 r| j d  k	 r+t j | j  n i  } t | d  rSt j | d  n i  } | j |  | j rt   } | j | j  } | d  k	 r| rt j | t  } d | j | f } qd | j } qn  | d  k r&| j d  k	 r&t j t j | j  | d t j d t  } n  | ri | j d 6| d 6| j d 6| j d 6| j d 6i
 | j d 6d d 6| j d 6| j  d 6| j! d 6| j" d 6| j d 6| j# d 6| j$ d  k	 rt j | j$  n d  d 6d d  6d! 6| d" <qqn  | | d# <t j% |  |  S($   Nt   allDatas   
SELECT 
    %s
    vm.bp081_comando
    ,vm.bp081_parametri

FROM bp081_tbvoci_menu vm

INNER JOIN bp088_tbvista_menu vw ON vw.bp088_voce_menu_id_bp081=vm.bp081_id
INNER JOIN bp081_tbsession_menu sm on sm.itemid=vw.bp088_id

WHERE vm.bp081_codice = '%s'
s   sm.*,R   s   
SELECT 
    %s
    vm.bp081_comando
    ,vm.bp081_parametri

FROM bp081_tbvoci_menu vm

INNER JOIN bp081_tbsession_menu sm on sm.itemid=vm.bp081_id

WHERE vm.bp081_codice = '%s'
R~   R   i   Rb   Rc   Rd   t   extraQss   %s?%ss   %s?t   cryptUrlt   disable_encrypt_urlR    R   R   R   R!   R   R  R   R.   R,   R/   R   R   R   i    R   t   itemDatat   menuItemDatat   u(&   R  R7   R)   t   getattrR   R:   R   R;   Re   Rf   R   R?   Rk   t   bp081_parametriR   Ri   R   t   bp081_comandoR   t   matcht   urllibt	   urlencodeRl   t	   createurlR]  t	   getconfigR    Rm   R   R!   R+   R*   R.   R-   R/   R$   R   RL   (   RQ   R  R   t   functionUrlR)   R  RR   Rw   Rp   R   R   Rt   RV   t
   parameterst   extraParameterst   internalCommandREt   mt   qs(    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyt   urlFromCode  sb    		!'(		4










(
c         C   s2   |  j  } t |  | j  } t j |  i | d 6 S(   NRm   (   R  R  R)   R:   RL   (   RQ   R  R   (    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyt   itemIdFromCodes  s    	c   
      C   s   d  } | r t j | t  } t j   } | r= d | } n
 d | } t j |  } t j |  d  } | j |  d d } | j	 | d d d t \ } }	 |	 d  k r | d  k	 r | j
 } q n  | S(	   Ns   SELECT vwm.bp088_id itemid FROM bp081_tbvoci_menu vm INNER JOIN bp088_tbvista_menu vwm on vwm.bp088_voce_menu_id_bp081=vm.bp081_id WHERE vm.bp081_codice = '%s'sG   SELECT bp081_id itemid FROM bp081_tbvoci_menu WHERE bp081_codice = '%s'R~   R   i   Rb   Rc   Rd   (   R7   R:   R   R   R;   Re   Rf   R   R?   Rk   Rm   (
   RQ   R)   R   RR   Rw   Rp   R   R   Rt   RV   (    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyR  {  s    
!c         C   s4   d  } t j |   } | d  k	 r0 | j j } n  | S(   N(   R7   R   R   R^   t   Id(   Ry   R   t   viewItem(    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyR     s
    c         C   sF   d  } t j   j d  j |   j   } | d  k	 rB | j } n  | S(   Ns   menuItem.Id(   R7   R   RF   RG   RK   R   R  (   R   Ry   R  (    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyRj     s
    $c         C   s(  d  } d  } |  j } d  } y t | j  } Wn n X| d  k	 r | d k r t j   } | rz t j d | f  } q t j d | f  } n  t j	 |  d d } | j
 | d d d t \ } }	 |	 d  k r
| d  k	 r
t |  }
 |
 r
|
 j } |
 j } q
n  t j |  i | d	 6| d
 6 S(   Ni    s   SELECT bp088_id itemid, bp081_codice itemcode
FROM bp092_tbprocedure_details
INNER JOIN bp081_tbvoci_menu ON bp092_codice_bp081=bp081_codice
INNER JOIN bp088_tbvista_menu ON bp088_voce_menu_id_bp081=bp081_id
WHERE bp092_procedura_id_bp090=%s
s   SELECT bp081_id itemid, bp081_codice itemcode
FROM bp092_tbprocedure_details
INNER JOIN bp081_tbvoci_menu ON bp092_codice_bp081=bp081_codice
WHERE bp092_procedura_id_bp090=%s
R   i   Rb   Rc   Rd   Rm   R   (   R7   R  R9   t   procidR:   R;   Re   Rf   t   bp081_tbvoci_menuR?   Rk   Rl   t   nextRm   R   RL   (   RQ   R   R{   R  R  RR   Rp   t   vocimenuTableRs   RV   Rt   (    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyt   getSTARTItemIdFromProcedureId  s.    	!	(h   R   R  t   copyR    R   R:   Re   t   _aclR   t   _cryptoR   t   portal.db.transactionR   t   _menuR   R   R   R   R  RJ  R>   t   container_classesR	   t   container_userinfoR
   t   container_utilsR   R   t   models.favouritesR   t   models.menusR   R   t   _tablesR   t
   portal.logR   t   __name__RB   R   R   R   R   R   R7   R   t   exposedR`   RM   Rx   Rz   R|   R}   Rv   R   R   R   R   R   Rl   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R  RN   t   isajaxR  R  R  R,  R!  R%  RE  RG  RI  R<   RR  RP  Rk  Rn  Rt  R  R  Rz  R  R  R  R  R  R  R   Rj   R  (    (    (    s?   C:\tp_MAINT\teamportal\programs\www\container\container_menu.pyt   <module>   s   "			:	#	%	#	$	@#Gy 8  c>	"	M
		 '		 e		%@	3	.	4			