B
    Zf?                 @   s0   d dl T d dlT d dlmZ G dd deZdS )    )*)CmfGanttBaselinec                   sN   e Zd Zejdg Zdd 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"   |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.   xt jj| dD ]}|  qW t j||S )N)parent)modelsCmfGanttTasklistdeleter   )r
   r   r   Z
gantt_task)r   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   s  t j|dddgd}|js.td| ddd t }||_|j|_d	|_|jdd
 |d	krx,tj	j
|jddgdD ]}tj|| qvW n|dkrp|jdkr|| xtj	j
|ddgdD ]}tj|| qW n|jdkrxtj	j
dd|ggddgdD ]}|| qW nT|jdkrZxFtj	j
|j jddgdD ]}|| qDW ntd|j dd ntd| dd |S )Nr   r   zparent.main_gantt_project)fieldsu   У объекта u    нет проектаT)r   Zproject)r   )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   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   