From 7683212b27cb6119aa2ce52c031c17c999470a43 Mon Sep 17 00:00:00 2001 From: yomguy Date: Tue, 27 Mar 2012 23:42:00 +0200 Subject: [PATCH] better telemeta inclusion --- doc/teleforma-all.dot | 153 +++---- doc/teleforma-all.pdf | Bin 107576 -> 107575 bytes doc/teleforma.dot | 69 +--- doc/teleforma.pdf | Bin 90678 -> 90687 bytes example/diag.sh | 13 + example/settings.py | 35 +- example/urls.py | 2 +- teleforma/locale/fr/LC_MESSAGES/django.po | 153 ++++--- ...on__del_field_media_title__del_field_co.py | 386 ++++++++++++++++++ ...015_auto__add_field_document_conference.py | 355 ++++++++++++++++ .../0016_auto__add_field_media_course.py | 356 ++++++++++++++++ ...edia_conference__chg_field_media_course.py | 360 ++++++++++++++++ teleforma/models.py | 50 +-- teleforma/templates/teleforma/base.html | 16 - teleforma/templates/teleforma/course.html | 66 +++ .../templates/teleforma/course_detail.html | 74 ++++ teleforma/templates/teleforma/courses.html | 108 +++++ teleforma/templates/telemeta/base.html | 186 +++++++++ teleforma/urls.py | 10 +- teleforma/views.py | 43 ++ 20 files changed, 2191 insertions(+), 244 deletions(-) create mode 100755 example/diag.sh create mode 100644 teleforma/migrations/0014_auto__del_field_media_description__del_field_media_title__del_field_co.py create mode 100644 teleforma/migrations/0015_auto__add_field_document_conference.py create mode 100644 teleforma/migrations/0016_auto__add_field_media_course.py create mode 100644 teleforma/migrations/0017_auto__chg_field_media_conference__chg_field_media_course.py create mode 100644 teleforma/templates/teleforma/course.html create mode 100644 teleforma/templates/teleforma/course_detail.html create mode 100644 teleforma/templates/teleforma/courses.html create mode 100644 teleforma/templates/telemeta/base.html diff --git a/doc/teleforma-all.dot b/doc/teleforma-all.dot index acfa0a80..12c40155 100644 --- a/doc/teleforma-all.dot +++ b/doc/teleforma-all.dot @@ -389,119 +389,119 @@ digraph name { >] - telemeta_models_media_MediaResource [label=< - - - - - -
MediaResource
<ModelCore>
- >] - - telemeta_models_media_MediaRelated [label=< + telemeta_models_media_MediaBaseResource [label=< + >MediaBaseResource
<MediaResource> - - - - - + +
MediaRelated
<MediaResource>
titleCharField
datetitle DateTimeFieldCharField
description TextFieldCharField
mime_typecode CharFieldCharField
urlreference CharField
creditspublic_access CharField
fileFileField
+ >] + + telemeta_models_media_MediaResource [label=< + + +
MediaResource
<ModelCore>
>] - telemeta_models_media_MediaBaseResource [label=< + telemeta_models_media_MediaRelated [label=< + >MediaRelated
<MediaResource> + + + + + +
MediaBaseResource
<MediaResource>
titletitle CharFieldCharField
dateDateTimeField
description CharFieldTextField
codemime_type CharFieldCharField
referenceurl CharField
public_accesscredits CharField
fileFileField
>] @@ -2665,20 +2665,6 @@ digraph name { >MediaBase - title - CharField - - description - CharField - credits @@ -2911,26 +2897,19 @@ digraph name { > titlesession CharField descriptioncomment CharField - session - CharField - date_begin @@ -2964,45 +2943,45 @@ digraph name { > titlecredits CharField descriptionis_published CharFieldBooleanField creditsdate_added CharFieldDateTimeField is_publisheddate_modified BooleanFieldDateTimeField date_addedtitle DateTimeFieldCharField date_modifieddescription DateTimeFieldCharField AutoField - title - CharField - - description - CharField - credits @@ -3765,14 +3730,14 @@ digraph name { - teleforma_models_Conference -> teleforma_models_Professor - [label="professor (conference)"] [arrowhead=none, arrowtail=dot]; - - teleforma_models_Conference -> teleforma_models_Course [label="course (conference)"] [arrowhead=none, arrowtail=dot]; + teleforma_models_Conference -> teleforma_models_Professor + [label="professor (conference)"] [arrowhead=none, arrowtail=dot]; + + teleforma_models_Conference -> teleforma_models_Room [label="room (conference)"] [arrowhead=none, arrowtail=dot]; diff --git a/doc/teleforma-all.pdf b/doc/teleforma-all.pdf index bbaf71f96ccf0a5e4b7955911cc73c25c06d8bc4..02ae4db686cc223a682fc7fce9de8399e9261e44 100644 GIT binary patch delta 19690 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 ZzZ}ZS0i{!C^U3vTAap`P>UtV<{{haWm=gd1 delta 19705 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�myjyY(me=g< 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 diff --git a/doc/teleforma.dot b/doc/teleforma.dot index b0bf87d1..8234bf21 100644 --- a/doc/teleforma.dot +++ b/doc/teleforma.dot @@ -23,20 +23,6 @@ digraph name { >MediaBase - title - CharField - - description - CharField - credits @@ -269,26 +255,19 @@ digraph name { > titlesession CharField descriptioncomment CharField - session - CharField - date_begin @@ -322,45 +301,45 @@ digraph name { > titlecredits CharField descriptionis_published CharFieldBooleanField creditsdate_added CharFieldDateTimeField is_publisheddate_modified BooleanFieldDateTimeField date_addedtitle DateTimeFieldCharField date_modifieddescription DateTimeFieldCharField AutoField - title - CharField - - description - CharField - credits @@ -718,14 +683,14 @@ digraph name { - teleforma_models_Conference -> teleforma_models_Professor - [label="professor (conference)"] [arrowhead=none, arrowtail=dot]; - - teleforma_models_Conference -> teleforma_models_Course [label="course (conference)"] [arrowhead=none, arrowtail=dot]; + teleforma_models_Conference -> teleforma_models_Professor + [label="professor (conference)"] [arrowhead=none, arrowtail=dot]; + + teleforma_models_Conference -> teleforma_models_Room [label="room (conference)"] [arrowhead=none, arrowtail=dot]; diff --git a/doc/teleforma.pdf b/doc/teleforma.pdf index 8d1d5cc849d83864273254df0ff8a1984bcc2451..b8303e5bda16f4b5177e4c5b288db2f96e3f92ff 100644 GIT binary patch delta 54101 zcmV(yKAkN4s*cYj~IJ;iI}(EPnN1|NFpUNXZVwk%z0~;_&kN2O8wR z-+vx{xG}@e|EcxA{TYA#_h5z}@&B)fpZ+K zx8avVYxn73#?0~uqhynlaVP}&6J_R=UqMIqH2NWC`TMcfk`JTIK_YH2GJEc*%_ zjwl9?3B2=|3k523D;;NlRXXgDI4ccSrYsZsMG?Q3d0X30GlM^UKBUnYV;x=)|4o&g z(c1YjuuWu#&yR6I$HSjK%PS|#UYPr|uu7A6cmu-wpP?z~Wcf(0C(J8hcyxomtrFunf%Y$j z#M{!wcb)I1Zmc8WhkGrvzJeL9XmmLXL7(qr=F&21%Lkc%nT)c8NJk=D1}uXVY6?&4 z3r97zr6RoPH~P}?%%j_rSyB4M{kSD6NRNhIq^05 zetG*LD0I|NJkEXZ`n8zITw&@9WR}4zle(40w5c@ir^4?sxc4Aj1^Vr}geYaG0_Rj8 z)LM>3dD!HCPHNgxcJ#96K21WDvD1uFfKrZSKHrt_YnipR+@eRwVyC8XR*z6V%5vzo zqnmEQn{b!q_;O@=vS{Upx<%Yh)qnKM<(-KCZP}n@cUOvqJ?>^|9qkEMuN%bdP1N`o@>)Oyo?C8MP0l`UIU zsIFyOvvOpVm8jcclFE5A-|Q7LBXBW&pna+Y#XrzSRf7FT->FKp9!oxs!9i-h8QEt& zpP;9IV}#YwKOir{i63?qyY{y{(r1R zo6DSWQ6$@@Zml;V4dd`0lwR7HZC$9_g%@%tfMPc=0MAF+j7pHrE83wqep=aegatih`*pL~r<^3psWG9ck0kCJS9WA&KGvi+Y3DBjHH!>qZ&#m#I zzJP1*=NeyFDW{GvkWXpaL%P-1r#93@kXtSepzMnuT5I0A>UhQ}c~UKH)gQd*yVDO1 zH0F&6u$HVV6Xr!xaUABI+HN}~4BmnGyfu1%Bx>NSAhqWHD@q{FDyOOHyw?$bEzXXd zHyj(*^4hTxUa2o&;$Y|FC>l9&IhD;AeHxsnk!{&Q44yLpuXRBhq=CJ~#y~NTpm#X1 zIBL{DvXCk{g|W++r8Txyit+$b#&NlwIy%q{uMR>$PYz1R^avX?loR3HgVO1CILyy* zLozqWd2XjlbObU1U@lGELBmj(<9i1rn2D7gVIUKY|oq>UC7-qCl97x zO6Jq~KW)PRSh7SfX{UAlQp*cd^R72wsYMXDD&*3m_Ul#Lg^WxmCZtWN7@1mQQ{#jYg3mRVcNEov%2W7zD@YpI6<7-Cz0g3xQB#RiwN z-DMgrCzV(n_fmAxj-q!mW{JQs&V|u14RY!^mJOa^6Oa$X!9fW`%R`23Aez@fwlyXg z2M3&X3u8KuIf;~I9SbJ%=rI;M*beN6Lx7#nS>U-JDR0FXGQq0gQj@a@1XKxolbG5k zE}4snDX~#=OQW}st?EpFHMc~so>aMpda>n~y?0t)Y+z4iTgb37Yne0lMQKo{Zml<+ ztD=-ZX+Cd%S@TR3lHy)d0rnQ8J<&EtDEVQwapY|B!c; zX21)D8Q3k(N&<-WqdKOu0Dtkr;@Bi>1h&|iM+e1xAfQ0+qCA0rQD6k^#8DJC9vCnu zsmIrE_xQ36>n73rczkEgHrW!@th$T_GfuQmaHjf?v>K^}rhGiDmd3@2v*^9oe}v_V zrbMcwNF_W4z}gp0i&Ramw^;@nQ;X(B*KQ})C)UA~EHVeF(uI6WE)QYNl{4!(_UUW* zmV}@+A59NVI;*LFi?o-c*uvWQMs6l~g|OoMRW;YvyX1%9?{E@^yrP)xMKge2N>;I* zPHu?~g|Y74GE-ik`D3TNqMGaz4ZTEJBjB|;GjohjaViagVYH@_1tWGX>{l{>r2ufMS#5X^ZDP&9ZzYJow2FF{jojtCm@TBLo3*csPQ zpTosZ&~WEns~w)YjAny@VHM%P3}B0MxtO>xqiloJ;Yu(fU@9f6mc1Ck;Kr&FSYC zxJd!#PSC@DkJPI{qH7>P0c;Lg#4tkqBJ4dD=s}w4A#$rg1>MxY5+o)gp=rt2ve-h;b) zpp3Y6VQ#T5MydFu9z_1m$NEsB1cxV7Gv8izIYamBUi zd-zh%HtNo{rMfQ3HCIN$1hAY$_rrDvC!zYUEge7qD&yOEd~~DJL|%3L^K?iAb+5KG zUbYPxElGu7q-(nyGg-rfUrQsKFcSoPA7<)Vae7Xs<~^Ga$euMf$C|obuy1oD2Z*)#g0z$A=i~7Ziq+`3{Pg^bo#`eNrdefT@B0Y3A4|iOfDGTA5 zBi;$X!^c)hQ6YmBZ~L+mwIaFoU9Y_f{U!~`6&NeUHXkjDF0_eT>up)W-pV_K^WbIm zf{+3gNndaP)qg;o0(K3FzvGneIORJ|IXyj#`08`ZEs)Ha_%f&F87GqEF~&GV9AcR? zbP96{BIg$P!6)Q~=@(i}NqK#iWJ;-->7M6{%F zh^ghXMO2n6z+mHIcd&!h&8-WtEpX4E2pvz3qt8%qU4lcxMp++{Egf6v_3u;01|)8`vT@ zhO-#PR+oC@Gk<7IXJMl^k z2BfWAoc_uoccEu3f9|72+?C#c6hC;teaBu)dauW6M(AU$c`iyjYck8SR$7YGFMICW zYbgau^;8Oi%&7ClzJy=PtgYpyZyD&7M(oY=p4N(u3a@=d&^0(W2e_(3VDBx)l%Oe$ z-;zGMz8zmqA3b#}JioQ}@2qy5WeO!|5u*aCM?7&j%<|xXtRxzjafV5MwkfAHI-F_Q z+3Hxx-q#FOW{u=!oWAny4j?XxO2JChd{6QBllFKnJvE~>Imr%1FRw|-?Foh>SiM>L zKUc3kZimDC2(OcJH|W!P>+;LtbmHgJQjJ7~@Djk4reyKfCjginNni7sYHcsXwI>ni zz;`1)t+yVMT=8_)ExD+Fx-{>Rikg}vxhZ!hER1<}-DfD`g&>8Covw1RQ)>WWC$(A0 zE&A=#aV}NGB?Z-Mz+`=?YPhN0rtDK**KVgN@>7yawH(_;7(Zvk?9*}H{Qs%A9g=5l z>O`p2nzY%RPinL5Eqm@0K5KK8DlMtdu`zwAir?IFi~L!)e!SX$s4kxJNt}va(tOC) zjo!Hpngr~?xLYQo=JgpH3U0QSB{Gf=i^ui(9U z#(YUo=^~Gs(v%c`2SS7-Q%AH;EO|H%zl4A_FjiXt*;Py_dMTPX9Bd?vfkE&f$rlE! zEgqC)^@<_o1kAZL!$~K285zCx3Sogvijpd>DqfZ+7cbp&X-wV<4~8J`Yej|onDomS zAsF>01xcy{^8$NK@`{dXR+2bIje_`qDaLr}gPWA%bk2vj!BluDRblM4@CKDB}E1w|-V^gNg>H{?*w zHYlsaOTRUZ@by`QeG;0!IW6w8oqEl8?KR<8f{hlSkBoj;(utkLB3*9GcySI{Zzu=O zu;#LGv~rB)@*@-uSO)o#OU>En^=I#s2GR8zbasV*X?E-7<}$$w(-!%ZuBP#_=I_qd z+TF~8%F-ftu7;AN-1&-k=rB!bUg|{NMAw<+$buwb*jtjjChW_RArXfF``5y>lN)V8 zTn$(z5^>k%kmOHsTwpn%+hWqoD8fPSu?+Y@Zs5zER9y}XzEOtLy6%%mUj3SutVi#E zpSH4%V5yVa=Ocx z4j$FXBFaP4ZjD$!NmoKNw0zOYNhC)X&C5+ZtkuEeER)NPa&g!w>W3P#l3r`;^+@l+ z==2&LpaYb8Kv$=ipXH9Dr0qJZUM0EoXf~gJZ8E`XlK7@ekJ~rPg>K`*)^qCCc+|4w z+3N?Ma8mZ=(njyYc0G39!Ik-ZH}gDiEBSfO(sGj*#Nph=x%7rF1x%?_yx;Q?AY*_= z8_a*0U=q`uRW z?GYaWGB}eC65IkYIFsxW`hQRy&bBR#I|L8T;O_43?(PikuEE_QcyJ5B-QC^Y-6cqH z`1qak?#a9F-oL(?s+n1P?Owfi_v)^hsv#p%RG||xwKoQe+uOO&G0`(}1LQ4jja{8p zjO=9Tgzari0iQv3I5IL-OBWm9|6t+B)PYXUmiBhs|CJ}=1T=E_41b6kxqPOpTDSs) zT+IOhW&jf_Hw!yAGbezVk&)xS678M10cKA2#&BdJ_70v-mgW{N+<^al1W>9eYf#b9 z(Eg1uadB}0j6MI00f+*fEzRu!(!s&r4L~VE_1{%K3uU7Fd|`tl14sbvfKHz+{cGSqizROF zWDfjSFN_?_EC5Oi7Z(R^1_rZF%IqJC-r0=a4(P)0sYxbgXDVWE`%g8_aB%+&7PWK& zntV3z$?*TKwzZwTyPfy{2%A~jnf@aUFm-icP_wgibOlO@{(n0e;9&0nFf+1o1_Hc4 zS-8KnInV{b#>mXb#mEW(Is$+mCKe3;%&zL`0Q?up^iSBx&eYfYKN`N4X28!kIB#bo zHz2^p$rb49{eKhx9l9V@ z09+hg0N?*61o+<`a14q@mj9=`|4UNJ&dmN(=ihC7uHXM@1;F6;Z({=}|1mZd;J;76 zAaCztX#)K8%zvDz%gDy~Y0A$xrvKHk|Be5TZ~y;U^?x5Nk$;r_dh~x(DDG-w^RLCE z{I{6^pKfvn$O8WH)Bj91vbD7F{9n@lN2Uhw-zW2bmr?n@mKVSvNjF6qV&EJ@% zv$&-P&{WaV#l+(O*!JIqnw=@o$;Q$SsA%tO`OggkpkrcV`+rGQ3riDgJD{^OfSv1K z9MI16zkgT3AZBM`Z)$004q#?u2N*dy8F|7nej1YbQ_PzQ@OhAc9{)NE00w$Hdza54 z00&nWU%=<7h5Kj!Ss4Kg_IAL3g8#-$00tL#`~P4T7660IKLz|JzzSe6|K~CTI{hd1 zdCf5h{RgoF7=-@=K93B8$lt_IB>Gp11Hd5mH-GbUCh@=Ar;5~H^f`g_-%J35++RsH z0E5Ec#LspV{~~4pgYsX*1z=G5JMNQH{mXr7s{NhdQ`7aIJ#aR$clx_FpHZW~IiDpN z{|9{nlfPmB2GhUu02ux%Fn=zd*acma{`C|pik=WmVGY$-#z`j5ExwkqEF8CZ!@1=yZtTeb8h#)=(A*xzms~9{zvbKc8m)FKlM{d1!z@51iHqwZAnV}63>ea z2t^CwsFU6Otq6vWiVKn>58pLHn`nP|Re$UBW|~5V$n6;eIzf|+l@8wT_#@*V=5U}w zXfIW_Xn|`^MdnjvWy5az<^vy{bp@BXp>x07($*>ZF@}9n5$_Vp7P5*N!v^^2W?+>T zS`|mf%-h@p_r|n&51uc+Og&YsnQDm~b{NO*blis3EC242poK~~7=$IbP0=W^U4P>7 zg8zV5_h;jxbX9D6nP1n0EqJS9KtbhZcew?V*5Used~+TPf{V&CRS}a zcS!$02XMZT@8OOa8jda*g$Lzc)i3lpjirx-=%N8@NBs_yS}3M6oAbIV0mE>w5`RICk*D}5o=9a2*YXzZk+j|P(4=Q zy@U95Fk=#5SF>N^)NOGk@s77bIe!h?u~+)^E&02|!k-T*>uFM}26&!edS@KG2W@_z z&`Za;ffe^*dZ$WMq}+wsY=7OygKwXkU484lLXKnodK)oSPv0@IB}>2WuV}G>eDu)5 zp~FVHq1Imhd(z6PFMIR(ipT@9=K;lvq&qdtQm+2vV#G61f`oEb1kXZBGYr4i_tBeU zp?bD~NutM1jQCu6mv+~EOL?eYtH$yDK=?xzK2aPi^$x7W#@`K zx)4?}#}L61g;D?wwT8RG1<2JE$L;2R*j=&8)FHrQ@!(D@t z%krlkx6C^=2_n|BEtoE=ix~eB2L6j7Vb3Iu-CNe?w9ZCX5r1NTh+;5<6NbX|*QRD| zZmi#-mU9f(-%zJ*d&A(RLnYIL6<;YZHhh~&pm+02BFp1Pukc=H%*h~46r6FE5GL$j zwhldJ5A^q$)k9O?5=)VB-w)P=rgvf(ASn-Pd?Fw`=~=|G(yb^R>s;KtI~7Q<UaW8;YOE2#CgM35?=Br>@7A<=?W^`Xt!VPv+g| z5PjpNN&brLZ;kqGf|1kywU3k(dD*@ah=1eEGHJBqj`OP(!m?>B4ZP*M zW+(&r5R0)O4ST?T`@YiFpfH$n8YL&g+3dJ#V-M)(hy`F;jj-*Su1P@nzZ!gT#AP4oP4-W-aNYW484XDN?=&0QV)$^=^atFNi>48dSYbZzRBsT%)9mR zg)jEh1RB29;B1Ilu>$Kw^es*OD}SC9a#l{k^M5M0V~3pcpW;2uDWs=NU1krcv!z1j zWVG|@jng@FXY)D{aj!VDYZa9-%)p)+B=$MwejC^gwBnyGW^KAK>Gr*nzyNMhZYHEf z%SD!*Xi6d@@09aacDZ3!5k(4SQMRfCP_u25Alf~ugHdQAkfi$aP$uMuFq%YcA1}SQ z5`WA`11KMwIo0S#qnaPyl;0|iCviJ^zg$RNtGzo~+F7~L${t}g<zkB!h-FiQI_p&4twM@YV&Qz<-vsz6{oL-SEriL!J{i<}M!2V4~Yarb1-M zSQ81b?)u`^JDD0atv7ERxn;=(qiL=1j^x;coTK3a1Yf?s?|U`%q(Jd!YSDdNA%9Vw3ld~vl+SYAY+r!1pCJ{05XqHXk>;2X09zB=;eUiU zZuckO49(u)>hfKR6!^Ra4S2dRR|m*ND|6`Sb~TnP_EVD4dJZb0@6!iI_E#i2m*?QV zFB7y1R2hn-HxAZm$@4fsI_?w<)GcP%`W060yi47Xo>*yn?a`F+P?_eHN)WRS1Bl9+ z(#szTx?X-7>_^jdn`S=0uC)a>GJhcHZMB4a6NFC>U7m~Hxi)0RxH;*}I+i4iVVXSa zNPQDp&dh`0rh^({klaG9Y%>?!$YX7Sy|ZrdV||7BL8mzF+tPt^^XlSF0<8!VJ^xEE zSf%788OTjUPu1)L^4+$QCvspD*~s^%^TQ8UR0yTL@SqqMa^p=?SX`9xAb;ho=*w*g z4lepN{O`7@->kYT=DCqSB8Uf|NK7#%6+MZ}2j?Egklx6c=0Bj&B#<)qrFFSYssTOd{ zE~Sz!fPXwve2bNT->`(=wT7fn>o*5Ubg2!>=GuoX`oYMWr5x{qHsknA-9@Rn9YHxZ zp!%#yw9_AI;~gAE`qew*`iV8+&+-Or>1MR$1!>3v$xLm_$j_Nc-2sT9)Vi~MB`I{7 z>&@T(-+n1|gt1*8N`F3%mTvVp#P0~7(2XMBht?rGF=fzeZsYRuY!_kaj36T`s*GX4LT6pjV=cWlx zc{_DkTCar#pCutvC?d{r zj&_*r;MZad>`RY=qSm?x$syv)BQ^F<3WE0vkcDwPF@O7uOSXfQ#p2WVYEfLpuE_Ol z7oy^6K#}*~Gj8%~(c^otXTkSVM6=|?&{9jZ>Aw&asGF}FLxMOcvp@aTS*o{xEpzJX zIM4CU#*Y`j0yOh@=pgEw!xj_IfY!&AOcet9D43D!b*8-;2E;Rwi~@!*k)(&Hs^Zq3Auar|S%}w($}OH}Rx1CBBrV=sW0HC@=4wPa$n+8BA|*`n zSAS43bMa|MTlNk&)elg(^RVUA)nB3CzF^pHp2p4eLmw^s7^V(cA_-ad1~=}b%BnEJr7Zpg>x_ftkL>QP1S7;J1UuQLnWceZPmVN!h}@b$e7z#xdm z=+W{B)9S_q2^q=IBE%6nL~u>~I1VL}`+vM+h6G0K0^ZCWIvaZ?RXa+WFI*H}Z-f|} zuj|(VEZ&l);z#UR`(a;oRhk4rOmdI5>bFc!WPjUkHxERass7n{_F?qSGS}}gdi0{B z?IafAaf!DqA7He&e)t~tuA4#M@2&B z&dbkwcMvR?0AmvbmyzM)1!i6pw13DZZmn2)@*13JqBqOmrEYGyV%iNG;&-SRB`T|_ z0ER_Xx9&h?zta?;VNR&={8z5g-8qTU$~J(F`%K)THfkem%IyBm5G z0^rU_;g|T+*~dr4+{WjLTE4dntv1JJtLmimHbTaceHdS|`p{M%OhoaN z8br2kdbO%d@D#!#JUH%0zQ9q%;tGYCxby|s^u&+e=%oWkYC^t|I!4UJm>BK5&jTbItaVMB{dgS z3Wx<>4BGhm%<&A}rMX>cDkXzG3)4WBZqo;gxdwdajP^7@?#zYM`h_SX?$Lb9eo`g6 z6474Slaoq)b9rK>3V-$L=0_Pm($ zCf$)?DXqU2?g_%h2R;P3TeMQO)1*Amk5N=v~tT z-GVZKI74w1|r8}w&KrO+bn*pijgm2n&O&}fe+9f$`xC3US{0#P6R zNO7PcF-*N4sej?%FRD<5*rU#ZBTCAvOEOS!z zm8hUo(n~lvhkh4p4gBWpVy%Sxg#L^Pp{a{W@mlDx>ykoPH5iHM5btEkcG|EWERoL< zO)snxfJ%?f6%7$$-9K_^0+oms@fZ`PD8d_-Yzy;#a8}$Cv%Z30f%N^jCcb8j@q%A5 zlMDV!kbepb8k|}}d#!p2tF{Nv<%L@*rIexx8+qNgUL`jU6-kfGU6Ai|n`FIxCVSuG zu=|~^6y|IxkHB`&Nu!m1MO|Ii-xh`N?|#2&TY^T_z|>pZt%(-bt1c+Bz%q*Ak@Jo! z4aU3fbzv4oT|D#(y*r1{eJ0kL1T)74Yek(hkAL1<3X5T+zxgOhFOD^WQ0ogtas(&P+BiyCgwZ7>zz?Uu?xNfuU;hl^!BMQ)KlUDum!^!o6A< zBzH`mG-W8s%nzmf<&Uog_LaUtTB%MDUDmXO=b*v-N7tOpxgQ$S=A~R$W@0C=L0TKX zvwuYy33n>huyW(0q2jUY%#mu3@rOo$Z?`-+8?g)}rV+e~{@y|=Z*-m(7brtAR625x z;5rjo!gj^=y2dF1wW$D`Wdap1u%vRN=9$tOsjGTIuq+s1{1zgXWV1kz5Am>F!#?gf z@4g&RDQ(#F6#ba(yIE_-rOG08x#1*{_kSKHjzAc203jM2+cb3w7sWH!qY>aB?BVuE zJOV*Zs%^$;TxF{K?QX}ESfk~7uxa0anU4N;;`Z1vJX3$`=Ldri$Cl_3I{xl?xyZFm zhS(FVCcRAb=tI80y{dH9Z0`)y+Uk9mI|6+15Gqlcw{uI0z<~gAFOz%>b<6SeYJaQ; zf(LwT)uCeb$^ayk!%uMcb2}Wu&3Uf2%5ST;X7sJX)zYNHShA(>>Eav{GfC)(S+mp( zct*D`iCeZ(XL4b{LjW7k>X?D)F&9#|^H*Y(t0Ar>_4OsUNDN~cw|fU1+i+uEadmLn z-11b;xMkZ;{4fAEecLxIR^w~9j(>8yJRH_j8R3q!^~7uD^LMPbz*md@lGv4Y##ZaH zY8{9|aW=!cu9X2iDx{~MMO-eq^baElN%IdjNDhg7Kc!b?_F|16TUzYsNC`%)@VACE zib@`TbRRcz->1z-eB={ioUj>+1dkcp7b|=Is(G29TDHO__ziPVm{8aoeSgoslZ}lU zEYw;WS21$Y^N^};x7$XXB}nN%(1eICRQx)#pgi?*br~XCAklx{A4emB!wWk$Cd!F^ zvVfHnkYxMTLe4}=HPxDIA3I3Fuut>2MM;9VNa&Sv1RL_jURJs*xy%2h++0=^4s^J> zvGxym^{izxzXogJf*(&y|9?|m1uPTC(C=}vA9al`eXO^U3$K`h`6+7L1XT%Z#O&z- zvJNDfQ3GT5LjYePTWVI&)k;^4($NJaWo|8zYR=h#jEdJ>@s4t=RTeM;|6#3&wAYFw zh& zGmw>#Y)}}|Te3w6Z8s75O1D3pIpaI70aQviu-3e`ZtK(ASu1hc+g~hK$6wV>VhTHQ z@P6wKo<=>e;mk8>ngmaOi8{BM+j*HQf{@7r)0>3NeDK`qb0&RcC_t@%69OQ(+K?y};-)$Ctw}XP9^J0IP2ef$H)&RRzanR1$tvp@XFu#S|Yxe@UmL!obe@^mKT<>AlCq4aQZY(4EkUdlOwp{}U z5#25oaTe6ej1}4*6_O^TAD4h>aJsy+87EKoe~#MiM6<{EVxHb`IzWW=&X|th%baDj z&zdDeBYGE@bbmlXr?8J&?C=nIo}$owaCvp!;PvM&@nB2pj@q&zmo6n?m?=+hHE@^y zJe}pxnVU_< z%iyxg@rPTsayZ_dWUp@wu&8a(a;2qULH9LwzsuLA{Z~=-0;O!`C$BS+rr*AyIPuI= z`jz?$FiQ-cVl}SN?_^XG|Dg!^w!SsGF2KjOkHIYT!?_Nyo^ba^iX`(sMyM)ZI#K@0 zLq_iXQGWqFfcOU8zNzkTAc{ps2TlGPXvon*2F;9ynrjXqhxN4_VjBG#G7g^<(W%x9 z`kRhLN@6D1cHq}+CL7`@$7kadBoYPpNu=$1OwNn>`;A3G0pA?`4Y$6L(OsN%p@P<~NU+1c%y{weii~bl&?tgrINmCY?F+tRn`BU62g2)vqWdeA2 zxw!YJ?;Am<7#Ge&)2PMOpb6ZER)uPawFu-mc`4)Kcte0jW>kXlv#VE)U*T4nsY0H& zYWx(E=gqN9=U7e51SaJU;*e}K#=HSL7ZX&jfHD5YxU&FX;~nkcrSff(OHSXksc$uC zE`Jl%oHg8ELR>M+CS@$}UE3_nhea}o4O_BWG>*$Oa{FC;t)TNRtxr&$hn^@6@*kv2 zF>J+;OWf`GTRt$l4!ZmJ1uCyJUp?*{H|w{;U$Ldwrixo zUw#>L#Xp^)^o%hl9+m?}AF_vvD0NNpL4PKUw1%x9RnnBMvcETEL$N51d**G8Fma}N z2q7*(E)J|u(fO5BbR^O-o`#F!Xs$q|5F`4i%3K9TDpi~Mn!!oDQ5icpuxDw>Gy7}> ztU!&$k_Q#)K{pbAkq&OQE*KV?SKpgkMtBfUsn8#NYj1332BnHdoSg6h&izhuUA#0=sNuY7dIrU?&q&o1 z(i!`Kc*9EL zk}_AAj|S&I%iO=ohu%iiUW~oOA7@7YipZW%kJN1PMhe>)9Yj_kGYfAkBci!s-rkwA zBs<$KX&&Mo3`bJaEE|Sbu~`l|QgF ztvfXx!9!WE5l(Ed&FX&)uvrhe>?3hbwg8WCDK0F!pjBq#KCX~~4H4t-iOHbtEI}~> z^j&Ls_w}0(qAJ4-24oL)sPsMJ^hXZX^3m5>aFKtM;M`7cPz{P#Q5BSy0zB(D8lMlj z?Ibz7AVpD2rCJV;$3`bh$A5e-wUC1?2gOAr16hS#CnoL76@WiGFpje=iKzi1hTj!( z{2)8B6{#Bgom%qK81CcBQPNIaTj)d&;`tlSL&fJMxA+iYx;h}pc6y4G!u&xwB@9>} zQ{Q(~jed`aG`7e@iYr%c&F~!EH%wEfFLH4c` zAwEApznm8()dUgJhVGpZLb1JNp+31$JPamFjEFo#nEHb<9i%ueokH15x}1B2x0q=h zazjbLk|pe5EM`D~nSZeDlrxr1v(+%cR5arHtr2%<$&=tS9gql&Ufq| zBNZr1xs;ff*JesGC>HCwNh-TLCSZS%CFtsepM$P2T7I34T7MpFRF4ttlRZ;f!fI;{ zSAJD^+h74G3RH(o#0uDeG*1@_Rrk#m%roG*t}aV`C(?+P)N0TH2R7iIWYLxU#yN{G z42v6nVIsv2Y`w6wkuyYpq)h3r>?oih?tJ?>bLzeSEyGn$Jq)fk;RzadVF}--hBRq* zD^k!_^@usJ0O#^UF4pwX(g(B0+8iAt0ZULEY4$i)zE(eLO1JVCfycIAu}MQM23p?f zCiQftdr}L}&jKn_t*Ov(w&*FCt)bIb-5aP!)g4l1wtvB<>Fh@6&R;%H0Sv1xC(N~? zhu#4pmr??oYJIQG1=P(4g52oWvo<;D-@h#)rVI8+LcfnH#c73v+sVbUnmBI26iWoN zgX((5+mR>Hj-8P>evgw|!z480Qm57P18$njqx2ylrN}_c<+|HF9)wX`P0}M z!`JP^qoRO+6;lJLC5a}g4PhnX3{UV(5p?Xti{jWhEGoE2_17g>M=*i1Z1X4U3njyN z3menUWM&*%LzxL>Y3Ni{=qgw}{?Wo3kCVR)w|{A=OTJ5UW-OsCsQD*IddW<0dSA7r z1^>_ig-bYC<#3+eVX1gLw>~6hfL1&5I~&mgX3@E0=T1JS7t&qg^%6$40}QC%1FfUA zF2rU!+AA8LD~8g(!sIV{%WL9gfS+&o`HmW+yyS)u`RrWKUbu{WPKWjG_AlLMsc#yF zMSn&9amEiqq1oI@QJa@8%V`240u##8Us7qkqN_JVuw)%)RWFp+6;h*)G>$&7yf(jT zh=QN16)=_V1^ucr!Ba_`e=pXxdIMqY^RslBf12tyUN}uJ9al4^iS)L0UHI_&v&~u# z*<5;R#uAA0li9=LRS8g6Aeqk*{3hlj8Gn9WYrf*_u}7EzyKQV@5_Io!TZJjpjbVrV z%}x94`4W3W@-`l>xLq>01kx|Pb%Zku(aCkT^~I7Ytb7mwh=A3h6CytY3e~uwS$xxUET)UKy2eZLhWhqqyE`Qn@URob zz|=ql*ko2chS9TEjE1K>qHNa9($*@yIlWQ94zdlAxoI%_e6N3NCc-Mmx0ZWfND{Kk z?^84sr)_Z&B+{j|CoxLFw-{nSdhIqLu%wzX9Yyj`K(0jxZQ?tExPPWE!!x*BFCo-w z1p0a^GLuH43EdjfrlxI;;B>;DWxyp>sWcvHenFL5163O9$LrxBG^xPm;^$4UYYlHZ zW29|S4Dn@@tSKFs_yV51Z-S%QyGu|h(7Liq&usu_IG2w`16G<*c7c?JSGT4|E0)o9 z{^k&mgWJcZvhDl5hJU9FDAkviyp!mgfE9w7qwuO{yl4x#^W-^H3Rc__?Jd03{T+HD zbk?NMSZ4g)W5t`8FE_jlMb2n-Vw~rXFyR914=ZZ1Qk7lBovxkr1sfVL)wlw|Mw?ZjytSibqKIVAZJ`- zf+RD6)$#gy8p}P?aUiubLy@foH(+{2?N81!@56T;wPeqZApRPJi(&XQUpGoklqzkN zlL?83w-@1CIe!eYcmB$r)Im}9kQ+rD>sK24T1*P?Git4sOWB`t@7H=u@zx>j^f+kK zVOv?x&FV`A+PQeV*uN~2%sWSl_JVhJy>%weH@d#|X(u;QB#+t$m>n9~x`w!;>>Te? z?)+XH{z2dp{Xo7{rAVy9Q^!TU$oM-X{~eFk+z8!$Vt+girZOgesOmaa>S1_|B;jw&JjcEDj#qxt!SaC{6B!9RJzv)O1J6~{b zfkpMBKJ4wR?&gNGSqWyRA3N57c9u?agmAlRK}8zH=ia_Y$$G%$d66Jij~eZ_cWg6f zUtAsf`hSVjRaI;y+O7(_CZa?>>NBn>LJ)KBXoa(zVs7yCf-Ubd%a^W}VV;n1N;7z=;0kwfFA> z1Qiamb0iX3!OXTTS|KbvshSa;yL=&bCK^2%rGHHWl`P~hq0TPkgFm{Kc_iIlBeS6! zbBeKjxHPqmP(%(s(u=NciE=ICE8B2-4~U=DS3hnvBiQu}9UEcqm!>ELj2@B2!Ex@e z`*mRokU8q7EOx8ANO4j>F1|lU&hbK~4dK9CnrSTT_-c{w^esO=+)GdlMh;4vGq~Fq z27hVGSx{l4JH=?jDdwG(3rk!+-A2CR z3{^^MXKHVY-aWe=y#algM0qCs54ZFTtfCQ{7t5Z^(j;MKvfn~Sn4!FlEZ4`;_Wsy>9&RLBU?xTR!W9lz8aOBTvvE`Cm z{DW#U0%4c55=5_W!N({Q#eb>T*UR$QoFVg`94oY?<&>q5Wmy^sK;)&+5eQ?agRYkD zec$|z2;&IxuhT>zetviDrR@r}*xQ$pzv!(O{*jOkjVyR25ZblpuKm;cLtNH9>NIgM zD1bjPxCm)%2z`OTDmv1|-S#*NFiLk|gXiy7gtbOiMmyoTNTCMRkbk(RR-n`)S1xnv z*QCYqpz39?9VF~g5v_=e67>hkoHxQ~@#V1eJ1tzDlwecKTdsEy!SD_)BG8r8yT|wzpXPAp`?GUr#C65)oriH=^^vM5Ix_olqR7qs$O58iI$022vwfHw5Gnx zc1oD3N$IC~S>hd>K0C{O=T5^$6CS|}U3kgvzqDmREk6}O@7W~EyKm*41BVY(dl>l9 zx)_hMAwgFE>smdV9^|lmVBMmPJh479IwiGV@!U3$zd`Gi8q3?kKrwOya0ND^e>#OWFh;`)AU(sZ2w-tWYabZ`Of}vqO9k$gDl>B;U_2F zt}quen)#d&MI3*;>vVfR9G2E(22P(KNsVFA2uDPlI|wqGH1q5h3gPAoM9aC7_<#vQ z&rQ7_^UEMQcgOWMc|wRVm;i}eGmT2C^D6GIUdH0OH|TRQcCTY;T5m~Zk)A+hhCG2= zL`c1CIg|# zmST1h{#o7pHK@s8{o6Q2h!O&>bLcW?YjI*%{CNisS6Mmj9)u%?j%^07B(-hyUy zSPQtv?-FfOF`|4e`#$3B9l1Ww7qi)%VQwQTG()#fEk{tmZGVh0DH+zzHgV>=rTy^N z%oeYIeto*b4p~y@=}tb@Iq=fltCkIT2ZTLoPBDM1WfZ+271lhAhZD*7vvpiilD-7O z)>vhV_v(KE8hxamW2#a-%y+vkZvVyD!`1xNAw$J9O#8_6C?wYOjdtv(% zgh>v#*KT-yM`;B3RNI8l@{c4Q5#9Neob$Os?tZy*Q6G58No-w^UTk9q6*F~mI7Jpa zjq88jOwM!Cg$Cbm;rEQ1E5Cju5WNqjcKmoD-d0f9m=?(%y_U1g50ec}|&OMlIRXHvBx z&a#45oas%H2+q$F$$g870)GCV91E8Dt8RZ81i#y_SxAVZjOiJX7lr$FGq$$(LHv;8 z#C@QEoV~wij;=opg-Dhe%iu;Wf?+3!h^d#ho$xa$Bdlwi$zNNFTeGxEm#7Q(Z@Sp% zKQ6@j5X@HDmZ9Ji>M1++%x6gN!5(K?>kh{z7HV^zFHhLL$OYuv(0(~X6;;{o`G0@3 zz~3I#Oy2^2MXOY+I0WIdUz~zz>1&`7UaYua&{zbJDR&+8GL!e}!;-|20?4VYmxqUK z894X&`9Rp=I0@*b@*T{J!aDqUz$A~+$cpV{52Mz;fuThHB702_Q(jpN#m6%E=bv1S z4E6Syf|H|J82*jPeeoD)dJENf77TwgCP z(2+-f>YIe;jF6ei&c*H33ytKLKVp2AwM1W2rVk{Zv)q1V`j|I(wk6afSX;uUK?bPAv2svV+I2?D^X}8~%88^hDKXfp$(Wv3=ft?EP z!)Vxqq!YkjfSdk&^JabOH*9}pBa23O!O{D4Sv|3Ff(sB1ZcZ3;fU9p6)SgHVryi9M_7cJfDT$P9xQSFx2kw;hTx z%EO&Lzib0y%Au7QZrs-;SoW3_ib+z>Xh;KSgCn1ziez=xV@ku^lL~)}Ks0Izq!STd zatotunecv6$-cCVQ-+AbPH@xLHQwuLywxd_VFk3{jIM;*Z!?mU;HMRw9d>0&mQFM! z=QHBm)kAt4nAU%N+;4T-3^@S_+7siK z*{@$(krD|x3BnwXx_p0597y{{uVZ#O&$jh|i*E9Gg7H2v(cp}&`4E@U9Gcx39k)`4 zV(t?~y`W=11xZVoY7HS?`~@TUZf}sE$34nzcwN_pkz@4cr25{LnDkk_I&T>PUX{nb zw8ARE>$vwy*(s)ZtywSX{lm!C2J-7#)tI`G9B9R*7TN;e01tmjaXQZkpLgR!kB-e4 z40|VKu-9^Qsli&GO=@K}ypn?~NYDHVsGC#;i<(PkAgDGF;H^$rSp?DN7 z%z*VThgr);Nby+vQo{=MrEajyzj2%A#l%z(Xok1$xOKb#7+Ff6!iXYfkPPbCPHccM zdKMwSC$pgl5Bz_a(#3QMKsWS)3mqWov)dJswy&MzvLXal{&e81y}&3V}dX+268>66VWp4w*tBa9dA7xXamR`vkkVpr835#CU3}v7yl6EI=>hF@v00%2 zRV{UE6$X10bqYf-D0g~a13$x#Wgo@jjx<)UcboLn8#|;q7L*0p?5U#sL$nyE+ z7=eF&vpjrVBLRtf_|qDc1nD+Ng@x}@eb(&4AAAq`2%!j*8U{W>Jq@JiQW?A^L2Nq; zr^VUxLeKZ(>AH~MRryNk%+ecu*M1{aT+B>6#L$fwEW&E2AVn#i0Kq#a-e9BX_i@bc z<@VD*kw09{Eg$cDF?G;VQbV&$^I?R`-9vvhz}$0g&Pt3)3xF#{qCB_?@;mqlZN$mD z91Jqwc7Z%S#0DS+SZ~}Kkwbcu;R1Aw+^5!prI}1$4*Y&TH&)8DPkav>3$@6Y*IV*& zO>~W+Z#E&RYCk+w5*#c8l$AlKeUYg1OA0Ii210R-;7xfJFYiEF9Oj)o$qmbk$M=7M zb)YC_Xx&z_GUjk1DRNG@@ww>fLYs7!&5nYGu`VPMFhrDXY7{W=) z0GoYt230hcmFPHm>oIsn=6xmNeFA@I`8<%ZzEz?Ux=|`|fEW~2MEMp!3?>$ogKMab zG$cHLW$!Whoeq7QSEM(n)PrKSN+(odYEQFAen?9Taf_A0XYD9l`5FK9dtF5P!^w8v z0iZ`XQ78OV1*|-FvVvVqp~Mf&&t^@Wt5VssC%jlOTwiW5MRS1v?WZ5&$tizu>jYQ( z7#*8XPfMT4Xp6TEz9cuC!Y8F1Q#+Suz6Nk64lic|-qb6(Kk}#BrIOt5Wzn;4etz~H zmZCn3CPMts&l1A@IgP_8owi@8VL;4QI-j4%nG|vXb(G23NtFW}X)Sqtk%z>h1r|?X zzTsro#-W<>qqm+lw~T7$M%RC6k`Yu^MMk8s6J0WTqF^=e#NtwZz<9#yw+fn@+l^`6 zP54$jCl`DaewS8vn&0>u;YZ)AA8eP^Z2Kg_qz6)H>cI zsjo!7@n39(=dAzkzpNA&s*-5jS^04O_KWaG7Z_N@C|K`E3|RTo@$EN;ASLsUO7~pu zO_6NWUB}kv@R%^dZ)~ohmt8f6E<^zE#-sD5bUh##e zWly^L@dJ3`!~?Pa8iRiwPp@>7!i$d`BP^GHjNTa9_#olr(U8+AwKpGmQmRR*fh50Kjn#LH*r_T|oI*MI1_YpZOLQ8A)^9_3k1y;TCDUY_ z0y}zCb_#&lFW91;PLXACF<({7lZdi7YnvJsUDyzdR~I#ApX+}$R_CV3^1>D(B+amF zzUE!)-Py1&M_rTg&QidkeKaU2TsCh?;LJp(mWb7J2fP?q@61D8o%|{;wW$&-U~jBi z9H0K-G&VOHr(PuY8xaw%^f2o}!Q?Q|C0bF2aw?Qsaqx>jlg2>AB;R4}ZY%ckQukR( zVn{{bx4gK1NU(qQ6L|foiR;4UWZde*!5cAj7USA<3*^~?sSP?|v$+y3U{A1Ma=-UW zCJWIWDABRx>Z8HhW!ms%NPsJzv_K~|-Opa_7opr5=wZ0TPx^cMv11UD*qfV)Zpc(TKPZ2bQB87)Ci2_=#_wKR7>zrz?~%aqx6N&Fpl~c<@}f;YvF(xKFg^ z=>+}rf9??7E_`&-v4lVM7C1DS9p`{h^LmZz;tHg3TeH^+J8Tm2OFLYRYuZpa9K%6Z z*tZ-RvxR^9>aHA2{tWvVum?l98JNNYP9;@fjG?|9@ere@?FFSSC-eXn1m zfK7iP(6|i8LaW#zry)%64uH_zcZ>b=uAXP=w=&aT1IU2R9x7X!%l?P-`9(Gy><;yKb3!H4J{ob9(i#r`)@p7zz=j3g=pt)A^QtH z>twV|PTi`E(!ddRNg)gp8}(5QNVsoQM!LC$)xCZh5FAh{9VSReA2@zQll2s*UDqGy22R*?|KM(;}WJZ4k z2e8P5@B6!hqGCLqAWtlyg50Ui2Md0t{xB3Z6H*S@X7uBxd>RzJ-Q*+RBzd0V6)ejq z?0!21NIjYTjQtJX(y>4;h^;ihq+lXK*5#k*?1ZMJ9RpVm2&y(St+&My6iZi&%1?<|E1GeqjTrr5uSa1KJa&Ipb;lK0 zSd&@w<55qR2Vt?n&R^QQvmZ~Xme)$Za54X+pTGHKBK^cfb{Cxe5vfX3DY^9vchhon z=D;vtp*i!6b@7DZL8hMvK#_F%55xc0-Z}ME;s9DZ+nj9Mo-o<9Gbh`&wd2kVBLSN=eb&mtpViVM40GTUybI|DXOhS%Xz^kqPj)5WBGpc zDAPhE(%bV&=Tc@Y(%E(z^D%{Vo*OBeLkysJlI*6sC?#{vIr6%2JGDK?{r%7Lubh7<9?Nqhk}z(o zJ`ZqnliEE#2d1s}u8=p~8n zH`h(Jg+#~U`7$Iahj(JN22h3P!AUbbHsQnMQ}4j~8SAP67HknRp*B5zsSPR%#A3bOe5aGsqm(Iu8ej9H!@WrUL zH9xsOC(m8wiwW67>OO%=@w|<)2vS=I;epqi{)5gHC2_h&@XmkUed($LR%@>iVox}y zX`*+Z0ZE()m*6cUq=FJ}#F*KN`#_HS@yE33t@YQu<)(Cz!ASASIEj(=D`S~Y^3sG3 zJjiEv$jL1~N0x%*v2cb1b2M>_Irc%ON1f8 z`P?6KoKPP-G0J~~?2IeJ9^7un1)D17D}TbO^N27=TNpyo1z1qL0;oxKUB=79qj~PhyvC=6<*nWSyu(XtTpE$;d@%9rPMbd28 zszG?FPRX6|GIX%v1Kcj43D`zXUpuUS)X zEB^{8L!^UL>lw(uFh>GpnbP*+C2tdsC$nbN{45AX#Q@>^G zpt<9B#^|#EnG0W`><2})>9>>>EFpg~OdXm&0qZgDWUJmHaO{mTsEg6yJ?|P=7(Fh5 zqU?Y2Q+3`~6JbM%MLMmJJ3?gg{)E~+34y9NwaKZMe!vCqjhGDD)pdfg*^??Xvg}Ga zWq7vtH}8*ho{%a9>l~=PMW_fkW&g+;@ob@g>xE30b3afu6qP$`IY)7B+zH zkQSD)tGZoR14GHrS$%V_@cPWH>r608cjMJ~VX)W*9v(=XeRSg*^CgnzKtoa)>#nkn zpg2LEO4S$6szmdg<^QEGp;sb8xf#b_&G&tD@3<%q>6!CfBgl2mC3i80n8Ec|7lVH$ zSwXqFLPmdV?oPeR0h)=fDRtJZJtAi_DZGhYa+`U|p`O46Tq>n|fo_uPF}CjNfD)AD zyjz_BD?`|kw9Bv2j0G3t+Z4N_grtvCjCeWo(GMf-`nhk56l=^~7vS_=^P?|vTceW> z6OJc;XXnhWnAlnhcTj!?iu7By>yUprN+`-2rsJZU?GbARMt6Y(u3*et>m_glo~+Y; zTC%LUo25qILRHOT@*vitc0~pioe!+NU`()2Qz-wY%~~}x!QjGtyehtIHSI;%g`6XK2)r+}5aeCEcgF?KaP+a~ zOOkU>!`blgv1WErg7q&S;Qep^V87qsY-*PGkTss}PHB_G!oL%}=P^8PHp(9~Ar_@l z*6Cm4S8lEqP+<~F>ttPSq%wbYe9ZmFS_E_8QRG)H0tyo)B18;vdR6J)0&-9LAF-fJ zL+jaJ~`+=^H0Xkx|z4_OyPeJuW+eKwpxrm z&WAH02u~@HnmDuOt4OPir=E)x14Zq9vg)|YAYtRqEIt8nE1AvD6`AiYUe%UJ00rxh z$Z}gDXj8OV%8-`XDNBO*2~r|r!e5BwT7UR^B!AGccq;el8^UalrcKHNM zxp62!r7+Zf7}BVcqX2(S5=P9V;!?XSRvE3N?rTb|2`a}$Q#hNg7H9PzwVr44J4m); z|ERH21|8{K!45M0J8IoORl4MQ*|?M|w%E31RKqZ$$35(SIyzFSrBlYC$(Ge7mNmT6 z!_K4!Gx@Bd*$TUu|E1vt)ZfXP#3HPLDU&MLp@WZdOu^h z4snK~Q@chIAf12rNBf;pJk8e!P&tW4#@Q&A*enz28CubksWTWZts8`tC$j5y{a%zk zA2c2Ub!LmF6L$&T%r(4fhMYtDNK>}r@sF)~=f;pV;E z8-a=%i~fI{Vu<3I>~4kr&PL()ZHAaBTRtXUs*4efFt8~%N3*kZ`J3)LVxYANKO zn2klYJ4$R~iU+^;oIQ*2ph~gTVS>9a6D}T zcy5hXfA{|28$skcBmJ&?nNmM3DmW+G349I@oekg=-aGHfZjyCaAcF`FFdfTq?rLFT zuzY{%8$Un15;*eYhGiV3hMM3IWuIX(x>yc~^a(mSQlxgRcuE~zbY<2DwQRqd@V^Hj zx8SE4Fx6GL#Vu!nk1zphl{s z!^n7#MB!A- zhA1)?>NKp>AGC4hhmc)Wmsd}DiYWxcLNP=49SC}aO{ws%-?k%st(H2D;Ec>d_Vcbp zLQMi!RCF^P4EuB70^2K1GoJoR%pI?K-xT7^6~lQaG9_1KH=gEa-AB#K>=KMxq85K} zGz*;&I|Qp3oP6`{qP8G!77&VZ%ztsmOuR1XI_JbjtQ;d`qTz>j zrSXpSY>zHycw1&P1ga)z4x;@kFHHr^;O1k&GIocw z{#X6mq6J{1Z73Sdz-6t(oPK}vp^VkG9fD7TZC)n0KB_e{iFiW6m^XEmTq9Nmt^b6F zuVWM)5rDMo^@YnK3z_!U6;C{vEVRP~3 z9WLgw{f23yVirZxP=MoK=el%x0jbq{W>dR;G{~^`qK5XIh85Yjq9i=b*+$pji#0Qx z=AdOUUExD@MSUr*)=e`kahR+ozL>DCyTWG`=2$v8OX6({3NGfhDzjWJdk&Itnud78 z@MRH~?3*SEM3W)vTeyD{s&lNGPr@i+K0d^LAaAU6G1DKFJik&tR6_M|yvgiE z%NPBkP;gm75pJaolM*cKjtq%U_NHw+e~g2^ZvbJVm1zgceyD$efLUp1mQG22wa{&{ ziY$_~9R>7V&{nM7bB8o%P`RWlk7+RjvIM%K=7^`m!3T}{HTb-=8nXKRh>?)oy_-6+ zC0(*4V*581VoO%r3bh9f>D&1xe?9`A@So&4G#AA`**$+~(R^&Qx9N728oPl6U98Us zjt36P$wbE!mVHp6TGI)X_`EuJg80vV`*h|J%BD$*C>=(Ol|1;L0O_vAASOu@5!-QB z^Rt3R!a9JRX65@a_7QgN$Sq;CMlinp`h?JM?k@u)Hq|W{!5_s(k!X^MbPE*Na(a$E zGan%~*lmB3s`A)nF=GEbWpXB3L%rB}EXfM-YA+aGekzLkU9(NIsV|m%eOCVF(Uvx^ zL*j?;y5K#P`3@Z5ZvASj0f<^LpP=Lt>RHucor3aH26hoj`GN}6WBo-(sl<5-@P$qL zu|l>c5HSoG%e>>Wy*})?iM`a^b_?qt5KB&3-wA(w&**cPoF?Fa_&gv<*HoAo-;C#RZIgo)RZY{=vV0<@R`I*8;XisgYYZ@mdw&j&b}p(2UghDXAi z1?qpG{e}y+qVq0668MGVHJVyyv9H5YoBosxE5o?-DM|((C5n;S3mUnfPi7~)+e;Kw zgjL8(L!Rtuno`;%f<2^@={Zj2eGox{I~~_NNGSvq$P~p)v*|H|#TJ6d zIHM_tg0SumVb$d5`J;(sb^;@ybIM~ehxqmX*s55ie-Hi4F2qb3E|AHb=_};pGUT#Z zP-zs%t8>|595V)<(}@jGLk9nk?=wGzap--ZEIYXd#dqA;%5b^V+ABhiBq;11@6zU_X;mhj^8 z#I-PJt2MtPqDJE42Ekd;q54rB%{pZh>rns>Bm94$C}9;U&FY)mnYw|^>;Zqu@5Vv; znt_8tMbA9LZjy$*zoh=c#oc}^<~{%^$xFw%3Rc$Zo_6?}mve z<3?2`OJ2_kQ7UJ2&mAP=5t@Hj@l>|#I{ge**AcFWaSsGwqI~#35lAML4tzg7g0TtV z03>gBz)nLAICT0lDLrUk>Ko@5li0wV=(*z2~*Hp{tXd_31?rDy74%~m9bNS4uVCnV- zz9IMQK)ig)?I(^%9E<#f(%V%u9r)jlB9jLNU6QSv#Rpw8sO8Y871b-d{ zgZUa2*0&!c&!@Elfn|k{V{STe49w2Xlb&`Qm@XF=l{)?@!>XJM*h7 z!er3Yh&k%xP-cY)sz-U^)#T_q;>$-{mYg(-$Fe$QAcNqH0W*;?ajGEHGf85JkS{R~ z3#D8NZYP`&cEBzU%_*r?MrHO-sVet>AZMp7cG%i~(16iX$HSB_qG3(Fgezf9AX3%n)ff8~TE??n!6`r(Au*aV6B?&jTfhtEIZ7zS|5Y%>}yC&YvR`tNvsLhDK zrnJZde{Um^mS!`lX;&7hNu@f}KXa+^{ajJ;U-@h;66rb*E`!s!JG@q&($F zS?6*tsA_+*S!Ub%Z>$#~v)##SCBlCa0cwuZ*vlOAHCcmFf^^xE3`PtMUgbo(;k0_q zzo?60aF&=*T_j$S#@?$U$QoQl*Q%RXSjmREF7V=!bXqAusqgI&h-huIvZV!DdGCR$ zlIrlu5GgZmX3HY+cpPpp6k4|b>1qKgd#d%QUh)umyJ=RBy6~R=3-%a5g7S z8(e=MY)==>m>e#QHrmQ`6P9&ujV^+fH`PcN!_d{!;Uf175z8Has^geAzY;VeL#u;y zapcoBgO{r!K&)vOG%*E&P+ZfduCvF}6PRQ}XTX4xPdnC>%N{B_a0P`-x%k~?6D))X zHC-~SdrK3wH|jB(q-edrqm9)mqwx^iNxgp&nU=KPIj~9H$YPLW`9c1{a}_wfgOKS1 z1KFOn!Xl&|B(U@v<{NXWOF!pMQVcN_m{?YI)MF6H?vt2q$$3r!aBqUX*my{)bHdl_ zQOa3>bZ=@M+xdV0^%-f^oFHlsjzaUzK-I8dOu5>*A5RJ-c-o-d74p(EZkMqn>^6Ta zJVTTAFxu-hMWsz~JcUWR`-bvmJ$yzgJ(hHER5z-Y9bnw7e95b2wFrvx3yd{^Xb`Y_vfyv|fH-IdK%Y+O>duhm`H(UfEBaC1YF_QC{C6};qWvib z#-mu-EnMFSl|^5__)D@|m(x-=Swz7 zjAcjZiWWU>lMxvv9NiOt8)ISq9#k0+ch~qqcX16)3_?7IFS@)DLHk9waztp)`0AVc zzQ@KoBbMOE41Y2NlbqScN8omeBQ#yFTJ)F;lhV#?V_NXQ4f{h6ae&7E1MYu&u$zs0 zO={txbq=)rpT!v0Pu8k$*Z_j;@`Ylmm}CAh%(w;0b&_+|ed(25@Yn11wsEtQ4s9r| zkV+|$#}`q?ne(71V%#mAq_}G8LVM2uZMpTe3&0X5w6BJjfb1JdwNxFq%1gbKg7<@^% zjBkgKSRH&w3js-&TgmT&rs>0?kWMtI4*0% z;cL%2b+8kvy%Sowz%ms&b=#o(&7$xU=o zRmF`T)k;rW?JHV_3O6Y6>16dO@&{|{udU9yjaaF_79qpy@b!PGq%E)H-V;kTMc&k<*L@Hzou z-ChT|k&p8o2W^zVmA>+jv(J5 z`V%=sjBG*4I%0pgCaRQNF%A~aH^5ATvgAJK;KyJvefOzFg+4`#l?_Bx4T&+denqa0 zTInDb(Ps#(A$N$iam(TIL`@sy6L1P#JnJ8qj?N|+rh6D#y<tk}d9@ zqtyc&@@=v&+E(Pj87gOk=$nC=FG9I9)LD;t2dUn7wv>MZM@=0jL6y#=HG%JUW0c9V zkHRtvXmI6k(M7VyId>XaG$Mpv4?Rz-&OhA(;ae#lEr@Vlefp;p3wuu!7%U+aSlob{ zNv($Cb2n^%sj>WzHM4}EJH2|;A3a;iVex3eg#U^r-x!IS`$b2m&7c(Q?$euFyh@i1>&E(i2l_Wcu1j||DIa_yJ(w0 zQW7hBgwB(~lwvI&vGi?jMCM0dY0)A0^(La2bxRGxoaB>^;(&mVnwLY>!`-RkYmEfG4u zV3U!>@4gwIC8n*MNykAEw}+i=*T=HY{dNf@Gk@@-T_C9XK5LhGyblm34?ux%i_uE? z+0`QQd!GmUus6tCFahyVFF4esPwA^U0RaV7)2kJvXvOMi?D~SVHzIEN+AVdK^_|RU zFiL;CQ53$mzM?^B>ztcC5LZB3B2-3obDfQSe)ot@HvZ7HsS(ldUbbuJM+mSa3B63& zI8BwXhm?okmC)&E+ezjn^4MX(#h&pX?xYu~IH5H}F=eDll@uUr!Z`&M_OQoEu|^-M z`Vd=(UxHE^?XEPW$@d2NL(_qHn4FefN&1j&92jvd>lF%ig->EqpCYC}N|GH?&yIfr zfL9hVFf(y+=Ho>lC=7>~*yyc2F$`aIFzu z0_}Yr|C@8EtoG4}4JxELH@Xu#q-}&)uJcTJJA$!44rPCptCt^OgVRXAw{puw%yN>iq>~dO|X(2=$aoUrG<&>4{mNIL@-_95K4bDN-Y;_ z4Dcu{(~Bo}$jCT}|MZAIMd$beksMF(Llr`x>Z@BD5u!NBr3GYSkkS?c8c@#!C5kym*Xn6#x86C1gRdKZQ-vzo>o41~jCM_{6^~Z4 zgCBi@hGw^(G%^TDSVhlP-T{C7z;aAEUE$3Bvm!WkWSGV>SLE?673ZKF29135CZsA6 zcR?-H88=34vdG*%JYRO7C506;Zz4s*C|DDYF`x4;SvJ(e*~hKU=EyZ7a@aw_ii8-v zq{Q&~wCl%jdAdrSZ9Pjyj+V!IA&AHZ7ar9Ny3wD^guOos0A^*SGOK@KI^oMd8NSK< zNu;7kpZb(=A!Ell9}AgR&2J`f*zjTDRy)GX z4nh!!^~=h%F?=$t2KvbDNgKY86>g9Up5I(8<>O=6`XJu#@3;SlKK6Z27{zu1f^<50 zsnz`P>nPr7eif)Aw+505T%{+;bX+&epdQXHG53gGb%c<^1~7j@CeWmJ2ejQFBdtIV z6|pPF(cVNhR!Qy4-0JW+>bt57>q2#_(COo!(!?jf(l%=Yg{LQ}v1H zXTb%WogB?5Y&wA_&ZWFLWa72e=93 zfcP^#M?4a!Bub)x`PNoQaE^=W<{Yx{=U0;qF zY%;@7oM(6XlQchwJn#MkFt)wWp^Rd5o>$y!m7H;Qx?z8(bf7ftc&7Lj9!;2N_KyFG zPRp`6TfP8U$0oR%VJ~E9i&N&ZoqXF@!J!qEXp%pTD6&25-=pmoj<~#K_eYRcG>mxm z75a1sL#{4y{VehMUeFoNSr_OJ6w_B9{t9Pp{1b=F_q*6UCGUH%ePJT-m~zy{L&9xA zDQCp)0|$S#H~s(-p`(`q5w-3I(@{O93(-%3otH>SIi?ttoh7Mo*q`iBrw4>{m;e=8q1KME@@Zy5Z|($R*GqGKgSzeS{@A?$+;?M&FFA7`m=2_e$!OLR^y6 zFEo?CO)vR2G#Al#i;Od)n1e;;Orm=GPGF8U-aDn(c&xqlvrIuMMA!yX00?@Ar$oAZBaa_- z5R>v%>Gne)M85I0jop^L5v9#6LJq4Ct{tWnc>&I18dqq&lR=+i-ITr9u>ayeD`9$M zAVB$W`?YSh6I-L4BEmU1V8ZwA82yG)$nLyM3b70BW_Mc_&13=En*?#$ZNvOj^re4Z zZ&YZ-Xd7!lH`U}~`Iq;Ug^8=XlY@z?9g?4`g`2yR>;F4@)K2-&s{k%5k(`Lx`a|h89KT`pAa4sllai1+Ij*;96LN8_6}`mbop#4-&(? zm3@vGgt_KXayiCI`~%p@egh`ix8Q$~xsD&z=|buhVDWF^tdl?P(#fCWlRtsQzk-7n z|C(9+8}vaZe>iCIuegr*H!WEF+W{>86?&q@zeTUK_}A>2{NZWDzlNs~{}SJ5#J_~6 z5&sqrM*J((G|8Xqr2fOfh<}ZK8u2gTW5mDYyHfwrXOsL}9+ET-7#Ga-?;IG~YY1@! zdH8wuFm;os-~VHo7i97C18N|X3Vk90Gm|ZSI0j5aNJUUYmk?b6E0dOe#Rg17NJUUY zlVN^zD>XGXATu~QATu*FAU85HAT}{EAT}{EATl>NAT>2MAT}{EAT}{EAT}{EvVV|> zf7S&WR;-G>W81cERg4|mHY&D_ij9g{v2EL`ij$Xf@AsYa?)&bqw|8rMtv>n~ea0?jwz71}ra%`dXG3eiC&3O&My6`v zY;F2qGhoToO&y&q>}^&SUfacEJfWL16lxoTvR5UcS|3sL$xVQjD9{_%0&11!v;$RkTA71b^L7UUxj}ynz)@K(DYxuFmf=n04U9!o$a|9 z7|cE?v%e^MCo_6mQ)h-xO)@cC6A?R`zh>hE3;S2GsD-1c@n`cM4F7G_t!(YwY`y*~ zWoBV(^4Aam6Bm01HCqb@7gH(Ge}5MM?CtCUW`@>IrU0)`7WN++XzC1LV`OIJV&nvv zIsi=Fjm;VUnuV%|z3IP5roY05wkAGae{1+yn3;ZFV7;6ST}=VbjxMG?UjJ|6KM^bw z6Trm6*co7C3be3={YU*XY-;vzENAHKXyFdfVWj_DRsiE)-@os4KfPdLe`jm$@lU$E zp^YhkLB!C)(e7U!Wu{~NhZGjJa|d|QF>!DL=$JWK0ZdFRTmUW(E`ZN}2m$`v2bMw6 z(Bgll_y3ZVvNf{p|GicJNAUmf{~kcd7HDk>pkreGpQweCxP`l^iK2zG zvHAbF_TPk>t%<3lwS}#zqMeh)UoVo+A~vS~FR5y7VQgh<>g4okf9!v8rnV;kIWU8m zt+Abng)I=k%*GBdbaXWIfMxvjBQqNtz>5j+xsOcU|FsnW4D_~k&YvX!dlzRPz~|1YnT+Cy^Pzp!yHR24Hacs{totJ4e&M z!=F*Ze{whh3`T#We@|fiH~1XJ zyXZh=P22QlnnH%i-5CQKL5qx~4&F`Nkx>>97E}oJrREMbaLut8I7L=5?5YR+_0iQ( zc$pVESMHj&PBDN!?DG}jKE7fhyM!_97eCz$jM74z;^-K#-7Ro$Oq=)M`2uO`scOwc zOXRTAC}yYge=e+1`KDWf_DjmaAPm7>ipCF{B_2<>4>)yyHZDpR#g>=(bxi<2K)}D4 z!nYa*l&{?E&Uawa+PoH%-eq-I^fR5ewF5p0?+rxT4%l?=o?L2m2)K$PXQkX1biWXr z#NonU@d3Vh)%Wxf88~tT%rpc6Et1Al&Uh=j&NAmVBNkyJ1b?Pa4jyM0UX+n_gWA`P z+DUZf#SZMhT;d0GDxnIJ(HH37%SN7pVfdF2_Uu)w$le2gv*W`g5jkPn&Mu~$-wOmK z3AxB>z_8Pf0GmVYy{Vy!TlCe%tLfw()Wp&^bZILCIasg!WSmbE!!79cf7cb9@%0fR z9SN)3yf*%5Pk#skKYhc*N)!^)Xg-QnaFQf}4)dr6AP;xU24Z#6Kqv7Y$t47!uQQ)Lfs|35Fnm&T`8iK+rN}1`{Qmve8Oaw9q6i zdp7#o{8)%sMzl-{YAd{xaGM!xmOW|p6O*!PH+7&Ms(+;Ckn-e4cEKJyb46*=@sX@d zD9a)&m6(M(-qR@OdWnW912_oJv}YYEb68UmUUp!Jz`^-LSyv=#y|c;neD4t6LLOn$ zeq6;Cc}1&Y0sZljy-ZKv2l}Ml7`K4H!i1*{HfmA-6soDPK5D;9fIK&=ur)t|TL)Uv zm_UA~4S#**)38~c8=J%bv`>eJe!Kc7I?&-~BJP5b=CI;q39B55H`X|304O)+Gx@?@ zjUgK^Z5JJLq8+9QNubqS|2xtKHS^x?-7&*AgZEM+B?c#_9-J%2??D6LH$C^y63m69 zQoE!dGfH+$MYnRvGzdquLDfSF_yd(M_iPJRTz|BD3DB|M;V9-y#Na`mbauE>^}B|8 z+AvRB(oj$pt7g0gmmr-~hs=bH5q*KWg}({#wN_3Tv@ajil~q`(#_*gIqY*?D!!b;iE3+2b? z4wfOYoN>a+2X+uQX?q4kSd{XMJdgQ?>?qHP;(U!hdhs2gWCcuvo&5bgSa&Kaq2>x# zsbm9n?GK6(F6PhfF+4fT*Ky5LaJ!TmKQ%EUHXq0PQ1r1%KDUR=AS< zpf&aQHg?4=BG)8RLmgU{E2pt8>q8UajkBWNfWcs@8MU|lwn>K=$CCB^h&thcuV2c} zW_v>vA*0_S%e}i?6ls_A@aZFKQ{bgGEA5P2qN_}7`$p4Me!~0m$_%*+}gdemz;<*T`%F|WK;Fntfv#KO{O!bfqluwr^X#?4M9_M z=vg}YT7p*$4%YAJ;eS!$WfNs7VF{hU5Mk%`fEFBsano!wA`Ik3*VWNFCY*8xq!Xf@ z1$OVAD-y~BqV9O-YwciM$};Gg5O%DaysxtnHZOCe5BM!S##vz?s403*nY6tIx2OoT zk+@2=8t?Nk6gBBF59AVVxi(xZwRSTS&+~4G8{09u?(xX z#|mGekYhEmu~LZkR(ZuYw9KWjhJh!OCEx~6C$#%Fad%)iJACWR2I=m>$iTw_NL4)^ z<>&y=s5)ZN!8QS2+|@&}zCptp=8K^%POR#pr)dL~lWyE1&ud)?F5^s3&ZRQHK&8u@ zYMMt1x&W{kmVcSiSfW^Z7}={;W>l>gmPuXz?&=lgcQ0nZ+mAXJKQHbBOpCyNB!0Za zoG)YRSpIF!lN4xT+LDLAa0+q-?C3p&HXb$sj#X8^7YS7)4Vk$hBhNbJg(*84zM(G^ z`R9++YGjYL*g#}1O-nLI@Cl5XVjNT-OCF-olF~WJgnw1aAc6GqB`I`EJ=aBkEP@vX zrIDG3K{AhXjTJdL7ArXlMxk_1pz#jt z3;t1Pk$(n_Co@vD%EpkKIQ!O%xr^)2uy8m_tu%Q499E>tPZGg1fGeaFc#ou-yt_jf z&ex7N6wHs1>#5Ae;^)UpYZ9hXFhOS5!%)?v$3q82W2tmULiz0@k(PSS37suFmlpz>sW;;TdEd|v1EitBQ;Qe-H5wI16LU04421W=BzpSHCve;)<^Ed}2B}axY#Q_A z!6*->(D`*O2NY0#e1Z=1g2nU?6+lMbUdYI&5B14Qxg*6S39ISo#}c5Einka(j7TunCqxWfqlnD>FNKz zvx4+(422%7>$uDp6GkT?ZSr_JGoQWH)qm7HmsC3P*rX|^2IKr^xFRd&UWH6sxPASN z#JR3dYb$Rz!V|+WSvjxbd>^G*!-?e##h_Vfe}5#uAXYx?^7VXWK0tC7ydO)!emN%0XjXW>-KVGx z#Zkl!E>ry`ZmVC9R2IDSeTBqcRLY9Q{`BZZL<5gK#!0oJGrUeUek(L_0Kmffgo)b6 zXXkU^lcwBuj~K?qJu)cw*pi6Tt)($@C-9ZNN_*J-NPnKbl`V2w zMSoe@bI6sB<5moiec>51Tb3vFIGen=oH3PH1>~01aC|n2P1Dq{GAqzE!B~BFX(N#D zi7bu=EC(jsVsW}^bE;~|4k)g22fF`IK$f&f_Gy>q>Nr~sp07T|N0T(XAqU6=<>8DWtvWgqai&@B?&v<+{ zc})Y{o>ppJWo7!vP1*{FT9%fhl~q-sVt-4#4S7Glg*O$e zjVdeH4OqcHIUpCMO8BpIjdZRujuOvUA77_unov|vB0%cxa+ zVa!baF08d+CZVg|B-b#8*NOCK%ze>W9NTJNAk#Dc-LYyZ^kTS_z-t2W;YF!}|#2}8Y zxc(1~UX0{9eYXrhVxRdS6DhSKE^fOuWmX)ybu%$8ihrPq)PJE6u*Hiy482sJNd3jX zq(ecw+Qy~{(kT$s$7oAWYva4sJ{|5w8C=&`WIQrxnIz>H@>nKm z9XP~h8GWbc#!?}E#gQY4se0FCS9hyTDw_w(+lxf)wCSo(eK19c&pJ^2{w53*VckG8 z_1XDbjR*(!^MBpw=0{RGSOD#2vUmLWgrDZes#UKscW(Nv1hbVf^gJ%dp6E3$SJ#6> zaSMH(U{mhsy6TPf)0dLtj(rI+km5HN0(%t<_Lo1kyNjoXa26G5h}w=7Q)amkCQUDk zuVr*@2taL}`@EC)vU=*lY_vl;c>07NsNU`r{{HMfWPhBbgUOD8<&iz$zQ|Z2d%ACT zrKo#FU~$5SNx+LY5 zo4+DRBqq<%;|!%X;2tKt_F#dgRDYuyCV$y_fF$5@iWKrrcE^2g&Ra1H0WY=sKAZ&b zGJGxjnuT!~l0Tp?mF70)vmb6hE$`K-Mu^>%(HaOghKpaa3hpCnhw@Ddwdzs- zM>F-CWOosM_I&$3!iU!S>1~-nhse2l;9S3aF63^5LvqWLlztxu33nK;FzOm$f`1ps z#M`6BA`#NDNnv>+UKUs?9J&Rz)}w22Q9dh3?y&9F=*`HSI1 zixiGbF!I1=ookUrO9E3CaX=uk;sWKxF$Hs_s(f<$eIC=_Xno-p!;{7C*OT7qv%Kzm zRaxB$C#U#Z_Vs?8W3G)9Ok4Ga=6{c5L)4HiR1=6J3*-#m;{rJZ3FjkERRjM&OX2TB zi3$K6@3auf^v*_I2o@Esh@zxBSA2K>h`9zL&SYGWp>3>A9`6HKeBu4`MK`(RpS_{;sqophO1DOeK`{|6xL%|>wnLatvU&~Bnw(o zV+`T&ISj>$6+tp>+Zx$P_cC~p%h=H^w!Pl9iI2qeiI5(c<$D`-EZ@m{qZ$Lc=&ux@ z1qjsWXzSt0)@XPx_=H%X6EI2#z$X5%6ZC>rg8D;i3;wK>4x{T2GXJ+*SCyQ7wamAP|byegGYECk;RkoFBm zmJ5~%7sp|o+X=-yp16TaCUOOzloSOHBZyrYE)FQ`ld<3}9woi%U2=Zjh{g_Ni*OU% zR~mk@`508vkK3WZ^GU{3x&!U*l+EfvG$%g3!sCDHMp_ zyr*U`iykLLyyFu|>_#`~C){Ky=pVQ2v_4$>6$`PhU&_G4#W$itb$|nx1$yAYAzh7+ zDd}{aLQeB&X5*(-EF=j|wfrGZ{mdYi?YH`a)OUc2PS0*OnScGMS(jNgIN9WM`}C%j zcR2fZr2tqMhJWEr?7&4{p3)?jULzslBOB!_Dm(N-^@j51f#@yF-*Vdx5=`)cdi+YH z&H^;r^4<4LS*VSrQ#`NZF7H@@WlA)o=Ic#t^d7})MINHzUYNZO)uVY38%3FNBg~ew zcT;CnIAUC0H?2&2_sFxNn}J}d5(qdJYsz>2X?Z*-$A8PSBGE&d^{&U1@wx#63o$-X zx3e%Gb^@mQ^$!?QxH1BvW=cL!b2tPl2j4FRytmaMb7PHxOV>>%gp-x4DyDo1xK9vX zEd+a_#IY{?bxt0#MsWL(#fo)X-sO>$Ok^$z25Gs@8-sf&z>Y$&YeB{F>%3WmWV-p< zrS8qlJAWF%52({qE6h2`XoqL_r}u`$y+sku(_x~m8#lGZ)XJ~itk8Z(n0{0^maWV0 zbtUr{5smBx6z*V1z@Ihnf_`@ddSJEZX`?k-^! zq+d!qIDgrvU$-jmy6%3HFhT%LGeNYe6?0*@jek^U?_apKW4$Rtr${iC)ojIbe8M|> zy>oTdfF9HFqbt_i>7LE|%CWl**)W`h-gz$EYRjp~j}MtHxG)D3pF5~g7Q6bK2+rB2 zwLkNOU6`hA89L_z4rSsqk(+pEc5|_WMfyD;CsNXJpP75-Wzkd+1kNjPw_el@p;m%L zmVb38gyOQKU}|+A^E3jSC(xh;9~u44GP(cWD68KFmDLs}8zI`xU5U6SrngN7ny_e= zdSke;{N$F*Il~-!5H!YdyhLHX>-bk;Ll@J#pV=N<75OC#N2IWjevg&rh zZ0X&`!D)bg=k#^-cbZ8b8LkB9mnMrKUWzl)kzwLdzgOP_^Hd^CSZfiv8yzUha zHY~MHXeTljH=tb|VIMTHV%M;%t!#%V6w*+3==bl?>cm0TNjR8$un1oBDe)aG=zoHU zO%*xZ zeaDMuiEu+F>ADtviCH{XJ)6!zC4WWl6@a))nGCvCO^Y$tF_=;mecQdI>@?~2XM7Ai z9>@$ME$_B$D<==@lJS<=?qW=%o~@JwPLSa-{BHY@(JSQHEi4a6x2!-ZqIA*^LS77& z*MkqDr&~K3v|PV@jv$lIo}*0)qj?CJazJV$n@ZXudhP}DE*U4Lg80b^UVqLlF4Cf_ z!OJ0$KmV&Gh0%;7g_Ip0KDk&eZ$ZkJByu1#WM7{>;Yxth&OKmY`z?QW?8Y^uZ42T)pV1p}SN%^AeTd zV#hAQGy1rIS~=+RW@e(EV~wGM$DDOwhX}m{tjI#VCXM*qxBPF&bAJvLmdTXcqI5&} ztNQ8=&8^t?pgE#hBxg@B{cbd3QLrl|jZO3xFS0tj*uJKEvk@={&Up zA1&nR_}hU(u9%#Sh{oD|mr6upPy8fD6iO`@2hmc<7X)I)I8eP;T&!5)tF^&d;pvtX z`yx79o@Vqt%!LKNe}9>=RPIOyAjml<`?GC8n{ z&wV)gpPKPIYK-&NNIv7AiySY!u4juOK78#5Pfv9KzjASQ2CW@ueuwn3(y9(9=I%af zLaL85!KCu)_77iXVMVT=5+^r+!y@IX%K(rg(I-f8QR6{x#(&4%Q$KF)^cOhTv%o!k z+>y5ZWIXJ`esD@$-*_v82vONS?27O4MH)cSZVj(=2@S>(wixc2mp4S2+&w8pwkgFV`=|}D0B#o)-{+55WB5jU*nQ&*6las4+E1W%>~Qd#nCIL%;x`+ z8Dc4##2?j$-w6&8A2tbB?_6g&nJnbu@00i=J1dtWK)6+rX_FKlB_R4lr%9x9_Df>r z{(b<6>Vr-+p-XVJlC|2A@b9$xjBfP z=6{2|IPzqDiUM^)6W|~BNBRcswTUz&GJaI_%0OJZ8$BIAkr<}oe!`SwFQjaWwO=rx z;Colz6HNo%Ad5ixKu?XBlUkann@zrlf0x_cwIdJjMI?g5FV;Kup6#l!ijVJeW)Nwj z+&k(1Nu-bx%adSrg96To8{}#r6xmEs%F2%JP0oILGMBi`8FEpSVQ33N)d8QEs~1G2Zo^TzlF(|_ZV zx+!Bw6;MWV?|aTQ?xV0?C##t4Yy@S(=%P7qF#laE>%iYf2=5rYY)$P02fk4}x8msY zo)NyM@cSRA27iu}`PXE+n`$hSBJUpXHLaLtgyv2IixoR#9G~{p+7L7Jj{Vj}3}UeL za=gF(T;b#-S|tInJKf=c_kM-A$bUy#?N(FZGWP(9K`@;g`Z7XUg!W806>gJb6PkFH zy|A#(gtVi`aW|{};huB0jR~UEWtY`tUg_(Jy{xWbfl*P5BR$?#Ub38|wvaj4P1%su z*VMx##nxBjD2{v!uD2f2V%)EK4C>qIt4M&D2{$9p8%sL0FddN5X?V_;hJUnm+cR;x zM|T4hPeBO71(@xs)i9yRFn*P8)6=Q0a#-z2GJ)C?>{Hei1H~gTwZ@?|aVJymFOJ6# zI*!INc9IOkK6XSPpbDUk$}&Pj;&@d0`CuB3@noZ7i1^jP^E#~(48DLMJZZKkyNK~O zJp7ouMdZ1Kl!d*q%`-W4bbsMJ!ZzC%0*5ZFicTzPg%tDpiB9VFetE2rpI0Ygh2=Rp zhfyZ8VU<|Zw0v?R$;z-GCt63N@s@}=9rydnc$&a1cJ_haeZ)%Jn44J>E5=7%gY7fV zSVx1o;|F0 zR>wh&8?!Z!`}(pD)9{3Rh{+?W07@ExqUid%63_Hsa@M;FUgtrKN_D+pPBq4l#eCJu z8ZUgE{Lj|=y`RxdvubeHA&B378@(JE2a(`)ngZmX^JiyHT+8VpkB0$ z`xO{V?$8r23Zmii)PE45H)2{L@TZSV2o&A_X;m>*1L%`jwIlulZ_!{vbUT1PMRAVp zx1T}1w2PRP>f}E$XgR}#w{4my!!l#j+<>QfS|ofKaV$>|BA!<2QTHv2dZKD0P1(A= zIS;`e4Gq$KP*00 z3@E}i~0xoQkbN*z$dqvtQ$vXNTBY@Ss8p_Z1a}=u6 zKqIE0$L1iRY%UTdhjVc)=#H*50_cw1F1tO=-dZgY5YSSs2%#eZ)5#$x0YKj%y)pAD zx#MF=r~Zm@Rk8|e{kl$D1#JE)BSAK7O|YodqhTmdlz%j3JW$r|2T8CY1Z9_F8u?;T z)ldFAm_)Shto-{;X_O*zc@021)wRl#2<9}M^X_0e@ivup_5d!bBlw4NOvoi9$YKGr zd)eCKrk^BZEL(y2)kgg|_o&c9&F_6M@xf&Q%BmChJRQ4;NAf(J-xkT4%n{F<(LZ_~ zhN$(MpnnD#hCsBjumNsEny1$yK)d+)jtHopf)hD(3bNwL3DD5ATZxA*ogLR?$=lNe z2C}fdPNCRU7{OGPJ!?mf^;bdtP4d%v@=?D5L{?ub?s$OUqoCus!%_!#yV&B4zFiyf z%5(0W#}Iss#Bp5gP?(h;>ex81+59Ow1jGEQHh=d+umub%^o0qk!(*Sv{45OSwPQWl zIqf?4Y5?6apnA&91w-$|NeY$0hMde$Y$On|8CY*JO1^MJ&Voccx>YW2!vLY_4tE_gR6$4=O#U2~}Y*3$cGtx8)K52BS!QdveR}s~} zI?-VKIZB&|H0GH1V%s*00DH~Eu1Bv}i~ZyMRDD>m`INqk&$TQIbX%pt1Ma*g`aV?YlP_9QcUzx&n#7v#D7~^ z=k*N_d2K3DSPfYjx~w-^CD*8q>3nV+tP-n?MaJS**?X<*dlsh$AYe#>=FCBg+uAP= z`B5-ItmFE0ItbdRZ%AMYf;E8o#8?`lZI-65!!<_5Vm4mqbadj%nzzuKlr-sMiZl1- z97=NiIszCBF`PFV%S-1#fK}w0-+#Yv+-9LZT)4=_gBqFGEa>C6_e>@R^rIi!b@d%h zZvK-u65-mbZ6NVvEGNEK%O~m>K{<7wz~-{l%Mf0zgbyCyB49DiE3{${6A)$wc~QmF zfqm)AOrsjv0)JG=HuOfM zqg^o|nc<~;5Jyr6RWiN)Fj^M!_&0&_-i#a*>@R)Ogdkgq{;;^cl_(MgK@ntqOJUA# zlBs^^tetRjk3zjfeG1`mEfpBgkv)IHwZ2+Gl@EJt*00#Ha!RFnB}=*tTFyb>#=2y! zqVh+APahr3Hra4aYv(&(Wq;RowI9Bm56G!;8^FiZV=G`2Hk+sC5k#_`gj-zLS$A#8tDlVY9TzE)vjM|5Z{H)+jrN|MY(jD%Op#mYw)i^Z7_7t80* zO|i!_{%uPsBWeKR3x96<=1|-^4Okl*BsFLs{_n|L%f?Ofcgq^Mi)lS@!PLcwHc7LY0x`KZi(Ibw0onXlO znPD(OePYBA{<<5mB$ugxG8m95nPb6M5$MM6@UZOT0wLsl)Qb{8GM9l zeT{Ye!u}p1);R0a7EEznKt}-YNuT=E*>tJM>nt#YDZ)gFyhw0U+*`+$j;s!XB-&mV zr`Md=aE)3p@_(Ad;z3^2&(?aj@wJn0?VHu@?=O3m$%+ajKNZUiwn10P7?cO5o(4Pv zRi#>cu{mb4JEk?hV5ix@c^crgW_&9ifX2UDnL?v15ySTyi*z!+F4;*Sv2Kx(d5Z3u zKa;NhSjgufJtgBO7C{ALD#0fL5pBK%21MFn6m-ppS$~zp1Etx<@k>BDpji_)%DVdK zI3ZK(Ljy&8z9n)GTWdG>(`{a{{knbNpa=NXC~n5_p_al6z)-3`dX;`gl03R z3^&EJrv~&II;(tNlOgPQ_8y^^E&l%19IUJXc*GVtaRlrRjj2);P(V~OC`$2of8_9l z>Ty2&_OgZh5Ie_4*>q+y%c;4QyiTf)XDTyZv5Q7}RqoGR?94{c*k{(&~X?ipg;!ZgO0 z%eG6@QaA3GAc3bbdTfqF&u5%W>QQQ>UJqCJ;U7TYCLiy3_WorF4^5wh_isYh?s|&i zRewU#`-+@>O&roQ)cAJ3etBT&$(&3GNB=h7*gLW3+zTxbGorc4Ej)0 zj@8!ku3GzQ@)wy&R(%SLLly6cA5=drCx5Z`)j#@&L`z*|)`w4@kKmZ`+EH)`Y;fn$ zp|uxGE>$bfd;R<8l6jfyfAvln3LAQk2|Jsz5feQy|z7tu7J2)y={X~nNGqknxX ztHdhg3zAUn>wIpYnb?+>rL;KcJFCbbF4X3c`2LbA-hQC;kX`bJybcu25gkCQrmcj+ zyObc9kc(uFIT8y7^)m$o6Kz6_<753YH`~^a&9pHVgw~6HHZ|hexa&k%^oM4u>p~0J zFyS)kSwjJ5$7HJ{;<5(gG`sVLT7Lv+Y&DlNgWG0KS~IgBs` zu(8|ZnswBHLufrUv?dI~4Jroz6Q^B!=fo14Ig@%bsEg1wpb+;@uBM&NkAQah0mmp4 zidZZa1}h)059(E_=DOkE`OT7$H`I!w3#EL-Wz$z0mYKDh2KfM0S!qg1On)z?na5{_ zfGC^vVSa=6^Cx!fl)EEe8727ek2bc#35#z~PF+VeW_N?`>)yEGmRMYPG`3Blmi0fn zZc<p#?o%{Y1WN_E?(>0poHfl*8sa|#3Hf)zHc9(?giI8Bpk1ds6hK7Q zgT;MUmw2PxP$xw7*%3{?$1nNr0jny^Z^r4UcMj^K=_5{T5wP|wQ;(qa)+IHg@{v~T zb@qo5({9h>!lL5{Y=1-n{kpl)g1u@;=9f?j)w9k3oGv^*Q2^shRacbkA14aaUO$G~U$TFQ%SAX~W{)m&|#lOTuIQ&En z=tqn~D<+L+a69NjT|(_SSn>>ndu*{w6?&BlsJS7K!u3h@T0tPFmt!QpFFzMfNR@af zy4DHP6QsJhyOS2)mbb^Fj6zai-Ff~p;G&N+_KOv2Fet80kI+Js?aCdb1D*i4F3;;Q ztL&hXI5fVh_kR&*7+3ALP6NnE2LY?MNx;D&_pd1N5<+%Ik%2Hmmxjm<8=ulIMqdks z$FWtA3Y zJ*{?7`Q2hjT@|zL1uChenQrXx_JflKUOM#AC^dbpZGS^)J~YeRC9>#ARL29li8?w$ zi|ozn9-8}vVbb9QRo$}3uRN6!3%KKIC62LIh~@e}fUru23kvHd6k0_KYCdd~QAR`$ zTL<0TB7b4&dix1dr^nV2obG&!b4R^|8bSO7-U7AYr{% z0CVibT7Os`s&SeHY_DjP4uiq-Wm_BT=7tHBspIrnhXU>bw6=a<*#cm|M3tOFs)*c( z$&;i{qYT#rAbF^q=bH(DsI4ZR03D>!h%>)s=C^vA)JyX|cW56ej=+xq4vz&sJo4nE z9K2HTiJU*8Lvc8S>QLCM$rC%09oUhyGq`y5mVdUE0?DTmAZB+~jN8lXEkAMdX6&Hg zIi59-DfBCpofEnodxC1zwEumLZ zQh$i3Q{$6XSv0akraPq}BH_d#rDe{~+NNi^I!E$d=SzBA_XlckEIV8sqBm-~%x7hX z^uhjO5q->LYToi;PSQkGc8;-coD6>%N0IAeq+VKLSZ|==6S)AX1@TRYjJ}vK0!69GKg2v=3bN(h)0Js)7ig<)zfl z^m+CqRUh`Tar!bNPvMaIt`nyAe$ScPXMnY#&fkkK-zjJ@*ZzsK^Je;@VL)0Ghq{M~ zpJ;G)fH|h5{K14X+s!GS3MWuLuz%5!>l>oMIdjPe2)*JmSP=ceo_0zotMco-tox9Y zJ^x%~U*uQup*5@17;r&pAY+e_?CZ3d=0VC-u2ZSzWD|>tg|WCehoYy|)B7DPp`S|7 z7|$LEDbI!A7LruEsD|D{09}8pIDnw82ris*JH+Uf1ayeD3_8L5KDa}g`+w5f@Hkdu z8P5O-GXlj11(}Z`j3*9^%~=MH6CKvL-a-5ai(6w*y2HUl9|EiOOWmL5v5fhrLWeU} zcBXgmJ6$BzFvqNecY!4Ix9Dui9B{ZD;-D!9j_1N`b?)>>ZH%Nx8cbHCm>c2zvfQS+ z;~am9Dj%mhbMcz7Nd%9C<$t!Y9oe@IlS3HMAB|V@1Mgk~DD&&{RL)8)+ROzeJPO4V zdXuEsgX!{1Cnwa{KEsKR#`a06?;V(Wu2|%Dz0>=>B`--hQ~`6Lbn!Ir$^8x|onR2= zEndY{_JjW2pw;sVu1zSWT2gU@eodA!SKd1TSqk2$dmem}3yMkb?+#x(M^{w|aKckX zwA|PlJ^8(UXmA$^>tXV=-QP#lVyiNe-fUB%s{M8J(j<%#F(*XFdY|Zbv7h8AlSM5; z5FaR1u<(+>@1>6y<9{*G@(NU^yQ4&poXYz>u|wCd>9v)nv!v)3nO`>3KkhzgmxZd{ zKNrs`2_*ZfBQdiG;XDRC$Qj66{4uBQGXR2LA;B8{gI}R2MzB$ zJd7wC@i(BU6`ZFk3 z@>hdn$^%3}^?xREVkhaPZ|+)zsJr{PLH_!ym#l(2Yx~+}I*z-l<@e9;e-u=et0LOf z@T`5$EP!P4F~7XBM8J@P>w{`YVY;N{ek!*+eQVx?e1(8ip6x{5p6P0{MwVZ4xn&?R zZ+4J>V_*#QIx-8PT-E4u1B**NkR7Uqh73vh!?2mz$>B9waIp9c*!evJ#0=yN~ z)z6-ee}A{Trcv?01J`ON1_b=4AVf2)s?+E&k3VCm@y?%uu1+U#)63wDTQT#&+tLaU z)-#n-7{mi(mRr&HLQWbWJa+nft%wSa8h6vx{2rbNvMy_`7gTC+at}%O@fwQhepv&P z?0Ly?$1AX}p9kJ(nn!GuAb{~Eve}}+@fiDD>wo>JOu>g^$^y_x>445QP`IKFb}&f;ktx5u7CU`MHq~m7kgIpXCos2OQ-BPE-WV5D9)1)jTSFlpC2uplKQ!gK!H}0U6$$dsz1Xr<`EQ~ z|1UX#l-}Wwby0V}+i-o7K!XCh;esXxrhlzYh~lVdnjUNYM7~{9j1Jzb_m z;y1R}*Q}~-W=bSqSL`P0DYN(s&x=|r7m2oLnTmPAr_;dxqeZESWB1r64an8n=YLki zT8`K&N>VCg{VPpDc$bCdmvEQpqd#Yd-(Q{I#%RnU9_~8NcSmThIT*KNieaIcna6JA zEN46B+`Oe2!3o(bcAIh`?y?*=lr*@U$U?o%P&)USjDHN@U5zx(X=UpAJ~{>lNPjS-c#TQjUa8X#m<7iS zU;(k_425235r`}USBc#p`1)uK&E zv(>_%-vRrMT=k1EAK9mra>S4xCp4^b^2B%tN3;zOrUG(3={Yy?v(4n>HGhuUE%s7R z??tru`7|RR7fJRh`g6BMPYdB-24mI)CIrVmqXOPB$%bnN7M^=%H&eAn?>Y(m&ae2s z@g+i>y+3!Z)uv8OJWZiXFVf2hxQR8_*7_oYMF!&iD!GJnCVwGB4+9!JbpH=};B7Aeo&qdlH64HzT?Gg=n)V2LO$ z>Pgu0eU$IXzXHAr56tXRIi4@prj6j#VCFF!0UbF5NZmJV3*1WQGE>q2s^!!xX(3q7zFtPeSc_JYuFqqFgfX) z61$P+eyK8jHlD$sinDOm$i75cN1m|?A`j;l4iVY?d91bN?C2kgxdxY?pxqeWfro(w z_xfEPtG$esxsDyl);D%boCm-sxjEjSt#<(Hvjk%p}99n<(?@@>Mdo z_GZPLfJ`I*H+6_^Ev-~6#>>z0?e@{&%j>dBjV~Q(ms=-K-{HZfrU|8FBI6-0O<4K1 z40^yWcE+s5OU^Y^Hgz-?_#L7noC#U3tNm(a1Yt0GF7q`66Ms1D>hE>X*aA7e-gQ+# z9P*`gOfSO-p(IL3S*}b=KR^Vdl#@&L!+n|aPGr7xoR~QF9TfKzkMZH*&HTF40rvvZ z!KT%H_xtmd=>vTcqEY@3)^wTCn1{x?r?yygSC9S_6kB5GoBSfIU77NF;`D7#wvX>- z4SfRsBDMXL*MDPFS(q2^)zk6{h0<`Yl8ga=)Re6h|6ZqO?e)>Imqt>qBs?A`GVHO_ z8;1IOO(1>H0LpuHM`zBkWO+UxyWxPZv=_0oP*j?fi!!?-o-jBXpGE$uS6RS1fh0A3 zlv!O*D3tQJ{G1f{I*fwr2hT?~MMdHvShC}U@HS7_C4UrRl;Dgl25pr-4&bVoV$gP@ z=y|FPng>BX2(_1l&+&cUBHMwkfK*Z`o3w7Xz}*ekLA=KO#|9A~=oGwO z4@pJ{ba3BnQNniknoEF|cR9d^m8Bu*=hSUU3yVNcu^29R>l*3$xX*ncFw@Sm?keRB)4JRN%sbW}xzAfBBH{2`!^t-eLW^61XR%lB^1n*v_Im_J4m zIK{z&y5(R3U(VyE=^T8puY9J#^v*dU(I-iB~bx z5`U#5YNnj$e?#cIvl73RTFuXF`qi%#;qj2)c3~HD{*1fd(A&EB!6=TyS~&PUiihap zvGN`I88B=7TeI%iWr-K-8Dsj9}{&y?1x1 zQK*cb!`GQnlojB`>9}UA{)ptc2)j{^^MATKZ9VGxls65eWD&IYuI^ccNY6(89Nw93 zPq=ChNs%kfY}6VmPcKdfuwGpKd#v=QnO`fQFx-95v71Ewre4fwu2kxq%Ravc(z)pD{(G>-u%UJkEWgBF2F-7 z!{mb!7A_goe#M4OTZBB1DwiYN1&t+Ko5g525Q*~uWwaXA0e_WHgBx%5*< zETET!E&&wLs7cod0cQGXsZ{kqx` zJ|bOQz?}JR8D*L-ItVwW`_x};nAlDRm^z47XkFBF3P92jRc(o=l_6oRz{$hq*DlTI z`*>P3FE{-6VS4_hG4F;Vu%=Jj!^rZbGFYdE%$=B8D4=q-BNGA+?K2ex>kr=!ogs5hV7+W9-(r#}K^T)EO3Svfc}N>v(IS{Nq{&tQm`5P<)W|a#B&#cfSP#IYn%@nw@ zThy9lqa=rTg_jk+$~RNx%e-Oxd)4wu(dD^lZ$6Q7Pf!jmvvjUcbk!IYD#~AXB{uPC zb<5t56V}-z5;EK0Xlt}%%BQ?Md%J~+!(xZPadzQ4rr8;ZSVJv)K`uGNZg1OY)09rh zeV*4_OLdoE@nnW*Iz20yOrR2iaCgwZDW z)ZHZXwE7cAw2~81I>V?L^sRZsz|BX#9LpIsSs4LADpee{f@7t$gaWYwKH(>2E}BuD z1k%eWr9$;4^D!pOsvyv7VA%6~@8rP|^dL=p#ein*zD?=c z0tlW+ZVg`6}OIj&#RDIMtPZv|fYUfB$Eh>7*3(0xhGW%C5yPC6aW^ zd~f3z%cvXxWJ?l6>I7^sC4PT9oipq#L_@{slT!HXd(|fbo{JyqB_qzUszc0rgtlQS zYWNX_Y|o7EdOFztiAlIxWj@^&F0}DsAz_MOt0X`(&fX}+?F8c4u`ItwLMi;&;QgWH?BS!u(*nDr=1wW~qg+91u49Wl-ox(_xyeuU-d zCmVf-*s;d_uc)1=O48ug<41qhOyuRm>fJxQN1b?Kgf2f2Nww#bX1dGZ&FzU)0 zd+E-s{Ym%E$HR?EmDO0anaxKLBPyrjgC+o`p{Fb5nU!}5hxhKYT{0;XAya7{r)DvPE&?(_pB8c7Jk z@{m>j(@W%aueW$XL`L}bg20~et-@dZjEhFZW997hffQFovw-6DO_#$-CUW@LF;3M< zZ}@=eY9-+CghvbZTiZ8O01JLF#(fB% z!aikbDmaUg`~Di3Y$*gdWrU#X4EZGaCTZ?IE)*4^%`8{2I_OM0F5^nv%zjregGa@& zZx4&cYW4arl()C}D#SUEEyo1~m1eo*EbnLwI1AEb9S5NhhVHFra8=VUlP(6)5_^~Vk?X8DxnY(05st}Hb9s#6c<6}x%` zK7-3^Al<^6LTve%jnq~KF94V-??-Fd5?hMj{-=1aE1M;<^47E zqatj5>K2;%i(ET)OuL_69Gx&OSZ{4XY`RUnVx8wf6G_!=U7ECpgv^eMaBeGx_FqX^ zp2IV`rsRql21l}}kJ5Wa+tdZ!w|YVQ_KWPiqc?Tf`kJ$Gx99m=9e1`m`y*25#hAXc z0_8TW@WyfGZRBU+oJCwtFZypX8XrZ#f$S2`RnX zVyN`9rj$^D*ZW0$uRnF}wGycg%kyvQczc#Htd&rYh34&qpDc$eHhzxjQf1U3Q# zFs(lg&EdO?y#LTqD=H6XRv2Me$?8hI9lmn}} zN}^34i`Sm;i#4bQEnSzFUF5K^`e3E4wE6OC=6TYpEMLpVTh#pO98R;j;z4Kgnhq{( zZ=5(OJs}kRQgzeO^`j1Eg!(K~nw#(-!e;T^9eDNh06sakg|s31NA{INDRHk1{H&dn&HH?~sB0vKPY-VX9VtULPTEN0y*KLeilz=64bFnx1&rZrL|OWLW4JDUb3A> zQcPyAu~*Z@*l>8R*D_B--LT%W!^8RWy2yXj3Gbq$y;mmZo+*MXP0~l3o>Kn z+=sU&k2F)c?u%T!aPRDwV|pZWHCp$(UF~6y1gg3IibAK+7t1+U4+^L^kX@B3@U8~= zOD>7<4XeF(6;1rah$CG9nMi%Vwsk>$^|z3*%U&8nlgAxIDBAc?FCttRLEKj{Qu{Es z+E>Nbz0Cc#x@|r`;ETabpu5Gc`}CznNywW#OZ?S^0SH@{pD`8lKP^ zG|9M4rXM+PUQh9>OqcJ81-x@l;n`lHF`Ra~ylxe8Og4fF{sr>O3)d+w!tdXqqRzZU z)iyc1Fz>d-yK>yPCBDma*CR2LYq()4ZU}1A$K7m+%MLvm0*yk|rimB|!PTSL6H=0H@ z$G4=$WXV~#UC%7PB)BqdQoPMgstA4jnY@*MwzVg{KU|^p9=%b1%jm|AIF$&5sdql zH(4JD%07@(N-s0&^0yqgN@qOs?YHwwtxh76j~VYkVqtL_z&^$KGZv;GwtSk~tc!&^ zH<+(?U>2m#VnF+Rov@#rjUOqA(8a3{wAZE)Rcrc^hch_DA-6*L#AM@%t-dC!W^6(4 z%$%N2utEdd!Vv4SU{2({SA=$g8l)o#^)t0|VJDa!ytxbQ$+lRX6`)&n(N%bH{q+77 z1M&fE{yN5-{;ug-k)KK4_}B-Ni;cR_h%;7-v-3V&kqL-~QUojl{)2@DgTYV;42i_C z8-omikifUuZVjn2{A-|E7V0!BK?VA;?@71bp-o>%M@_<_ZZ+eM(@Pr&wt|w~UXkv; zLa;3UUPs6W4c0016T+4r8gCg#<%P{yI1hN$6_uXR#&P{fwtQxGN>XVDb3dd7$)2v? zJgzgdJn(yz);IRyq>gHhKuu5IqL8Awx^z7cV5YJ{ZaC8H2R$6WKAJq^=zfE*AWpG2 zwr=?AZ9m5X#yB+{x#0u-z=6}zd$1z6>hE8rRrTL;tJ!AP@;!^DVGV@Ms2{51Nd;!) ztN6B}k37NBA#aWZ-3LnQeQkNn2JCy1gCqJ#t=?5|uP5wm>ZYUT@PUTgtbD~I+rP^C zM6t7%FdU5qh#P=jKC=IqgF#^;kiRsfs0a%BmxdBU zApY$uD)zUZ2wY6;Z$B6W0fqhJ2mD{COA(IxYY`Y!1pc?-rH1_P;{R6*MIuE1szoCI zP;LKnb4Vl{@*klMF6WU*)W1&QQiK1!2vQV={MRX

8=nqfjVZiY16f1}gTi+r=(- h`Bx^C7)tE#oMIv(P*L2ZB?v=|5+UK@Qqoi=`7hi-dwl=^ delta 54077 zcmV(?K-a& p*1&~gE%Z?WMxoBW8fPq=q)4(hYFRH4$Y#6r& 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 C7tZGZ diff --git a/example/diag.sh b/example/diag.sh new file mode 100755 index 00000000..906ee1e6 --- /dev/null +++ b/example/diag.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +app="teleforma" + +dir="../doc" + +python modelviz.py -a > $dir/$app-all.dot +python modelviz.py $app > $dir/$app.dot + +dot $dir/$app-all.dot -Tpdf -o $dir/$app-all.pdf +dot $dir/$app.dot -Tpdf -o $dir/$app.pdf + +rsync -a $dir/ doc.parisson.com:/var/www/files/doc/$app/diagram/ diff --git a/example/settings.py b/example/settings.py index e949fbe4..ffde0958 100644 --- a/example/settings.py +++ b/example/settings.py @@ -2,6 +2,9 @@ # Django settings for sandbox project. import os +import sys + +sys.dont_write_bytecode = True DEBUG = True TEMPLATE_DEBUG = DEBUG @@ -61,10 +64,30 @@ if not os.path.exists(MEDIA_ROOT): # Examples: "http://media.lawrence.com", "http://example.com/media/" MEDIA_URL = '/media/' -# URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a -# trailing slash. -# Examples: "http://foo.com/media/", "/media/". -ADMIN_MEDIA_PREFIX = 'http://localhost/django/media/' +# Absolute path to the directory static files should be collected to. +# Don't put anything in this directory yourself; store your static files +# in apps' "static/" subdirectories and in STATICFILES_DIRS. +# Example: "/home/media/media.lawrence.com/static/" +STATIC_ROOT = '/var/www/static/' + +# URL prefix for static files. +# Example: "http://media.lawrence.com/static/" +STATIC_URL = '/static/' + +# Additional locations of static files +STATICFILES_DIRS = ( + # Put strings here, like "/home/html/static" or "C:/www/django/static". + # Always use forward slashes, even on Windows. + # Don't forget to use absolute paths, not relative paths. +) + +# List of finder classes that know how to find static files in +# various locations. +STATICFILES_FINDERS = ( + 'django.contrib.staticfiles.finders.FileSystemFinder', + 'django.contrib.staticfiles.finders.AppDirectoriesFinder', +# 'django.contrib.staticfiles.finders.DefaultStorageFinder', +) # Make this unique, and don't share it with anybody. SECRET_KEY = 'a8l7%06wr2k+3=%#*#@#rvop2mmzko)44%7k(zx%lls^ihm9^5' @@ -92,7 +115,7 @@ TEMPLATE_DIRS = ( # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates". # Always use forward slashes, even on Windows. # Don't forget to use absolute paths, not relative paths. - '', + '/home/momo/dev/teleforma/teleforma/teleforma/templates/', ) INSTALLED_APPS = ( @@ -101,6 +124,7 @@ INSTALLED_APPS = ( 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', + 'django.contrib.staticfiles', 'django.contrib.admin', 'telemeta', 'jsonrpc', @@ -132,3 +156,4 @@ SESSION_EXPIRE_AT_BROWSER_CLOSE = False EMAIL_HOST = 'localhost' DEFAULT_FROM_EMAIL = 'webmaster@parisson.com' + diff --git a/example/urls.py b/example/urls.py index 61390cf6..e177f89f 100644 --- a/example/urls.py +++ b/example/urls.py @@ -21,7 +21,7 @@ urlpatterns = patterns('', (r'^admin/django/', include(admin.site.urls)), # Telemeta - (r'^telemeta/', include('telemeta.urls')), + (r'^', include('telemeta.urls')), # TeleForma (r'^', include('teleforma.urls')), diff --git a/teleforma/locale/fr/LC_MESSAGES/django.po b/teleforma/locale/fr/LC_MESSAGES/django.po index ef907707..c9f9bc05 100644 --- a/teleforma/locale/fr/LC_MESSAGES/django.po +++ b/teleforma/locale/fr/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-22 15:00+0100\n" +"POT-Creation-Date: 2012-03-27 21:31+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,13 +18,13 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1)\n" -#: models.py:61 models.py:73 models.py:87 models.py:132 models.py:244 -#: models.py:258 models.py:272 models.py:284 models.py:295 models.py:310 +#: models.py:61 models.py:73 models.py:87 models.py:132 models.py:248 +#: models.py:262 models.py:276 models.py:288 msgid "name" msgstr "nom" #: models.py:62 models.py:74 models.py:88 models.py:103 models.py:133 -#: models.py:146 models.py:170 models.py:245 +#: models.py:190 models.py:249 msgid "description" msgstr "description" @@ -36,7 +36,7 @@ msgstr "organisation" msgid "department" msgstr "département" -#: models.py:95 models.py:104 models.py:326 +#: models.py:95 models.py:104 models.py:301 msgid "category" msgstr "catégorie" @@ -44,7 +44,7 @@ msgstr "catégorie" msgid "categories" msgstr "catégories" -#: models.py:102 models.py:145 models.py:169 +#: models.py:102 models.py:189 msgid "title" msgstr "titre" @@ -52,146 +52,154 @@ msgstr "titre" msgid "public_id" msgstr "" -#: models.py:112 models.py:148 +#: models.py:112 models.py:145 msgid "course" msgstr "matière" -#: models.py:117 models.py:325 models.py:342 +#: models.py:117 models.py:300 models.py:326 msgid "user" msgstr "utilisateur" -#: models.py:118 models.py:259 models.py:328 +#: models.py:118 models.py:263 msgid "courses" msgstr "matières" -#: models.py:126 models.py:147 +#: models.py:126 models.py:146 msgid "professor" msgstr "professeur" -#: models.py:140 models.py:151 +#: models.py:140 models.py:149 msgid "room" msgstr "salle" -#: models.py:149 +#: models.py:147 msgid "session" msgstr "session" -#: models.py:153 +#: models.py:151 +msgid "comment" +msgstr "" + +#: models.py:152 msgid "begin date" msgstr "date de début" -#: models.py:154 +#: models.py:153 msgid "end date" msgstr "date de fin" -#: models.py:163 models.py:231 +#: models.py:166 models.py:193 models.py:227 msgid "conference" msgstr "conférence" -#: models.py:171 +#: models.py:172 msgid "credits" msgstr "crédits" -#: models.py:172 +#: models.py:173 msgid "published" msgstr "publié" -#: models.py:173 +#: models.py:174 msgid "date added" msgstr "date d'ajout" -#: models.py:174 +#: models.py:175 msgid "date modified" msgstr "date de modification" -#: models.py:198 +#: models.py:191 msgid "code" msgstr "cote" -#: models.py:200 +#: models.py:195 msgid "annal" msgstr "annale" -#: models.py:201 +#: models.py:196 msgid "file" msgstr "fichier" -#: models.py:234 +#: models.py:231 msgid "is live" msgstr "en direct" -#: models.py:252 models.py:253 +#: models.py:256 models.py:257 msgid "IEJ" msgstr "IEJ" -#: models.py:267 +#: models.py:271 models.py:304 msgid "training" msgstr "formation" -#: models.py:279 +#: models.py:283 models.py:306 msgid "procedure" msgstr "procédure" -#: models.py:291 +#: models.py:295 msgid "speciality" msgstr "spécialité" -#: models.py:304 +#: models.py:302 +msgid "iej" +msgstr "iej" + +#: models.py:308 msgid "oral speciality" msgstr "spécialité orale" -#: models.py:305 -msgid "oral specialities" -msgstr "spécialités orales" - -#: models.py:319 +#: models.py:310 msgid "written speciality" msgstr "spécialité écrit" -#: models.py:320 -msgid "written specialities" -msgstr "spécialités écrites" +#: models.py:311 +msgid "oral 1" +msgstr "" -#: models.py:327 -msgid "iej" -msgstr "iej" +#: models.py:312 +msgid "oral 2" +msgstr "" -#: models.py:336 +#: models.py:320 msgid "student" msgstr "étudiant" -#: models.py:343 +#: models.py:327 msgid "Address" msgstr "" -#: models.py:344 +#: models.py:328 msgid "Postal code" msgstr "Code postal" -#: models.py:345 +#: models.py:329 msgid "City" msgstr "Ville" -#: models.py:346 +#: models.py:330 msgid "Country" -msgstr "" +msgstr "Pays" -#: models.py:347 +#: models.py:331 msgid "Language" -msgstr "" +msgstr "Langue" -#: models.py:348 +#: models.py:332 msgid "Telephone" -msgstr "" +msgstr "Téléphone" -#: models.py:349 +#: models.py:333 msgid "Expiration_date" msgstr "Date d'expiration" -#: models.py:350 +#: models.py:334 msgid "Password initialization" msgstr "" +#: models.py:338 +msgid "profile" +msgstr "profil" + #: templates/teleforma/base.html:13 msgid "Courses" msgstr "Matières" @@ -200,5 +208,48 @@ msgstr "Matières" msgid "Messages" msgstr "Messages" +#: templates/teleforma/courses.html:32 +msgid "My courses" +msgstr "Mes matières" + +#: templates/teleforma/courses.html:55 +msgid "Documents" +msgstr "Documents" + +#: templates/teleforma/courses.html:58 templates/teleforma/courses.html:74 +msgid "Title" +msgstr "Titre" + +#: templates/teleforma/courses.html:59 templates/teleforma/courses.html:75 +msgid "Description" +msgstr "Description" + +#: templates/teleforma/courses.html:60 templates/teleforma/courses.html:76 +#: templates/teleforma/courses.html:93 +msgid "Date added" +msgstr "Date d'ajout" + +#: templates/teleforma/courses.html:71 +msgid "Medias" +msgstr "Médias" + +#: templates/teleforma/courses.html:88 +msgid "Conferences" +msgstr "Conférences" + +#: templates/teleforma/courses.html:91 +msgid "Session" +msgstr "Session" + +#: templates/teleforma/courses.html:92 +msgid "Professor" +msgstr "Professeur" + +#~ msgid "oral specialities" +#~ msgstr "spécialités orales" + +#~ msgid "written specialities" +#~ msgstr "spécialités écrites" + #~ msgid "mime type" #~ msgstr "type mime" diff --git a/teleforma/migrations/0014_auto__del_field_media_description__del_field_media_title__del_field_co.py b/teleforma/migrations/0014_auto__del_field_media_description__del_field_media_title__del_field_co.py new file mode 100644 index 00000000..71ca1638 --- /dev/null +++ b/teleforma/migrations/0014_auto__del_field_media_description__del_field_media_title__del_field_co.py @@ -0,0 +1,386 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Deleting field 'Media.description' + db.delete_column('teleforma_media', 'description') + + # Deleting field 'Media.title' + db.delete_column('teleforma_media', 'title') + + # Deleting field 'Conference.description' + db.delete_column('teleforma_conference', 'description') + + # Deleting field 'Conference.title' + db.delete_column('teleforma_conference', 'title') + + # Adding field 'Conference.comment' + db.add_column('teleforma_conference', 'comment', + self.gf('django.db.models.fields.CharField')(default='', max_length=255, blank=True), + keep_default=False) + + def backwards(self, orm): + # Adding field 'Media.description' + db.add_column('teleforma_media', 'description', + self.gf('django.db.models.fields.CharField')(default='', max_length=255, blank=True), + keep_default=False) + + # Adding field 'Media.title' + db.add_column('teleforma_media', 'title', + self.gf('django.db.models.fields.CharField')(default='', max_length=255, blank=True), + keep_default=False) + + # Adding field 'Conference.description' + db.add_column('teleforma_conference', 'description', + self.gf('django.db.models.fields.CharField')(default='', max_length=255, blank=True), + keep_default=False) + + # Adding field 'Conference.title' + db.add_column('teleforma_conference', 'title', + self.gf('django.db.models.fields.CharField')(default=1, max_length=255), + keep_default=False) + + # Deleting field 'Conference.comment' + db.delete_column('teleforma_conference', 'comment') + + models = { + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'teleforma.category': { + 'Meta': {'object_name': 'Category'}, + 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) + }, + 'teleforma.conference': { + 'Meta': {'object_name': 'Conference'}, + 'comment': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'course': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'conference'", 'to': "orm['teleforma.Course']"}), + 'date_begin': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'date_end': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'professor': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'conference'", 'to': "orm['teleforma.Professor']"}), + 'room': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'conference'", 'null': 'True', 'to': "orm['teleforma.Room']"}), + 'session': ('django.db.models.fields.CharField', [], {'default': "'1'", 'max_length': '16'}) + }, + 'teleforma.course': { + 'Meta': {'object_name': 'Course'}, + 'category': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'course'", 'to': "orm['teleforma.Category']"}), + 'department': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'course'", 'to': "orm['teleforma.Department']"}), + 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'public_id': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) + }, + 'teleforma.department': { + 'Meta': {'object_name': 'Department'}, + 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'organization': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'department'", 'to': "orm['teleforma.Organization']"}) + }, + 'teleforma.document': { + 'Meta': {'object_name': 'Document'}, + 'code': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'course': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'document'", 'to': "orm['teleforma.Course']"}), + 'credits': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'db_column': "'filename'", 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_annal': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_published': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}) + }, + 'teleforma.iej': { + 'Meta': {'object_name': 'IEJ'}, + 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) + }, + 'teleforma.media': { + 'Meta': {'object_name': 'Media'}, + 'conference': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'media'", 'to': "orm['teleforma.Conference']"}), + 'credits': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_live': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_published': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'item': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'media'", 'null': 'True', 'to': "orm['telemeta.MediaItem']"}) + }, + 'teleforma.organization': { + 'Meta': {'object_name': 'Organization'}, + 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) + }, + 'teleforma.procedure': { + 'Meta': {'object_name': 'Procedure'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}) + }, + 'teleforma.professor': { + 'Meta': {'object_name': 'Professor'}, + 'courses': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'professor'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.Course']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'professor'", 'unique': 'True', 'to': "orm['auth.User']"}) + }, + 'teleforma.profile': { + 'Meta': {'object_name': 'Profile', 'db_table': "'teleforma_profiles'"}, + 'address': ('django.db.models.fields.TextField', [], {}), + 'city': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'expiration_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'init_password': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'language': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'telephone': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'profile'", 'unique': 'True', 'to': "orm['auth.User']"}) + }, + 'teleforma.room': { + 'Meta': {'object_name': 'Room'}, + 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'organization': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'room'", 'to': "orm['teleforma.Organization']"}) + }, + 'teleforma.speciality': { + 'Meta': {'object_name': 'Speciality'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}) + }, + 'teleforma.student': { + 'Meta': {'object_name': 'Student'}, + 'category': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'student'", 'to': "orm['teleforma.Category']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'iej': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'student'", 'to': "orm['teleforma.IEJ']"}), + 'oral_1': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'oral_2': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'oral_speciality': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'student_oral_spe'", 'null': 'True', 'to': "orm['teleforma.Speciality']"}), + 'procedure': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'student'", 'null': 'True', 'to': "orm['teleforma.Procedure']"}), + 'training': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'student'", 'null': 'True', 'to': "orm['teleforma.Training']"}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'student'", 'unique': 'True', 'to': "orm['auth.User']"}), + 'written_speciality': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'student_written_spe'", 'null': 'True', 'to': "orm['teleforma.Speciality']"}) + }, + 'teleforma.training': { + 'Meta': {'object_name': 'Training'}, + 'courses': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'training'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.Course']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}) + }, + 'telemeta.acquisitionmode': { + 'Meta': {'ordering': "['value']", 'object_name': 'AcquisitionMode', 'db_table': "'acquisition_modes'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.adconversion': { + 'Meta': {'ordering': "['value']", 'object_name': 'AdConversion', 'db_table': "'ad_conversions'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.ethnicgroup': { + 'Meta': {'ordering': "['value']", 'object_name': 'EthnicGroup', 'db_table': "'ethnic_groups'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.genericstyle': { + 'Meta': {'ordering': "['value']", 'object_name': 'GenericStyle', 'db_table': "'generic_styles'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.language': { + 'Meta': {'ordering': "['name']", 'object_name': 'Language', 'db_table': "'languages'"}, + 'comment': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'identifier': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '3', 'blank': 'True'}), + 'name': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'part1': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '1', 'blank': 'True'}), + 'part2B': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '3', 'blank': 'True'}), + 'part2T': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '3', 'blank': 'True'}), + 'scope': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '1', 'blank': 'True'}), + 'type': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '1', 'blank': 'True'}) + }, + 'telemeta.legalright': { + 'Meta': {'ordering': "['value']", 'object_name': 'LegalRight', 'db_table': "'legal_rights'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.location': { + 'Meta': {'ordering': "['name']", 'object_name': 'Location', 'db_table': "'locations'"}, + 'complete_type': ('telemeta.models.core.ForeignKey', [], {'related_name': "'locations'", 'to': "orm['telemeta.LocationType']"}), + 'current_location': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'past_names'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.Location']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_authoritative': ('telemeta.models.core.BooleanField', [], {'default': 'False'}), + 'latitude': ('telemeta.models.core.FloatField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}), + 'longitude': ('telemeta.models.core.FloatField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}), + 'name': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '150'}), + 'type': ('telemeta.models.core.IntegerField', [], {'default': '0', 'db_index': 'True', 'blank': 'True'}) + }, + 'telemeta.locationtype': { + 'Meta': {'ordering': "['name']", 'object_name': 'LocationType', 'db_table': "'location_types'"}, + 'code': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '64'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('telemeta.models.core.CharField', [], {'max_length': '150'}) + }, + 'telemeta.mediacollection': { + 'Meta': {'ordering': "['code']", 'object_name': 'MediaCollection', 'db_table': "'media_collections'"}, + 'a_informer_07_03': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'acquisition_mode': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.AcquisitionMode']"}), + 'ad_conversion': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.AdConversion']"}), + 'alt_ids': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'alt_title': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'approx_duration': ('telemeta.models.core.DurationField', [], {'default': "'00:00'", 'blank': 'True'}), + 'booklet_author': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'booklet_description': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}), + 'cnrs_contributor': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'code': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}), + 'collector': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'collector_is_creator': ('telemeta.models.core.BooleanField', [], {'default': 'False'}), + 'comment': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}), + 'conservation_site': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'creator': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'doctype_code': ('telemeta.models.core.IntegerField', [], {'default': '0', 'blank': 'True'}), + 'external_references': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_published': ('telemeta.models.core.BooleanField', [], {'default': 'False'}), + 'items_done': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'legal_rights': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.LegalRight']"}), + 'metadata_author': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.MetadataAuthor']"}), + 'metadata_writer': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.MetadataWriter']"}), + 'old_code': ('telemeta.models.core.CharField', [], {'default': 'None', 'max_length': '250', 'null': 'True', 'blank': 'True'}), + 'physical_format': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.PhysicalFormat']"}), + 'physical_items_num': ('telemeta.models.core.IntegerField', [], {'default': '0', 'blank': 'True'}), + 'public_access': ('telemeta.models.core.CharField', [], {'default': "'metadata'", 'max_length': '16', 'blank': 'True'}), + 'publisher': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.Publisher']"}), + 'publisher_collection': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.PublisherCollection']"}), + 'publisher_serial': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'publishing_status': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.PublishingStatus']"}), + 'recorded_from_year': ('telemeta.models.core.IntegerField', [], {'default': '0', 'blank': 'True'}), + 'recorded_to_year': ('telemeta.models.core.IntegerField', [], {'default': '0', 'blank': 'True'}), + 'recording_context': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.RecordingContext']"}), + 'reference': ('telemeta.models.core.CharField', [], {'default': 'None', 'max_length': '250', 'unique': 'True', 'null': 'True', 'blank': 'True'}), + 'state': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}), + 'title': ('telemeta.models.core.CharField', [], {'max_length': '250'}), + 'travail': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'year_published': ('telemeta.models.core.IntegerField', [], {'default': '0', 'blank': 'True'}) + }, + 'telemeta.mediaitem': { + 'Meta': {'object_name': 'MediaItem', 'db_table': "'media_items'"}, + 'alt_title': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'approx_duration': ('telemeta.models.core.DurationField', [], {'default': "'00:00'", 'blank': 'True'}), + 'author': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'code': ('telemeta.models.core.CharField', [], {'default': "''", 'unique': 'True', 'max_length': '250', 'blank': 'True'}), + 'collection': ('telemeta.models.core.ForeignKey', [], {'related_name': "'items'", 'to': "orm['telemeta.MediaCollection']"}), + 'collector': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'collector_from_collection': ('telemeta.models.core.BooleanField', [], {'default': 'False'}), + 'collector_selection': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'comment': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}), + 'context_comment': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}), + 'copied_from_item': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'copies'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.MediaItem']"}), + 'creator_reference': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'cultural_area': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'ethnic_group': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'items'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.EthnicGroup']"}), + 'external_references': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}), + 'file': ('telemeta.models.core.FileField', [], {'default': "''", 'max_length': '100', 'db_column': "'filename'", 'blank': 'True'}), + 'generic_style': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'items'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.GenericStyle']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'language': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'language_iso': ('telemeta.models.core.ForeignKey', [], {'default': 'None', 'related_name': "'items'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.Language']"}), + 'location': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'to': "orm['telemeta.Location']", 'null': 'True', 'blank': 'True'}), + 'location_comment': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'moda_execut': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'old_code': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'public_access': ('telemeta.models.core.CharField', [], {'default': "'metadata'", 'max_length': '16', 'blank': 'True'}), + 'recorded_from_date': ('telemeta.models.core.DateField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}), + 'recorded_to_date': ('telemeta.models.core.DateField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}), + 'title': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'track': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'vernacular_style': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'items'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.VernacularStyle']"}) + }, + 'telemeta.metadataauthor': { + 'Meta': {'ordering': "['value']", 'object_name': 'MetadataAuthor', 'db_table': "'metadata_authors'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.metadatawriter': { + 'Meta': {'ordering': "['value']", 'object_name': 'MetadataWriter', 'db_table': "'metadata_writers'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.physicalformat': { + 'Meta': {'ordering': "['value']", 'object_name': 'PhysicalFormat', 'db_table': "'physical_formats'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.publisher': { + 'Meta': {'ordering': "['value']", 'object_name': 'Publisher', 'db_table': "'publishers'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.publishercollection': { + 'Meta': {'ordering': "['value']", 'object_name': 'PublisherCollection', 'db_table': "'publisher_collections'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'publisher': ('telemeta.models.core.ForeignKey', [], {'related_name': "'publisher_collections'", 'to': "orm['telemeta.Publisher']"}), + 'value': ('telemeta.models.core.CharField', [], {'max_length': '250'}) + }, + 'telemeta.publishingstatus': { + 'Meta': {'ordering': "['value']", 'object_name': 'PublishingStatus', 'db_table': "'publishing_status'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.recordingcontext': { + 'Meta': {'ordering': "['value']", 'object_name': 'RecordingContext', 'db_table': "'recording_contexts'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.vernacularstyle': { + 'Meta': {'ordering': "['value']", 'object_name': 'VernacularStyle', 'db_table': "'vernacular_styles'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + } + } + + complete_apps = ['teleforma'] \ No newline at end of file diff --git a/teleforma/migrations/0015_auto__add_field_document_conference.py b/teleforma/migrations/0015_auto__add_field_document_conference.py new file mode 100644 index 00000000..60626310 --- /dev/null +++ b/teleforma/migrations/0015_auto__add_field_document_conference.py @@ -0,0 +1,355 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding field 'Document.conference' + db.add_column('teleforma_document', 'conference', + self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='document', null=True, to=orm['teleforma.Conference']), + keep_default=False) + + def backwards(self, orm): + # Deleting field 'Document.conference' + db.delete_column('teleforma_document', 'conference_id') + + models = { + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'teleforma.category': { + 'Meta': {'object_name': 'Category'}, + 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) + }, + 'teleforma.conference': { + 'Meta': {'object_name': 'Conference'}, + 'comment': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'course': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'conference'", 'to': "orm['teleforma.Course']"}), + 'date_begin': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'date_end': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'professor': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'conference'", 'to': "orm['teleforma.Professor']"}), + 'room': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'conference'", 'null': 'True', 'to': "orm['teleforma.Room']"}), + 'session': ('django.db.models.fields.CharField', [], {'default': "'1'", 'max_length': '16'}) + }, + 'teleforma.course': { + 'Meta': {'object_name': 'Course'}, + 'category': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'course'", 'to': "orm['teleforma.Category']"}), + 'department': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'course'", 'to': "orm['teleforma.Department']"}), + 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'public_id': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) + }, + 'teleforma.department': { + 'Meta': {'object_name': 'Department'}, + 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'organization': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'department'", 'to': "orm['teleforma.Organization']"}) + }, + 'teleforma.document': { + 'Meta': {'object_name': 'Document'}, + 'code': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'conference': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'document'", 'null': 'True', 'to': "orm['teleforma.Conference']"}), + 'course': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'document'", 'to': "orm['teleforma.Course']"}), + 'credits': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'db_column': "'filename'", 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_annal': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_published': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}) + }, + 'teleforma.iej': { + 'Meta': {'object_name': 'IEJ'}, + 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) + }, + 'teleforma.media': { + 'Meta': {'object_name': 'Media'}, + 'conference': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'media'", 'to': "orm['teleforma.Conference']"}), + 'credits': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_live': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_published': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'item': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'media'", 'null': 'True', 'to': "orm['telemeta.MediaItem']"}) + }, + 'teleforma.organization': { + 'Meta': {'object_name': 'Organization'}, + 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) + }, + 'teleforma.procedure': { + 'Meta': {'object_name': 'Procedure'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}) + }, + 'teleforma.professor': { + 'Meta': {'object_name': 'Professor'}, + 'courses': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'professor'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.Course']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'professor'", 'unique': 'True', 'to': "orm['auth.User']"}) + }, + 'teleforma.profile': { + 'Meta': {'object_name': 'Profile', 'db_table': "'teleforma_profiles'"}, + 'address': ('django.db.models.fields.TextField', [], {}), + 'city': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'expiration_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'init_password': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'language': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'telephone': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'profile'", 'unique': 'True', 'to': "orm['auth.User']"}) + }, + 'teleforma.room': { + 'Meta': {'object_name': 'Room'}, + 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'organization': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'room'", 'to': "orm['teleforma.Organization']"}) + }, + 'teleforma.speciality': { + 'Meta': {'object_name': 'Speciality'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}) + }, + 'teleforma.student': { + 'Meta': {'object_name': 'Student'}, + 'category': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'student'", 'to': "orm['teleforma.Category']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'iej': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'student'", 'to': "orm['teleforma.IEJ']"}), + 'oral_1': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'oral_2': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'oral_speciality': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'student_oral_spe'", 'null': 'True', 'to': "orm['teleforma.Speciality']"}), + 'procedure': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'student'", 'null': 'True', 'to': "orm['teleforma.Procedure']"}), + 'training': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'student'", 'null': 'True', 'to': "orm['teleforma.Training']"}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'student'", 'unique': 'True', 'to': "orm['auth.User']"}), + 'written_speciality': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'student_written_spe'", 'null': 'True', 'to': "orm['teleforma.Speciality']"}) + }, + 'teleforma.training': { + 'Meta': {'object_name': 'Training'}, + 'courses': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'training'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.Course']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}) + }, + 'telemeta.acquisitionmode': { + 'Meta': {'ordering': "['value']", 'object_name': 'AcquisitionMode', 'db_table': "'acquisition_modes'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.adconversion': { + 'Meta': {'ordering': "['value']", 'object_name': 'AdConversion', 'db_table': "'ad_conversions'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.ethnicgroup': { + 'Meta': {'ordering': "['value']", 'object_name': 'EthnicGroup', 'db_table': "'ethnic_groups'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.genericstyle': { + 'Meta': {'ordering': "['value']", 'object_name': 'GenericStyle', 'db_table': "'generic_styles'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.language': { + 'Meta': {'ordering': "['name']", 'object_name': 'Language', 'db_table': "'languages'"}, + 'comment': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'identifier': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '3', 'blank': 'True'}), + 'name': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'part1': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '1', 'blank': 'True'}), + 'part2B': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '3', 'blank': 'True'}), + 'part2T': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '3', 'blank': 'True'}), + 'scope': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '1', 'blank': 'True'}), + 'type': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '1', 'blank': 'True'}) + }, + 'telemeta.legalright': { + 'Meta': {'ordering': "['value']", 'object_name': 'LegalRight', 'db_table': "'legal_rights'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.location': { + 'Meta': {'ordering': "['name']", 'object_name': 'Location', 'db_table': "'locations'"}, + 'complete_type': ('telemeta.models.core.ForeignKey', [], {'related_name': "'locations'", 'to': "orm['telemeta.LocationType']"}), + 'current_location': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'past_names'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.Location']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_authoritative': ('telemeta.models.core.BooleanField', [], {'default': 'False'}), + 'latitude': ('telemeta.models.core.FloatField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}), + 'longitude': ('telemeta.models.core.FloatField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}), + 'name': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '150'}), + 'type': ('telemeta.models.core.IntegerField', [], {'default': '0', 'db_index': 'True', 'blank': 'True'}) + }, + 'telemeta.locationtype': { + 'Meta': {'ordering': "['name']", 'object_name': 'LocationType', 'db_table': "'location_types'"}, + 'code': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '64'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('telemeta.models.core.CharField', [], {'max_length': '150'}) + }, + 'telemeta.mediacollection': { + 'Meta': {'ordering': "['code']", 'object_name': 'MediaCollection', 'db_table': "'media_collections'"}, + 'a_informer_07_03': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'acquisition_mode': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.AcquisitionMode']"}), + 'ad_conversion': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.AdConversion']"}), + 'alt_ids': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'alt_title': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'approx_duration': ('telemeta.models.core.DurationField', [], {'default': "'00:00'", 'blank': 'True'}), + 'booklet_author': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'booklet_description': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}), + 'cnrs_contributor': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'code': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}), + 'collector': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'collector_is_creator': ('telemeta.models.core.BooleanField', [], {'default': 'False'}), + 'comment': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}), + 'conservation_site': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'creator': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'doctype_code': ('telemeta.models.core.IntegerField', [], {'default': '0', 'blank': 'True'}), + 'external_references': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_published': ('telemeta.models.core.BooleanField', [], {'default': 'False'}), + 'items_done': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'legal_rights': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.LegalRight']"}), + 'metadata_author': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.MetadataAuthor']"}), + 'metadata_writer': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.MetadataWriter']"}), + 'old_code': ('telemeta.models.core.CharField', [], {'default': 'None', 'max_length': '250', 'null': 'True', 'blank': 'True'}), + 'physical_format': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.PhysicalFormat']"}), + 'physical_items_num': ('telemeta.models.core.IntegerField', [], {'default': '0', 'blank': 'True'}), + 'public_access': ('telemeta.models.core.CharField', [], {'default': "'metadata'", 'max_length': '16', 'blank': 'True'}), + 'publisher': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.Publisher']"}), + 'publisher_collection': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.PublisherCollection']"}), + 'publisher_serial': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'publishing_status': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.PublishingStatus']"}), + 'recorded_from_year': ('telemeta.models.core.IntegerField', [], {'default': '0', 'blank': 'True'}), + 'recorded_to_year': ('telemeta.models.core.IntegerField', [], {'default': '0', 'blank': 'True'}), + 'recording_context': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.RecordingContext']"}), + 'reference': ('telemeta.models.core.CharField', [], {'default': 'None', 'max_length': '250', 'unique': 'True', 'null': 'True', 'blank': 'True'}), + 'state': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}), + 'title': ('telemeta.models.core.CharField', [], {'max_length': '250'}), + 'travail': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'year_published': ('telemeta.models.core.IntegerField', [], {'default': '0', 'blank': 'True'}) + }, + 'telemeta.mediaitem': { + 'Meta': {'object_name': 'MediaItem', 'db_table': "'media_items'"}, + 'alt_title': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'approx_duration': ('telemeta.models.core.DurationField', [], {'default': "'00:00'", 'blank': 'True'}), + 'author': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'code': ('telemeta.models.core.CharField', [], {'default': "''", 'unique': 'True', 'max_length': '250', 'blank': 'True'}), + 'collection': ('telemeta.models.core.ForeignKey', [], {'related_name': "'items'", 'to': "orm['telemeta.MediaCollection']"}), + 'collector': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'collector_from_collection': ('telemeta.models.core.BooleanField', [], {'default': 'False'}), + 'collector_selection': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'comment': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}), + 'context_comment': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}), + 'copied_from_item': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'copies'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.MediaItem']"}), + 'creator_reference': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'cultural_area': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'ethnic_group': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'items'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.EthnicGroup']"}), + 'external_references': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}), + 'file': ('telemeta.models.core.FileField', [], {'default': "''", 'max_length': '100', 'db_column': "'filename'", 'blank': 'True'}), + 'generic_style': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'items'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.GenericStyle']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'language': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'language_iso': ('telemeta.models.core.ForeignKey', [], {'related_name': "'items'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['telemeta.Language']", 'blank': 'True', 'null': 'True'}), + 'location': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'to': "orm['telemeta.Location']", 'null': 'True', 'blank': 'True'}), + 'location_comment': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'moda_execut': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'old_code': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'public_access': ('telemeta.models.core.CharField', [], {'default': "'metadata'", 'max_length': '16', 'blank': 'True'}), + 'recorded_from_date': ('telemeta.models.core.DateField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}), + 'recorded_to_date': ('telemeta.models.core.DateField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}), + 'title': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'track': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'vernacular_style': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'items'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.VernacularStyle']"}) + }, + 'telemeta.metadataauthor': { + 'Meta': {'ordering': "['value']", 'object_name': 'MetadataAuthor', 'db_table': "'metadata_authors'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.metadatawriter': { + 'Meta': {'ordering': "['value']", 'object_name': 'MetadataWriter', 'db_table': "'metadata_writers'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.physicalformat': { + 'Meta': {'ordering': "['value']", 'object_name': 'PhysicalFormat', 'db_table': "'physical_formats'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.publisher': { + 'Meta': {'ordering': "['value']", 'object_name': 'Publisher', 'db_table': "'publishers'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.publishercollection': { + 'Meta': {'ordering': "['value']", 'object_name': 'PublisherCollection', 'db_table': "'publisher_collections'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'publisher': ('telemeta.models.core.ForeignKey', [], {'related_name': "'publisher_collections'", 'to': "orm['telemeta.Publisher']"}), + 'value': ('telemeta.models.core.CharField', [], {'max_length': '250'}) + }, + 'telemeta.publishingstatus': { + 'Meta': {'ordering': "['value']", 'object_name': 'PublishingStatus', 'db_table': "'publishing_status'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.recordingcontext': { + 'Meta': {'ordering': "['value']", 'object_name': 'RecordingContext', 'db_table': "'recording_contexts'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.vernacularstyle': { + 'Meta': {'ordering': "['value']", 'object_name': 'VernacularStyle', 'db_table': "'vernacular_styles'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + } + } + + complete_apps = ['teleforma'] \ No newline at end of file diff --git a/teleforma/migrations/0016_auto__add_field_media_course.py b/teleforma/migrations/0016_auto__add_field_media_course.py new file mode 100644 index 00000000..1775a927 --- /dev/null +++ b/teleforma/migrations/0016_auto__add_field_media_course.py @@ -0,0 +1,356 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding field 'Media.course' + db.add_column('teleforma_media', 'course', + self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='media', null=True, to=orm['teleforma.Course']), + keep_default=False) + + def backwards(self, orm): + # Deleting field 'Media.course' + db.delete_column('teleforma_media', 'course_id') + + models = { + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'teleforma.category': { + 'Meta': {'object_name': 'Category'}, + 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) + }, + 'teleforma.conference': { + 'Meta': {'object_name': 'Conference'}, + 'comment': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'course': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'conference'", 'to': "orm['teleforma.Course']"}), + 'date_begin': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'date_end': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'professor': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'conference'", 'to': "orm['teleforma.Professor']"}), + 'room': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'conference'", 'null': 'True', 'to': "orm['teleforma.Room']"}), + 'session': ('django.db.models.fields.CharField', [], {'default': "'1'", 'max_length': '16'}) + }, + 'teleforma.course': { + 'Meta': {'object_name': 'Course'}, + 'category': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'course'", 'to': "orm['teleforma.Category']"}), + 'department': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'course'", 'to': "orm['teleforma.Department']"}), + 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'public_id': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) + }, + 'teleforma.department': { + 'Meta': {'object_name': 'Department'}, + 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'organization': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'department'", 'to': "orm['teleforma.Organization']"}) + }, + 'teleforma.document': { + 'Meta': {'object_name': 'Document'}, + 'code': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'conference': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'document'", 'null': 'True', 'to': "orm['teleforma.Conference']"}), + 'course': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'document'", 'to': "orm['teleforma.Course']"}), + 'credits': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'db_column': "'filename'", 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_annal': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_published': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}) + }, + 'teleforma.iej': { + 'Meta': {'object_name': 'IEJ'}, + 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) + }, + 'teleforma.media': { + 'Meta': {'object_name': 'Media'}, + 'conference': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'media'", 'to': "orm['teleforma.Conference']"}), + 'course': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'media'", 'null': 'True', 'to': "orm['teleforma.Course']"}), + 'credits': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_live': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_published': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'item': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'media'", 'null': 'True', 'to': "orm['telemeta.MediaItem']"}) + }, + 'teleforma.organization': { + 'Meta': {'object_name': 'Organization'}, + 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) + }, + 'teleforma.procedure': { + 'Meta': {'object_name': 'Procedure'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}) + }, + 'teleforma.professor': { + 'Meta': {'object_name': 'Professor'}, + 'courses': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'professor'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.Course']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'professor'", 'unique': 'True', 'to': "orm['auth.User']"}) + }, + 'teleforma.profile': { + 'Meta': {'object_name': 'Profile', 'db_table': "'teleforma_profiles'"}, + 'address': ('django.db.models.fields.TextField', [], {}), + 'city': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'expiration_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'init_password': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'language': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'telephone': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'profile'", 'unique': 'True', 'to': "orm['auth.User']"}) + }, + 'teleforma.room': { + 'Meta': {'object_name': 'Room'}, + 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'organization': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'room'", 'to': "orm['teleforma.Organization']"}) + }, + 'teleforma.speciality': { + 'Meta': {'object_name': 'Speciality'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}) + }, + 'teleforma.student': { + 'Meta': {'object_name': 'Student'}, + 'category': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'student'", 'to': "orm['teleforma.Category']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'iej': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'student'", 'to': "orm['teleforma.IEJ']"}), + 'oral_1': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'oral_2': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'oral_speciality': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'student_oral_spe'", 'null': 'True', 'to': "orm['teleforma.Speciality']"}), + 'procedure': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'student'", 'null': 'True', 'to': "orm['teleforma.Procedure']"}), + 'training': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'student'", 'null': 'True', 'to': "orm['teleforma.Training']"}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'student'", 'unique': 'True', 'to': "orm['auth.User']"}), + 'written_speciality': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'student_written_spe'", 'null': 'True', 'to': "orm['teleforma.Speciality']"}) + }, + 'teleforma.training': { + 'Meta': {'object_name': 'Training'}, + 'courses': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'training'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.Course']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}) + }, + 'telemeta.acquisitionmode': { + 'Meta': {'ordering': "['value']", 'object_name': 'AcquisitionMode', 'db_table': "'acquisition_modes'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.adconversion': { + 'Meta': {'ordering': "['value']", 'object_name': 'AdConversion', 'db_table': "'ad_conversions'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.ethnicgroup': { + 'Meta': {'ordering': "['value']", 'object_name': 'EthnicGroup', 'db_table': "'ethnic_groups'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.genericstyle': { + 'Meta': {'ordering': "['value']", 'object_name': 'GenericStyle', 'db_table': "'generic_styles'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.language': { + 'Meta': {'ordering': "['name']", 'object_name': 'Language', 'db_table': "'languages'"}, + 'comment': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'identifier': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '3', 'blank': 'True'}), + 'name': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'part1': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '1', 'blank': 'True'}), + 'part2B': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '3', 'blank': 'True'}), + 'part2T': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '3', 'blank': 'True'}), + 'scope': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '1', 'blank': 'True'}), + 'type': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '1', 'blank': 'True'}) + }, + 'telemeta.legalright': { + 'Meta': {'ordering': "['value']", 'object_name': 'LegalRight', 'db_table': "'legal_rights'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.location': { + 'Meta': {'ordering': "['name']", 'object_name': 'Location', 'db_table': "'locations'"}, + 'complete_type': ('telemeta.models.core.ForeignKey', [], {'related_name': "'locations'", 'to': "orm['telemeta.LocationType']"}), + 'current_location': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'past_names'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.Location']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_authoritative': ('telemeta.models.core.BooleanField', [], {'default': 'False'}), + 'latitude': ('telemeta.models.core.FloatField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}), + 'longitude': ('telemeta.models.core.FloatField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}), + 'name': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '150'}), + 'type': ('telemeta.models.core.IntegerField', [], {'default': '0', 'db_index': 'True', 'blank': 'True'}) + }, + 'telemeta.locationtype': { + 'Meta': {'ordering': "['name']", 'object_name': 'LocationType', 'db_table': "'location_types'"}, + 'code': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '64'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('telemeta.models.core.CharField', [], {'max_length': '150'}) + }, + 'telemeta.mediacollection': { + 'Meta': {'ordering': "['code']", 'object_name': 'MediaCollection', 'db_table': "'media_collections'"}, + 'a_informer_07_03': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'acquisition_mode': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.AcquisitionMode']"}), + 'ad_conversion': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.AdConversion']"}), + 'alt_ids': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'alt_title': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'approx_duration': ('telemeta.models.core.DurationField', [], {'default': "'00:00'", 'blank': 'True'}), + 'booklet_author': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'booklet_description': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}), + 'cnrs_contributor': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'code': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}), + 'collector': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'collector_is_creator': ('telemeta.models.core.BooleanField', [], {'default': 'False'}), + 'comment': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}), + 'conservation_site': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'creator': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'doctype_code': ('telemeta.models.core.IntegerField', [], {'default': '0', 'blank': 'True'}), + 'external_references': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_published': ('telemeta.models.core.BooleanField', [], {'default': 'False'}), + 'items_done': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'legal_rights': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.LegalRight']"}), + 'metadata_author': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.MetadataAuthor']"}), + 'metadata_writer': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.MetadataWriter']"}), + 'old_code': ('telemeta.models.core.CharField', [], {'default': 'None', 'max_length': '250', 'null': 'True', 'blank': 'True'}), + 'physical_format': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.PhysicalFormat']"}), + 'physical_items_num': ('telemeta.models.core.IntegerField', [], {'default': '0', 'blank': 'True'}), + 'public_access': ('telemeta.models.core.CharField', [], {'default': "'metadata'", 'max_length': '16', 'blank': 'True'}), + 'publisher': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.Publisher']"}), + 'publisher_collection': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.PublisherCollection']"}), + 'publisher_serial': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'publishing_status': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.PublishingStatus']"}), + 'recorded_from_year': ('telemeta.models.core.IntegerField', [], {'default': '0', 'blank': 'True'}), + 'recorded_to_year': ('telemeta.models.core.IntegerField', [], {'default': '0', 'blank': 'True'}), + 'recording_context': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.RecordingContext']"}), + 'reference': ('telemeta.models.core.CharField', [], {'default': 'None', 'max_length': '250', 'unique': 'True', 'null': 'True', 'blank': 'True'}), + 'state': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}), + 'title': ('telemeta.models.core.CharField', [], {'max_length': '250'}), + 'travail': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'year_published': ('telemeta.models.core.IntegerField', [], {'default': '0', 'blank': 'True'}) + }, + 'telemeta.mediaitem': { + 'Meta': {'object_name': 'MediaItem', 'db_table': "'media_items'"}, + 'alt_title': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'approx_duration': ('telemeta.models.core.DurationField', [], {'default': "'00:00'", 'blank': 'True'}), + 'author': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'code': ('telemeta.models.core.CharField', [], {'default': "''", 'unique': 'True', 'max_length': '250', 'blank': 'True'}), + 'collection': ('telemeta.models.core.ForeignKey', [], {'related_name': "'items'", 'to': "orm['telemeta.MediaCollection']"}), + 'collector': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'collector_from_collection': ('telemeta.models.core.BooleanField', [], {'default': 'False'}), + 'collector_selection': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'comment': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}), + 'context_comment': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}), + 'copied_from_item': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'copies'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.MediaItem']"}), + 'creator_reference': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'cultural_area': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'ethnic_group': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'items'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.EthnicGroup']"}), + 'external_references': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}), + 'file': ('telemeta.models.core.FileField', [], {'default': "''", 'max_length': '100', 'db_column': "'filename'", 'blank': 'True'}), + 'generic_style': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'items'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.GenericStyle']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'language': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'language_iso': ('telemeta.models.core.ForeignKey', [], {'related_name': "'items'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['telemeta.Language']", 'blank': 'True', 'null': 'True'}), + 'location': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'to': "orm['telemeta.Location']", 'null': 'True', 'blank': 'True'}), + 'location_comment': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'moda_execut': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'old_code': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'public_access': ('telemeta.models.core.CharField', [], {'default': "'metadata'", 'max_length': '16', 'blank': 'True'}), + 'recorded_from_date': ('telemeta.models.core.DateField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}), + 'recorded_to_date': ('telemeta.models.core.DateField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}), + 'title': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'track': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'vernacular_style': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'items'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.VernacularStyle']"}) + }, + 'telemeta.metadataauthor': { + 'Meta': {'ordering': "['value']", 'object_name': 'MetadataAuthor', 'db_table': "'metadata_authors'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.metadatawriter': { + 'Meta': {'ordering': "['value']", 'object_name': 'MetadataWriter', 'db_table': "'metadata_writers'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.physicalformat': { + 'Meta': {'ordering': "['value']", 'object_name': 'PhysicalFormat', 'db_table': "'physical_formats'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.publisher': { + 'Meta': {'ordering': "['value']", 'object_name': 'Publisher', 'db_table': "'publishers'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.publishercollection': { + 'Meta': {'ordering': "['value']", 'object_name': 'PublisherCollection', 'db_table': "'publisher_collections'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'publisher': ('telemeta.models.core.ForeignKey', [], {'related_name': "'publisher_collections'", 'to': "orm['telemeta.Publisher']"}), + 'value': ('telemeta.models.core.CharField', [], {'max_length': '250'}) + }, + 'telemeta.publishingstatus': { + 'Meta': {'ordering': "['value']", 'object_name': 'PublishingStatus', 'db_table': "'publishing_status'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.recordingcontext': { + 'Meta': {'ordering': "['value']", 'object_name': 'RecordingContext', 'db_table': "'recording_contexts'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.vernacularstyle': { + 'Meta': {'ordering': "['value']", 'object_name': 'VernacularStyle', 'db_table': "'vernacular_styles'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + } + } + + complete_apps = ['teleforma'] \ No newline at end of file diff --git a/teleforma/migrations/0017_auto__chg_field_media_conference__chg_field_media_course.py b/teleforma/migrations/0017_auto__chg_field_media_conference__chg_field_media_course.py new file mode 100644 index 00000000..35ca7bcb --- /dev/null +++ b/teleforma/migrations/0017_auto__chg_field_media_conference__chg_field_media_course.py @@ -0,0 +1,360 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + + # Changing field 'Media.conference' + db.alter_column('teleforma_media', 'conference_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, to=orm['teleforma.Conference'])) + + # Changing field 'Media.course' + db.alter_column('teleforma_media', 'course_id', self.gf('django.db.models.fields.related.ForeignKey')(default=1, to=orm['teleforma.Course'])) + def backwards(self, orm): + + # Changing field 'Media.conference' + db.alter_column('teleforma_media', 'conference_id', self.gf('django.db.models.fields.related.ForeignKey')(default=1, to=orm['teleforma.Conference'])) + + # Changing field 'Media.course' + db.alter_column('teleforma_media', 'course_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, to=orm['teleforma.Course'])) + models = { + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'teleforma.category': { + 'Meta': {'object_name': 'Category'}, + 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) + }, + 'teleforma.conference': { + 'Meta': {'object_name': 'Conference'}, + 'comment': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'course': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'conference'", 'to': "orm['teleforma.Course']"}), + 'date_begin': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'date_end': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'professor': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'conference'", 'to': "orm['teleforma.Professor']"}), + 'room': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'conference'", 'null': 'True', 'to': "orm['teleforma.Room']"}), + 'session': ('django.db.models.fields.CharField', [], {'default': "'1'", 'max_length': '16'}) + }, + 'teleforma.course': { + 'Meta': {'object_name': 'Course'}, + 'category': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'course'", 'to': "orm['teleforma.Category']"}), + 'department': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'course'", 'to': "orm['teleforma.Department']"}), + 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'public_id': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) + }, + 'teleforma.department': { + 'Meta': {'object_name': 'Department'}, + 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'organization': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'department'", 'to': "orm['teleforma.Organization']"}) + }, + 'teleforma.document': { + 'Meta': {'object_name': 'Document'}, + 'code': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'conference': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'document'", 'null': 'True', 'to': "orm['teleforma.Conference']"}), + 'course': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'document'", 'to': "orm['teleforma.Course']"}), + 'credits': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'db_column': "'filename'", 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_annal': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_published': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}) + }, + 'teleforma.iej': { + 'Meta': {'object_name': 'IEJ'}, + 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) + }, + 'teleforma.media': { + 'Meta': {'object_name': 'Media'}, + 'conference': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'media'", 'null': 'True', 'to': "orm['teleforma.Conference']"}), + 'course': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'media'", 'to': "orm['teleforma.Course']"}), + 'credits': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_live': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_published': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'item': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'media'", 'null': 'True', 'to': "orm['telemeta.MediaItem']"}) + }, + 'teleforma.organization': { + 'Meta': {'object_name': 'Organization'}, + 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) + }, + 'teleforma.procedure': { + 'Meta': {'object_name': 'Procedure'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}) + }, + 'teleforma.professor': { + 'Meta': {'object_name': 'Professor'}, + 'courses': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'professor'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.Course']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'professor'", 'unique': 'True', 'to': "orm['auth.User']"}) + }, + 'teleforma.profile': { + 'Meta': {'object_name': 'Profile', 'db_table': "'teleforma_profiles'"}, + 'address': ('django.db.models.fields.TextField', [], {}), + 'city': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'expiration_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'init_password': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'language': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'telephone': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'profile'", 'unique': 'True', 'to': "orm['auth.User']"}) + }, + 'teleforma.room': { + 'Meta': {'object_name': 'Room'}, + 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'organization': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'room'", 'to': "orm['teleforma.Organization']"}) + }, + 'teleforma.speciality': { + 'Meta': {'object_name': 'Speciality'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}) + }, + 'teleforma.student': { + 'Meta': {'object_name': 'Student'}, + 'category': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'student'", 'to': "orm['teleforma.Category']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'iej': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'student'", 'to': "orm['teleforma.IEJ']"}), + 'oral_1': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'oral_2': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'oral_speciality': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'student_oral_spe'", 'null': 'True', 'to': "orm['teleforma.Speciality']"}), + 'procedure': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'student'", 'null': 'True', 'to': "orm['teleforma.Procedure']"}), + 'training': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'student'", 'null': 'True', 'to': "orm['teleforma.Training']"}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'student'", 'unique': 'True', 'to': "orm['auth.User']"}), + 'written_speciality': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'student_written_spe'", 'null': 'True', 'to': "orm['teleforma.Speciality']"}) + }, + 'teleforma.training': { + 'Meta': {'object_name': 'Training'}, + 'courses': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'training'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.Course']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}) + }, + 'telemeta.acquisitionmode': { + 'Meta': {'ordering': "['value']", 'object_name': 'AcquisitionMode', 'db_table': "'acquisition_modes'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.adconversion': { + 'Meta': {'ordering': "['value']", 'object_name': 'AdConversion', 'db_table': "'ad_conversions'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.ethnicgroup': { + 'Meta': {'ordering': "['value']", 'object_name': 'EthnicGroup', 'db_table': "'ethnic_groups'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.genericstyle': { + 'Meta': {'ordering': "['value']", 'object_name': 'GenericStyle', 'db_table': "'generic_styles'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.language': { + 'Meta': {'ordering': "['name']", 'object_name': 'Language', 'db_table': "'languages'"}, + 'comment': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'identifier': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '3', 'blank': 'True'}), + 'name': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'part1': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '1', 'blank': 'True'}), + 'part2B': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '3', 'blank': 'True'}), + 'part2T': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '3', 'blank': 'True'}), + 'scope': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '1', 'blank': 'True'}), + 'type': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '1', 'blank': 'True'}) + }, + 'telemeta.legalright': { + 'Meta': {'ordering': "['value']", 'object_name': 'LegalRight', 'db_table': "'legal_rights'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.location': { + 'Meta': {'ordering': "['name']", 'object_name': 'Location', 'db_table': "'locations'"}, + 'complete_type': ('telemeta.models.core.ForeignKey', [], {'related_name': "'locations'", 'to': "orm['telemeta.LocationType']"}), + 'current_location': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'past_names'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.Location']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_authoritative': ('telemeta.models.core.BooleanField', [], {'default': 'False'}), + 'latitude': ('telemeta.models.core.FloatField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}), + 'longitude': ('telemeta.models.core.FloatField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}), + 'name': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '150'}), + 'type': ('telemeta.models.core.IntegerField', [], {'default': '0', 'db_index': 'True', 'blank': 'True'}) + }, + 'telemeta.locationtype': { + 'Meta': {'ordering': "['name']", 'object_name': 'LocationType', 'db_table': "'location_types'"}, + 'code': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '64'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('telemeta.models.core.CharField', [], {'max_length': '150'}) + }, + 'telemeta.mediacollection': { + 'Meta': {'ordering': "['code']", 'object_name': 'MediaCollection', 'db_table': "'media_collections'"}, + 'a_informer_07_03': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'acquisition_mode': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.AcquisitionMode']"}), + 'ad_conversion': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.AdConversion']"}), + 'alt_ids': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'alt_title': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'approx_duration': ('telemeta.models.core.DurationField', [], {'default': "'00:00'", 'blank': 'True'}), + 'booklet_author': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'booklet_description': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}), + 'cnrs_contributor': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'code': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}), + 'collector': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'collector_is_creator': ('telemeta.models.core.BooleanField', [], {'default': 'False'}), + 'comment': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}), + 'conservation_site': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'creator': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'doctype_code': ('telemeta.models.core.IntegerField', [], {'default': '0', 'blank': 'True'}), + 'external_references': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_published': ('telemeta.models.core.BooleanField', [], {'default': 'False'}), + 'items_done': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'legal_rights': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.LegalRight']"}), + 'metadata_author': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.MetadataAuthor']"}), + 'metadata_writer': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.MetadataWriter']"}), + 'old_code': ('telemeta.models.core.CharField', [], {'default': 'None', 'max_length': '250', 'null': 'True', 'blank': 'True'}), + 'physical_format': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.PhysicalFormat']"}), + 'physical_items_num': ('telemeta.models.core.IntegerField', [], {'default': '0', 'blank': 'True'}), + 'public_access': ('telemeta.models.core.CharField', [], {'default': "'metadata'", 'max_length': '16', 'blank': 'True'}), + 'publisher': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.Publisher']"}), + 'publisher_collection': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.PublisherCollection']"}), + 'publisher_serial': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'publishing_status': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.PublishingStatus']"}), + 'recorded_from_year': ('telemeta.models.core.IntegerField', [], {'default': '0', 'blank': 'True'}), + 'recorded_to_year': ('telemeta.models.core.IntegerField', [], {'default': '0', 'blank': 'True'}), + 'recording_context': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.RecordingContext']"}), + 'reference': ('telemeta.models.core.CharField', [], {'default': 'None', 'max_length': '250', 'unique': 'True', 'null': 'True', 'blank': 'True'}), + 'state': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}), + 'title': ('telemeta.models.core.CharField', [], {'max_length': '250'}), + 'travail': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'year_published': ('telemeta.models.core.IntegerField', [], {'default': '0', 'blank': 'True'}) + }, + 'telemeta.mediaitem': { + 'Meta': {'object_name': 'MediaItem', 'db_table': "'media_items'"}, + 'alt_title': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'approx_duration': ('telemeta.models.core.DurationField', [], {'default': "'00:00'", 'blank': 'True'}), + 'author': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'code': ('telemeta.models.core.CharField', [], {'default': "''", 'unique': 'True', 'max_length': '250', 'blank': 'True'}), + 'collection': ('telemeta.models.core.ForeignKey', [], {'related_name': "'items'", 'to': "orm['telemeta.MediaCollection']"}), + 'collector': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'collector_from_collection': ('telemeta.models.core.BooleanField', [], {'default': 'False'}), + 'collector_selection': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'comment': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}), + 'context_comment': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}), + 'copied_from_item': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'copies'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.MediaItem']"}), + 'creator_reference': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'cultural_area': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'ethnic_group': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'items'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.EthnicGroup']"}), + 'external_references': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}), + 'file': ('telemeta.models.core.FileField', [], {'default': "''", 'max_length': '100', 'db_column': "'filename'", 'blank': 'True'}), + 'generic_style': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'items'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.GenericStyle']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'language': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'language_iso': ('telemeta.models.core.ForeignKey', [], {'related_name': "'items'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['telemeta.Language']", 'blank': 'True', 'null': 'True'}), + 'location': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'to': "orm['telemeta.Location']", 'null': 'True', 'blank': 'True'}), + 'location_comment': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'moda_execut': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'old_code': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'public_access': ('telemeta.models.core.CharField', [], {'default': "'metadata'", 'max_length': '16', 'blank': 'True'}), + 'recorded_from_date': ('telemeta.models.core.DateField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}), + 'recorded_to_date': ('telemeta.models.core.DateField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}), + 'title': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'track': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'vernacular_style': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'items'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.VernacularStyle']"}) + }, + 'telemeta.metadataauthor': { + 'Meta': {'ordering': "['value']", 'object_name': 'MetadataAuthor', 'db_table': "'metadata_authors'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.metadatawriter': { + 'Meta': {'ordering': "['value']", 'object_name': 'MetadataWriter', 'db_table': "'metadata_writers'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.physicalformat': { + 'Meta': {'ordering': "['value']", 'object_name': 'PhysicalFormat', 'db_table': "'physical_formats'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.publisher': { + 'Meta': {'ordering': "['value']", 'object_name': 'Publisher', 'db_table': "'publishers'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.publishercollection': { + 'Meta': {'ordering': "['value']", 'object_name': 'PublisherCollection', 'db_table': "'publisher_collections'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'publisher': ('telemeta.models.core.ForeignKey', [], {'related_name': "'publisher_collections'", 'to': "orm['telemeta.Publisher']"}), + 'value': ('telemeta.models.core.CharField', [], {'max_length': '250'}) + }, + 'telemeta.publishingstatus': { + 'Meta': {'ordering': "['value']", 'object_name': 'PublishingStatus', 'db_table': "'publishing_status'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.recordingcontext': { + 'Meta': {'ordering': "['value']", 'object_name': 'RecordingContext', 'db_table': "'recording_contexts'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.vernacularstyle': { + 'Meta': {'ordering': "['value']", 'object_name': 'VernacularStyle', 'db_table': "'vernacular_styles'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}) + } + } + + complete_apps = ['teleforma'] \ No newline at end of file diff --git a/teleforma/models.py b/teleforma/models.py index 1a19ade9..726004c2 100755 --- a/teleforma/models.py +++ b/teleforma/models.py @@ -142,22 +142,25 @@ class Room(Model): class Conference(Model): - title = CharField(_('title'), max_length=255) - description = CharField(_('description'), max_length=255, blank=True) - professor = ForeignKey('Professor', related_name='conference', verbose_name=_('professor')) course = ForeignKey('Course', related_name='conference', verbose_name=_('course')) + professor = ForeignKey('Professor', related_name='conference', verbose_name=_('professor')) session = CharField(_('session'), choices=session_choices, max_length=16, default="1") room = ForeignKey('Room', related_name='conference', verbose_name=_('room'), null=True, blank=True) + comment = CharField(_('comment'), max_length=255, blank=True) date_begin = DateTimeField(_('begin date'), null=True, blank=True) date_end = DateTimeField(_('end date'), null=True, blank=True) - def __str__(self): + @property + def description(self): return self.course.department.name + ' - ' + self.course.title + ' - ' + \ - self.title + ' - ' + self.professor.user.first_name + ' - ' + \ + self.professor.user.first_name + ' - ' + \ self.professor.user.last_name + ' - ' + str(self.date_begin) + def __str__(self): + return self.description + class Meta: db_table = app_label + '_' + 'conference' verbose_name = _('conference') @@ -166,23 +169,11 @@ class Conference(Model): class MediaBase(Model): "Base media resource" - title = CharField(_('title'), max_length=255, blank=True) - description = CharField(_('description'), max_length=255, blank=True) credits = CharField(_('credits'), max_length=255, blank=True) is_published = BooleanField(_('published')) date_added = DateTimeField(_('date added'), auto_now_add=True) date_modified = DateTimeField(_('date modified'), auto_now=True) - def __unicode__(self): - if self.title: - return self.title - else: - return self.item.title - - @property - def public_id(self): - return self.code - def get_fields(self): return self._meta.fields @@ -195,8 +186,12 @@ class Document(MediaBase): element_type = 'document' + title = CharField(_('title'), max_length=255, blank=True) + description = CharField(_('description'), max_length=255, blank=True) code = CharField(_('code'), max_length=255, blank=True) course = ForeignKey('Course', related_name='document', verbose_name='course') + conference = ForeignKey('Conference', related_name='document', verbose_name=_('conference'), + blank=True, null=True) is_annal = BooleanField(_('annal')) file = FileField(_('file'), upload_to='items/%Y/%m/%d', db_column="filename", blank=True) @@ -213,7 +208,7 @@ class Document(MediaBase): if self.file: self.mime_type = mimetypes.guess_type(self.file.path)[0] - def __unicode__(self): + def __str__(self): if self.title and not re.match('^ *N *$', self.title): return self.title else: @@ -228,11 +223,20 @@ class Media(MediaBase): element_type = 'media' - conference = ForeignKey('Conference', related_name='media', verbose_name=_('conference')) + course = ForeignKey('Course', related_name='media', verbose_name='course') + conference = ForeignKey('Conference', related_name='media', verbose_name=_('conference'), + blank=True, null=True) item = ForeignKey(telemeta.models.media.MediaItem, related_name='media', verbose_name='item', blank=True, null=True) is_live = BooleanField(_('is live')) + def __unicode__(self): + description = self.conference.description + if self.item: + return description + ' _ ' + self.item.title + else: + return description + class Meta: db_table = app_label + '_' + 'media' @@ -297,13 +301,13 @@ class Student(Model): category = ForeignKey('Category', related_name='student', verbose_name=_('category')) iej = ForeignKey('IEJ', related_name='student', verbose_name=_('iej')) training = ForeignKey('Training', related_name='student', - verbose_name='training', blank=True, null=True) + verbose_name=_('training'), blank=True, null=True) procedure = ForeignKey('Procedure', related_name='student', - verbose_name='procedure', blank=True, null=True) + verbose_name=_('procedure'), blank=True, null=True) oral_speciality = ForeignKey('Speciality', related_name='student_oral_spe', - verbose_name='oral speciality', blank=True, null=True) + verbose_name=_('oral speciality'), blank=True, null=True) written_speciality = ForeignKey('Speciality', related_name='student_written_spe', - verbose_name='written speciality', blank=True, null=True) + verbose_name=_('written speciality'), blank=True, null=True) oral_1 = CharField(_('oral 1'), max_length=255, blank=True) oral_2 = CharField(_('oral 2'), max_length=255, blank=True) diff --git a/teleforma/templates/teleforma/base.html b/teleforma/templates/teleforma/base.html index 6e2b685b..79b471b4 100644 --- a/teleforma/templates/teleforma/base.html +++ b/teleforma/templates/teleforma/base.html @@ -1,18 +1,2 @@ {% extends "telemeta/base.html" %} {% load i18n %} - -{% block extra_stylesheets %} - -{% endblock %} - -{% block logo %} -TeleForma -{% endblock %} - -{% block archives %} -

  • {% trans "Courses" %}
  • -{% endblock %} - -{% block geonav %} -
  • {% trans "Messages" %}
  • -{% endblock %} diff --git a/teleforma/templates/teleforma/course.html b/teleforma/templates/teleforma/course.html new file mode 100644 index 00000000..cca13540 --- /dev/null +++ b/teleforma/templates/teleforma/course.html @@ -0,0 +1,66 @@ +{% extends "teleforma/courses.html" %} +{% load i18n %} + + +{% block courses %} + + + + + + + +
    {{ course.title }}{% if course.description %} - {{ course.description }}{% endif %}
    + +

    {% trans "Documents"%}

    + + + + + + +{% for document in course.document.all %} + + + + + +{% endfor %} +
    {% trans "Title" %}{% trans "Description" %}{% trans "Date added" %}
    {{ document.title }}{{ document.description }}{{ document.date_added }}
    + +

    {% trans "Medias"%}

    + + + + + + +{% for media in course.media.all %} + + + + + +{% endfor %} +
    {% trans "Title" %}{% trans "Description" %}{% trans "Date added" %}
    {{ media.item.title }}{{ media.item.description }}{{ media.date_added }}
    + + +

    {% trans "Conferences"%}

    + + + + + + +{% for conference in course.conference.all %} + + + + + + +
    {% trans "Session" %}{% trans "Professor" %}{% trans "Date added" %}
    {{ conference.session }}{{ conference.professor.user.first_name }} {{ conference.professor.user.last_name }}{{ conference.date_begin }}
    + +{% endfor %} + +{% endblock courses %} diff --git a/teleforma/templates/teleforma/course_detail.html b/teleforma/templates/teleforma/course_detail.html new file mode 100644 index 00000000..472a9889 --- /dev/null +++ b/teleforma/templates/teleforma/course_detail.html @@ -0,0 +1,74 @@ +{% extends "teleforma/courses.html" %} +{% load i18n %} + +{% block courses %} +
    + +
    +{% endblock courses %} + +{% block course %} + + + + + + +
    {{ course.title }}{% if course.description %} - {{ course.description }}{% endif %}
    + +

    {% trans "Documents"%}

    + + + + + + + {% for document in course.document.all %} + + + + + + {% endfor %} +
    {% trans "Title" %}{% trans "Description" %}{% trans "Date added" %}
    {{ document.title }}{{ document.description }}{{ document.date_added }}
    + +

    {% trans "Medias"%}

    + + + + + + + {% for media in course.media.all %} + + + + + + {% endfor %} +
    {% trans "Title" %}{% trans "Description" %}{% trans "Date added" %}
    {{ media.item.title }}{{ media.item.description }}{{ media.date_added }}
    + + +

    {% trans "Conferences"%}

    + + + + + + + {% for conference in course.conference.all %} + + + + + + {% endfor %} +
    {% trans "Session" %}{% trans "Professor" %}{% trans "Date added" %}
    {{ conference.session }}{{ conference.professor.user.first_name }} {{ conference.professor.user.last_name }}{{ conference.date_begin }}
    + + + +{% endblock course %} diff --git a/teleforma/templates/teleforma/courses.html b/teleforma/templates/teleforma/courses.html new file mode 100644 index 00000000..bfa50c23 --- /dev/null +++ b/teleforma/templates/teleforma/courses.html @@ -0,0 +1,108 @@ +{% extends "telemeta/base.html" %} +{% load i18n %} + +{% block extra_stylesheets %} +{% endblock %} + + +{% block content %} +
    + {% block module_searches %} + {% with searches as searches and "My searches" as title %} + {% include "telemeta/inc/module_searches.html" %} + {% endwith %} + {% endblock %} + + {% block module_all_revisions %} + {% with revisions as revisions and "All last changes" as title %} + {% include "telemeta/inc/module_revisions.html" %} + {% endwith %} + {% endblock %} +
    + +
    +

    playlists {% trans "My courses" %}

    + +
    + {% block courses %} +
    + + {% endblock courses %} +
    + +
    + {% block course %} + {% for course in object_list %} + + + + + + +
    {{ course.title }}{% if course.description %} - {{ course.description }}{% endif %}
    + +

    {% trans "Documents"%}

    + + + + + + + {% for document in course.document.all %} + + + + + + {% endfor %} +
    {% trans "Title" %}{% trans "Description" %}{% trans "Date added" %}
    {{ document.title }}{{ document.description }}{{ document.date_added }}
    + +

    {% trans "Medias"%}

    + + + + + + + {% for media in course.media.all %} + + + + + + {% endfor %} +
    {% trans "Title" %}{% trans "Description" %}{% trans "Date added" %}
    {{ media.item.title }}{{ media.item.description }}{{ media.date_added }}
    + + +

    {% trans "Conferences"%}

    + + + + + + + {% for conference in course.conference.all %} + + + + + + {% endfor %} +
    {% trans "Session" %}{% trans "Professor" %}{% trans "Date added" %}
    {{ conference.session }}{{ conference.professor.user.first_name }} {{ conference.professor.user.last_name }}{{ conference.date_begin }}
    + + {% endfor %} + {% endblock course %} + +
    + +
    + + +
    +{% endblock %} + + diff --git a/teleforma/templates/telemeta/base.html b/teleforma/templates/telemeta/base.html new file mode 100644 index 00000000..a19323a5 --- /dev/null +++ b/teleforma/templates/telemeta/base.html @@ -0,0 +1,186 @@ + +{% load i18n %} +{% load telemeta_utils %} +{% get_current_language as LANGUAGE_CODE %} +{% get_available_languages as LANGUAGES %} + + + + +{%block head_title %}{% description %} - Telemeta{% endblock %} + +{% block stylesheets %} + + + + +{% endblock %} + +{% block extra_stylesheets %}{% endblock %} + +{% block javascript %} + + + + + +{% if user.is_authenticated %} + +{% else %} + +{% endif %} +{% endblock %} + +{% block extra_javascript %}{% endblock %} + + + +{% block layout %} +
    +{% block header %} + +{% endblock header %} + +{% block postman_menu %} +{% endblock postman_menu %} + +
    + + + +

    {% block title %}{% endblock %}

    {% block title_buttons %}{% endblock %}
    +{% block content %}{% endblock %} +
    +{% block delete %}{% endblock %} +
    + +{% block body %} +{% endblock body %} + +{% block footer %} + +{% endblock %} +
    +{% endblock layout %} + +{% block analytics %} +{% endblock analytics %} + + + diff --git a/teleforma/urls.py b/teleforma/urls.py index e7193916..ea2afc96 100644 --- a/teleforma/urls.py +++ b/teleforma/urls.py @@ -34,7 +34,8 @@ import os.path from django.conf.urls.defaults import * -from django.views.generic.simple import redirect_to, direct_to_template +from django.views.generic import * +from django.views.generic.base import * from teleforma.models import * from teleforma.views import * from jsonrpc import jsonrpc_site @@ -42,7 +43,12 @@ from jsonrpc import jsonrpc_site htdocs = os.path.dirname(__file__) + '/htdocs' urlpatterns = patterns('', - url(r'^$', direct_to_template, {'template': 'teleforma/base.html'}, name="teleforma-home"), + + url(r'^desk/courses/$', ListView.as_view(model=Course, template_name='teleforma/courses.html'), name="teleforma-courses"), + + url(r'^desk/courses/(?P.*)$', CourseView.as_view(), name="teleforma-course-detail"), + + url(r'^messages/$', ListView.as_view(model=Course, template_name='teleforma/courses.html'), name="teleforma-messages"), # CSS+Images (FIXME: for developement only) url(r'^css/(?P.*)$', 'django.views.static.serve', diff --git a/teleforma/views.py b/teleforma/views.py index 60f00ef0..d75a9e6a 100755 --- a/teleforma/views.py +++ b/teleforma/views.py @@ -1 +1,44 @@ # Create your views here. + +from jsonrpc import jsonrpc_method + +from django.utils.decorators import method_decorator +from django.contrib.auth import authenticate, login +from django.template import RequestContext, loader +from django import template +from django.http import HttpResponse, HttpResponseRedirect +from django.http import Http404 +from django.shortcuts import render_to_response, redirect, get_object_or_404 +from django.views.generic import list_detail +from django.views.generic import DetailView +from django.views.generic.base import * +from django.conf import settings +from django.contrib import auth +from django.contrib import messages +from django.contrib.auth.decorators import login_required, permission_required +from django.core.context_processors import csrf +from django.forms.models import modelformset_factory, inlineformset_factory +from django.contrib.auth.models import User +from django.utils.translation import ugettext +from django.contrib.auth.forms import UserChangeForm +from django.core.exceptions import ObjectDoesNotExist +from django.contrib.syndication.views import Feed + +from teleforma.models import * + + +def render(request, template, data = None, mimetype = None): + return render_to_response(template, data, context_instance=RequestContext(request), + mimetype=mimetype) + + +class CourseView(DetailView): + + model = Course + + def get_context_data(self, **kwargs): + context = super(CourseView, self).get_context_data(**kwargs) + context['courses'] = Course.objects.all() + return context + + -- 2.39.5