U
    be                     @   s0   d dl T d dlT d dlmZ G dd deZdS )    )*)CmfGanttBaselinec                       sB   e Zd Zdd fdd
Z fddZdd Zed	d
 Z  ZS )r   Fallowed_methodc                   s"   |st ddd t j|| d S )Nul   CmfGanttBaseline можно создавать только через метод create_baseline_with_scopeTabort)	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   Z
gantt_taskr   r   r   r      s    
zCmfGanttBaseline.deletec                 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   st  t j|dddgd}|js.td| ddd t }||_|j|_d	|_|jdd
 |d	krtj	j
|jddgdD ]}tj|| qtn|dkr^|jdkr|| tj	j
|ddgdD ]}tj|| qn|jdkrtj	j
dd|ggddgdD ]}|| qnP|jdkrHtj	j
|j jddgdD ]}|| q4ntd|j dd ntd| dd |S )Nr   r   zparent.main_gantt_project)fieldsu   У объекта u    нет проектаTr   Zprojectr   )r   r   r   CmfTask)r   r   ZCmfListZlistsIN)filterr   ZCmfTaskFilterzUnknown obj_class=zUnknown scope_type=)ZcmfutilZget_obj_by_idr   r   r   r   nameZ
view_scoper
   r   r   r   r   
class_namer   Zbqlloadvalue)clsr    Z
scope_typeZobj_idobjZbaseliner   r   r   r   create_baseline_with_scope   s2    


  z+CmfGanttBaseline.create_baseline_with_scope)	__name__
__module____qualname__r
   r   r   classmethodr&   __classcell__r   r   r   r   r      s
   
r   N)Zcmf.includeZ
cmf.fieldsZ'modules.gantt.fields.cmf_gantt_baseliner   r   r   r   r   <module>   s   