U
    Įwh2                     @   s0   d dl T d dlT d dlmZ G dd deZdS )    )*)CmfGanttBaselinec                       sZ   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
  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   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   r   &   s2    


  z+CmfGanttBaseline.create_baseline_with_scope)__name__
__module____qualname__r   Zapi_methodsr   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   