;ς
ΝEEc           @   sd   d  Z  d k Td k Td k l Z d e f d     YZ d e f d     YZ d f  d     YZ	 d	 S(
   sA   
   Copyright (C) 2005 PimenTech SARL (http://www.pimentech.net)

   This library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Library General Public License as
   published by the Free Software Foundation; either version 2 of the
   License, or (at your option) any later version.

   This library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Library General Public License for more details.

   You should have received a copy of the GNU Library General Public
   License along with this library; see the file COPYING.LIB.  If not,
   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
   Boston, MA 02111-1307, USA.  
(   s   *(   s   HTMLFiles   PgListc           B   s\  t  Z d  Z e i Z d Z e i d f h  d d <d d <f e i d Z e d e	    Z
 e d	 e	    Z e d
 e	    Z e d e	    Z e Z e Z e Z e Z d Z d d  Z d   Z e d  Z d   Z d   Z d   Z d   Z d   Z d   Z e d  Z e d  Z d   Z d   Z d   Z  d   Z! d   Z" d   Z# RS(   s   
	PgList Object
	  
	s   PgListi    s   labels   Views   actions   html_view_pglisti   s   dtml/edit_pglists   dtml/view_tmp_lists   dtml/view_lists   dtml/view_pglists
   postgresqlc         C   s   |  i | |  t |  _ d  S(   N(   s   selfs   _PgList__PgObject_inits   ids   connection_ids   Nones   uid(   s   selfs   ids   connection_ids   initialized_from(    (    s	   pglist.pys   __init__3   s    c         C   s6   |  i d |  i  t d  |  _ t d  |  _ d S(   s@    Zope method : automaticaly called when an instance is created. s   PgList.manage_afterAdd(%s)s   lists   tmp_listN(   s   selfs   messages   ids   PDictSets   _lists	   _tmp_list(   s   selfs   ids	   container(    (    s	   pglist.pys   manage_afterAdd7   s     c         C   sΫ   |  i p
 t |  |  _ |  i o |  i d  d Sn |  i   t i |   t |  i  o |  ` t	 d  |  _ n t |  i
  o |  `
 t	 d  |  _
 n |  i |  i |  i  } |  i | |  i  d |  _ d S(   s    update from postgres s   Update of a PgList without uidNs   lists   tmp_listi   (   s   selfs   uids   ints   errors   _create_current_rows   PgObjects   updates   lens   _lists   PDictSets	   _tmp_lists   fetchs   update_querys   lists	   constructs   _saved(   s   selfs   uids   list(    (    s	   pglist.pys   update>   s      
c         C   sf   |  i   d |  i } x. |  i i   D] } | d |  i | f 7} q' W|  i |  |  i |  d  S(   Ns.   DELETE FROM list_element WHERE ref_list = %s;
sb   INSERT INTO list_element (ref_list, ref_object, codecrea) VALUES (%s, %s, 'PgList(synchronize)');
(	   s   selfs   create_lists   uids   querys   _lists   keyss   els   messages   exec_sql(   s   selfs   querys   el(    (    s	   pglist.pys   synchronizeT   s    
 c         C   s   d S(   s    Add a new list in potsgres N(    (   s   self(    (    s	   pglist.pys   create_list\   s     c         C   s   d S(   s    build the list N(    (   s   selfs   list(    (    s	   pglist.pys	   construct`   s     c         C   sK   d |  _ |  i   | |  _ |  i |  |  i d <|  i |  |  i   d  S(   Ni   s   ztitle(   s   selfs   _saveds   synchronizes   titles	   tablenames   commits   REQUESTs   reindex(   s   selfs   titles   REQUEST(    (    s	   pglist.pys   _saved   s    	
	c         C   s.   |  i | |  |  i   | i i d  Sd S(   s    permanently add the pglist s
   index_htmlN(   s   selfs   _saves   titles   REQUESTs   reset_tmp_lists   RESPONSEs   redirect(   s   selfs   titles   REQUEST(    (    s	   pglist.pys   savel   s     
c         C   s   |  i Sd S(   s    return save state N(   s   selfs   _saved(   s   self(    (    s	   pglist.pys   is_savedr   s     c         C   s   |  i i   Sd S(   s    return the list N(   s   selfs   _lists   values(   s   selfs   REQUEST(    (    s	   pglist.pys   get_listv   s     c         C   s   |  i i   Sd S(   s    return the choise list N(   s   selfs	   _tmp_lists   values(   s   selfs   REQUEST(    (    s	   pglist.pys   get_tmp_listz   s     c         C   s   |  ` t d  |  _ d  S(   Ns   tmp_list(   s   selfs	   _tmp_lists   PDictSet(   s   self(    (    s	   pglist.pys   reset_tmp_list~   s    c         C   s   d S(   sE   
		Fill the tmp_list with the search engine
		Must be over defined
		N(    (   s   selfs   REQUEST(    (    s	   pglist.pys   init_tmp_list   s     c         C   s   | i i d  o t Sn | i d } x$ | i   D] } |  i t	 |  =q6 W|  i
   o |  i |  i |  n | i i d |  i    Sd S(   s    remove objects from the list s   checkboxs   %s?delete=ok N(   s   REQUESTs   forms   has_keys   Nones   lists   keyss   ks   selfs   _lists   ints   is_saveds   _saves   titles   RESPONSEs   redirects   getId(   s   selfs   REQUESTs   lists   k(    (    s	   pglist.pys   delete_elements   s      c         C   sΆ   | i i d  o t Sn | i d } xH | i   D]: } |  i t	 |  } | t j o |  i i |  q6 q6 W|  i   o |  i |  i |  n | i i d |  i    Sd S(   s     add objects to the result list s   checkboxs
   %s?add=ok N(   s   REQUESTs   forms   has_keys   Nones   lists   keyss   ks   selfs	   _tmp_lists   ints	   object_ids   _lists   inserts   is_saveds   _saves   titles   RESPONSEs   redirects   getId(   s   selfs   REQUESTs   lists	   object_ids   k(    (    s	   pglist.pys   add_elements   s      c         C   s   |  i d  t |  } d |  i | f } |  i |  |  i i |  o |  i | =n |  i i |  o |  i | =n d  S(   Ns   delete element from listss>   DELETE FROM list_element WHERE ref_list = %s AND ref_object=%s(	   s   selfs   messages   ints   uids   querys   exec_sqls   _lists   has_keys	   _tmp_list(   s   selfs   uids   query(    (    s	   pglist.pys   _delete_element_everywhere₯   s    c         C   sΕ   |  i d |  i   |  i i |  i i   f  |  |  i } d | d <|  i |  d } x% |  i
 i   D] } | d | 7} qi W|  i |  |  i |  |  i i |  i    | i i d  Sd S(   s   Delete this object and its rowss6   [pglist.py(delete_me)] delete pglist %s in %s named %si   s
   ref_statuts    sU   UPDATE list_element SET codemodif='pglist.py[delete_me]', ref_statut=1 WHERE uid=%s;
s   .N(   s   selfs   warnings   getIds	   aq_parents	   meta_types	   tablenames   rows   commits   REQUESTs   querys   _lists   keyss   els   messages   fetchs
   _delObjects   RESPONSEs   redirect(   s   selfs   REQUESTs   els   querys   row(    (    s	   pglist.pys	   delete_me―   s     /
 ($   s   __name__s
   __module__s   __doc__s   PgObjects   __init__s   _PgList__PgObject_inits	   meta_types   manage_optionss   HTMLFiles   globalss
   index_htmls   html_view_tmp_lists   html_view_lists   html_view_pglists   Nones
   conditionss	   references   content_tablenames	   tablenames   _saveds   manage_afterAdds   updates   synchronizes   create_lists	   constructs   _saves   saves   is_saveds   get_lists   get_tmp_lists   reset_tmp_lists   init_tmp_lists   delete_elementss   add_elementss   _delete_element_everywheres	   delete_me(    (    (    s	   pglist.pys   PgList   s<    	4												
s   MiniRowc           B   s   t  Z d  Z d Z d   Z RS(   s,   
	You can use this object to fill a PgList
	s   MiniRowc         C   sM   t  |  |  _ t i |  |  i  x$ | i   D] \ } } | |  | <q/ Wd  S(   N(
   s   strs   uids   selfs   ids   DictMaps   __init__s   fields_dicts   itemss   ks   v(   s   selfs   uids   fields_dicts   ks   v(    (    s	   pglist.pys   __init__Θ   s
     (   s   __name__s
   __module__s   __doc__s	   meta_types   __init__(    (    (    s	   pglist.pys   MiniRowΑ   s    s   MicroRowc           B   sV   t  Z d  Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 RS(	   s+   
	Smallest object you can put in a PgList
	c         C   s%   | |  _ | |  _ t |  |  _ d  S(   N(   s   ks   selfs   _ks   vs   _vs   strs   id(   s   selfs   ks   v(    (    s	   pglist.pys   __init__Τ   s    		c         C   s   t  |  i  Sd  S(   N(   s   ints   selfs   _k(   s   self(    (    s	   pglist.pys   __hash__Ω   s    c         C   s   |  i Sd  S(   N(   s   selfs   _k(   s   self(    (    s	   pglist.pys   keyά   s    c         C   s   |  i Sd  S(   N(   s   selfs   _v(   s   self(    (    s	   pglist.pys   valueί   s    c         C   s   |  i Sd  S(   N(   s   selfs   _k(   s   selfs   k(    (    s	   pglist.pys   __getitem__β   s    c         C   s   |  i Sd  S(   N(   s   selfs   id(   s   self(    (    s	   pglist.pys   __repr__ε   s    c         C   s   |  i Sd  S(   N(   s   selfs   id(   s   self(    (    s	   pglist.pys   __str__θ   s    c         C   s   t  |  i t |   Sd  S(   N(   s   cmps   selfs   ids   strs   other(   s   selfs   other(    (    s	   pglist.pys   __cmp__λ   s    (   s   __name__s
   __module__s   __doc__s   __init__s   __hash__s   keys   values   __getitem__s   __repr__s   __str__s   __cmp__(    (    (    s	   pglist.pys   MicroRowΠ   s    							N(
   s   __doc__s   Products.PimenTechLibCommon.sets$   Products.PimenTechLibCommon.pgobjects   Globalss   HTMLFiles   PgObjects   PgLists   DictMaps   MiniRows   MicroRow(   s   HTMLFiles   MicroRows   MiniRows   PgList(    (    s	   pglist.pys   ?   s   §
