U
    d5
                     @   s*   d dl T d dlmZ G dd dejZdS )    )*)cmf_custom_field_choicec                   @   s4   e Zd ZedddZed	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_modelZ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   s>   t t|}t ||}|j}t t|}|j||d}|  d S r   )r   r	   r
   getdelete)	r   r   r   r   r   r   r   r
   r   r   r   r   delete_choice#   s    


z"CmfCustomFieldChoice.delete_choicec                 C   sH   t t|}t ||d }|sg S |j}|s,g S t t|}|jdddgdS )Nidr   r   )Zfields)r   r	   r
   list)r   r   r   r   r   r
   r   r   r   list_choice,   s    

z CmfCustomFieldChoice.list_choice)NN)N)__name__
__module____qualname__classmethodr   r   r   r   r   r   r   r      s   r   N)Zcmf.includeZmodules.settings.fieldsr   r   r   r   r   r   <module>   s   