
    g9                        d dl mZ d dlmZmZ d dlmZ ddlmZm	Z	m
Z
mZmZmZmZmZmZmZmZ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  ej        e           G d dej                              Z  ej        e           G d dej                              Z! ej        e           G d dej                              Z" ej        e           G d dej                              Z# ej        e           G d dej                              Z$ G d dej%                  Z& G d dej%                  Z' ej        e
           G d dej                              Z( G d dej%                  Z) ej        e           G d dej                              Z* G d d ej%                  Z+ ej        e           G d! d"ej                              Z,d#S )$    )admin)renderredirect)path   )Group
GroupTopicMemberDevicePostnominalHalslide
Member_tacCVShared_documentShared_document_further_filesResearchslideTeachingslide)create_publication_includepdflatex_cv)	mark_safe)UpdateIntegerFieldForm)reverse)format_htmlc                       e Zd Z ej        d          d             Z ej        d          d             ZeegZd
dZd
dZ	g d	Z
dS )CVAdminzupdate publications for CV)descriptionc                 $    t          |           d S N)r   
modeladminrequestquerysets      "/var/www/nanotud/internal/admin.pypublication_includezCVAdmin.publication_include   s    "8,,,,,    zUpdate PDF from TeX filec                 $    t          |           d S r   )r   r   s      r#   
create_PDFzCVAdmin.create_PDF   s    Hr%   Nc                     dS NF selfr!   objs      r#   has_delete_permissionzCVAdmin.has_delete_permission       ur%   c                     dS r)   r*   r+   s      r#   has_add_permissionzCVAdmin.has_add_permission   r/   r%   )pdf_file	pdf_shortlog_filer   )__name__
__module____qualname__r   actionr$   r'   actionsr.   r1   readonly_fieldsr*   r%   r#   r   r      s        U\:;;;- - <;- U\8999  :9":.G       :99OOOr%   r   c                   P     e Zd ZdZdZdZdgZd Zde_         fdZ	d
 fd		Z
 xZS )HalslideAdminzhalway__change_list_form.htmlnamedatetimeshowTupdate_display_timec                    d|j         v rt          |j                   }|                                r^|j        d         }|                    |           |                     |d| d           t          |                                          S |                     |d           d S t                      }||t          j	        j
        d}t          |d|          S 	Napplynew_integer_value)r@   zUpdated display time value to z seconds for selected slides.zThe form is not valid.)formslidesaction_checkbox_namezadmin/update_display_time.htmlPOSTr   is_validcleaned_dataupdatemessage_userr   get_full_pathr   helpersACTION_CHECKBOX_NAMEr   r,   r!   r"   rG   	new_valuecontexts         r#   rB   z!HalslideAdmin.update_display_time)       gl"")',77D}} E -.AB	Y///!!'+tI+t+t+tuuu 5 5 7 7888!!'+CDDDDD)++D"(-(J G
 '#CWMMMr%   'Update display time for selected slidesc                     t                                                      }t          d| j                            | j                  d          g}||z   S Nzupdate-integer/zupdate-integer)r>   superget_urlsr   
admin_site
admin_viewrB   r,   urlscustom_urls	__class__s      r#   r\   zHalslideAdmin.get_urls>   S    ww!!"DO$>$>t?W$X$X_oppp
 T!!r%   Nc                 r    |pi }t                      |d<   t                                          ||          S Nupdate_integer_formr   r[   changelist_viewr,   r!   extra_contextrb   s      r#   rh   zHalslideAdmin.changelist_viewE   8    %+/E/G/G+,ww&&w>>>r%   r   r5   r6   r7   change_list_templatelist_displayview_on_siter9   rB   short_descriptionr\   rh   __classcell__rb   s   @r#   r<   r<   "   s        82LL$%GN N N& -V)" " " " "? ? ? ? ? ? ? ? ? ?r%   r<   c                   P     e Zd ZdZdZdZdgZd Zde_         fdZ	d
 fd		Z
 xZS )ResslideAdminz resslides__change_list_form.htmlr=   TrB   c                    d|j         v rt          |j                   }|                                r^|j        d         }|                    |           |                     |d| d           t          |                                          S |                     |d           d S t                      }||t          j	        j
        d}t          |d|          S rD   rJ   rS   s         r#   rB   z!ResslideAdmin.update_display_timeR   rV   r%   rW   c                     t                                                      }t          d| j                            | j                  d          g}||z   S rY   rZ   r_   s      r#   r\   zResslideAdmin.get_urlsg   rc   r%   Nc                 r    |pi }t                      |d<   t                                          ||          S re   rg   ri   s      r#   rh   zResslideAdmin.changelist_viewn   rk   r%   r   rl   rr   s   @r#   rt   rt   K   s        ;2LL$%GN N N& -V)" " " " "? ? ? ? ? ? ? ? ? ?r%   rt   c                   P     e Zd ZdZdZdZdgZd Zde_         fdZ	d
 fd		Z
 xZS )TsslideAdminztsslides__change_list_form.htmlr=   TrB   c                    d|j         v rt          |j                   }|                                r^|j        d         }|                    |           |                     |d| d           t          |                                          S |                     |d           d S t                      }||t          j	        j
        d}t          |d|          S rD   rJ   rS   s         r#   rB   z TsslideAdmin.update_display_time{   rV   r%   rW   c                     t                                                      }t          d| j                            | j                  d          g}||z   S rY   rZ   r_   s      r#   r\   zTsslideAdmin.get_urls   rc   r%   Nc                 r    |pi }t                      |d<   t                                          ||          S re   rg   ri   s      r#   rh   zTsslideAdmin.changelist_view   rk   r%   r   rl   rr   s   @r#   ry   ry   t   s        :2LL$%GN N N& -V)" " " " "? ? ? ? ? ? ? ? ? ?r%   ry   c                   @    e Zd ZdZg dZdddifdddiffZdgZdd
Zd	S )DeviceAdmin)	r>   memberroomyeardefectusage
chair_taskinventory_numberprice)member__given_namemember__last_namer>   
room__nameroom__building__short_namer   Generalfields)r   )r   r   )r   serial_number)r>   r   r   )r   history
References)r   r   research_eqr   Nc                     dS r)   r*   r+   s      r#   r.   z!DeviceAdmin.has_delete_permission   r/   r%   r   )r5   r6   r7   rn   search_fields	fieldsetsfilter_horizontalr.   r*   r%   r#   r~   r~      s~        lL E  E  EM  +  8 I %o     r%   r~   c                       e Zd ZeZdZdZdS )PostnominalAdminr   r   N)r5   r6   r7   r   modelextramin_numr*   r%   r#   r   r      s        EEGGGr%   r   c                   |    e Zd ZeZdddiffZdZdZdZd Z	de	_
        d	 Zd
e_
        d Zde_
        d Zde_
        dS )Member_tacAdminr   r   )
titledate_newrH   slides_linkdocumentdocument_link
document_2document_2_link
document_3document_3_link)r   r   r   r   r   r   c                     |j         rAt          |j         d          r,t          d|j         j        f          }t	          d|          S dS )Nr>   admin_protected_fileargsz0<a href="{}" target="_blank">Download slides</a>-)rH   hasattrr   r>   r   r,   r-   protected_urls      r#   r   zMember_tacAdmin.slides_link   sR    : 	b'#*f55 	b#$:#*/ASTTTMQS`aaasr%   zSlides (protected)c                     |j         rAt          |j         d          r,t          d|j         j        f          }t	          d|          S dS )Nr>   r   r   z4<a href="{}" target="_blank">Download document 1</a>r   )r   r   r   r>   r   r   s      r#   r   zMember_tacAdmin.document_link   sS    < 	fGCL&99 	f#$:#,BSAUVVVMUWdeeesr%   zDocument 1 (protected)c                     |j         rAt          |j         d          r,t          d|j         j        f          }t	          d|          S dS )Nr>   r   r   z4<a href="{}" target="_blank">Download document 2</a>r   )r   r   r   r>   r   r   s      r#   r   zMember_tacAdmin.document_2_link   S    > 	fgcnf== 	f#$:#.BUAWXXXMUWdeeesr%   zDocument 2 (protected)c                     |j         rAt          |j         d          r,t          d|j         j        f          }t	          d|          S dS )Nr>   r   r   z4<a href="{}" target="_blank">Download document 3</a>r   )r   r   r   r>   r   r   s      r#   r   zMember_tacAdmin.document_3_link   r   r%   zDocument 3 (protected)N)r5   r6   r7   r   r   r   r:   r   r   r   rp   r   r   r   r*   r%   r#   r   r      s        E  c I \OEG  
 %9K!  
 '?M#  
 )AO%  
 )AO%%%r%   r   c            	          e Zd ZdZdZg dZdgZdddifddd	ifd
ddifdddifdddifdddifdddiffZg dZdgZ	e
egZd Zd Zd Zd Zd Zd$dZde_        de_        de_        d e_        d!e_        d"e_        d#e_        dS )%MemberAdmin)
given_name	last_namer   status
entry_date	exit_datejob_mailget_roomget_projectsactivevisitorshow_publicprivate_mailget_tacget_devices)r   r   groupr   )r   given_name_altr   last_name_altproject_list__project_acr
show_imager   r   ))r   	meta_tags)r   r   )r   r   )imager   )r   
prenominal	educationcountry)r   gender	birth_daybio	job_phoner   r   )r   r   extern_related)r   r   )r   groupLeadingInternal)thesis_defenseslugzExternal information)status_externorganisation_extern
url_externurl_label_externr   )tud_fisgeprislinkedinxingorcidresearchgateresearcher_idresearchgooglescholarscopusadscientificindexweb_of_sciencescholar_gpsgithubtwitterbluesky	instagramwikiPresentations)	presentorauthorRelated)publicationproject_listr   newszPrivate info))priv_streetpriv_streetNumber)priv_postalcode	priv_citypriv_countrypriv_matriculationnumberprivate_mobiler   url_privateprivate_info)	r   r   r   r   r   r   r   r   r   z-entry_datec                 \    t          d                    |j        j                            S )Nz"<img src="{url}" height="128px" />)url)r   formatr   r   r,   r-   s     r#   r   zMemberAdmin.show_image  s4    =DD)- E     	r%   c                 n    d                     d |j                                        D                       S )N, c                 6    g | ]}|                                 S r*   __str__.0cs     r#   
<listcomp>z(MemberAdmin.get_room.<locals>.<listcomp>  s     >>>!!))++>>>r%   )joinr   allr   s     r#   r   zMemberAdmin.get_room  s-    yy>>sx||~~>>>???r%   c                 n    d                     d |j                                        D                       S )Nr   c                 6    g | ]}|                                 S r*   r  r  s     r#   r  z+MemberAdmin.get_devices.<locals>.<listcomp>  s     DDD!!))++DDDr%   )r  
device_setr  r   s     r#   r   zMemberAdmin.get_devices  s1    yyDDs~/A/A/C/CDDDEEEr%   c                 n    d                     d |j                                        D                       S )Nr   c                 6    g | ]}|                                 S r*   r  r  s     r#   r  z'MemberAdmin.get_tac.<locals>.<listcomp>  s     HHH!!))++HHHr%   )r  member_tac_setr  r   s     r#   r   zMemberAdmin.get_tac  s2    yyHHs/A/E/E/G/GHHHIIIr%   c                     g }|j         dk    r|                    d           nFt          |j                                                  D ]\  }}|                    |j                    d                    |          S )N	Cunibertir  r   )r   append	enumerater   r  project_acrr  )r,   r-   out_lsr  ps        r#   r   zMemberAdmin.get_projects  s~    =;&&MM%     !1!5!5!7!788 - -! am,,,,yy   r%   Nc                     dS r)   r*   r+   s      r#   r.   z!MemberAdmin.has_delete_permission   r/   r%   zCurrent photoDevicesdevice__nameRoomzTAC meetingmember_tac__date_newProjectsr   )r5   r6   r7   rn   list_filterr   r:   r   r   orderingr   r   inlinesr   r   r   r   r   r.   rp   admin_order_fieldr*   r%   r#   r   r      s        GL8KkkkM!NO l 
 4  $a%    o  0  L 
   F 3I< }||H0G  @ @ @F F FJ J J	! 	! 	!    #2J $-K!$2K!%H+G 6G#-L"""r%   r   c                       e Zd ZeZdZdZdS )GroupTopicAdminr   r   N)r5   r6   r7   r	   r   r   r   r*   r%   r#   r!  r!  .  s        EEGGGr%   r!  c                   d    e Zd ZdZdddiffZg dZegZd Zde_	        ddZ
 G d	 d
          ZdS )
GroupAdmin)r>   r   get_group_leader
group_typer   internal_groupNr   )r   r>   group_leadergroup_memberr   projectthesispatentr%  r   r&  )r   	copyrightr   )r'  r(  r   r)  r*  r+  c                 n    d                     d |j                                        D                       S )Nr   c                 6    g | ]}|                                 S r*   r  r  s     r#   r  z/GroupAdmin.get_group_leader.<locals>.<listcomp>A  s     FFF!!))++FFFr%   )r  r'  r  r   s     r#   r$  zGroupAdmin.get_group_leader@  s2    yyFFs/?/C/C/E/EFFFGGGr%   zGroup leaderc                     dS r)   r*   r+   s      r#   r.   z GroupAdmin.has_delete_permissionC  r/   r%   c                       e Zd ZeZdS )GroupAdmin.MetaN)r5   r6   r7   r   r   r*   r%   r#   Metar1  F  s        r%   r2  r   )r5   r6   r7   rn   r   r   r!  r  r$  rp   r.   r2  r*   r%   r#   r#  r#  3  s        cL ? I `__GH H H'5&            r%   r#  c                   (    e Zd ZeZdddiffZdZdZdS )"Shared_document_further_filesAdminr   r   )order_indexr   r2   pdf_file_to_downloadeditable_fileeditable_file_to_downloadzip_filezip_file_to_downloadr,  r   N)r5   r6   r7   r   r   r   r   r   r*   r%   r#   r4  r4  I  s<        )E  y I EGGGr%   r4  c                   *    e Zd ZdZdZdddiffZegZdS )Shared_documentAdminz&shared_document__change_list_form.html)r>   r,  Nr   )r>   r   r6  r8  r;  r,  
video_file)r5   r6   r7   rm   rn   r   r4  r  r*   r%   r#   r?  r?  S  s@        A'L  @ I
 22GGGr%   r?  N)-django.contribr   django.shortcutsr   r   django.urlsr   modelsr   r	   r
   r   r   r   r   r   r   r   r   r   modules_webpager   r   django.utils.safestringr   formsr   r   django.utils.htmlr   register
ModelAdminr   r<   rt   ry   r~   StackedInliner   r   r   r!  r#  r4  r?  r*   r%   r#   <module>rL     sL               - - - - - - - -       j  j  j  j  j  j  j  j  j  j  j  j  j  j  j  j  j  j  j  j  j  j  j  j  j  j  j  j C C C C C C C C - - - - - - ) ) ) ) ) )       ) ) ) ) ) ) : : : : :e : : :* %? %? %? %? %?E$ %? %? %?P %? %? %? %? %?E$ %? %? %?P %? %? %? %? %?5# %? %? %?R     %"   2    u*   
$A $A $A $A $Ae) $A $A $AL E. E. E. E. E.%" E. E. E.T    e)   
     !   *    )<      3 3 3 3 35+ 3 3 ! 3 3 3r%   