U
    7dz                     @   s*   d dl T d dlmZ G dd dejZdS )    )*)cmf_custom_field_choicec                   @   s>   e Zd Zed
ddZedd Zedd Zedd	 ZdS )CmfCustomFieldChoiceNc           
      C   s`   t t|}t ||d }|r,|j}t t|}n|rDtjjjj|}nd S |||d}	|	  |	S )N)namechoice_parent_id)	getattrmodelsmodelZcmfZ	BaseModelZdpZdata_driverZgen_custom_choice_modelsave)
cls
model_name
field_namevaluer   Zdb_choice_table_name
base_model
base_fieldr	   
new_choice r   4./modules/settings/models/cmf_custom_field_choice.pycreate_choice   s    
z"CmfCustomFieldChoice.create_choicec                 C   sJ   t t|}t ||d }|j}t t|}	|	j||gd}
||
|< |
  |
S )N)idfields)r   r   r	   getr
   )r   r   r   r   Zchoice_fieldr   r   r   field_model_namer	   choicer   r   r   update_choice#   s    

z"CmfCustomFieldChoice.update_choicec                 C   sf   t t|}t ||}|j}t t|}|j|d}|  |j|d}	|	rb|	D ]}
t|||
j qLd S )N)r   )r   )	r   r   r	   r   deletelistr   delete_choicer   )r   r   r   r   r   r   r   r	   r   Zchildrencr   r   r   r   .   s    


z"CmfCustomFieldChoice.delete_choicec                 C   sJ   t t|}t ||d }|sg S |j}|s,g S t t|}|jddddgdS )Nr   r   r   Z
cmf_hidden)r   )r   r   r	   r   )r   r   r   r   r   r	   r   r   r   list_choice=   s    

z CmfCustomFieldChoice.list_choice)NN)__name__
__module____qualname__classmethodr   r   r   r   r   r   r   r   r      s   


r   N)Zcmf.includeZmodules.settings.fieldsr   r   r   r   r   r   <module>   s   