U
    _g"                     @   s*   d dl T d dlmZ G dd dejZdS )    )*)cmf_checklist_templatec                       sJ   e Zd ZdZejjddg Z fddZedd Z	edd	d
Z
  ZS )CmfChecklistTemplateTcreate_checklistcreate_template_itemsc                    s0   t jjdd| gdD ]}|  qt j||S )Nparent=filter)modelsCmfChecklistTemplateItemlistdeletesuper)selfargskwargsitem_template	__class__ &./cmf/models/cmf_checklist_template.pyr      s    
zCmfChecklistTemplate.deletec           	      O   s  t |tr&tjjdd|gddgd}n|}t |trRtjjdd|gdddgd}n|}|dddg t }|j|_|j	|_	||_
d	|_d	|_||_|  |j| d	|_d	|_tjjd
ddgdd|gdD ],}tj|||j|j	|j | jd7  _q|jdd |jS )uI   Создаём чек-лист и его пункты из шаблонаidr   nametext)r
   fields
checklistschecklist_items_countchecklist_items_done_countr   ordernor   )r   r
      T)Z	only_data)
isinstancestrr   r   getZCmfTaskZload_fieldsZCmfChecklistr   r   r   r   r   Zfrom_templatesaver   appendr   r   ZCmfChecklistItemZcreate_checklist_itemr   r   )	clschecklist_template_idZtask_idr   r   templateZtaskZ	checklistr   r   r   r   r      s@    


z%CmfChecklistTemplate.create_checklistNc                 O   s~   |sd S t jjdd|gd}g }|D ]T}|d}|d}	|d}
t  }||_|	|_||_|
|_|  |	| q$|S )Nr   r   r	   r   r   r   )
r   r   r#   r   r   r   r   r   r$   r%   )r&   r'   itemsr   r   Zchecklist_templateresitemr   r   r   Znew_item_templater   r   r   r   <   s     


z*CmfChecklistTemplate.create_template_items)N)__name__
__module____qualname__Z	api_allowr   r   Zapi_methodsr   classmethodr   r   __classcell__r   r   r   r   r      s   
)r   N)Zcmf.includeZ
cmf.fieldsr   r   r   r   r   r   <module>   s   