a
    ÑjY  ã                   @   s$   d dl mZ d dlmZ dd„ ZdS )é    )Ú	timedelta)Útimezonec              
   C   sð  d}g }t  ¡  ¡ tdd� }| jj|d�}| ¡ }|dkrÂ|jdd� ¡ }|jdd� ¡ }||d  }|| d	 }	td|	d	 d ƒ}
||
7 }|dkr¨| d
|› d�¡ |dkrÂ| d|› d�¡ z€| j	j|d�}| ¡ }|dk�r@|jg d¢d� ¡ }|| d	 }	td|	d	 d ƒ}||7 }|dk�r@| d|› d|› d�¡ W n& t
�yh } zW Y d }~n
d }~0 0 zL| jjdd�}| ¡ �r´td| ¡ d ƒ}||7 }| d| ¡ › d�¡ W n t
�yÊ   Y n0 t| dƒ�rò| j�sò|d7 }| d¡ t| dƒ�r| j�r|d7 }| d¡ zH| j ¡ }| ¡ �r^td| ¡ d  ƒ}||8 }| d!| ¡ › d�¡ W n t
�yt   Y n0 tdtd	|ƒƒ}|dk�ršd"}d#}n0|d$k�r®d%}d&}n|d'k�rÂd(}d)}nd*}d+}|�rÚd, |¡nd-}t|d.ƒ|||fS )/Nr   é   )Údays)Zschedule_item__date__gteÚabsent)ÚstatusÚlateg      à?éd   u   ÐŸÑ€Ð¾Ð¿ÑƒÑ�ÐºÐ¸: u    Ð·Ð°Ð½Ñ�Ñ‚Ð¸Ð¹u   ÐžÐ¿Ð¾Ð·Ð´Ð°Ð½Ð¸Ñ�: u    Ñ€Ð°Ð·)Zassignment__deadline__gte)Únot_submittedr   Znot_accepted)Z
status__iné   u   Ð�Ðµ Ñ�Ð´Ð°Ð½Ð¾: u    Ð¸Ð· u    Ð·Ð°Ð´Ð°Ð½Ð¸Ð¹F)Úis_resolvedé   é
   u'   Ð�ÐºÐ°Ð´ÐµÐ¼Ð¸Ñ‡ÐµÑ�ÐºÐ¸Ðµ Ð´Ð¾Ð»Ð³Ð¸: u    ÑˆÑ‚.Úreceives_scholarshipé   u(   Ð�Ðµ Ð¿Ð¾Ð»ÑƒÑ‡Ð°ÐµÑ‚ Ñ�Ñ‚Ð¸Ð¿ÐµÐ½Ð´Ð¸ÑŽÚhas_jobu$   Ð¡Ð¾Ð²Ð¼ÐµÑ‰Ð°ÐµÑ‚ Ñ� Ñ€Ð°Ð±Ð¾Ñ‚Ð¾Ð¹é   u(   Ð£Ñ‡Ð°Ñ�Ñ‚Ð¸Ðµ Ð² Ð¾Ð»Ð¸Ð¼Ð¿Ð¸Ð°Ð´Ð°Ñ…: Úlowu?   Ð Ð¸Ñ�Ðº Ð½Ð¸Ð·ÐºÐ¸Ð¹. ÐŸÑ€Ð¾Ð´Ð¾Ð»Ð¶Ð°Ð¹Ñ‚Ðµ Ð¾Ð±ÑƒÑ‡ÐµÐ½Ð¸Ðµ.é<   ÚmediumuT   Ð Ð¸Ñ�Ðº Ñ�Ñ€ÐµÐ´Ð½Ð¸Ð¹. Ð ÐµÐºÐ¾Ð¼ÐµÐ½Ð´ÑƒÐµÑ‚Ñ�Ñ� ÑƒÑ�Ð¸Ð»Ð¸Ñ‚ÑŒ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŒ.éU   ÚhighuX   Ð Ð¸Ñ�Ðº Ð²Ñ‹Ñ�Ð¾ÐºÐ¸Ð¹. Ð¢Ñ€ÐµÐ±ÑƒÐµÑ‚Ñ�Ñ� Ð²Ð¼ÐµÑˆÐ°Ñ‚ÐµÐ»ÑŒÑ�Ñ‚Ð²Ð¾ ÐºÑƒÑ€Ð°Ñ‚Ð¾Ñ€Ð°.Úcriticalua   ÐšÐ Ð˜Ð¢Ð˜Ð§Ð•Ð¡ÐšÐ˜Ð™ Ð Ð˜Ð¡Ðš! Ð�ÐµÐ¼ÐµÐ´Ð»ÐµÐ½Ð½Ð¾ Ñ�Ð²Ñ�Ð·Ð°Ñ‚ÑŒÑ�Ñ� Ñ� Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»Ñ�Ð¼Ð¸.z; u7   Ð�ÐµÑ‚ Ð²Ñ‹Ñ�Ð²Ð»ÐµÐ½Ð½Ñ‹Ñ… Ñ„Ð°ÐºÑ‚Ð¾Ñ€Ð¾Ð² Ñ€Ð¸Ñ�ÐºÐ°é   )r   ÚnowÚdater   ÚattendancesÚfilterÚcountÚminÚappendZassignment_submissionsÚ	ExceptionÚdebtsÚexistsÚhasattrr   r   Ú	olympiadsÚallÚmaxÚjoinÚround)ÚstudentÚ
risk_scoreÚfactorsZthirty_days_agor   ÚtotalZabsentsZlatesZ	effectiveÚpercentZattendance_riskÚsubmissionsZ	total_subZfailedZhomework_riskÚer"   Z	debt_riskr%   ZbonusÚlevelÚrecZfactors_text© r3   ú)D:\diplom_project\risk\risk_calculator.pyÚcalculate_student_risk   s„    ÿ









r5   N)Údatetimer   Údjango.utilsr   r5   r3   r3   r3   r4   Ú<module>   s   