o
    c                     @   s   d dl mZ d dlmZ d dlmZmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ d dlZd	d
 Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd ZdS )    )HttpResponseRedirect)r2r)
CourseSiteSecureCourseFile)
SearchForm)Epoch)settings)PathNc                 C   s\   dt jjddi}t | jd |d< |d | |d< |d |d |d< | |d< |S )Ncoursep064)course__order_fieldepochcalendar
course_recrequest)r   objectsgetr   deserializesessionr   course_recordr   dic r   %/var/www/djphys/courses/p064/views.pyclass_defaults   s   r   c                 C   s   t | dt| S )Nzcourses/p064home.html)r   r   )r   r   r   r   home   s   r   c                 C   s"   t | }|d j}td| dS )Nr   z/survey/take/SM-pretest-/)r   yearr   )r   r   r   r   r   r   pretest   s   
r   c                 C   s^   t | }d|d< | jdkr"t| j}| r!|jd }t||d< nt }||d< t| d|S )N searchresultsPOSTterms
searchformzcourses/p064pages.html)r   methodr   r!   is_validcleaned_datalook_forr   )r   r   r#   r"   r   r   r   pages"   s   


r(   c           	      C   s   t | }d|d< tj|d< | jdkrRt| j}| rK|jd }t|}t	 }|D ]}|
d\}}||vr;|||< q)||  d| 7  < q)||d< nt }||d	< t| d
|S )Nr   r    URLGETr"   ,;buttonsr#   zcourses/p064search.html)r   r   P064URLr$   r   r*   r%   r&   r'   dictsplitr   )	r   r   r#   r"   hitscountsentryfiletermr   r   r   search0   s$   





r6   c                 C   s   t | }t| d|S )Nzcourses/p064project.html)r   r   r   r   r   r   projectJ   s   r7   c                 C   sp  t tj}t }g }d| v r/|  }td|D ]}|t|dtj	 | 
| d} q|  dD ]}t|rI|t|tj	tjB  q6t|dD ]d}zt|d d}W n tyu }	 z
t|	 W Y d	}	~	nd	}	~	ww |D ]<}
z
td
|d}W n ty }	 zt|	 d
}W Y d	}	~	nd	}	~	ww |
||d	 }|r||jd |   qxqQ|S )z
    Perform a search through the .html files in
    the directory specified in the settings field P064FILES.
    To get the search terms noticed, when will need to install them
    in an in-document javascript variable.
    "z"(.*?)"   r    *.htmlrbutf8Nr   z<!-- menu-end -->r+   )r	   r   	P064FILESsetrefinditerappendcompilegroupMreplacestripr0   lenIsortedglobopenreaddecode	Exceptionprintmaxfindr6   addname)r"   dirr1   patternscopymtr4   txteepspnr   r   r   r'   O   sB   
r'   c                  C   s(   t tj} | dD ]}t|d q
d S )Nr;   r   )r	   r   r>   rK   rewrite)rU   r4   r   r   r   clear_searchz   s   
r_   c                 C   sJ   d| d}t dd| dt| d t jt jB }t| d| d S )Nzvar search_terms = "z";z"<script id="search">(.*)?</script>z<script id="search">z	</script>rw)r@   subrL   rM   rE   DOTALLwrite)r4   search_termsssrZ   r   r   r   r^      s   
r^   )django.httpr   courses.viewsr   courses.modelsr   r   courses.formsr   djphys.epochr   django.confr   pathlibr	   r@   r   r   r   r(   r6   r7   r'   r_   r^   r   r   r   r   <module>   s"   	+