3

@t[%                 @   s   d dl mZmZ d dlmZ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lZd dlmZ d dlZd dlZd dlZd	d
 Zdd Zdd Zd dlmZ G dd deZe
edd Ze
edd ZdS )    )renderget_object_or_404)HttpResponseRedirectHttpResponseHttpResponseBadRequest)RequestContext)user_passes_test)settings)NewsItemN)is_fac_or_adminc             C   s   yt jj|d}W n   tdS g }xjt jjddD ]X}t|dksb|t|d  d |jjkrt|j|jjg g |t|d  d j| q6W t	| d||jjd|dd	S )
N)idz/news/s)categoryr      znews/detail.html   )theStorytheYearmenu_base_urlstoriesmaxwords)
r
   objectsgetr   filterlendateyearappendr   )requestpkr   r   r    r   /var/www/djphys/news/views.pydetail   s    (r!   c             C   sp   yt jj|d}W n6   t jjdd}|j dkr<tdS |d }Y nX t| d||jjdt jjddddS )	N)r   P)r   r   z/news/znews/profile.htmlr   )r   r   r   r   r   )	r
   r   r   r   countr   r   r   r   )r   r   r   r   r   r    profile#   s    r$   c             C   s   t t|d}t| dd|iS )N)r   znews/announcement.htmlannouncement)r   r
   r   )r   r   Zthe_announcementr   r   r    r%   4   s    r%   )Imagec               @   sL   e Z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 )Picc          
   C   sF   || _ || _tj| j }|j\| _| _W d Q R X | j| j | _d S )N)	dirnamer&   openpathsizewidthheightaspect)selfr(   r)   imr   r   r    __init__<   s
    zPic.__init__c             C   s   | j S )N)r)   )r0   r   r   r    __str__C   s    zPic.__str__c             C   s   t jjtjdS )Nphotos)osr+   joinr	   
MEDIA_ROOT)r0   r   r   r    rootF   s    zPic.rootc             C   s   t jj| j | j| jS )N)r5   r+   r6   r8   r(   r)   )r0   r   r   r    r+   I   s    zPic.pathc             C   s   t jjtjdS )Nr4   )r5   r+   r6   r	   	MEDIA_URL)r0   r   r   r    baseurlL   s    zPic.baseurlc             C   s$   t jj| j | j| j}tjj|S )N)	r5   r+   r6   r:   r(   r)   urllibparsequote)r0   tr   r   r    urlO   s    zPic.urlc             C   s.   t jj| j | jd| j}| j  tjj	|S )Nthumb)
r5   r+   r6   r:   r(   r)   
make_thumbr;   r<   r=   )r0   r>   r   r   r    r@   S   s    z	Pic.thumbc             C   sN   t jj| j | jd| j}t jj|sJtjddddj	| j dj	|g d S )Nr@   convertz-resizez12.5%z{0})
r5   r+   r6   r8   r(   r)   exists
subprocesscallformat)r0   r>   r   r   r    rA   X   s    zPic.make_thumbN)__name__
__module____qualname__r2   r3   r8   r+   r:   r?   r@   rA   r   r   r   r    r'   ;   s   r'   c             C   sb  t jjtjd}tj|}t jj||}t jj|d}t jj|sLt j| g }g }xzt j	|D ]l}t jj||}	t jj
|	rt jj|\}
}|j dkr|jt||d q`t jj|	r`|dkr`|j| q`W |jdd d	 |j  dg}xB|jdD ]4}| r|j|t jj|d d tjj|f  qW t|dkrH|j  ||||d}t| d|S )z
    Given a valid logged in user and a suitable path to a folder, 
    of images, produce a page of thumbnails with links to the
    photographs. We will look to the settings module for the
    location of these files.
    r4   r@   .jpg.jpeg.png)r(   r)   c             S   s   dj d| j | jS )Nz
{0:.2f}{1}g      ?)rF   r/   r)   )xr   r   r    <lambda>   s    zdirectory.<locals>.<lambda>)keyhome/photos/r   )pixdirsr+   targetznews/picdic.html)rJ   rK   rL   )rP   rQ   )r5   r+   r6   r	   r7   htmlunescaperC   mkdirlistdirisfilesplitextlowerr   r'   isdirsortsplitr;   r<   r=   r   popr   )r   r   baserU   destinationZthumbspicsrT   fpbextr+   dparamsr   r   r    	directory^   s4    

.rk   c             C   s
   t | dS )N )rk   )r   r   r   r    basedirectory   s    rm   )django.shortcutsr   r   django.httpr   r   r   django.templater   django.contrib.auth.decoratorsr   django.confr	   Znews.modelsr
   r5   os.pathpeople.funcsr   rW   r;   rD   r!   r$   r%   PILr&   objectr'   rk   rm   r   r   r   r    <module>   s$   #/