ó
    ïj®]  ã                   óˆ  • S SK JrJrJr  S SKJr  S SKJr  S SKJ	r	J
r
  SSKJrJrJrJrJrJrJr  S SKJrJr  S SKJr  S S	KJrJr  S S
Kr\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r \S 5       r!\S 5       r"\S 5       r#\S 5       r$\S 5       r%\S 5       r&\S 5       r'\S 5       r(\S 5       r)g
)é    )ÚrenderÚredirectÚget_object_or_404)Úlogin_required)Úmessages)ÚHttpResponseÚJsonResponseé   )ÚGroupÚSubjectÚScheduleItemÚRoomÚ
AttendanceÚAcademicDebtÚOlympiad)ÚTeacherÚStudent)ÚRiskPrediction©ÚdatetimeÚ	timedeltaNc           
      óÔ  • [         R                  R                  5       nU R                  R	                  S5      nU R                  R	                  S5      nU R
                  R                  S:X  aT  U R
                  R                  n[         R                  R                  UR                  R                  S9nUR                  nOÌU R
                  R                  S:X  aŒ  U R
                  R                  nUR                  R                  5       (       aT  [         R                  R                  UR                  R                  5       S9R                  5       nUR                  5       nO)SnO&U(       a  [!        [         US9nOUR                  5       nU(       d$  ["        R$                  " 5       R'                  S5      nU(       a?  [(        R                  R                  UUS	9R+                  S
SS5      R-                  S5      nO/ n["        R.                  " US5      nU[1        UR3                  5       S9-
  n	[5        S5       V
s/ s H  o©[1        U
S9-   PM     nn
UUUUU[6        R                  R                  5       [8        R                  R                  5       [:        R                  R                  5       ["        R$                  " 5       R=                  5       S.	n[?        U SU5      $ s  sn
f )uL   Ð“Ð»Ð°Ð²Ð½Ð°Ñ� Ñ�Ñ‚Ñ€Ð°Ð½Ð¸Ñ†Ð° Ñ€Ð°Ñ�Ð¿Ð¸Ñ�Ð°Ð½Ð¸Ñ� Ñ� ÐºÐ°Ð»ÐµÐ½Ð´Ð°Ñ€Ñ‘Ð¼ÚgroupÚdateÚstudent©ÚidÚparent)Ústudents__inNú%Y-%m-%d©r   r   ÚsubjectÚteacherÚroomÚ
start_time©Údaysé   )	ÚgroupsÚselected_groupÚselected_dateÚ
week_datesÚschedule_itemsÚsubjectsÚteachersÚroomsÚtodayzschedule_new.html) r   ÚobjectsÚallÚGETÚgetÚuserÚroler   Úfilterr   r   r   ÚchildrenÚexistsÚdistinctÚfirstr   r   ÚnowÚstrftimer   Úselect_relatedÚorder_byÚstrptimer   ÚweekdayÚranger   r   r   r   r   )Úrequestr)   Úselected_group_idr+   r   r*   r   r-   Úcurrent_dateÚ
week_startÚir,   Úcontexts                ÚD:\diplom_project\core\views.pyÚschedule_viewrK      s4  € ô �]‰]×ÑÓ €FØŸ™Ÿ™¨Ó0ÐØ—K‘K—O‘O FÓ+€Mð ‡|�|×Ñ˜IÓ%Ø—,‘,×&Ñ&ˆÜ—‘×%Ñ%¨¯©×)9Ñ)9Ð%Ð:ˆØ Ÿ™‰Ø	�‰×	Ñ	˜hÓ	&Ø—‘×$Ñ$ˆØ�?‰?×!Ñ!×#Ñ#Ü—]‘]×)Ñ)°v·±×7JÑ7JÓ7LÐ)ÐM×VÑVÓXˆFØ#Ÿ\™\›^‰Nà!‰NæÜ.¬uÐ9JÑK‰Nà#Ÿ\™\›^ˆNö Ü Ÿš›×/Ñ/°
Ó;ˆæÜ%×-Ñ-×4Ñ4Ø Øð 5ð 
÷ ‰.˜ I¨vÓ
6·x±xÀÓ7Mñ 	ð
 ˆô ×$Ò$ ]°JÓ?€LØ¤	¨|×/CÑ/CÓ/EÑ FÑF€JÜ:?À¼(ÓCº(°Qœy¨aÑ0Ô0¹(€JÐCð Ø(Ø&Ø Ø(Ü—O‘O×'Ñ'Ó)Ü—O‘O×'Ñ'Ó)Ü—‘×!Ñ!Ó#Ü—’“×$Ñ$Ó&ñ
€Gô �'Ð.°Ó8Ð8ùò Ds   É K%c           
      ó�  • [        [        US9n[        R                  R	                  US9R                  SSS5      nSSSS	.S
SSS	.SSSS	.SSSS	.SSSS	.SSSS	.SSSS	./n0 nU H
  n/ XVS   '   M     U H   nXWR                     R                  U5        M"     U H  nXV   R                  S S9  M     UUUS.n[        U S U5      $ )!uF   Ð Ð°Ñ�Ð¿Ð¸Ñ�Ð°Ð½Ð¸Ðµ ÐºÐ¾Ð½ÐºÑ€ÐµÑ‚Ð½Ð¾Ð³Ð¾ Ð¿Ñ€ÐµÐ¿Ð¾Ð´Ð°Ð²Ð°Ñ‚ÐµÐ»Ñ�r   )r#   r   r"   r$   õ   ÐŸÐ¾Ð½ÐµÐ´ÐµÐ»ÑŒÐ½Ð¸Ðºu   ÐŸÐ�r
   )ÚnameÚshortÚnumberõ   Ð’Ñ‚Ð¾Ñ€Ð½Ð¸Ðºu   Ð’Ð¢é   õ
   Ð¡Ñ€ÐµÐ´Ð°u   Ð¡Ð é   õ   Ð§ÐµÑ‚Ð²ÐµÑ€Ð³u   Ð§Ð¢é   õ   ÐŸÑ�Ñ‚Ð½Ð¸Ñ†Ð°u   ÐŸÐ¢é   õ   Ð¡ÑƒÐ±Ð±Ð¾Ñ‚Ð°u   Ð¡Ð‘é   õ   Ð’Ð¾Ñ�ÐºÑ€ÐµÑ�ÐµÐ½ÑŒÐµu   Ð’Ð¡r(   rP   c                 ó   • U R                   $ )N)r%   ©Úxs    rJ   Ú<lambda>Ú"teacher_schedule.<locals>.<lambda>_   s   € °A·L²Ló    )Úkey)r#   ÚweekdaysÚschedule_by_weekdayzteacher_schedule.html)
r   r   r   r2   r8   r?   rB   ÚappendÚsortr   )	rD   Ú
teacher_idr#   r-   rc   rd   ÚdayÚitemrI   s	            rJ   Úteacher_schedulerj   F   s  € ô  ¤¨JÑ7€Gä!×)Ñ)×0Ñ0¸Ð0ÐA×PÑPÐQXÐZcÐekÓl€Nð *°FÀaÑHØ!¨F¸aÑ@Ø¨¸!Ñ<Ø!¨F¸aÑ@Ø!¨F¸aÑ@Ø!¨F¸aÑ@Ø)°FÀaÑHð€Hð ÐÛˆØ-/Ð ™MÓ*ñ ó ˆØŸL™LÑ)×0Ñ0°Ö6ñ ó #ˆØÑ ×%Ñ%Ñ*@Ð%ÓAñ #ð ØØ2ñ€Gô
 �'Ð2°GÓ<Ð<ra   c                 óº  • U R                   R                  S;  a=  U R                   R                  (       d"  [        R                  " U S5        [        S5      $ U R                  S:X  Gai  U R                  R                  S5      nU R                  R                  S5      nU R                  R                  S5      n[        R                  R                  UUUS9R                  5       nU(       a"  [        R                  " U S	5        [        S5      $ [        R                  R                  UU R                  R                  S
5      U R                  R                  S5      U R                  R                  S5      =(       d    S UUU R                  R                  S5      U R                  R                  SS5      S9  [        R                  " U S5        [        S5      $ )N©r#   Úacademic_staffÚadminuB   Ð£ Ð²Ð°Ñ� Ð½ÐµÑ‚ Ð¿Ñ€Ð°Ð² Ð½Ð° Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ðµ Ð·Ð°Ð½Ñ�Ñ‚Ð¸Ð¹ÚscheduleÚPOSTÚgroup_idr   r%   )rq   r   r%   u4   Ð’ Ñ�Ñ‚Ð¾ Ð²Ñ€ÐµÐ¼Ñ� ÑƒÐ¶Ðµ ÐµÑ�Ñ‚ÑŒ Ð·Ð°Ð½Ñ�Ñ‚Ð¸Ðµ!Ú
subject_idrg   Úroom_idÚend_timeÚtopicÚ )rq   rr   rg   rs   r   r%   rt   ru   u!   Ð—Ð°Ð½Ñ�Ñ‚Ð¸Ðµ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¾)r6   r7   Úis_staffr   Úerrorr   Úmethodrp   r5   r   r2   r8   r:   ÚcreateÚsuccess)rD   rq   r   r%   r:   s        rJ   Úadd_schedule_itemr|   i   su  € à‡|�|×ÑÐ FÓFÈwÏ|É|×Od×OdÜ�Š�wÐ dÔeÜ˜
Ó#Ð#à‡~�~˜ÔØ—<‘<×#Ñ# JÓ/ˆØ�|‰|×Ñ Ó'ˆØ—\‘\×%Ñ% lÓ3ˆ
ô ×%Ñ%×,Ñ,ØØØ!ð -ð 
÷ ‰&‹(ð	 	ö Ü�NŠN˜7Ð$ZÔ[Ü˜JÓ'Ð'ä×Ñ×#Ñ#ØØ—|‘|×'Ñ'¨Ó5Ø—|‘|×'Ñ'¨Ó5Ø—L‘L×$Ñ$ YÓ/×7°4ØØ!Ø—\‘\×%Ñ% jÓ1Ø—,‘,×"Ñ" 7¨BÓ/ð 	$ñ 		
ô 	×Ò˜Ð"EÔFÜ�JÓÐra   c                 ó<  • U R                   R                  S;  a=  U R                   R                  (       d"  [        R                  " U S5        [        S5      $ [        [        US9nU R                  S:X  Ga  U R                  R                  S5      Ul        U R                  R                  S5      Ul        U R                  R                  S5      =(       d    S Ul        U R                  R                  S	5      Ul        U R                  R                  S
5      Ul        U R                  R                  S5      Ul        U R                  R                  SS5      Ul        UR%                  5         [        R&                  " U S5        [        S5      $ [        S5      $ )Nrl   u;   Ð£ Ð²Ð°Ñ� Ð½ÐµÑ‚ Ð¿Ñ€Ð°Ð² Ð½Ð° Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ðµro   r   rp   rr   rg   rs   r   r%   rt   ru   rv   u!   Ð—Ð°Ð½Ñ�Ñ‚Ð¸Ðµ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾)r6   r7   rw   r   rx   r   r   r   ry   rp   r5   rr   rg   rs   r   r%   rt   ru   Úsaver{   ©rD   Úitem_idri   s      rJ   Úedit_schedule_itemr�   �   s$  € à‡|�|×ÑÐ FÓFÈwÏ|É|×Od×OdÜ�Š�wÐ ]Ô^Ü˜
Ó#Ð#äœ\¨gÑ6€Dà‡~�~˜ÔØ!Ÿ,™,×*Ñ*¨<Ó8ˆŒØ!Ÿ,™,×*Ñ*¨<Ó8ˆŒØ—|‘|×'Ñ'¨	Ó2×:°dˆŒØ—L‘L×$Ñ$ VÓ,ˆŒ	Ø!Ÿ,™,×*Ñ*¨<Ó8ˆŒØŸ™×(Ñ(¨Ó4ˆŒØ—\‘\×%Ñ% g¨rÓ2ˆŒ
Ø�	‰	ŒÜ×Ò˜Ð"EÔFÜ˜
Ó#Ð#ä�JÓÐra   c                 ó0  • U R                   R                  S;  a=  U R                   R                  (       d"  [        R                  " U S5        [        S5      $ [        [        US9nUR                  5         [        R                  " U S5        [        S5      $ )ud   Ð£Ð´Ð°Ð»ÐµÐ½Ð¸Ðµ Ð·Ð°Ð½Ñ�Ñ‚Ð¸Ñ� (Ñ‚Ð¾Ð»ÑŒÐºÐ¾ Ð´Ð»Ñ� Ð¿Ñ€ÐµÐ¿Ð¾Ð´Ð°Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¹ Ð¸ Ð°Ð´Ð¼Ð¸Ð½Ð¾Ð²)rl   u>   Ð£ Ð²Ð°Ñ� Ð½ÐµÑ‚ Ð¿Ñ€Ð°Ð² Ð½Ð° ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ðµ Ð·Ð°Ð½Ñ�Ñ‚Ð¸Ð¹ro   r   u   Ð—Ð°Ð½Ñ�Ñ‚Ð¸Ðµ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¾)
r6   r7   rw   r   rx   r   r   r   Údeleter{   r   s      rJ   Údelete_schedule_itemr„   ¤   sn   € ð ‡|�|×ÑÐ FÓFÈwÏ|É|×Od×OdÜ�Š�wÐ `ÔaÜ˜
Ó#Ð#äœ\¨gÑ6€DØ‡K�K„MÜ×Ò�WÐ=Ô>Ü�JÓÐra   c                 ór  • [        [        US9nUR                  UR                  R	                  S5      UR
                  R	                  S5      UR                  R                  UR                  R                  UR                  (       a  UR                  R                  OSUR                  S.n[        U5      $ )Nr   ú%H:%Mrv   )r   r%   rt   rr   rg   rs   ru   )r   r   r   r%   r>   rt   r"   r#   r$   ru   r	   )rD   r€   ri   Údatas       rJ   Úget_schedule_item_jsonrˆ   °   s}   € äœ\¨gÑ6€Dà�g‰gØ—o‘o×.Ñ.¨wÓ7Ø—M‘M×*Ñ*¨7Ó3Ø—l‘l—o‘oØ—l‘l—o‘oØ#'§9§9�4—9‘9—<’<°"Ø—‘ñ€Dô ˜ÓÐra   c           
      óü  • SSK Jn  SSKJnJnJnJnJn  SSKJnJ	n  U R                  R                  S5      n	U R                  R                  S5      n
U	(       d"  [        R                  " U S5        [        S5      $ [        [         U	S	9nU
(       a"  UR"                  " U
S
5      R%                  5       nOUR&                  " 5       R%                  5       nXÈ" UR)                  5       S9-
  n[+        S5       Vs/ s H  oíU" US9-   PM     nn[,        R.                  R1                  UUXØ" SS9-   S9R3                  SSS5      R5                  SS5      n0 nU H=  nUR$                  R7                  S
5      nUU;  a  / UU'   UU   R9                  U5        M?     U" 5       nUR:                  nSUR<                   3Ul        SUR<                   3US'   U" SSS9US   l         URC                  S5        SUR7                  S5       SXØ" SS9-   R7                  S5       3US'   U" SSS9US   l         URC                  S 5        / S!QnU" SS"S#9nU" S$S$S%S&9nU" S'S'SS(9n[E        [G        UU5      S)S*9 Hc  u  nu  nnURI                  S+UU S,UR7                  S-5       3S.9nUUl         UUl%        UUl&        S/URN                  [Q        S0U-   5         l)        Me     URI                  S+S1S2S.9  UURI                  S+S1S39l         UURI                  S+S1S39l%        UURI                  S+S1S39l&        S4URN                  S5   l)        / S6Qn0 nU HU  nUR7                  S
5      n0 UU'   UR                  U/ 5       H&  nURT                  R7                  S75      n UUU   U '   M(     MW     U" U" S8S99U" S8S99U" S8S99U" S8S99S:9n![E        US;S*9 GHù  u  n"u  n#n$URI                  U"S1U# S<U$ 3S.9  U" S'S'S=9URI                  U"S1S39l&        U!URI                  U"S1S39l+        [E        US)S*9 GH›  u  n%nUR7                  S
5      nUR                  U0 5      R                  U#5      nU(       Ga  URX                  (       a  [[        URX                  5      OS>n&URX                  (       a  URX                  R\                  (       a  S?n&UR^                  R<                   S,UR`                  Rb                   S@UR`                  Rd                   S,U& 3n'URf                  (       a  U'S,URf                   3-  n'URI                  U"U%U'S.9  U" SS'S'SA9URI                  U"U%S39l&        U!URI                  U"U%S39l+        SBURh                  U"   l5        GM[  URI                  U"U%S>S.9  U" S'S'S=9URI                  U"U%S39l&        U!URI                  U"U%S39l+        GMž     GMü     [m        SCSD9n(SEUR<                   SFUR7                  SG5       SH3U(SI'   URo                  U(5        U($ s  snf )JuQ   Ð­ÐºÑ�Ð¿Ð¾Ñ€Ñ‚ Ñ€Ð°Ñ�Ð¿Ð¸Ñ�Ð°Ð½Ð¸Ñ� Ð² Excel Ð½Ð° Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½ÑƒÑŽ Ð½ÐµÐ´ÐµÐ»ÑŽr   )ÚWorkbook)Ú	AlignmentÚFontÚPatternFillÚBorderÚSider   r   r   u   Ð’Ñ‹Ð±ÐµÑ€Ð¸Ñ‚Ðµ Ð³Ñ€ÑƒÐ¿Ð¿Ñƒro   r   r    r&   r(   rZ   )r   Ú	date__gteÚ	date__lter"   r#   r$   r%   u   Ð Ð°Ñ�Ð¿Ð¸Ñ�Ð°Ð½Ð¸Ðµ u"   Ð Ð°Ñ�Ð¿Ð¸Ñ�Ð°Ð½Ð¸Ðµ Ð³Ñ€ÑƒÐ¿Ð¿Ñ‹ ÚA1é   T)ÚsizeÚboldzA1:H1u   Ð�ÐµÐ´ÐµÐ»Ñ� Ñ� z%d.%m.%Yu    Ð¿Ð¾ ÚA2é   )r”   ÚitaliczA2:H2)rM   rQ   rS   rU   rW   rY   r[   ÚFFFFFF)r•   ÚcolorÚ4395ABÚsolid)Ústart_colorÚ	end_colorÚ	fill_typeÚcenter)Ú
horizontalÚverticalÚ	wrap_textrR   )ÚstartrV   Ú
z%d.%m)ÚrowÚcolumnÚvalueé   é@   r
   u
   Ð’Ñ€ÐµÐ¼Ñ�)r¦   r§   é   ÚA))z09:00z10:30)z10:45z12:15)z12:45z14:15)z14:30z16:00)z16:15z17:45)z18:00z19:30r†   Úthin)Ústyle)ÚleftÚrightÚtopÚbottomrX   Ú-)r¡   r¢   u   â€”u   ðŸŒ� Ð”Ð¸Ñ�Ñ‚Ð°Ð½Ñ‚Ú )r£   r¡   r¢   éP   zAapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet)Úcontent_typezattachment; filename="schedule_Ú_z%Y%m%dz.xlsx"zContent-Disposition)8ÚopenpyxlrŠ   Úopenpyxl.stylesr‹   rŒ   r�   rŽ   r�   r   r   r4   r5   r   rx   r   r   r   rA   r   r=   rB   rC   r   r2   r8   r?   r@   r>   re   ÚactiverN   ÚtitleÚfontÚmerge_cellsÚ	enumerateÚzipÚcellÚfillÚ	alignmentÚcolumn_dimensionsÚchrÚwidthr%   Úborderr$   ÚstrÚis_distancer"   r#   Ú	last_nameÚ
first_nameru   Úrow_dimensionsÚheightr   r~   ))rD   rŠ   r‹   rŒ   r�   rŽ   r�   r   r   rq   Údate_strr   rF   rG   rH   r,   r-   Úschedule_by_dateri   Údate_str_itemÚwbÚwsÚweekdays_rusÚheader_fontÚheader_fillÚheader_alignmentr   Úweekday_namerÀ   Ú
time_slotsÚschedule_dictÚdate_keyÚ	start_keyrÆ   Úrow_idxr¤   ÚendÚcol_idxÚ	room_nameÚ
cell_valueÚresponses)                                            rJ   Úexport_schedulerá   ¿   sû  € õ "ßJÕJß,à�{‰{�‰˜wÓ'€HØ�{‰{�‰˜vÓ&€HæÜ�Š�wÐ ?Ô@Ü˜
Ó#Ð#äœe¨Ñ1€Eö Ø×(Ò(¨°:Ó>×CÑCÓE‰à—|’|“~×*Ñ*Ó,ˆð  	¨|×/CÑ/CÓ/EÑ FÑF€JÜ:?À¼(ÓCº(°Q™y¨aÑ0Ô0¹(€JÐCô "×)Ñ)×0Ñ0ØØØ˜y¨aÑ0Ñ0ð 1ð ÷ �n�Y 	¨6Ó2·8±8¸FÀLÓ3Qð	 ð ÐÛˆØŸ	™	×*Ñ*¨:Ó6ˆØÐ 0Ó0Ø.0Ð˜]Ñ+Ø˜Ñ'×.Ñ.¨tÖ4ñ	 ñ 
‹€BØ	�‰€BØ& u§z¡z lÐ3€B„Hð 4°E·J±J°<Ð@€B€t�HÙ˜b tÑ,€B€t�H„MØ‡N�N�7Ôà! *×"5Ñ"5°jÓ"AÐ!BÀ&È*ÐW`ÐfgÑWhÑJh×IrÑIrÐs}ÓI~ÐHð  A€B€t�HÙ˜b¨Ñ.€B€t�H„MØ‡N�N�7Ôò ^€Lñ ˜D¨Ñ1€KÙ¨(¸hÐRYÑZ€KÙ ¨H¸xÐSWÑXÐä#,¬S°¸\Ó-JÐRSÔ#TÑˆÑˆD�,Ø�w‰w˜1 Q°°¸bÀÇÁÈwÓAWÐ@XÐ.YˆwÐZˆØˆŒ	ØˆŒ	Ø)ˆŒØ24ˆ×ÑœS  a¡›[Ñ)Ö/ñ $Uð ‡G�G�˜! <€GÑ0Ø$/€B‡G�G�˜!€GÐÔ!Ø$/€B‡G�G�˜!€GÐÔ!Ø)9€B‡G�G�˜!€GÐÔ&Ø&(€B×Ñ˜ÑÔ#ò€Jð €MÛˆØ—=‘= Ó,ˆØ"$ˆ�hÑØ$×(Ñ(¨°2Ö6ˆDØŸ™×0Ñ0°Ó9ˆIØ15ˆM˜(Ñ# IÓ.ó 7ñ ñ Ù˜ÑÙ˜Ñ Ù�vÑÙ˜&Ñ!ñ	€Fô "+¨:¸QÕ!?Ñˆ‘�%˜Ø
�‰�G A°¨w°a¸°uÐ-=ˆÑ>Ù3<ÈÐ[cÑ3dˆ�‰�G AˆÐ&Ô0Ø06ˆ�‰�G AˆÐ&Ô-ä& z¸Õ;‰MˆG�TØ—}‘} ZÓ0ˆHØ ×$Ñ$ X¨rÓ2×6Ñ6°uÓ=ˆDçØ.2¯i¯iœC §	¡	œN¸U�	Ø—9—9 §¡×!6×!6Ø 5�Ià $§¡× 1Ñ 1Ð2°"°T·\±\×5KÑ5KÐ4LÈAÈdÏlÉl×NeÑNeÐMfÐfhÐirÐhsÐt�
Ø—:—:Ø B t§z¡z lÐ"3Ñ3�Jà—‘˜G¨G¸:�ÑFÙAJÐUYÐfnØT\ñB^�—‘˜G¨G�Ð4Ô>à>D�—‘˜G¨G�Ð4Ô;Ø46�×!Ñ! 'Ñ*×1à—‘˜G¨G¸5�ÑAÙAJÐV^ÐiqÑAr�—‘˜G¨G�Ð4Ô>Ø>D�—‘˜G¨G�Ð4×;ô+ <ñ "@ô8 Ð)lÑm€Hà#BÀ5Ç:Á:À,ÈaÐPZ×PcÑPcÐdlÓPmÐOnÐntÐ!uð Øñà‡G�GˆHÔØ€OùòW Ds   Ã5W9c                 óö  • U R                   R                  S:X  aQ  U R                   R                  n[        R                  R                  US9R                  S5      n[        U SX!S.5      $ [        R                  R                  5       nU R                  R                  S5      nU R                  R                  S5      nU(       d$  [        R                  " 5       R                  5       nO%[        R                  " US5      R                  5       nS	n/ nU(       aL  [!        [        US
9n["        R                  R                  UUS9R                  SSS5      R%                  S5      nUUUUS.n	[        U SU	5      $ )u)   Ð¡Ñ‚Ñ€Ð°Ð½Ð¸Ñ†Ð° Ð¿Ð¾Ñ�ÐµÑ‰Ð°ÐµÐ¼Ð¾Ñ�Ñ‚Ð¸r   )r   Úschedule_item__subjectzmy_attendance.html)Úattendancesr   r   r+   r    Nr   r!   r"   r#   r$   r%   )r)   r*   r+   r-   zattendance_mark.html)r6   r7   r   r   r2   r8   r?   r   r   r3   r4   r5   r   r=   r   rA   r   r   r@   )
rD   r   rä   r)   rE   Úselected_date_strr+   r*   r-   rI   s
             rJ   Úattendance_viewræ   F  sH  € ð ‡|�|×Ñ˜IÓ%Ø—,‘,×&Ñ&ˆÜ ×(Ñ(×/Ñ/¸Ð/Ð@×OÑOÐPhÓiˆÜ�gÐ3À[Ñ5eÓfÐfä�]‰]×ÑÓ €FØŸ™Ÿ™¨Ó0ÐØŸ™Ÿ™¨Ó8Ðö Ü Ÿš›×+Ñ+Ó-‰ä ×)Ò)Ð*;¸ZÓH×MÑMÓOˆà€NØ€NæÜ*¬5Ð5FÑGˆÜ%×-Ñ-×4Ñ4Ø Øð 5ð 
÷ ‰.˜ I¨vÓ
6·x±xÀÓ7Mð 	ð Ø(Ø&Ø(ñ	€Gô �'Ð1°7Ó;Ð;ra   c                 ó  • U R                   R                  S5      nU(       d"  [        R                  " U S5        [	        S5      $ [        [        US9n[        R                  R                  UR                  S9n/ nU HB  n[        R                  R                  X%S9R                  5       nUR                  UUS.5        MD     U R                  S:X  a§  U H  nU R                  R                  S	UR                    3S
5      n[#        U R                  R                  SUR                    3S5      5      n[        R                  R%                  UUXxS.S9  M�     [        R&                  " U S5        [	        S5      $ UUS.n	[)        U SU	5      $ )ue   Ð¡Ñ‚Ñ€Ð°Ð½Ð¸Ñ†Ð° Ð¾Ñ‚Ð¼ÐµÑ‚ÐºÐ¸ Ð¿Ð¾Ñ�ÐµÑ‰Ð°ÐµÐ¼Ð¾Ñ�Ñ‚Ð¸ Ð´Ð»Ñ� ÐºÐ¾Ð½ÐºÑ€ÐµÑ‚Ð½Ð¾Ð³Ð¾ Ð·Ð°Ð½Ñ�Ñ‚Ð¸Ñ�Úschedule_item_idu"   Ð—Ð°Ð½Ñ�Ñ‚Ð¸Ðµ Ð½Ðµ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð¾ræ   r   ©r   )Úschedule_itemr   )r   Ú
attendancerp   Ústatus_ÚpresentÚlate_r   )ÚstatusÚlate_minutes)rê   r   Údefaultsu+   ÐŸÐ¾Ñ�ÐµÑ‰Ð°ÐµÐ¼Ð¾Ñ�Ñ‚ÑŒ Ñ�Ð¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð°)rê   Ústudents_with_attendancezmark_attendance.html)r4   r5   r   rx   r   r   r   r   r2   r8   r   r   r<   re   ry   rp   r   ÚintÚupdate_or_creater{   r   )
rD   rè   rê   Ústudentsrò   r   Úattrï   rð   rI   s
             rJ   Úmark_attendancer÷   k  sq  € ð —{‘{—‘Ð'9Ó:ÐæÜ�Š�wÐ DÔEÜÐ)Ó*Ð*ä%¤lÐ7GÑH€MÜ�‰×%Ñ%¨M×,?Ñ,?Ð%Ð@€Hð  "ÐÛˆÜ× Ñ ×'Ñ'°mÐ'ÐU×[Ñ[Ó]ˆØ ×'Ñ'ØØñ)
ö 	ñ ð ‡~�~˜ÓÛˆGØ—\‘\×%Ñ%¨°·
±
¨|Ð&<¸iÓHˆFÜ˜wŸ|™|×/Ñ/°%¸¿
¹
°|Ð0DÀaÓHÓIˆLä×Ñ×/Ñ/Ø+ØØ$*ÑIð 0ó ñ	  ô 	×Ò˜Ð"OÔPÜÐ)Ó*Ð*ð 'Ø$<ñ€Gô �'Ð1°7Ó;Ð;ra   c           	      óä  • U R                   R                  S5      nU R                   R                  S5      nU(       a  U(       d
  [        / SS9$ [        R                  R                  UUS9R                  S5      nU Vs/ s HZ  nUR                  UR                  R                  UR                  R                  S5      UR                  R                  S5      S.PM\     nn[        USS9$ s  snf )	ul   ÐŸÐ¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ðµ Ñ€Ð°Ñ�Ð¿Ð¸Ñ�Ð°Ð½Ð¸Ñ� Ð´Ð»Ñ� Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð¾Ð¹ Ð³Ñ€ÑƒÐ¿Ð¿Ñ‹ Ð¸ Ð´Ð½Ñ� Ð½ÐµÐ´ÐµÐ»Ð¸ (AJAX)r   rB   F)Úsafe)rq   rB   r"   r†   )r   Úsubject_namer%   rt   )r4   r5   r	   r   r2   r8   r?   r   r"   rN   r%   r>   rt   )rD   rq   rB   r-   ri   r‡   s         rJ   Úget_schedule_jsonrû   ”  sÞ   € ð �{‰{�‰˜wÓ'€HØ�k‰k�o‰o˜iÓ(€Gæž7Ü˜B UÑ+Ð+ä!×)Ñ)×0Ñ0ØØð 1ð ÷ �n�YÓð ñ !ó"ò
 !ˆ$ð	 �g‰gØŸ™×)Ñ)Ø—o‘o×.Ñ.¨wÓ7Ø—M‘M×*Ñ*¨7Ó3ô	ñ
 !ð 	ð "ô ˜ 5Ñ)Ð)ùò"s   Â A!C-c                 ó<  • U R                   R                  S5      n[        [        US9n[        R
                  R                  UR                  S9n[        R
                  R                  US9 Vs0 s H  oDR                  U_M     nnUR                  UR                  R                  UR                  UR                  R                  S5      UR                  R                  S5      UR                   R                  U Vs/ s H}  nUR                  UR"                   SUR$                   3UR                  U;   a  XVR                     R&                  OSUR                  U;   a  XVR                     R(                  OSS	.PM     snS
.n[+        U5      $ s  snf s  snf )uh   ÐŸÐ¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ðµ Ñ�Ð¿Ð¸Ñ�ÐºÐ° Ñ�Ñ‚ÑƒÐ´ÐµÐ½Ñ‚Ð¾Ð² Ð´Ð»Ñ� Ð¾Ñ‚Ð¼ÐµÑ‚ÐºÐ¸ Ð¿Ð¾Ñ�ÐµÑ‰Ð°ÐµÐ¼Ð¾Ñ�Ñ‚Ð¸ (AJAX)ro   r   ré   )rê   r†   r´   rí   r   )r   rN   rï   rð   )rè   Ú
group_namerB   r%   rt   rú   rõ   )r4   r5   r   r   r   r2   r8   r   r   Ú
student_idr   rN   rB   r%   r>   rt   r"   rÉ   rÊ   rï   rð   r	   )rD   Úschedule_idrê   rõ   rö   rä   Úsr‡   s           rJ   Úget_students_for_attendancer  ¬  sg  € ð —+‘+—/‘/ *Ó-€KÜ%¤l°{ÑC€Mä�‰×%Ñ%¨M×,?Ñ,?Ð%Ð@€Hô 3=×2DÑ2D×2KÑ2KÐZgÐ2KÑ2hÓiÒ2h¨3—>‘> 3Ò&Ñ2h€KÐið *×,Ñ,Ø#×)Ñ)×.Ñ.Ø ×(Ñ(Ø#×.Ñ.×7Ñ7¸Ó@Ø!×*Ñ*×3Ñ3°GÓ<Ø%×-Ñ-×2Ñ2ñ óò
 ˆað	 —$‘$Ø—{‘{�m 1 Q§\¡\ NÐ3Ø23·$±$¸+Ó2E�k§$¡$Ñ'×.Ò.È9Ø>?¿d¹dÀkÓ>Q˜K¯©Ñ-×:Ò:ÐWXô	
ñ
 ññ€Dô ˜ÓÐùò# jùòs   Á0FÄ BFc                 ó€  • U R                   R                  S:X  a  [        S5      $ U R                   R                  S:X  a  [        S5      $ [        R                  R                  SS5      R                  5       nSSSSS.n/ nU H�  nUR                  R                  5       nU(       d0  SS	K	J
n  U" U5      u  pxpš[        R                  R                  XGUXšS
9nX%R                  ==   S-  ss'   UR                  S;   d  M|  UR                  XES.5        M‘     [        UR!                  5       5      =(       d    Sn["        R$                  " 5       US   US   US   US   ['        US   U-  S-  S5      ['        US   U-  S-  S5      ['        US   U-  S-  S5      ['        US   U-  S-  S5      S.US.n[)        U SU5      $ )up   Ð“Ð»Ð°Ð²Ð½Ð°Ñ� Ñ�Ñ‚Ñ€Ð°Ð½Ð¸Ñ†Ð° Ñ� Ñ€Ð¸Ñ�ÐºÐ°Ð¼Ð¸ (Ñ‚Ð¾Ð»ÑŒÐºÐ¾ Ð´Ð»Ñ� Ð¿Ñ€ÐµÐ¿Ð¾Ð´Ð°Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¹ Ð¸ Ð²Ñ‹ÑˆÐµ)r   Úmy_riskr   Úchild_progressr6   r   r   )ÚlowÚmediumÚhighÚcritical©Úcalculate_student_risk©r   Ú
risk_scoreÚ
risk_levelÚtop_factorsÚrecommended_actionr
   )r  r  ©r   Úriskr  r  r  r  éd   )r  r  r  r  Úlow_percentÚmedium_percentÚhigh_percentÚcritical_percent)r1   ÚstatsÚhigh_risk_studentszdashboard.html)r6   r7   r   r   r2   r?   r3   Úrisk_predictionsr<   Úrisk.risk_calculatorr
  r   rz   r  re   ÚsumÚvaluesr   r=   Úroundr   )rD   rõ   r  Úhigh_risk_listr   Úlatestr
  ÚscoreÚlevelÚfactorsÚrecÚtotalrI   s                rJ   Ú	dashboardr%  Ë  s¾  € ð ‡|�|×Ñ˜IÓ%Ü˜	Ó"Ð"Ø‡|�|×Ñ˜HÓ$ÜÐ(Ó)Ð)ä�‰×-Ñ-¨f°gÓ>×BÑBÓD€Hà ¨A¸1Ñ=€EØ€NãˆØ×)Ñ)×/Ñ/Ó1ˆÞÝCÙ)?ÀÓ)HÑ&ˆE˜'Ü#×+Ñ+×2Ñ2Ø¸eØ#ð 3ð ˆFð 	×ÑÓ  AÑ%Ó Ø×ÑÐ 4Õ4Ø×!Ñ!¨gÑ"FÖGñ ô �—‘“Ó×$ 1€Eô —’“à˜‘<¨5°©?Ø˜&‘M¨u°ZÑ/@Ü   u¡°Ñ!5¸Ñ!;¸QÓ?Ü# E¨(¡O°eÑ$;¸cÑ$AÀ1ÓEÜ! %¨¡-°%Ñ"7¸#Ñ"=¸qÓAÜ % e¨JÑ&7¸%Ñ&?À#Ñ&EÀqÓ Iñ
ð -ñ€Gô �'Ð+¨WÓ5Ð5ra   c           	      óÜ  • U R                   R                  S;  a&  U R                   R                  (       d  [        S5      $ [        R
                  R                  5       n/ nU Hg  nUR                  R                  5       nU(       d0  SSK	J
n  U" U5      u  pgp‰[        R
                  R                  X6UX‰S9nUR                  X4S.5        Mi     UR                  S SS	9  [        U S
SU05      $ )uy   Ð¡Ð¿Ð¸Ñ�Ð¾Ðº Ð²Ñ�ÐµÑ… Ñ�Ñ‚ÑƒÐ´ÐµÐ½Ñ‚Ð¾Ð² Ñ� Ñ€Ð¸Ñ�ÐºÐ°Ð¼Ð¸ (Ñ‚Ð¾Ð»ÑŒÐºÐ¾ Ð´Ð»Ñ� Ð¿Ñ€ÐµÐ¿Ð¾Ð´Ð°Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¹ Ð¸ Ð²Ñ‹ÑˆÐµ)rl   r%  r   r	  r  r  c                 ó    • U S   R                   $ )Nr  )r  r]   s    rJ   r_   Úrisk_list.<locals>.<lambda>
  s   €   6¡×!5Ò!5ra   T)rb   Úreversezrisk_list.htmlÚ	risk_list)r6   r7   rw   r   r   r2   r3   r  r<   r  r
  r   rz   re   rf   r   )
rD   rõ   Ú	risk_datar   Úpredr
  r   r!  r"  r#  s
             rJ   r*  r*  ÷  sÖ   € ð ‡|�|×ÑÐ FÓFÈwÏ|É|×Od×OdÜ˜Ó$Ð$ä�‰×"Ñ"Ó$€HØ€IÛˆØ×'Ñ'×-Ñ-Ó/ˆÞÝCÙ)?ÀÓ)HÑ&ˆE˜'Ü!×)Ñ)×0Ñ0Ø¸eØ#ð 1ð ˆDð 	×Ñ WÑ;Ö<ñ ð ‡N�NÑ5¸t€NÑDÜ�'Ð+¨k¸9Ð-EÓFÐFra   c                 óö  • U R                   R                  S:w  a  [        S5      $ U R                   R                  nUR                  R                  5       nU(       d0  SSKJn  U" U5      u  pEpg[        R                  R                  XUXgS9nSSKJn  UR                  R                  UR                  [        R                   " 5       R#                  5       S9R%                  S5      S	S
 n	['        U SUUU	S.5      $ )uJ   Ð¡Ñ‚Ñ€Ð°Ð½Ð¸Ñ†Ð° Ñ€Ð¸Ñ�ÐºÐ° Ð´Ð»Ñ� ÐºÐ¾Ð½ÐºÑ€ÐµÑ‚Ð½Ð¾Ð³Ð¾ Ñ�Ñ‚ÑƒÐ´ÐµÐ½Ñ‚Ð°r   r%  r   r	  r  )Ú
Assignment)r   Údeadline__gteÚdeadlineNrX   zmy_risk.html)r   r  Úupcoming_assignments)r6   r7   r   r   r  r<   r  r
  r   r2   rz   Úassignments.modelsr.  r8   r   r   r=   r   r@   r   )
rD   r   r,  r
  r   r!  r"  r#  r.  r1  s
             rJ   r  r    sì   € ð ‡|�|×Ñ˜IÓ%Ü˜Ó$Ð$à�l‰l×"Ñ"€GØ×#Ñ#×)Ñ)Ó+€DÞÝ?Ù%;¸GÓ%DÑ"ˆ�gÜ×%Ñ%×,Ñ,Ø¸%Øð -ð 
ˆõ .Ø%×-Ñ-×4Ñ4Ø�m‰mÜ—l’l“n×)Ñ)Ó+ð 5ð ÷ �hˆzÓ˜2˜AðÐô
 �'˜>ØØØ 4ñ,ó ð ra   c           	      ó²  • U R                   R                  S:w  a  [        S5      $ U R                   R                  nUR                  R                  5       nU R                  R                  S5      nU(       a  [        [        X1S9nOUR                  5       nU(       aR  UR                  R                  5       nU(       d0  SSKJn  U" U5      u  pxpš[        R                  R!                  XGUXšS9nOSn/ nU(       aL  UR"                  (       a;  [$        R                  R'                  UR"                  S	9R)                  S
SS5      SS n[+        U SUUUUS.5      $ )uP   Ð¡Ñ‚Ñ€Ð°Ð½Ð¸Ñ†Ð° ÑƒÑ�Ð¿ÐµÐ²Ð°ÐµÐ¼Ð¾Ñ�Ñ‚Ð¸ Ñ€ÐµÐ±Ñ‘Ð½ÐºÐ° Ð´Ð»Ñ� Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»Ñ�r   r%  Úchild)r   Úparentsr   r	  r  Nré   r"   r#   r$   rX   zchild_progress.html)r9   Úselected_childr  r-   )r6   r7   r   r   r9   r3   r4   r5   r   r   r<   r  r  r
  r   r2   rz   r   r   r8   r?   r   )rD   r   r9   Úselected_child_idr6  r,  r
  r   r!  r"  r#  r-   s               rJ   r  r  0  s?  € ð ‡|�|×Ñ˜HÓ$Ü˜Ó$Ð$à�\‰\× Ñ €FØ�‰×"Ñ"Ó$€HØŸ™Ÿ™¨Ó0ÐæÜ*¬7Ð7HÑY‰à!Ÿ™Ó)ˆæØ×.Ñ.×4Ñ4Ó6ˆÞÝCÙ)?ÀÓ)OÑ&ˆE˜'Ü!×)Ñ)×0Ñ0Ø&ÀUØ#ð 1ð ˆDøð
 ˆð €NÞ˜.×.×.Ü%×-Ñ-×4Ñ4¸>×;OÑ;OÐ4ÐP×_Ñ_Ð`iÐktØ`fóhØhjÐijðlˆô �'Ð0ØØ(ØØ(ñ	3ó ð ra   )*Údjango.shortcutsr   r   r   Údjango.contrib.auth.decoratorsr   Údjango.contribr   Údjango.httpr   r	   Úmodelsr   r   r   r   r   r   r   Úusers.modelsr   r   Úrisk.modelsr   r   r   ÚcalendarrK   rj   r|   r�   r„   rˆ   rá   ræ   r÷   rû   r  r%  r*  r  r  © ra   rJ   Ú<module>rA     s`  ðß @Ñ @Ý 9Ý #ß 2ß Z× ZÑ Zß )Ý &ß (Û ð
 ñ49ó ð49ðn ñ=ó ð=ðD ñ  ó ð  ðF ñ ó ð ð, ñ	 ó ð	 ð ñó ðð ñBó ðBðL ñ!<ó ð!<ðH ñ%<ó ð%<ðP ñ*ó ð*ð. ñó ðð< ñ(6ó ð(6ðV ñGó ðGð0 ñó ðð> ñ%ó ñ%ra   