B
    Ef
                 @   s(   d dl T d dlmZ G dd deZdS )    )*)CmfLocationc                   sH   e Zd Z fddZ fddZdd Zdd Zd	d
 Zdd Z  Z	S )r   c                s*   |    |   t j|| |   d S )N)resync_parent
_calc_namesupersaveresync_childrens)selfargskwargs)	__class__ &./modules/asset/models/cmf_location.pyr      s    zCmfLocation.savec                s   t   ddg S )Nzparent.*r   )r   save_preload_fields)r	   )r   r   r   r      s    zCmfLocation.save_preload_fieldsc             C   s<   | j s
d S x,dD ]$}t| j |rt| |t| j | qW d S )N)countryZcountry_codeZ	area_codeareacityZ
settlementZcity_districtZlocality	territorystreetZzip_codeZdistrictZmun_districthouse_numberfloorflatroom)parentgetattrsetattr)r	   Z
field_namer   r   r   r      s
    
zCmfLocation.resync_parentc             C   sB   x<t jj| |  dD ]$}|  |  |  |  qW d S )N)r   Zfields)Zmodelsr   listr   r   r   r   r   )r	   Zchildr   r   r   r      s
    zCmfLocation.resync_childrensc             C   s   g }| j r|| j   | jr0|d| j  | jrH|d| j  | jr`|d| j  | jrx|d| j  | jr|d| j  | jr|d| j  | jr|d| j  | j	r|| j	  d
|| _d S )	Nu   регион u   г. u   ул. u   дом u	   этаж u   кв. u   кабинет z, )r   appendr   r   r   r   r   r   r   Zraw_namejoinname)r	   Zaddressr   r   r   r   $   s(    	zCmfLocation._calc_namec             C   s   dS )N r   )r	   r   r   r   gen_nameL   s    zCmfLocation.gen_name)
__name__
__module____qualname__r   r   r   r   r   r!   __classcell__r   r   )r   r   r      s   
	(r   N)Zcmf.includeZ!modules.asset.fields.cmf_locationr   r   r   r   r   <module>   s   