U
    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   s8   | j s
d S dD ]$}t| j |rt| |t| j | q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   s>   t jj| |  dD ]$}|  |  |  |  qd S )N)r   Zfields)Zmodelsr   listr   r   r   r   r   )r	   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	   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   