U
    $-d'                     @   s0   d dl T d dlT d dlmZ G dd deZdS )    )*)CmfGanttBaselinec                       s>   e Zd Zdd Zdd fdd
Zdd Zed	d
 Z  ZS )r   c              
   C   s^   t jj| jddgdD ]B}t j|| }| jr||_t	  |j
dddd W 5 Q R X qd S )Nparent_taskparent)Zgantt_projectfieldsTF)Z	only_dataemitnotify)modelsCmfTasklistr   CmfGanttTaskcreate_gantt_task
is_operateZop_gantt_taskcmfutilZdisable_notifysave)selftaskZ
gantt_task r   ,./modules/gantt/models/cmf_gantt_baseline.pyscaffold_gantt_tasks   s    
z%CmfGanttBaseline.scaffold_gantt_tasksFskip_scaffold_gantt_tasksc                   s`   t  j|| | jr |s |   | jr\tjjdd| jgdddgdd| j	ggdr\t
ddd	 d S )
Nr   =r   Tidz!=)filteruc   DEV: создалось 2 оперативных Плана у одного Гант-проектаabort)superr   Zis_newr   r   r	   r   getr   r   	cmf_alert)r   r   argskwargs	__class__r   r   r      s    

zCmfGanttBaseline.savec                 C   sF   t jj| |drd S |ddg t j||  |jrB| |j d S )N)r   r   r   r   )r	   r   r   Zload_fieldsr   r   _create_op_gant_tasks_rec)r   r   r   r   r   r$      s    z*CmfGanttBaseline._create_op_gant_tasks_recc                 C   s6  t j|dddgd}|j}|s2td| ddd |d	kr`t }||_|j|_d
|_|	  n|dkr t }||_|j|_d
|_|j	dd |j
dkr|| tjj|ddgdD ]}tj|| qnN|j
dkr
tjjdd|ggddgdD ]}|| qntd|j
 dd ntd| dd |S )Nr   r   zparent.main_gantt_project)r   u   У объекта u    нет проектаTr   projectFr   r   r
   )r   r   ZCmfListZlistsIN)r   r   zUnknown obj_class=zUnknown baseline_type=)r   Zget_obj_by_idr   r   r	   r   nameZmain_gantt_projectr   r   
class_namer$   r
   r   r   r   )clsr'   Z
scope_typeZobj_idobjr%   Zbaseliner   r   r   r   create_baseline_with_scope$   s4    



 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   