U
    Eh)                     @   s0   d dl T d dlT d dlmZ G dd deZdS )    )*)CmfGanttBaselinec                       sv   e Zd Zejdg Zdd fdd
Z fddZ fdd	Zd
d Ze	dd Z
eeddddddd Z  ZS )r   create_baseline_with_scopeFallowed_methodc                   s(   | j r|stddd t j|| d S )Nul   CmfGanttBaseline можно создавать только через метод create_baseline_with_scopeTabort)Zis_new	cmf_alertsupersave)selfr   argskwargs	__class__ ,./modules/gantt/models/cmf_gantt_baseline.pyr      s    
zCmfGanttBaseline.savec                    s*   t jj| dD ]}|  qt j||S )N)parent)modelsCmfGanttTasklistdeleter
   )r   r   r   
gantt_taskr   r   r   r      s    
zCmfGanttBaseline.deletec                    s0   t  j||}tjj| ddD ]}|  q|S )NT)r   Zinclude_deleted)r
   restorer   r   r   )r   r   r   resr   r   r   r   r      s    
zCmfGanttBaseline.restorec                 C   sF   t jj| |drd S |ddg t j||  |jrB| |j d S )N)r   taskparent_taskr   )r   r   getZload_fieldscreate_gantt_taskr   _create_op_gant_tasks_rec)r   r   r   r   r   r      s    z*CmfGanttBaseline._create_op_gant_tasks_recc                 C   sF   t j|dgd}|js*td| ddd ttjj|||dd d S )	Nr   fieldsu   У объекта u    нет проектаTr   )name
scope_typeobj_id)r   )cmfutilget_obj_by_idr   r	   Zschedule_deferred_jobr   r   create_baseline_with_scope_job)clsr"   r#   r$   objr   r   r   r   &   s    
z+CmfGanttBaseline.create_baseline_with_scopeu   Создание baselineT   )descriptionZshow_bg_progressbarZ	only_oncepriorityc                 C   sf  t j|dddgd}|jsd S t }| |_|j|_d|_|jdd |dkrztjj	|jddgdD ]}tj
|| qdn|d	krT|jd
kr|| tjj	|ddgdD ]}tj
|| qn|jdkrtjj	dd|ggddgdD ]}|| qnX|jdks|jdkrBtjj	|j jddgdD ]}|| q.ntd|j  ntd|  d S )Nr   r   zparent.main_gantt_projectr    ZprojectTr   )r   r!   r   CmfTask)r   r!   ZCmfListZlistsIN)filterr!   ZCmfTaskFilterZCmfBqlFilterzUnknown obj_class=zUnknown scope_type=)r%   r&   r   r   r   r"   Z
view_scoper   r-   r   r   r   
class_namer   Zbqlloadvaluer	   )r"   r#   r$   r)   Zbaseliner   r   r   r   r'   /   s0    



  z/CmfGanttBaseline.create_baseline_with_scope_job)__name__
__module____qualname__r   Zapi_methodsr   r   r   r   classmethodr   staticmethodZcmf_deferred_jobr'   __classcell__r   r   r   r   r      s   

r   N)Z
cmf.fieldsZcmf.includeZ'modules.gantt.fields.cmf_gantt_baseliner   r   r   r   r   <module>   s   