
    ?Rh                     @    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                 8   t           j        j        sDt          j                            d          }|t           j        j        vrt          dd           | j        r%t          j	                            d          | _
         t                      j        |i |S )NCuratorscodeuf   Создавать курсы могут только Администраторы и КураторыTabortzcourse.base:default)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; 	O".228M2NNDM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personr.   msgpriority)load_fieldscache_status_typer   r   CmfCourseProgressr.   r   r(   value	CmfNotifyplace_notifyr'   cmfutilget_model_by_ididCmfDocumentr$   )r   r3   r/   r0   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_progressr-   rF   )filtercanceledr>   )r   r   r   r   r   r   r   r   r8   listr&   r   	CmfPersonr$   )	r   persons_idsr/   r0   r   course_progressesr@   personsr3   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>rW      sn        + + + + + +XN XN XN XN XN
$ XN XN XN XN XNr"   