U
    gf                     @   s*  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mZ d dl
mZmZ d dlZd dlZd d	lmZmZmZ d dlZd d
lmZ d dlmZ ddlmZ d dlmZ G dd deZG dd deeZG dd deZdd ZG dd dee	j Z!G dd dee	j"Z#G dd dee	j Z$dS )    )render   )SeminarTeaching_course)timezone)generic)CalendarEvent)vCalAddressvTextN)datetimer   	timedelta)SearchListView)
BaseFilter)SeminarSearchForm)ContextMixinc                   @   s   e Zd ZddddgiZdS )SeminarFiltersearch_texttitlespeaker_namespeaker_affiliationN)__name__
__module____qualname__search_fields r   r   "/var/www/nanotud/teaching/views.pyr      s    r   c                       sH   e Zd ZeZdZejjdddZ	dZ
dZeZeZ fddZ  ZS )	SeminarSearchListViewseminar_listT
showPublic-start_timeseminar_search.html   c           	         s   t dd}t }tt| jf |}|d }d }|D ]B}|j|krpd|_|j| }| dkrv||k rv|}|}q4d|_q4||d< |S )Ni'  )daysr   Zupcomingi  Zpastseminar_next)	r   timezoneDjangonowsuperr   get_context_data
start_timestatustotal_seconds)	selfkwargsZmin_diffr'   contextZ	seminar_lr%   seminardiff	__class__r   r   r)   "   s    


z&SeminarSearchListView.get_context_data)r   r   r   r   modelcontext_object_nameobjectsfilterorder_byquerysettemplate_namepaginate_byr   filter_classr   
form_classr)   __classcell__r   r   r2   r   r      s   r   c                   @   s8   e Zd ZeZdZejjdddZ	dZ
dZeZeZdS )SeminarALLListViewr   Tr   r!   r"   i N)r   r   r   r   r4   r5   r6   r7   r8   r9   r:   r;   r   r<   r   r=   r   r   r   r   r?   7   s   r?   c                 C   s  dt | d }dt | d }t }t }|dd| j d | j  |dt| jj| jj	| jj
| jj| jjdtjd	 |d
t| jj| jj	| jj
| jjd | jjdtjd	 tdt | j }t| j|jd< ||d< | jr&tt | jd |d< | jr8tt | jd t | j |d< ntt | j|d< tdt |   |d< dt |   |d< || t|d}| }|| |  tjdddd}	|	| |	jdd |	j ddd}
dt | d }|
!| dt | d }||fS ) Nz%/var/www/nanotud/uploads/seminar/ics/z.icsz/uploads/seminar/ics/summaryznanoSEMINAR - z - dtstartr   )tzinfoZdtendr   zMAILTO:cn	organizerz Dresden, Germanylocationz Dresden, Germany
z%More info: https://nano.tu-dresden.dedescriptionzhttps://nano.tu-dresden.deurlwb   )versionZbox_sizeborderT)fitblackwhite)fill
back_colorz/data/uploads/seminar/ics/z.png)"strr   r	   addr   r   r   r*   yearmonthdayhourminuter   utcr
   organisator_emailr   organisator_nameparamsroom
video_confget_absolute_urladd_componentopento_icalwritecloseqrcodeZQRCodeadd_datamakeZ
make_imagesave)r-   pkfile_name_icsZfile_name_ics_downloadcaleventrD   fZ	data_icalqrimgfile_name_qrr   r   r   
create_icsA   sD    48"




rp   c                       s6   e Zd ZeZdZdZejjddZ	 fddZ
  ZS )SeminarDetailViewzseminar_detail.htmlZseminar_detailTr   c                    sX   t  jf |}|  j|d< t|  |  jd |d< t|  |  jd |d< |S )NZics_filer   ri   r   ro   )r(   r)   
get_objectrh   rp   )r-   r.   r/   r2   r   r   r)   q   s
    z"SeminarDetailView.get_context_data)r   r   r   r   r4   r:   r5   r6   r7   r9   r)   r>   r   r   r2   r   rq   j   s
   rq   c                   @   s&   e Zd ZeZdZejjddZdZ	dS )Teaching_courseListViewZteaching_course_listTshow_publiczteaching_course_list.htmlN)
r   r   r   r   r4   r5   r6   r7   r9   r:   r   r   r   r   rs   }   s   rs   c                   @   s    e Zd ZeZdZdZdd ZdS )Teaching_courseDetailViewzteaching_course_detail.htmlZteaching_course_detailc                 C   s&   | j jjrtj S tjjddS d S )NTrt   )requestuseris_authenticatedr   r6   allr7   )r-   r   r   r   get_queryset   s    

z&Teaching_courseDetailView.get_querysetN)r   r   r   r   r4   r:   r5   r{   r   r   r   r   rv      s   rv   )%Zdjango.shortcutsr   modelsr   r   django.utilsr   r&   Zdjango.viewsr   	icalendarr   r	   r
   r   rd   pytzr   r   htmlsearch_views.searchr   Zsearch_views.filtersr   formsr   nanotud.add_global_contextr   r   r   r?   rp   
DetailViewrq   ListViewrs   rv   r   r   r   r   <module>   s(   
)