
    ft                     P    d dl mZ d dl d dlmZ  G d dej
                        Zy)    )fields)*)cmf_person_viewc                   4     e Zd ZdZddZ fdZ fdZ xZS )CmfPersonViewTc                  	   ddl m} 	 t        j                  d      }|si }i t        _        |j                  | j
                  j                        }|i }| j
                  j                  |d<   t        j                  xr$ t        j                  j
                  j                  |d<   d |d<   d |d<   d |d<   | j                  |d	<   g |d
<   g |d<   g |d<   g |d<   t        | d      r/| j                  j                  r| j                  j                  |d<   t        | d      r/| j                  j                  r| j                  j                  |d<   t        | d      r/| j                  j                  r| j                  j                  |d<   |j                  d      xs g }| j                  r,| j                  d      D ]  \  }}|dv rt!        | |      }|j"                  |j                  k(  r0t        j%                  d| j                   d|j                          at'        |t(        j*                  j,                        rt'        |j                  t.              s<|j                  0|j1                  |j                  j
                  j                         nPt'        |j                  t.              r6|j                  D ]'  }	|j1                  |	j
                  j                         ) |j2                  durt'        |t(        j*                  j,                        rt'        |j"                  t.              s<|j"                  0|j1                  |j"                  j
                  j                         nPt'        |j"                  t.              r6|j"                  D ]'  }	|j1                  |	j
                  j                         ) |d   j1                  |        |d   j5                  |       |d   j1                  |       t/        t7        |d               |d<   t/        t7        |d               |d<   t/        t7        |d               |d<   t/        t7        |d
               |d
<   |t        j                  | j
                  j                  <   y )Nr   )defaultdict	emit_listidcmf_modified_by	parent_id	person_idplace
class_namerelation_personschanged_fieldschanged_relationsactionT)
is_changed)cmf_modified_atr   cmf_viewed_atcmf_viewed_bycmf_locked_atcmf_locked_byzemit: FIXME is changed bug ..)collectionsr	   ggetr
   r   valuecurrent_personr   hasattrr   
is_definedr   r   r   itemsgetattrolddebug
isinstancecmfr   
CmfRelBaselistappend_oldextendset)
selfr   r	   r
   bodyr   kvfieldis
             ./cmf/models/cmf_person_view.pyemitzCmfPersonView.emit	   s   +	
 EE+&	IAK}}TWW]]+<DDJ&'&6&6&T1;K;K;N;N;T;TD"# $D $D DM!%D')D#$%'D!"(*D$%DN4%$..*C*C $ 4 4D4%$..*C*C $ 4 4D4!djj&;&; JJ,,DM HH%89?R??

d
3 11 G G a(99'GG9$//9J!EL\L\K]^_eSZZ%:%:;%ekk48U[[=T)001E1EF#EKK6!& AA-44QTTZZ@A ::S(Zszz?T?T-U%eii6599;P)001C1CD#EIIt4!& AA-44QTTZZ@A%&--a0-1. 	 !(():;Xf%c$x.12X!%c$/?*@&A!B$(T2E-F)G$H !#'D1C,D(E#F %)DGGMM"    c                 B    | j                          t        |   |i |S )N)r6   supersaver/   argskwargs	__class__s      r5   r:   zCmfPersonView.saveM   s     		w|T,V,,r7   c                 D    | j                  d       t        |   |i |S )Ndeleted)r6   r9   deleter;   s      r5   rA   zCmfPersonView.deleteQ   s#    		)w~t.v..r7   )update)__name__
__module____qualname__	api_allowr6   r:   rA   __classcell__)r>   s   @r5   r   r      s    IA*H-/ /r7   r   N)r(   r   cmf.include
cmf.fieldsr   r    r7   r5   <module>rK      s"      &M/O11 M/r7   