
xW                 @   s  d  d l  m Z d  d l m Z d  d l m Z d  d l m Z m Z m	 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 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)(    )render)RequestContext)Download)StreamingHttpResponseHttpResponseHttp404c             C   s   t  |  |  S)N)r   )requesttemplate r
   /var/www/djphys/igor/views.pyderp   s    r   c             C   s   t  |  d  S)Nzigor/short.html)r   )r   r
   r
   r   short_intro   s    r   c             C   s   t  |  d  S)Nzigor/long.html)r   )r   r
   r
   r   
long_intro   s    r   c             C   s   t  |  d  S)Nzigor/screencasts.html)r   )r   r
   r
   r   videos   s    r   c             C   s   t  |  d  S)Nzigor/faq.html)r   )r   r
   r
   r   faq   s    r   c             C   s   t  |  d  S)Nzigor/fitting.html)r   )r   r
   r
   r   fitting   s    r   c             C   s   t  |  d  S)Nzigor/power.html)r   )r   r
   r
   r   	power_law   s    r   c             C   s   t  |  d  S)Nzigor/propagation.html)r   )r   r
   r
   r   propagation   s    r   c             C   s   t  |  d  S)Nzigor/statistics.html)r   )r   r
   r
   r   
statistics   s    r   c             C   s   t  |  d  S)Nzigor/spreadsheets.html)r   )r   r
   r
   r   spreadsheets   s    r   c             C   s   t  |  d  S)Nzigor/HMCproc.html)r   )r   r
   r
   r   menu   s    r   c             C   s   t  |  d  S)Nzigor/hmc_menu.html)r   )r   r
   r
   r   hmcmenu   s    r   c             K   s   t  |  d |  S)Nzigor/igor.html)r   )r   kwargsr
   r
   r   main   s    r   c             C   s   |  j  d k r t |   S|  j d } d d l m } | |  } |   sg t |  d d j |  i  S| j } d } | j   d k r d	 } n$ | j   d
 k r | j   j	   } | s t |  d d j |  St
 j j d |  } | j   t |  |  S)NPOSTnamer   )IdentifyPersonerroru   I did not recognize ‘{0}’FfacultyTstudentz{0} is not a valid userperson)methodr   r   people.identifierr   formatr    is_xsubclass	is_activer   objectscreatesendsend_download_info)r   r   r   pipeepZlegitdr
   r
   r   download   s$    
			
r.   c             C   s"   t  |   } t |  d d | i  S)Nzigor/send_download_info.htmlr.   )r   r   )r   r.   cr
   r
   r   r*   0   s    r*   c             C   s   |  j  d k r t |   Sy |  j d } t j j d |  } | j rZ t |  d d i  Sd d  l } | j j   | _ | j	   |  j d } d d d	 d
 d d d d i } | | } t
 |  d j |   SWn Yn Xt |   S)Nr   keyr   zThat key has already been used.r   versionZmac7z	Igor7.dmgZmac6z	Igor6.dmgZwin7zsetupIgor7.exeZwin6zsetupIgor6.exez/var/private/docs/igor/{0})r!   r   r   r   r'   get	retrieveddatetimenowsave	xsendfiler#   )r   r0   Zthe_downloadr4   r1   mfilenamer
   r
   r   do_download5   s$    
	

r:   c          	   C   s`  t  d j |   d d l } d d l } d d l m } | j |  d } | j r d d l m	 } | t
 | d   } | d k r t | d | } n, t | d d	 } d
 | j j |  | d <| j j |  | d <| Syh t d |  } d | d <d d l }	 |	 j j | j d   }
 |
 | d <d
 | j j |  | d <Wn t  Yn X| S)z
        This is a fake version of xsendfile that actually serves the file from
        within Django. Note that the directories up the line must be executable for
        www-data and that the file itself must be visible to www-data.
    zxsendfile for {0}r   N)settings)FileWrapperrbz
image/jpegcontent_typezapplication/force-downloadzattachment; filename=zContent-DispositionzContent-Length zContent-Typezutf-8z
X-Sendfile)printr#   	mimetypesosdjango.confr;   
guess_typeDEBUGwsgiref.utilr<   openr   pathbasenamegetsizer   urllib.parseparsequoteencoder   )r   rH   rA   rB   r;   contentTyper<   wrapperresponseurllibur
   r
   r   r7   I   s0    	

r7   N)django.shortcutsr   django.templater   Zigor.modelsr   django.httpr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r.   r*   r:   r7   r
   r
   r
   r   <module>   s(   