
    h                     @    d dl T d dlmZ  G d dej                  ZdS )    )*)
cmf_coursec                   V     e Zd Zej        j        ddgz   Z fdZd ZddZddZ	 xZ
S )		CmfCoursestartschedule_for_usersc                 >   t           j        j        sDt          j                            d          }|t           j        j        vrt          dd           | j        r(t          j	                            dddg          | _
         t                      j        |i |S )	NCuratorscodeuf   Создавать курсы могут только Администраторы и КураторыTabortzcourse.base:defaultsave_eval_code)r   cache_inmemoryfields)gcurrent_useris_adminmodelsCmfPersonGroupgetrg_member_of	cmf_alertis_newCmfWorkflowworkflowsupersave)selfargskwargscurrators_group	__class__s       $./modules/learn/models/cmf_course.pyr   zCmfCourse.save   s    ~& 	P$377Z7HHOan&AAA  C  KO  P  P  P  P; 	".228M^bl|k}2~~DMuww|T,V,,,    c                 @    |                      t          j                  S )N)_lms_create_progressr   r   )r   s    r$   r   zCmfCourse.start   s    ((888r%   Nc                 ,   |                      g d           | j        dk    rt          dd           t                              | || j        d||          }|                                 d}d	| j         }| j        r| j        j        }t          j	        
                    ||||d
           | j        D ]\}t                              |j                  t          j        u r|                    |||           E|                    |||           ]d S )N)status
tree_nodesdefault_notify_messageordernoIN_PROGRESSu<   Нельзя начинать не активный курсTr   open)courseresponsiblenamer)   plan_start_dateplan_end_dateu    Вам назначен курсu!   Вам назначен курс    )objpersonr1   msgpriority)load_fieldscache_status_typer   r   CmfCourseProgressr1   r   r+   value	CmfNotifyplace_notifyr*   cmfutilget_model_by_ididCmfDocumentr'   )r   r6   r2   r3   course_progressnotify_name
notify_msgnodes           r$   r'   zCmfCourse._lms_create_progress   sT   VVVWWW!]22T\`aaaa !22+' 3 
 
 	9DDD
& 	;4:J%% 	& 	
 	
 	
 O 	T 	TD&&tw//63EEE))&/?SSSS ))&/?SSSS	T 	Tr%   c                    t           j        j        sDt          j                            d          }|t           j        j        vrt          dd           t          j        	                    dd| gg dd	d
|gg          }|D ]}d|_
        |                                 t          j        	                    dd
|g          }|D ]}|                     |||           d S )Nr
   r   uf   Запускать курсы могут только Администраторы и КураторыTr   r/   =)r)   IN)r.   in_progressr0   rI   )filtercanceledrA   )r   r   r   r   r   r   r   r   r;   listr)   r   	CmfPersonr'   )	r   persons_idsr2   r3   r"   course_progressesrC   personsr6   s	            r$   r   zCmfCourse.schedule_for_usersC   s+   ~& 	P$377Z7HHOan&AAA  C  KO  P  P  P  P
 #4993%999k2 : 
 
  1 	# 	#O%/O"  """" "''dK/H'II 	N 	NF%%fo}MMMM	N 	Nr%   )NN)__name__
__module____qualname__r   r   api_methodsr   r   r'   r   __classcell__)r#   s   @r$   r   r      s        &26 K
- - - - -9 9 9&T &T &T &TPN N N N N N N Nr%   r   N)cmf.includemodules.learn.fieldsr   r    r%   r$   <module>rZ      sn        + + + + + +XN XN XN XN XN
$ XN XN XN XN XNr%   