
    Fh                     D    d dl  d dlmZ  G d dej                        Zy)    )*)
cmf_coursec                   j     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                 P   t         j                  j                  sIt        j                  j                  d      }|t         j                  j                  vrt        dd       | j                  r(t        j                  j                  dddg      | _
        t        | 0  |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    ~~&&$3377Z7HOann&A&AA  C  KO  P;;"..228M^bl|k}2~DMw|T,V,,    c                 @    | j                  t        j                        S )N)_lms_create_progressr   r   )r   s    r$   r   zCmfCourse.start   s    ((88r%   c                 H   | j                  g d       | j                  dk7  rt        dd       t        j	                  | || j
                  d||      }|j                          d}d	| j
                   }| j                  r| j                  j                  }t        j                  j                  ||||d
       | j                  D ]X  }t        j                  |j                        t        j                  u r|j!                  |||       F|j!                  |||       Z y )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   s   VW!!]2T\`a !22+' 3 
 	88D
&&44::J%% 	& 	
 OO 	TD&&tww/63E3EE))&/?S ))&/?S	Tr%   c                    t         j                  j                  sIt        j                  j                  d      }|t         j                  j                  vrt        dd       t        j                  j                  dd| gg dd	d
|gg      }|D ]  }d|_
        |j                           t        j                  j                  dd
|g      }|D ]  }| j                  |||        y )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    ~~&&$3377Z7HOann&A&AA  C  KO  P
 #44993%9k2 : 
  1 	#O%/O"  "	#
 ""''dK/H'I 	NF%%fo}M	Nr%   )NN)__name__
__module____qualname__r   r   api_methodsr   r   r'   r   __classcell__)r#   s   @r$   r   r      s;    &&226 K
-9&TPNr%   r   N)cmf.includemodules.learn.fieldsr   r    r%   r$   <module>rZ      s!     +XN
$$ XNr%   