U
    -d_                     @   s6   d dl mZ d dlT d dlmZ G dd dejZdS )    )fields)*)cmf_person_viewc                       s2   e Zd ZdddZ fddZ fddZ  ZS )	CmfPersonViewupdatec           
      C   s  ddl m} td}|s$i }i t_|| jj}|d kri }| jj|d< tjoXt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< |dpg }| jrV| jddD ]4\}}|dkr6qt| |}|j|jkrltd| j d|j  qt|tjjrt|jts|jd k	r||jjj n*t|jtr|jD ]}	||	jj q|jdk	rDt|tjjrDt|jts|jd k	r||jjj n*t|jtrD|jD ]}	||	jj q.|d | q|d | |d | tt|d |d< tt|d |d< tt|d |d< tt|d
 |d
< |tj| jj< d S )Nr   )defaultdict	emit_listidcmf_modified_by	parent_id	person_idplace
class_nameZrelation_personsZchanged_fieldschanged_relationsactionT)
is_changed)Zcmf_modified_atr
   Zcmf_viewed_atZcmf_viewed_byZcmf_locked_atZcmf_locked_byzemit: FIXME is changed bug ..)collectionsr   ggetr   r	   valueZcurrent_personr   hasattrr   Z
is_definedr   r   r   itemsgetattrolddebug
isinstancecmfr   Z
CmfRelBaselistappendZ_oldextendset)
selfr   r   r   Zbodyr   kvZfieldi r&   ./models/cmf_person_view.pyemit   sj    





zCmfPersonView.emitc                    s   |    t j||S )N)r(   supersaver"   argskwargs	__class__r&   r'   r*   L   s    zCmfPersonView.savec                    s   |  d t j||S )NZdeleted)r(   r)   deleter+   r.   r&   r'   r0   P   s    
zCmfPersonView.delete)r   )__name__
__module____qualname__r(   r*   r0   __classcell__r&   r&   r.   r'   r      s   
Dr   N)r   r   Zcmf.includeZ
cmf.fieldsr   r   r&   r&   r&   r'   <module>   s   