
    RZh;c                        d dl mZ d dlmZ d dlmZmZmZmZm	Z	m
Z
mZ 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 d d	lZd d	lZ G d
 de          Z G d dej                  Z G d dej                  Z G d dej                  Z G d dej                  Z G d dej                  Z G d dej                  Z  G d dej                  Z!d Z" G d dej                  Z# G d dej                  Z$d Z% G d  d!ej                  Z& G d" d#ej                  Z' G d$ d%ej                  Z(d	S )&    )models)reverse)
Title_fullCountryRoomGenderStatusStatus_extern
Prenominal)PhoneNumberField)NewsPresentation)slugify)settings)FileSystemStorageNc                       e Zd ZdZddZdS )OverwriteStorageu   
    Muda o comportamento padrão do Django e o faz sobrescrever arquivos de
    mesmo nome que foram carregados pelo usuário ao invés de renomeá-los.
    Nc                     |                      |          r7t          j        t          j                            | j        |                     |S N)existsosremovepathjoinlocation)selfname
max_lengths      #/var/www/nanotud/internal/models.pyget_available_namez#OverwriteStorage.get_available_name   s=    ;;t 	9Ibgll4=$77888    r   )__name__
__module____qualname____doc__r     r!   r   r   r      s2              r!   r   c                   *   e Zd Z ej        dd e                      Z ej        dd          Z ej        dd          Z ej        dd          Z	 ej        dd e                      Z
 ej        dd e                      Z ej        dd e                      Z ej        dd e                      Z ej        dd e                      Z ej        dd e                      Z ej        dd e                      ZdS )CVzuploads/cv_files/T)	upload_toblankstorager)   r*   zuploads/cv_files/auto_includeN)r"   r#   r$   r   	FileFieldr   tex_filepdf_file	pdf_shortlog_filepublication_includeconferences_includepatents_includepapers_selected_includephds_includetalks_includerest_includer&   r!   r   r(   r(      s       v*=TScScSeSefffHv*=TJJJH  +>dKKKIv*=TJJJH*&*5T\`jzjzj|j|}}}*&*5T\`jzjzj|j|}}}&f&1PX\fvfvfxfxyyyO.f.9X`dn~n~  oA  oA  B  B  B#6#.MUYcscscucuvvvL$F$/NVZdtdtdvdvwwwM#6#.MUYcscscucuvvvLLLr!   r(   c                   .   e Zd Z ej        ddd          Z ej        dd          Z ej        ddd	dd
          Z ej	        dd          Z
 ej        dd          Z ej        dej        j                  Zd Zd Zd Z G d d          ZdS )HalslideUnique Named   Tr   uniqueuploads/internal/slides/$Image format: png; Video format: mp4r)   	help_textEditable file)Here you should upload the editable file.r)   rB   r*   null
   Display time of the slide in seconds. If the slide has video format the display time will be adjusted to video length automatically.defaultrB   Show on webpage
Date addedrJ   c                     | j         S r   r   r   s    r   __str__zHalslide.__str__C   
    yr!   c                     t           j                            | j        j                  \  }}|                                S r   r   r   splitextslider   lowerr   r   	extensions      r   get_extensionzHalslide.get_extensionF   /    '**4:?;;i   r!   c                     dS )?Returns the url to access a detail record for this publication.z/halwayr&   rP   s    r   get_absolute_urlzHalslide.get_absolute_urlJ   s    yr!   c                       e Zd ZddgZdS )Halslide.Meta-show-dateNr"   r#   r$   orderingr&   r!   r   Metar`   N           G$r!   re   Nr"   r#   r$   r   	CharFieldr   r-   rV   slide_editableIntegerFieldtimeBooleanFieldshow	DateFielddatetimedatetodayrQ   rZ   r^   re   r&   r!   r   r:   r:   <   s)       6Mc$GGGDF'AMstttE%V%o@Z  gR  Y]  cg  h  h  hN6r  5{  |  |  |D6t7HIIID6L(-2EFFFD  ! ! !  % % % % % % % % % %r!   r:   c                   .   e Zd Z ej        ddd          Z ej        dd          Z ej        ddd	dd
          Z ej	        dd          Z
 ej        dd          Z ej        dej        j                  Zd Zd Zd Z G d d          ZdS )Researchslider;   r<   Tr=   r?   r@   rA   rC   rD   rE   rG   rH   rI   rK   rL   rM   c                     | j         S r   rO   rP   s    r   rQ   zResearchslide.__str__Y   rR   r!   c                     t           j                            | j        j                  \  }}|                                S r   rT   rX   s      r   rZ   zResearchslide.get_extension\   r[   r!   c                     dS )r]   z
/resslidesr&   rP   s    r   r^   zResearchslide.get_absolute_url`   s    |r!   c                       e Zd ZddgZdS )Researchslide.Metara   rb   Nrc   r&   r!   r   re   rx   d   rf   r!   re   Nrg   r&   r!   r   rs   rs   R   s)       6Mc$GGGDF'AMstttE%V%o@Z  gR  Y]  cg  h  h  hN6r  5{  |  |  |D6t7HIIID6L(-2EFFFD  ! ! !  % % % % % % % % % %r!   rs   c                   .   e Zd Z ej        ddd          Z ej        dd          Z ej        ddd	dd
          Z ej	        dd          Z
 ej        dd          Z ej        dej        j                  Zd Zd Zd Z G d d          ZdS )Teachingslider;   r<   Tr=   r?   r@   rA   rC   rD   rE   rG   rH   rI   rK   rL   rM   c                     | j         S r   rO   rP   s    r   rQ   zTeachingslide.__str__n   rR   r!   c                     t           j                            | j        j                  \  }}|                                S r   rT   rX   s      r   rZ   zTeachingslide.get_extensionq   r[   r!   c                     dS )r]   z	/tsslidesr&   rP   s    r   r^   zTeachingslide.get_absolute_urlu   s    {r!   c                       e Zd ZddgZdS )Teachingslide.Metara   rb   Nrc   r&   r!   r   re   r   y   rf   r!   re   Nrg   r&   r!   r   rz   rz   g   s)       6Mc$GGGDF'AMstttE%V%o@Z  gR  Y]  cg  h  h  hN6r  5{  |  |  |D6t7HIIID6L(-2EFFFD  ! ! !  % % % % % % % % % %r!   rz   c                   .   e Zd Z ej        dddddd          Z ej        ddddd          Z ej        dd          Z ej        dd          Z	 ej
        d	ddd
          Z ej
        d	ddd
          Z ej        dddd          Z ej        d          Z ej        dd          Z ej        ddej        dd          Z ej        edddej                  Z ej        ddddd          Z ej        dddddd          Zd ZdS )DeviceInventory_number2   NT)r   rJ   rF   r*   r>   Namer   rF   r*     r   rJ   rF   r*   PricerJ   rF   r*   FrM   zIn use)rJ   verbose_nameMember)rJ   	on_deleterF   r*   )rJ   rF   r*   r   zUsage for chair related taskszi.e. presenter laptop)r   r   rB   rF   r*   research.ResearchEquipmentz!research.ResearchEquipment_devicedevice_research_eqzResearch equipmentzUsed with which IT-devices?)throughrelated_namer*   r   rB   c                 
   | j         r$| j        r| j        dz   | j         z   dz   | j        z   S | j         r| j        s| j        dz   | j         z   S | j         s| j        r| j        dz   | j        z   S | j         s| j        s	| j        S d S d S )Nz / Inv-nr.: z
 / S-nr.: )inventory_numberserial_numberr   rP   s    r   rQ   zDevice.__str__   s      	T%7 	9~-0EETW[Wiii" 	4+= 	9~-0EEE& 	4+= 	9|+d.@@@& 	t/A 	9	 	 	 	r!   )r"   r#   r$   r   rh   r   r   r   rj   year	TextFielddescriptionhistorypricerl   defectusage
ForeignKeySET_DEFAULTmemberr   room
chair_taskManyToManyFieldresearch_eqrQ   r&   r!   r   r   r   }   s       'v'(:rSW^bjnw{|||$F$TTXaefffM6Fr222D6D555D#6#tTTXYYYKv4DPTUUUGFDMMME V 000FF(CCCEVxASY]eijjjF6T4d$RXRdeeeDv-LY[f}  DH  OS  T  T  TJ(&()EOr  BV  ]a  oC  Nk  l  l  lK    r!   r   c                       e Zd ZdZ ej        ddej                  Z ej        dd          Z	 ej
        dddd	          Z ej        d
ddd	          Z ej
        dddd	          Zd ZdS )
GroupTopicz: class needed to allow multiple file upload in class GroupGroupNrJ   r   zuploads/group_images/Tr,      r   r   r   c                     | j         j        S r   )groupr   rP   s    r   rQ   zGroupTopic.__str__   s    zr!   )r"   r#   r$   r%   r   r   CASCADEr   r-   imagerh   titler   r   	copyrightrQ   r&   r!   r   r   r      s        DDFgtv~NNNEF)@tLLLEFTDQQQE"&"dDtSWXXXK  RDPTUUUI    r!   r   c                       e Zd Z ej        ddej                  Z ej        ddddd          Z ej	        ddd          Z
d	 ZdS )
Postnominalr   Nr      TzEnter the post-nominal here)r   r*   rJ   rF   rB   )r*   rF   rJ   c                     | j         j        -| j         j        j         d| j         j         d| j         j         S | j         j         d| j         j         S )N )r   r   title_short
given_name	last_namerP   s    r   rQ   zPostnominal.__str__   sY    ;(k'3ffdk6Lfft{Odfffk,FFt{/DFFFr!   )r"   r#   r$   r   r   r   r   rh   lettersURLFieldurlrQ   r&   r!   r   r   r      sy        VxPPPFf"44ZwxxxG
&/$
=
=
=CG G G G Gr!   r   c                     t          | dz   |z             }t          j                            |          }|                                }|r)|t          |                                j                  z   }|S )N_slug)r   r   objectsfilterr   strfirstid)r   r   r   qsr   s        r   create_slug_memberr      sf    48i'((D			D		)	)BYY[[F )c"((**-(((Kr!   c                   L   e Zd Z ej        ddej                  Z ej        dddd          Z ej	        dddd          Z
 ej        d	dd
          Z ej        dd	dd
          Z ej        dd	dd
          Z ej        dd	dd
          Zd Z G d d          ZdS )
Member_tacr   Nr   r   Tr   DaterJ   r*   rF   zuploads/members/tac/)r)   r*   rF   z
Document 1z
Document 2z
Document 3c                 *    t          | j                  S r   )r   date_newrP   s    r   rQ   zMember_tac.__str__   s    4=!!!r!   c                       e Zd ZdZdS )Member_tac.MetazTAC meetingN)r"   r#   r$   r   r&   r!   r   re   r      s        "r!   re   )r"   r#   r$   r   r   r   r   rh   r   rn   r   r-   slidesdocument
document_2
document_3rQ   re   r&   r!   r   r   r      s       VxPPPFFTDQQQEVfT4HHHHV(>TtTTTFv7MTX^bcccH!!,9OVZ`deeeJ!!,9OVZ`deeeJ" " "# # # # # # # # # #r!   r   c                       e Zd ZdZ ej        dd          Z ej        dddddd	          Z ej        d
d          Z ej        dddddd	          Z	 ej        dddd          Z
 ej        dddd          Z ej        ddddd          Z ej        dddd          Z ej        ddddd          Z edd          Z ej        dd          Z ej        d          Z ej        dd          Z ej        ddd !          Z ej        dd"d#!          Z ej        d$ddd%          Z ej        d&ddd%          Z ej        d'ddd%          Z ej        d(ddd)d*+          Z ej        d,d-ddd.          Z  ej        d/d-ddd.          Z! ej        d0d-ddd.          Z" ej        d1d-ddd.          Z# ej        d2d-ddd.          Z$ ej        d3d-ddd.          Z% ej        d4d-ddd.          Z& ej        d5d-ddd.          Z' ej        d6d-ddd.          Z( ej        d7d-ddd.          Z) ej        d8d-ddd.          Z* ej        d9d-ddd.          Z+ ej        d:d-ddd.          Z, ej        d;d-ddd.          Z- ej        d<d-ddd.          Z. ej        d=d-ddd.          Z/ ej        d>d-ddd.          Z0 ej        d?d-ddd.          Z1 ej        d@d-ddd.          Z2 ej        dAd-ddddBC          Z3 ej4        e5dej6        ddD          Z7 ej        dEdFdd          Z8 ej        dGd-ddd.          Z9 ej4        e:dHej6        dI          Z; ej4        e<dJej6        dI          Z= ej>        e?dKddL          Z@ ej4        eAddej6        dM          ZB ej4        eCejD        dddN          ZE ej>        dOdPdQdR          ZF ej>        dOddS          ZG ej4        eHejD        dddN          ZI ej>        eJeJjK        jL        dTdR          ZM ej>        dUdddVW          ZN ej>        dXdYdZdR          ZO ej>        d[d\d]dR          ZP ej>        eQeQjR        jL        d^dd_`          ZS ej>        eQeQjT        jL        daddb`          ZT ej        dcddddd.          ZU edd          ZV ej        ded-ddd.          ZW ej        dfd-ddd.          ZX ej        dgd-ddd.          ZY ej        dhd-ddd.          ZZ ej        did-ddd.          Z[ ej        djdddd.          Z\ ej        dkdFdddlm          Z] ej        dndddo          Z^ edpdd          Z_ ej`        dqddd%          Za ejb        dddddrs          Zcdt Zddu Zedv Zfdw Zgdx Zh fdyZi G dz d{          Zj xZkS )|r   z)Model representing a single member entry.z
Given Namer   r   zAlternative given nameu   Name with ä,ü,ö... or ` usw.TN)r   rB   rF   rJ   r*   z	Last NamezAlternative last namer   )r   r*   rJ   rF   zExternal organisation)r   rF   r*   z#Shown label instead of external URL )r   rF   r*   rB   
Biographiei'  r   r*   rF   z	Job Emailz,For example: forename.lastname@tu-dresden.de)rJ   r*   rF   rB   r   zCActive Member? If it is deactivated the Member will pass to Alumni.rI   FrM   zqOnly TRUE if this member was and is not at chair; Used for references from different classes i.e. Patent inventorzShow on webpage?z6Independent of "active", "visitor" or "extern related")rJ   r   rB   z,Set meta tags for Google, Twitter, Facebook?zActivate/Deactivate meta tagsBirthdayr   z
Entry Datez	Exit Datezuploads/members/img/zPhoto (ratio: 4:3)z$Please use height-width-ratio of 4:3)r)   rF   r*   r   rB   z	FIS (TUD)r   r   LinkedinXingORCIDResearchgatepublonszResearch.comzGoogle ScholarScopuszAd scientific indexzWeb of science (by Clarivate)GeprisGithubTwitter	WikipediaBluesky	InstagramzScholar GPSzPrivate URLzJob URLzURL of profile of job website)r   rJ   rF   r*   rB   )rJ   r   r*   rF   zAdditional Infoi  	Education   )rJ   r   r*      member_room)r   rJ   r*   )rF   rJ   r   r*   )r   rJ   rF   r*   r   Group_group_leadermember_group_leaderr   r   r*   )rJ   r*   member_newsresearch.Publicationmember_publication)rJ   r*   r   research.Projectzresearch.Project_project_membermember_projectr   z-research.ResearchEquipment_responsible_personmember_research_eqmember_presentation_presentor	Presenter)r   r   r*   r   member_presentation_authorAuthorzPSP ID (SAP)r<   zStreet namezStreet numberCity
Postalcoder   zMatriculation numberzFurther informationz3Here you can add an additional adress, for example.r   r*   rF   rB   zPrivate Emailr   zMobile NumberzThesis defensez6URL where member is shown(if empty:givenName_lastName)r   rF   r*   r>   rB   c                 n    | j         | j         j         d| j         d| j         S | j         d| j         S ))String for representing the Model object.Nr   )r   r   r   r   rP   s    r   r   zMember.name&  sG    :!j,QQtQQQQQo88888r!   c                 $    | j          d| j         S r   r   r   r   rP   s    r   name_without_titlezMember.name_without_title-      /44DN444r!   c                 $    | j          d| j         S r   r   rP   s    r   rQ   zMember.__str__1  r   r!   c                 J    t          dt          | j                  g          S )r]   member-detailargsr   r   r   rP   s    r   get_absolute_url_2zMember.get_absolute_url_25  s    c$'ll^<<<<r!   c                 2    t          dd| j        i          S )r]   r   r   kwargsr   r   rP   s    r   r^   zMember.get_absolute_url:  s     ty/ABBBBr!   c                     | j         st          | j        | j                  | _          t	                      j        |i |S r   )r   r   r   r   supersaver   r  r  	__class__s      r   r
  zMember.save?  s>    y 	M+DOT^LLDIuww|T,V,,,r!   c                       e Zd ZdgZdS )Member.Metaz-activeNrc   r&   r!   r   re   r  D  s        ;r!   re   )lr"   r#   r$   r%   r   rh   r   given_name_altr   last_name_altsort_statusorganisation_externurl_label_externr   bio
EmailFieldjob_mailr   	job_phonerl   activevisitorextern_relatedshow_public	meta_tagsrn   	birth_day
entry_date	exit_date
ImageFieldr   r   tud_fislinkedinxingorcidresearchgateresearcher_idresearchgooglescholarscopusadscientificindexweb_of_sciencegeprisgithubtwitterwikibluesky	instagramscholar_gpsurl_private
url_externr   r   r   
prenominaladditional_info	educationr	   statusr
   status_externr   r   r   r   countryr   SET_NULLr   groupLeadingr   r   genderr   r   r   newspublicationproject_listr   r   	presenter	presentorauthorpsp_id
priv_phonepriv_streetpriv_streetNumber	priv_citypriv_postalcodepriv_countrypriv_matriculationnumberprivate_infoprivate_mailprivate_mobileDateTimeFieldthesis_defense	SlugFieldr   r   r   rQ   r  r^   r
  re   __classcell__r  s   @r   r   r      s	       33!!,2>>>J%V%&>27dDX\^ ^ ^N  ;;;I$F$%<7dDX\^ ^ ^M"&"rTPTUUUK*&*+BrW[dhiii'v'(MZ\bfos  A  B  B  B
&
<ED
Q
Q
QC v d$T  ^L  M  M  MH  dD999I V 9~F!f!%000G&6&u  @s  t  t  tN%&%d@R  ^V  W  W  WK##D>l  xW  X  X  XI  TDQQQI"&"<DPTUUUJ  dTRRRIF(>TQUcw  Ci  j  j  jEFOKc$TY]^^^GvzsDt[_```H6?6sDtSWXXXDFOGTTXYYYE"6?>TX\dhiiiL#FOICSW_cdddMv~CSW_cdddH#FO$43tZ^fjkkkMV_XC4W[\\\F'(=CX\cgosttt$V_%DSV_cjnvz{{{NV_XC4W[\\\FV_XC4W[\\\Ffoic$TY]^^^G6?;SDX\]]]Dfoic$TY]^^^G#dQU]abbbI!&/-c$UYaefffK!&/-c$UYaefffK TPT\`  mL  M  M  MJ"":tI[cgmqrrrJ&f&'8TQU\`aaaO  dQU]abbbIVvrv?QY]^^^F%F%mQI[cghhhM!6!$]4W[\\\DfdDfN`hlmmmGFjFOTX\dhiiiE''9M\qy}~~~L"F"7DEEEEVv$UYaefffF!6!$0CR_gklllD(&()?UYh|}}}K)6)*<Fg  wG  NR  S  S  SL(&()EO~  Nb  im  n  n  nK&&|\=S=[  kJ  RV  do  p  p  pI#V#L,:M:U  eA  IM  [c  d  d  dF 6NsDt[_```FT4888J  3SW_cdddK&f&3PT[_gklllfv#t$VZ[[[I$F$\c4VZbfgggO!!)TPT\`aaaL-V-.DQS]ahltxyyy#6#$9dRV]a  mb  c  c  cL$6$_d$UYZZZL%%od$OOON *V)*:Dt[_```N		Rd$t  XP  
Q  
Q  
QD9 9 95 5 55 5 5= = =
C C C
- - - - -
           r!   r   c                    t          |           }t          |          dk    r
|dd         }t          j                            |          }|                                }|r)|t          |                                j                  z   }|S )N7   r   r   r   )	r   lenr   r   r   r   r   r   r   )r   r   r   r   s       r   create_slug_grouprW  G  sw    4==D
4yy2~~AbDz			4		(	(BYY[[F )c"((**-(((Kr!   c                       e Zd Z ej        ddd          Z ej        dd          Z ej        e	dd	          Z
g d
Z ej        ddedd          Z ej        dd          Z ej        dd          Z ej        dd          Z ej        ddd          Z ej        e	e	j        j        dd          Z ej        dddd          Z ej        dddd          Z ej        dddd          Z ej        d d!d"d          Z ej        d#dddd$%          Zd& Zd' Zd( Z G d) d*          Z fd+Z  xZ!S ),r   r   r   Tr=   rK   rI   group_leaderN)r   rJ   ))
experimentrZ  )theoryr[  )experiment_and_theoryzexperiment and theory)facilityr]  )
incubationr^  r   rZ  z
Group type)r   rJ   choicesrB   rF   zActive Group?z-Related Group that is not based at the chair?zuploads/group_image/r,      r   group_memberr   r   zresearch.Publication_groupgroup_publicationr   zresearch.Project_groupgroup_projectzresearch.Thesiszresearch.Thesis_groupgroup_thesiszresearch.Patentzresearch.Patent_groupgroup_patent<   z+URL where group is shown(if empty:name[60])r   c                     | j         S r   rO   rP   s    r   rQ   zGroup.__str__c  rR   r!   c                 J    t          dt          | j                  g          S )Ngroup-detailr   r  rP   s    r   r  zGroup.get_absolute_url_2f  s    ~S\\N;;;;r!   c                 2    t          dd| j        i          S )Nri  r   r  r  rP   s    r   r^   zGroup.get_absolute_urli  s    ~vdi.@AAAAr!   c                       e Zd ZdgZdZdZdS )
Group.Metar  zGroup/Research linezGroups/Research linesN)r"   r#   r$   rd   r   verbose_name_pluralr&   r!   r   re   rl  m  s"        :,5r!   re   c                 v    | j         st          | j                  | _          t                      j        |i |S r   )r   rW  r   r	  r
  r  s      r   r
  z
Group.saver  s9    y 	6*4955DIuww|T,V,,,r!   )"r"   r#   r$   r   r   r   rl   r  r   r   rY  type_choicesrh   
group_typer  internal_groupr-   r   r   r   r   ra  r?  projectthesispatentrQ  r   rQ   r  r^   re   r
  rR  rS  s   @r   r   r   Q  sU       6Fs4@@@D%&%d>OPPPK)6)&nVZ[[[L m  m  mL!!R|gsy}~~~J V IIIF(V(ApqqqNF)?dKKKE  RdFFFI)6)&&,:N]kswxxxL(&()?Ie  uH  OS  T  T  TK$f$%7AYgv  ~B  C  C  CG#V#$5?Vesz~F#V#$5?Vesz~F		Rd$t  XE  
F  
F  
FD  < < <B B B6 6 6 6 6 6 6 6
- - - - - - - - -r!   r   c                      e Zd Z ej        ddej                  Z ej        dddd          Z ej	        dd          Z
 ej        d	d
          Z ej        dd          Z ej        d	d
          Z ej        dd          Z ej        d	d
          Z ej        dd          Z ej        dddd          Z ej        dd          Zd Z G d d          ZdS )Shared_document_further_filesShared_documentNr   r   Tr   :  r   r*   uploads/shared_documents/r,   DownloadablerM   ,  Enter source URL here.r   zIndex for order of sections)rF   c                 *    t          | j                  S r   )r   r   rP   s    r   rQ   z%Shared_document_further_files.__str__  s    47||r!   c                       e Zd ZdgZdZdS )"Shared_document_further_files.Metaorder_indexzFurther filesN)r"   r#   r$   rd   r   r&   r!   r   re   r    s        $r!   re   )r"   r#   r$   r   r   r   shared_documentrh   	sub_titler   r   r-   r/   rl   pdf_file_to_downloadeditable_fileeditable_file_to_downloadzip_filezip_file_to_downloadr   r   rj   r  rQ   re   r&   r!   r   rv  rv  y  s_       'f'(94SYSabbbO  CDtTTTI"&"e$???Kv,GdSSSH.6.~dLLL$F$1LSWXXXM 3 3N4 P P Pv,GdSSSH.6.~dKKK3TOghhhI%&%&CNNNK  % % % % % % % % % %r!   rv  c                      e Zd Z ej        dd          Z ej        dd          Z ej        ddd	          Z ej        dd
          Z	 ej
        dd          Z ej        dd
          Z ej
        dd          Z ej        dd
          Z ej
        dd          Z ej        dddd          Zd Zd Z G d d          ZdS )rw  r   r   r   rx  Try  rz  zThe storage requirements should not be to large. You can convert the Videos with https://handbrake.fr/ . The resolution should not be less than 1920x1080 pixels. 30 FPS should be enough.)r)   r*   rB   r,   r{  rM   r|  r}  r   c                     | j         S r   rO   rP   s    r   rQ   zShared_document.__str__  rR   r!   c                 J    t          dt          | j                  g          S )Nzshared_document-detailr   r  rP   s    r   r^   z Shared_document.get_absolute_url  s     /s47||nEEEEr!   c                       e Zd ZdZdZdgZdS )Shared_document.MetazShared documentzShared documentsr   N)r"   r#   r$   r   rm  rd   r&   r!   r   re   r    s         (08r!   re   N)r"   r#   r$   r   r   r   r   r-   
video_filer/   rl   r  r  r  r  r  r   r   rQ   r^   re   r&   r!   r   rw  rw    sb       6Fs333D"&"e$???K!!.IPT  `\  ]  ]  ]Jv,GdSSSH.6.~dLLL$F$1LSWXXXM 3 3N4 P P Pv,GdSSSH.6.~dKKK  3TOghhhI  F F F         r!   rw  ))	django.dbr   django.urlsr   home.modelsr   r   r   r   r	   r
   r   phonenumber_field.modelfieldsr   external.modelsr   r   django.template.defaultfiltersr   django.confr   django.core.files.storager   r   ro   r   Modelr(   r:   rs   rz   r   r   r   r   r   r   rW  r   rv  rw  r&   r!   r   <module>r     sQ               \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ : : : : : : . . . . . . . . 3 2 2 2 2 2             7 7 7 7 7 7 				     (   w w w w w w w w@% % % % %v| % % %,% % % % %FL % % %*% % % % %FL % % %,    V\   6       G G G G G&, G G G  # # # # # # # #    V\   B  $- $- $- $- $-FL $- $- $-P% % % % %FL % % %&    fl     r!   