
    g                        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e          Z G d dee          Z G d de          Zd Z G d dee	j                   Z! G d dee	j"                  Z# G d dee	j                   Z$dS )    )render   )SeminarTeaching_course)timezone)generic)CalendarEvent)vCalAddressvTextN)datetimer   	timedelta)SearchListView)
BaseFilter)SeminarSearchForm)ContextMixinc                       e Zd Zdg diZdS )SeminarFiltersearch_text)titlespeaker_namespeaker_affiliationN)__name__
__module____qualname__search_fields     "/var/www/nanotud/teaching/views.pyr   r      s!        GGGMMMr   r   c                        e Zd ZeZdZej                            d                              d          Z	dZ
dZeZeZ fdZ xZS )SeminarSearchListViewseminar_listT
showPublic-start_timeseminar_search.html   c                 B   t          d          }t          j                    } t          t          |           j        di |}|d         }d }|D ]H}|j        |k    r4d|_        |j        |z
  }|                                dk    r
||k     r|}|}Ad|_        I||d<   |S )	Ni'  )daysr"   upcomingi  pastseminar_nextr   )	r   timezoneDjangonowsuperr!   get_context_data
start_timestatustotal_seconds)
selfkwargsmin_diffr.   context	seminar_lr,   seminardiff	__class__s
            r   r0   z&SeminarSearchListView.get_context_data"   s    %((( ""D%-d33DNNvNN.)	  		( 		(G!S((!+)C/%%''$..4(??'.#'!' ,r   )r   r   r   r   modelcontext_object_nameobjectsfilterorder_byquerysettemplate_namepaginate_byr   filter_classr   
form_classr0   __classcell__r;   s   @r   r!   r!      s}        E(%%%66??NNH)MK L"J        r   r!   c                       e Zd ZeZdZej                            d                              d          Z	dZ
dZeZeZdS )SeminarALLListViewr"   Tr#   r%   r&   i N)r   r   r   r   r<   r=   r>   r?   r@   rA   rB   rC   r   rD   r   rE   r   r   r   rI   rI   7   sS        E(%%%66??NNH)MK L"JJJr   rI   c                    dt          |          z   dz   }dt          |          z   dz   }t                      }t                      }|                    dd| j        z   dz   | j        z              |                    dt          | j        j        | j        j	        | j        j
        | j        j        | j        j        dt          j        	                     |                    d
t          | j        j        | j        j	        | j        j
        | j        j        dz   | j        j        dt          j        	                     t          dt          | j                  z             }t#          | j                  |j        d<   ||d<   | j        rkt#          t          | j                  dz             |d<   | j        r<t#          t          | j                  dz   t          | j                  z             |d<   n$t#          t          | j                            |d<   t#          dt          |                                           z             |d<   dt          |                                           z   |d<   |                    |           t1          |d          }|                                }|                    |           |                                 t9          j        ddd          }	|	                    |           |	                    d           |	                     dd          }
dt          |          z   dz   }|
!                    |           dt          |          z   dz   }||fS ) Nz%/var/www/nanotud/uploads/seminar/ics/z.icsz/uploads/seminar/ics/summaryznanoSEMINAR - z - dtstartr   )tzinfo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   )versionbox_sizeborderT)fitblackwhite)fill
back_colorz/data/uploads/seminar/ics/z.png)"strr	   r
   addr   r   r   r1   yearmonthdayhourminuter   utcr   organisator_emailr   organisator_nameparamsroom
video_confget_absolute_urladd_componentopento_icalwritecloseqrcodeQRCodeadd_datamake
make_imagesave)r4   pkfile_name_icsfile_name_ics_downloadcaleventrP   f	data_icalqrimgfile_name_qrs               r   
create_icsr   A   sT   ;c"ggENM4s2ww>G
**CGGE	IIi)$*;;EA$*LMMM	IIi$/"6t7LT_M`aeapauvz  wF  wM  NO  W_  Wc  d  d  d  e  e  e	IIgx 4T_5J4?K^_c_n_stu_uvz  wF  wM  NO  W_  Wc  d  d  d  e  e  eIc$*@&A&AABBI"4#899IT"E+y 8!#di..1D"DEEj? 	a %c$)nn5J&J3tK_K_&_ ` `E*!#do"6"677jFs4K`K`KbKbGcGccddE--c$2G2G2I2I.J.JJE%Lemd##AkkmmIGGIGGIII	

 

 

B KK	GGG
--wW-
=
=C/#b''9FBLHH\*SWW4v=L!,..r   c                   `     e Zd ZeZdZdZej                            d          Z	 fdZ
 xZS )SeminarDetailViewzseminar_detail.htmlseminar_detailTr#   c                 z    t                      j        di |}|                                 j        |d<   t	          |                                 |                                 j                  d         |d<   t	          |                                 |                                 j                  d         |d<   |S )Nics_filer   rx   r   r   r   )r/   r0   
get_objectrw   r   )r4   r5   r7   r;   s      r   r0   z"SeminarDetailView.get_context_dataq   s    *%''*44V44"oo//2
#-doo.?.?@Q@Q@T#U#UVW#X ",T__->->t?P?P?S"T"TUV"Wr   )r   r   r   r   r<   rB   r=   r>   r?   rA   r0   rF   rG   s   @r   r   r   j   s`        E)M*%%%66H        r   r   c                   `     e Zd ZeZdZej                            d          ZdZ	 fdZ
 xZS )Teaching_courseListViewteaching_course_listTshow_publiczteaching_course_list.htmlc                     t                      j        di |}|d         D ]}t          |j                                                  }t          |j                                                  }t          |j                                                  }d |D             }g }||z   D ]$}	|	j        |vr|	|vr|                    |	           %g }
|D ]}	|	|
vr|
                    |	           ||
z   |_	        |S )Nr   c                     h | ]	}|j         
S r   rw   .0persons     r   	<setcomp>z;Teaching_courseListView.get_context_data.<locals>.<setcomp>   s    CCCVvyCCCr   r   )
r/   r0   listteacheralltutorresponsible_personrw   appendall_persons)r4   r5   r7   courseteacherstutorsresponsibleresponsible_pksnon_responsibler   unique_responsibler;   s              r   r0   z(Teaching_courseListView.get_context_data   s-   *%''*44V4445 	F 	FFFN..0011H&,**,,--Fv8<<>>??KCC{CCCO O"V+ 7 79O33_44'..v666!#% 6 6!333&--f555!03E!EFr   )r   r   r   r   r<   r=   r>   r?   rA   rB   r0   rF   rG   s   @r   r   r   }   sa        E0&--$-??H/M        r   r   c                   0     e Zd ZeZdZdZd Z fdZ xZ	S )Teaching_courseDetailViewzteaching_course_detail.htmlteaching_course_detailc                     | j         j        j        rt          j                                        S t          j                            d          S )NTr   )requestuseris_authenticatedr   r>   r   r?   )r4   s    r   get_querysetz&Teaching_courseDetailView.get_queryset   sB    <- 	D"*..000"*11d1CCCr   c                     t                      j        di |}| j        }t          |j                                                  }t          |j                                                  }t          |j                                                  }d |D             }g }||z   D ]$}	|	j        |vr|	|vr|	                    |	           %g }
|D ]}	|	|
vr|
	                    |	           ||
z   }||d<   |S )Nc                     h | ]	}|j         
S r   r   r   s     r   r   z=Teaching_courseDetailView.get_context_data.<locals>.<setcomp>   s    ???69???r   r   r   )
r/   r0   objectr   r   r   r   r   rw   r   )r4   r5   r7   r   r   r   r   r   r   r   r   r   r;   s               r   r0   z*Teaching_courseDetailView.get_context_data   s    *%''*44V44**,,--fl&&(())6488::;;??;???' 	/ 	/Fy//F/4Q4Q&&v...! 	2 	2F///"))&111%(::!,r   )
r   r   r   r   r<   rB   r=   r   r0   rF   rG   s   @r   r   r      sZ        E1M2D D D        r   r   )%django.shortcutsr   modelsr   r   django.utilsr   r-   django.viewsr   	icalendarr	   r
   r   r   rq   pytzr   r   htmlsearch_views.searchr   search_views.filtersr   formsr   nanotud.add_global_contextr   r   r!   rI   r   
DetailViewr   ListViewr   r   r   r   r   <module>r      s+   # # # # # # + + + + + + + + 3 3 3 3 3 3             % % % % % % % % ( ( ( ( ( ( ( (   0 0 0 0 0 0 0 0 0 0  . . . . . . + + + + + + $ $ $ $ $ $ 3 3 3 3 3 3    J       L.   <# # # # # # # #'/ '/ '/R    g&8   &    lG,<   6    g.@     r   