
    =]$                        S SK r S SKrS SKJrJrJrJr  S SKJr  S SK	J
r
Jr  S SKJrJr  \R                  " S5      S 5       r\R                  " S5      S	 5       r\R                  " S
5      S 5       r\R                  " S5      S 5       r\R                  " SS/S9S 5       rS r\R                  " S5      S 5       r\R                  " SS/S9S 5       rS rSS jr\R2                  " S5      rS r\R                  " SSS/S9S 5       rg)    N)render_templateredirectrequestsession)verb)ConjugationFormQuizForm)appGitRevz/holac                      g)NzHola, amigo! r       !/var/www/html/conj/appl/routes.pyholar      s    r   z
/showverbsc                      / n [        S5       H'  nU R                  [        R                  " 5       5        M)     [	        SSR                  U 5      S[        S9$ )N
   zsimple.htmlz<br>
zTen random verbs)bodytitlerevision)rangeappendr   randomverbconjr   joinr   )showis     r   	showverbsr      sK    D2YD'')* = (d 3!3$*, ,r   /c                       [        SS[        S9$ )Nz	menu.htmlAmigo)namer   r   r   r   r   r   mainmenur"      s    ; '$*, ,r   z/verbpracticec                      [         R                  S   n S[        U S.nU S:X  a(  [        R                  " 5       US'   SUS'   [        S	0 UD6$ [        R                  " 5       US'   SUS'   [        S	0 UD6$ )
Nmoder   )r    r   r$   esp2ingr   zPractice Spanish verbsr   zPractice English verbs)zverbpractice.html)r   argsr   r   
randomverbr   eng_randomverb)r$   rdicts     r   verbpracticer*       s|    <<D E y)f1g<e<<++-f1g<e<<r   z/verbpractice/<verbinf>POST)methodsc                 6   [         R                  S   nUS:X  a  [        U 5      $ [        R                  " U 5      (       d  [        S5        S[        UU S.n[         R                  S   S:X  a,  [        R                  " U 5      US'   S	U  3US
'   [        S0 UD6$ [        R                  " U [         R                  S   5      (       a,  [        R                  " U 5      US'   SU  3US
'   [        S0 UD6$ [         R                  S   US'   SU  3US
'   [        S0 UD6$ )Nr$   eng2spar   r   r    r   r$   r   nextShow metransShow verb: r   translationu   ¡Correcto! — verb: answer   No correcto — verb: zvp/show.htmlzvp/correct.htmlzvp/incorrect.html)
r   form
vp_eng_infr   
chkspaverbr   r   spa_trans_strr   matchtranslationverbinfr$   r)   s      r   vp_infrA   3   s   <<Dy'""??7## 	E ||Fy(++G4g&wi0g777			w](C	D	D++G4g1';g:E::!,,}5h1';g<e<<r   c                    [         R                  S   n[        R                  " U 5      (       d  [	        S5        S[
        UU S.n[         R                  S   S:X  a,  [        R                  " U 5      US'   SU  3US	'   [        S0 UD6$ [        R                  " U [         R                  S
   5      (       a,  [        R                  " U 5      US'   SU  3US	'   [        S0 UD6$ [         R                  S
   US'   SU  3US	'   [        S0 UD6$ )Nr$   r   r   r/   r0   r1   r2   r3   r   r4   r5   r6   r7   r8   r9   )	r   r:   r   
chkengverbr   r   eng_trans_strr   matchengtranslationr?   s      r   r;   r;   Q   s    <<D??7## 	E ||Fy(++G4g&wi0g777		!	!'7<<+F	G	G++G4g&wi0g:E::!,,}5h1';g<e<<r   /conjpracticec            	      &    [        SSSSS[        S9$ )Nconjpractice.htmlr    zPractice verb conjugation)r    r   r2   r   r   r!   r   r   r   conjpracticerJ   k   s!    . ' "!##<$*, ,r   z/conjpractice/<verbinf>c                    [         R                  " U 5      (       d  [        S5        [        5       nUR	                  5       (       d  [        S5        S[
        U [         R                  " U 5      US.nUR                  R                  (       a  UR                  R                  US'   UR                  R                  US'   SUR                  R                   SU  3US	'   [         R                  " XR                  R                  [         R                  " UR                  R                  5      5      US
'   [        S0 UD6$ UR                  R                  (       dH  [         R                  " 5       n[         R                  " 5       nX2S'   XBS'   SU SU  3US	'   [        S0 UD6$ UR                   R                  (       a  [         R"                  " XR                  R                  UR                  R                  UR                   R                  5      (       a\  UR                  R                  US'   UR                  R                  US'   SUR                  R                   SU  3US	'   [        S0 UD6$ UR                  R                  US'   UR                  R                  US'   SUR                  R                   SU  3US	'   UR                   R                  US'   SUR                   l        [        S0 UD6$ )Nr   rF   r   )r    r   r   r2   r:   pronountensezShow verb conjugation (z	 tense): r   conjugationzPractice verb conjugation (r5   rI   )zcp/show.html)rH   )zcp/correct.html)zcp/incorrect.html)r   r<   r   r   validate_on_submitr   r=   showmedatarL   rM   	conjugatepronoun2personr   randompronounrandomtenser5   matchconjugation)r@   r:   r)   rL   rM   s        r   cp_infrW   t   s]   ??7##D""$$! $$W-E {{<<,,ig)$**//):)G9M 	g#~~gzz#'#6#6t||7H7H#I Km777\\$$&  ""ig6ugYwiPg<e<<			d33GZZ__'+||'8'8$++:J:JL L<<,,ig)$**//):)G9M 	g:E::<<,,ig)$**//):)G9M 	g++**h<e<<r   c                  r   [         R                  " 5       n SU  S3SU S./nSn[         R                   H  n[         R                  " U5      n[	        U5       HX  n0 nU(       d  SU  SU S3US	'   S
US'   XS'   X6S'   UR                  5       nU SU  SU S3US'   XvS'   UR                  U5        MZ     M     U$ )NzTranslate to Englishz in English:	trans2eng)headerquestiontyper      z
Conjugate z in z tenserZ   conjr\   r   rM   z (z):r[   rL   )r   r'   
TenseNamesrandompronounsr   popr   )randverbqnumconjtnpronounsr   drL   s           r   new_quizrh      s     H 2 (z6$!		
A Goo&&w/wAA *8*DFC(AfI fIgJllnG&ir(4t2>AjM"iLHHQK    Hr   c           	         SnU  GHX  nUR                  S5      (       a  U(       a  UR                  S5      nM4  S US'   US   S:X  ay  U(       a  [        R                  " US   5      US'   Mg  UR                  S5      nU(       d  US-  nM  [        R                  " US   U5      (       a  XTS'   M  US-  nS	U S
3US'   M  U(       a:  [        R
                  " US   US   [        R                  " US   5      5      US'   M  UR                  S5      nU(       d  US-  nGM  [        R                  " US   US   US   U5      (       a  XTS'   GMJ  US-  nS	U S
3US'   GM[     US:H  $ )Nr   correcterrmsgr\   rY   r   r5      zNo, "z" is incorrectrM   rL   )getra   r   r=   r>   rR   rS   rV   )quizanswersr   numwrongrc   r5   s         r   
grade_quizrq      sd   H55 Q(V9#"006;( QMH((6F;;#)iLMH$)&"@AhK"nnQvY'
#'#6#6q|#DF( !QMH((6AgJ)FLN N#)iLMH$)&"@AhKC F q=r   z
\w*-(\d+)$c                     U  HM  n[         R                  UR                  5      nU(       d  M+  [        UR	                  S5      5      U:X  d  MK  Us  $    g )Nrl   )	FormIntREmatchr    intgroup)formanswersindexfams       r   formansr{      s@    OOBGG$1QWWQZE)I  r   z/quizGETc                     [        SS9n S[        U S.n[        R                  S:X  ao  [	        5       =[
        S'   n[        [        U5      5       H5  nU R                  R                  5         U R                  U   " SS9X#   S	'   M7     X!S'   [        S0 UD6$ [
        S   nU R                  5       (       d  [        S
5        U R                  R                  (       ad  [        US SS9  [!        U5       H6  u  pE[#        U R                  U5      nU(       d  M$  SS0Ul        U" SS9US	'   M8     X!S'   SUS'   [        S0 UD6$ [        [        U5      5       Vs/ s H  nS PM     nnU R                   H]  n[&        R)                  UR*                  5      nU(       a)  UR                  U[-        UR/                  S5      5      '   MR  [1        S5        M_     [        X'5      n	[!        U5       HN  u  pEUR3                  S5      (       d  M  [#        U R                  U5      nU(       d  M<  SS0Ul        U" SS9US	'   MP     U[
        S'   X!S'   XS'   [        S0 UD6$ s  snf )N   )max_questionsr   )r    r   r:   r|   rn   off)autocomplete	formentryr   T)r   disabledfinishedrl   zwtf? -- formanswersrj   )z	quiz.html)r	   r   r   methodrh   r   r   lenro   append_entryr   rO   r   rP   rQ   rq   	enumerater{   	render_kwrs   rt   r    ru   rv   printrm   )
r:   r)   rn   r   nrc   ry   myformanswersrz   r   s
             r   rn   rn      s   "%D E ~~!)+$s4y!ALL%%'#'<<?#FDGK  " f4e44 6?D""$${{4D)dODAq)Br!+d4!#!7+	 $
 f j4e44 %*#d)$46$4qd$4M6llOOBGG$-/WWM#aggaj/*'(  $.H$55q)Br!+d4!#!7+   GFO&M *0%00# 7s   I)F)osreflaskr   r   r   r   applr   
appl.formsr   r	   r
   r   router   r   r"   r*   rA   r;   rJ   rW   rh   rq   compilers   r{   rn   r   r   r   <module>r      s5    = =  0 7  <, , 3, ,
 ?= =$ $j9= :=:=4 ?, , $j9-= :-=^8%N JJ}%	 7eV,-41 .41r   