B
    =]$                 @   s(  d dl Z d dlZd dlmZmZmZmZ d dlmZ d dl	m
Z
mZ d dlmZmZ eddd Zed	d
d Zeddd Zeddd Zejddgddd Zdd Zeddd Zejddgddd Zdd  Zd+d"d#Zed$Zd%d& Zejd'd(dgdd)d* ZdS ),    N)render_templateredirectrequestsession)verb)ConjugationFormQuizForm)appGitRevz/holac               C   s   dS )NzHola, amigo! r   r   r   !/var/www/html/conj/appl/routes.pyhola   s    r   z
/showverbsc              C   s:   g } xt dD ]}| t  qW tdd| dtdS )N
   zsimple.htmlz<br>
zTen random verbs)bodytitlerevision)rangeappendr   Zrandomverbconjr   joinr
   )showir   r   r   	showverbs   s    r   /c               C   s   t ddtdS )Nz	menu.htmlAmigo)namer   )r   r
   r   r   r   r   mainmenu   s    r   z/verbpracticec              C   s^   t jd } dt| d}| dkr<t |d< d|d< td
|S t |d< d	|d< td|S d S )Nmoder   )r   r   r   Zesp2ingr   zPractice Spanish verbsr   verbpractice.htmlzPractice English verbs)r   )r   )r   argsr
   r   
randomverbr   Zeng_randomverb)r   rdictr   r   r   verbpractice    s    

r!   z/verbpractice/<verbinf>POST)methodsc             C   s   t jd }|dkrt| S t| s,td dt|| d}t jd dkrnt| |d< d	|  |d
< td|S t	| t jd rt| |d< d|  |d
< td|S t jd |d< d|  |d
< td|S d S )Nr   Zeng2spar   r   )r   r   r   r   nextzShow metranszShow verb: r   vp/show.htmltranslationu   ¡Correcto! — verb: vp/correct.htmlansweru   No correcto — verb: vp/incorrect.html)r&   )r(   )r*   )
r   form
vp_eng_infr   
chkspaverbr   r
   spa_trans_strr   matchtranslation)verbinfr   r    r   r   r   vp_inf3   s(    



r1   c             C   s   t jd }t| std dt|| d}t jd dkr^t| |d< d|  |d	< td|S t| t jd rt| |d< d|  |d	< td|S t jd |d< d|  |d	< td|S d S )Nr   r   r   )r   r   r   r   r$   zShow mer%   zShow verb: r   vp/show.htmlr'   vp/correct.htmlr)   u   No correcto — verb: vp/incorrect.html)r2   )r3   )r4   )	r   r+   r   Z
chkengverbr   r
   Zeng_trans_strr   Zmatchengtranslation)r0   r   r    r   r   r   r,   Q   s$    



r,   z/conjpracticec               C   s   t dddddtdS )Nzconjpractice.htmlr    zPractice verb conjugation)r   r   r%   r   r   )r   r
   r   r   r   r   conjpracticek   s    r6   z/conjpractice/<verbinf>c             C   s  t | std t }| s(td dt| t | |d}|jjr|j	j|d< |j
j|d< d|j
j d|  |d	< t | |j
jt |j	j|d
< td|S |j	jst  }t  }||d< ||d< d| d|  |d	< td|S |jjrHt | |j
j|j	j|jjrH|j	j|d< |j
j|d< d|j
j d|  |d	< td|S |j	j|d< |j
j|d< d|j
j d|  |d	< |jj|d< d|j_td|S d S )Nr   z/conjpracticer   )r   r   r   r%   r+   pronountensezShow verb conjugation (z	 tense): r   Zconjugationcp/show.htmlzPractice verb conjugation (conjpractice.htmlcp/correct.htmlr)   r5   cp/incorrect.html)r9   )r:   )r;   )r<   )r   r-   r   r   validate_on_submitr
   r.   showmedatar7   r8   	conjugatepronoun2personr   ZrandompronounZrandomtenser)   matchconjugation)r0   r+   r    r7   r8   r   r   r   cp_inft   sH    



rC   c              C   s   t  } d|  dd| dg}d}xt jD ]}t |}xzt|D ]n}i }|sdd|  d| d|d	< d
|d< | |d< ||d< | }| d|  d| d|d< ||d< || qBW q*W |S )NzTranslate to Englishz in English:	trans2eng)headerquestiontyper      z
Conjugate z in z tenserE   ZconjrG   r   r8   z (z):rF   r7   )r   r   Z
TenseNamesZrandompronounsr   popr   )ZrandverbqZnumconjtnZpronounsr   dr7   r   r   r   new_quiz   s(    

rM   Fc          	   C   s2  d}x"| D ]}| dr,|r|d}qd |d< |d dkr|rXt|d |d< nJ|d}|sp|d7 }qt|d |r||d< n|d7 }d	| d
|d< q|rt|d |d t|d |d< q|d}|s|d7 }qt|d |d |d |r||d< q|d7 }d	| d
|d< qW |dkS )Nr   correcterrmsgrG   rD   r   r)      zNo, "z" is incorrectr8   r7   )getrI   r   r.   r/   r@   rA   rB   )quizanswersr   ZnumwrongrJ   r)   r   r   r   
grade_quiz   s>    





rT   z
\w*-(\d+)$c             C   s8   x2| D ]*}t |j}|rt|d|kr|S qW d S )NrP   )	FormIntREmatchr   intgroup)Zformanswersindexfamr   r   r   formans   s
    
r\   z/quizGETc        
      C   s  t dd} dt| d}tjdkrxt  td< }x6tt|D ]&}| j	  | j| dd|| d	< q<W ||d< t
d|S td }|  std | jjr t|d dd x<t|D ]0\}}t| j|}|rddi|_|dd|d	< qW ||d< d|d< t
d|S dd tt|D }x@| jD ]6}t|j}|rJ|j|t|d< ntd qW t||}	xLt|D ]@\}}|drlt| j|}|rlddi|_|dd|d	< qlW |td< ||d< |	|d< t
d|S )N   )Zmax_questionsr   )r   r   r+   r]   rR   off)autocompleteZ	formentry	quiz.htmlr   T)r   disabledfinishedc             S   s   g | ]}d qS )Nr   ).0r   r   r   r   
<listcomp>  s    zquiz.<locals>.<listcomp>rP   zwtf? -- formanswersrN   )ra   )ra   )ra   )r   r
   r   methodrM   r   r   lenrS   Zappend_entryr   r=   r   r>   r?   rT   	enumerater\   Z	render_kwrU   rV   r   rW   rX   printrQ   )
r+   r    rR   r   nrJ   rZ   Zmyformanswersr[   rc   r   r   r   rR      sR    








rR   )F)osreflaskr   r   r   r   applr   Z
appl.formsr   r   r	   r
   router   r   r   r!   r1   r,   r6   rC   rM   rT   compilerU   r\   rR   r   r   r   r   <module>   s"   
	0
'
