U
    Įwh                     @   s*   d dl T d dlmZ G dd dejZdS )    )*)
cmf_coursec                       sH   e Zd Zejjddg Z fddZdd Zddd	Zdd
dZ	  Z
S )	CmfCoursestartschedule_for_usersc                    sR   t jjs.tjjdd}|t jjkr.tddd | jrDtj	jdd| _
t j||S )NCuratorscodeuf   Создавать курсы могут только Администраторы и КураторыTabortzcourse.base:default)gcurrent_useris_adminmodelsCmfPersonGroupgetrg_member_of	cmf_alertZis_newZCmfWorkflowZworkflowsupersave)selfargskwargscurrators_group	__class__ $./modules/learn/models/cmf_course.pyr      s    zCmfCourse.savec                 C   s   |  tjS )N)_lms_create_progressr   r   )r   r   r   r   r      s    zCmfCourse.startNc                 C   s   |  ddddg | jdkr(tddd tj| || jd	||d
}|  d}d| j }| jrf| jj}tj	j
||||dd | jD ]4}t|jtjkr|||| q|||| qd S )Nstatus
tree_nodesdefault_notify_messageZordernoZIN_PROGRESSu<   Нельзя начинать не активный курсTr
   open)courseresponsiblenamer   plan_start_dateplan_end_dateu    Вам назначен курсu!   Вам назначен курс    )objpersonr%   msgpriority)Zload_fieldsZcache_status_typer   r   CmfCourseProgressr%   r   r!   valueZ	CmfNotifyZplace_notifyr    ZcmfutilZget_model_by_ididZCmfDocumentr   )r   r*   r&   r'   course_progressZnotify_nameZ
notify_msgZnoder   r   r   r      s6    
		
zCmfCourse._lms_create_progressc           	      C   s   t jjs.tjjdd}|t jjkr.tddd tjj	dd| gdd	d
gdd	|ggd}|D ]}d|_
|  qXtjj	dd	|gd}|D ]}| ||| qd S )Nr   r   uf   Запускать курсы могут только Администраторы и КураторыTr
   r#   =r   IN)r"   Zin_progressr$   )filterZcanceledr/   )r   r   r   r   r   r   r   r   r-   listr   r   Z	CmfPersonr   )	r   Zpersons_idsr&   r'   r   Zcourse_progressesr0   Zpersonsr*   r   r   r   r   C   s     
zCmfCourse.schedule_for_users)NN)NN)__name__
__module____qualname__r   r   Zapi_methodsr   r   r   r   __classcell__r   r   r   r   r      s   
(r   N)Zcmf.includeZmodules.learn.fieldsr   r   r   r   r   r   <module>   s   