From 475c84d300c47c0121cdbdebc0a503d918720dc8 Mon Sep 17 00:00:00 2001
From: Olivier Bado-Faustin
Date: Tue, 21 May 2024 11:01:21 +0200
Subject: [PATCH] [DONE] Correct archive packing (#1133)
* Do not truncate chars in dublincore metadata, to avoid an html entity being truncated an thus preventing xml to be parsed.
+ now ignored video are printed in create_archive_package
* Add i18n lang files
---
pod/locale/fr/LC_MESSAGES/django.mo | Bin 204400 -> 204405 bytes
pod/locale/fr/LC_MESSAGES/django.po | 34 +++++++++-----
pod/locale/nl/LC_MESSAGES/django.po | 23 +++++----
.../commands/create_archive_package.py | 44 ++++++++++++------
pod/video/templates/videos/dublincore.html | 2 +-
setup.cfg | 2 +-
6 files changed, 69 insertions(+), 36 deletions(-)
diff --git a/pod/locale/fr/LC_MESSAGES/django.mo b/pod/locale/fr/LC_MESSAGES/django.mo
index 85e39cc711948a1eee183ebb69fb2b462c1063d9..6f2d2a17beea88fca62561dd9a0b3a886bc72fa7 100644
GIT binary patch
delta 25071
zcmXZkcfgJ1|G@Ec&SMK%6_JPRy~%v+Eqf=UvO;BtPQDUZ6^Rm(Xd#L+LQ|qIl~P8c
zQbv9mY5V%U-{-pjdR^Cj?)#db&vl>YdD4YRs9
zm>=_Et;kmB=e?u)P|QR9LCl7;@fKW&b?^-=f@jfovQ~)4@?jy&i50On)~ygv#xheF
z%>^4Ahc-9^?QlNY&@yyj+b|uEp$%V+%u_KQD@eU~WF5>(y#xAOcf1iNU@m+-sxPaU
zjK>OaVKWyp;a+qA2O_`0>#3haJG_JrG*hKu0nARlBs#;&QN0N^rQQxRa6VSS12_t=
z;T#;5tQ-n|<7_TGS|uK*;I~;UZ6PLRVEI@w7JG?;Oa28G#VqxrnV|z}h%Q|p
zY=`$p*LR>xe*_&!j{5OfcdUy8a6Xp9UvUr?Y7k;%3K}zyV-fm~JwqW2zJ)n(2O5NX
z&?Wvns-H#gyNm|m-)J=FXc!v4361&+Xt35mgSSOw547DOXt3UgNz-CF1%qcP+QG+|
zANQjjeUAn4Qgl6Aqj;<|^&)7#H^V|W86Ci)$Ytott&V&LeePgX|GN?S?*n-ohx99i
z4&)ZJ($W}Z;cLMKr*^v
zI@-Vzbnjk9_jVf^6MLf1526G80n6ZdG;IqujmPR^2KxLI^!fSdiadu7Xgiw!d(n22
zXDPUJSE3v8HVb>0jxKRoEQQsg>pjsexf7e$DoYXTl4>P|$vJ|?q^)MY<
zAuF1U4W;1BC!xh
z;cfUjn$~CVdhG@@p}4?HK5?jrvnzoF6h#aL>nHD?&WlJCQqU>eg@r&td&wU*E
z8QSh)bY+jD?OZ~GHrAT_w}ZkIyrB$wLw)pm8}!B=Xh-*Xjp|#`
z_70#c_X9eyE9eSe-zJ<3<=T+{?qvoS+`GHb8^)n&G9TTmHRwCy19TwYpab|0E8%%G
z3vO;3g0dynqCN{<>YeD@b3Zz;TfNy!
zF2%<9T~sgDAq;ddHsJbX^vvIa{qcKz8Jlzrv2zw3@b$L`8zm{2xA&qmcp1&>gZLc&
zgVk_Jr_j+}bSb|__xdWjC0RPNWpT~{%!MVoguSoYHJqrmuq^itMEjYIZgFxm1v_{j
z-OJyw7v|^|f^9I`!3cEeA4JcKX=t=BL$`1P8k}FE4Ie{SlibSulDM{#vDog1Mm)c20)`+t%P&TvNLJah#Xq3QM_mc$>i6=v@rf~+$d3;iSS
zLOUFe#?lycf)AlvxB*@IJy-^h_b2~7aI)MPkIlkjX!O2}F45+weh_Wo1m?v*(V)yR
zARZfxMbYci(2f^kXm~U7ZU{@?_{@+I-4`=o>
zSdRKD!$ZRd(E}vYh!CW8(V2Bd2RsUWtId!6FB;X?-5ZYZnpm3pJT!YYVMjcSu1MLD
zz+eH~Dk5@SL?HO3^v%x>p`BOHzf+Y{)Sz8%ZrY4jzPcWgX123w**yA7A)E;I}J
zj|;JL7kZA2N27f@IXN0eoJI1=li^}firrPy3-Mg6M@;bl{FVmNAh
zU?;Axz&r2)x^*2Vh2Ianf^Nw%G@JfGvth=A@z@8r5i4VI+~kmEFXF9SIEwE5H8jc#
zPYDgxM1!jXWf09>o1vcv?I*56|FaobaD8fXnFC)tMfT-HmslF|!vR!OV}u
zV`FhPjxqnQQE)HD%m_j8EP8~#g`QX+qQQ3nJpsRo>L<{n^$fcA#U2fNTnepML66*8
z=t?y~2hbbc;^Wwy{$qJ&hA8cZ8PuPS>R)41>V;;7&--CJ>dP@Zv2hk#Q2*_*cx)!t
zn;m}h@jiM0O`H?9axR+2FQM1p#q04)Oj?%m$P;tPf0z12F8mkYK%?~Gd7n6&+Zn$Ai~J7Qi&F7eTi?{c(cLJZ{B>V%Q$-;9fKf7NawG
zBXSF-exN`b+K;{^zrad(2J7IBPlVU(?PxGRfDUXfx9C~@
zu$=kdltKwUxEE{S43&ezv%kC
zX#0~ezxh8my5V^*P~U()_#ry;gO~%qMfdVF+VTI;`wA`z9hAg$>NU~(yQ32ufW8Z+
zqxZjn#>z%a{rta+f=l>msG-=nchbYVCez2l-Ar=d%_0Bz_+w4?o462C>$E3q_mPz25UThaG@
zg~;L2^;aS{qFc0eDf!=o!fq}&qHNEF;K`2$Wf3$6ilZl588m$wpexc0-J-787w&8XgzcVlTTA{X}6|UD(e=qu
zeHwZa&O#?LH@f~5K16*fdR`QMAq>0~PN6;xr~3Z?AB9R>n6fH-k$4sPAa)o(!=5jO
z_k7vaVW4kCp1{(4o?}gzVKwYdeHpgJ%jgUny%bhrF#3*o0gbWa*unfiOTm+^?#m%f
z`k`MsC!+_=5=_SfXgXa$qdfmB;r<#}oO&0mjAOAOu0q>AiJlvoUkxjpj#a6*!&~S-
zHibeuF2$nw4myA%Xh(lU*Kd3+T(5=BtP6Vo1T?=Fp&e~PpFa?N{tFt6Io5{jrP1e_
zVX`iTffO9+v)CASMmPKq9YB$Fp@9Zy$Gxx$PDMLhhu*gb?f7(L=JjF4N}yZS0-gE2
z=t?bHPyW02pK`$<`5QmPGOvfD_!sO(J$*ww)(^*FFZ=@SsKUnZ>$TQsR$N5esqjV^
zV6Vto=-IyoJr~ZQTU-83^52te;G5yXMBGCCbsUaEH-(N5Vl(PhH-{)6i|N#-U=Lh|
zo`k=l?Iqp{11yBjyf%6c+!0+Lj@~yjNx>yt9^J4N-K*W`%6yN`^!m5M*XT-U-am|<
zgh#Lgo%ArSXjp&9Jn4sPk9bkvZ
zq3BGfM?Q(33oFpHS`+yOI^&&aJNwXsY(F~iuaW+ev7ab7l0VTArfm!6L~qQGHe3R2
zpfcKF9rQ$O6kTr~*#TYJ9%z)0M33${Xg|-R{k(>m%>Oqj82ww&?{3GiHWt_(qPHE|
z(J1VKV=)tcj5hpfR6mJs!B6P@zem^qMLUeY6U>fIATMU3|JY5@2SvR=y%hR=y*xVe
zX6O>$j=meZpdHLYS7bg8!^P+p#&?7*&5zEwXk^*Q8t8x;VbTU#Qn10>(E)Ui?1Sa0
z--*t2c65COIKm?Z(leMp2j<?_Vc`Z+f*28O9AM5=$bTB@06B?wK&?B|n
z{_qaygPwqsup_QP2Y3YsVx0rwTzCdO(31aB@Sw@~Eadqp^uTxw4Z_t}3U^{T{1J_j
z+@Hr|53*AEkvDB@{uklCT3?2x?u!QZW$cM#z6$S%eb|orIc#kH*EtmSegfLzI=mNm
zktF$(Sv9U`t|uB`qujii(%$(!hbhV3U^YUkE^i5;drboUPPC?#gXs}h*em{
zA+|UgmUI7oscqHaftA==pLP
z)3L(098mNhYfqsB4o8=I9@fP-u@L@(Hk9RfXs87GPH2jraCf57KNTn9d~}7feiwe!
zDvbVIu>fsv4SGVpi%A>)nu0UC9Nm!n1X)16Ecz4Ca&%?BKv&`_+Htv);fQX9>C}5f
z^$F;Gk4D$uK)323I?+pLzXiW1|NWra_hA5?&<{qS*JomBT!Wru|HaDq4SJwt{UM}h
zL3GPXp);?825DRL{J0%G4|=1|{feG1SAR%`Z#-Fk3`^J&pW%a^=z|y0t@sCfV9isZ
zgE`oc`f~IobqsIBbLdj1{S*dtBf2%^(Dv$KeQb`!@!=!|8+rkI;R*CSxb5eV*JJQ8
z>Mx=VR6ZR}!n$a^5jvCBSPeU4W1Nmn@B{R|%xA)RkOvFI`9&qV63H=V!^o$h4LyT7
z@db2`*Q4+8Pq7>x#-^BdE;QH@hfrUHJYjjr$Rj$`#rjl
z`F!}`1~je8peI>nbZPrW^)cuYKaa-Brl|fI-bDRJOvkHeJGcB_h>=ogkk>+kx)U}s
z{~w`Xo_~Noun$d>FVGeE1sy<+U!(Lxqq`~E;VAU}nP||iLCBP1+=5?=yPMy1}CFYJ{^tzLYKnQ--5PR
zGO`xB6)iDo1KlY&lYVHhj6)BIBs$ZlBi~2U?Elboj9m`-oD+SnGJ3r(I-q7~`|Yqh
zc0pt7W%RyHm&yOu6n1f;4QBf-JlF-@t3Fr|$3@OTS7IgF;YPHh?P$XvpbZ~DCvXHk
zQ7>XKyzxqOKA;n6dxiWr4f=7xBXv0Xz)W<{)}b-*Ioi>$=wAPU9yED>50*q@qz;-z
zw@3CuV__gV@NwwCXJ8+EJQ)?vqQTPQkC6Xku>tkKo7l=L$B$YJZ2H5AMSb)RWsOw4#vxpD@GD=#ux29F4W8&p_X9+p#Qu
zh70j8bcN>q8-nsR^t{-M?eS|g21;HHu~GqDsg79O_y0W<-0NBBlCMJd@MCl!U!Z$?
z8r`$s&83FbkcD~NVb1daN#=s@bC2U8n#g*&Dt
z!tej@;DR$7fzDtCI-uofu)K-RXkS$S86ChiwB!7l5~=SAh0uCNWJ`3w?a_97per{T
zQ|)I;CQ>h%H@Q%r4^H46m@{+eco;UOJ}s)hhgGN_#@d)YOW4~CbOPhim3jgVvd!pu
zvJY$GMXZCRvnEpKP5)$6n2gS72^v&uqxvqi;e%)c=g}Z4kuAhb20EZS(G_|ejiJ}D
z9PY=8_$QXeQrW}Ow@0@q*_VRRI0VgtnP{{xK$mO4
zWxMfLESW12+lU2nCsIE@?8fTUo8(EvF5*};Xz#gR$-mJQ46=zh0G~idei03xt7yJw
z%^U73h^|Z}bbu|<`+A{UHwaUCj;_c;d>EIbM{u!xAxrvWcJu#k3f?#x?dU=D;F*PX
z@C4fM3z!P3sJ;)~n&arnc?CIAV}Ao*`$4j0^$
zWsz&p4qrzb{vh(d=n8y|c61(Hnd~=&85TjaB?DcVK9TpMK|2eb@H%u0cice!n=XgA
zP!<0|XH@>iuq7?ffptPptlsFrhN1(Xg3f3@+TohW9oU)rm(k~?ZwehZLJyvfn1+Ls
z6b!Z@Xnu}C8+sP&;zrECv*=P*D3nP3&9?)ZrVG(MeI8wj-DvC_MhAKl4aO_zmgX-U
z&Won#xsZH-f)A`fXZR9&9=wI=cnEFy4|ISzZVu^K4PDBnXh&VJ4&H+fXgS*Phu8wY
zM<-UcNFw!>uQ9eY|7THfj}M{)_!eFAU(gv|!LgVq8akYSX30!+TZ!dx52oWK
z^!fa^BvRiC($Sddi`8)g7Bl}}rC>1ZMT6@HbU=S$W=tyObA2z}3Dum$di1n#2LI?CY=8VT;=@k>PmDDTp
z>(p0qKi-X#DkowC@jD!VO{%2c5y{vK6wL2$@J{SdHIe%L-#Q#ey>PYg+I#|+Q9pna
zaAfsFtT`Q?!X4Dh*G#1Tlk3yygj&@KThswvnQmzQ-w`g2(g$dJ
zpQ9(_*XaGHu@wG+_EWT37(k^Y1&`cX=u&4yAM{0MHW+PiD0(uELeGae=vJ&o^M5Zo
z(BtTd`a60MRcIcLaWxpi7mjMOfkz=+RpdoncRGj>DttucI9w
zLAU7t(EQHaGLiay;1G0x2e2Fdh6ZDsR^j>xWQCHkCn%(X3?0Zj=w9tdx8hJ#{}!F$
zDYV0@QN2LxaDPQ~Mm5nG>4+7u7n)sa3Uq%n6-RRPn?HN`!12g;n?@Ymw^+b>2yU;xzjm~&1x(V~q
z7YSARhL_O>%;58L*c2=Fi_#X2`e(5Wu0qprAKr^UqZ8_O2l;Qu!zmaX51=!fg3jbW
zQT-`&3!aVY>(M>jgwEt+bOjHgvGGIn`NgQ7sehP2KJ@-Ik(>LI|91Q#7mW7(XanD2
zPdp#p*y7Ga>;dZCZ~}gem9X)EFwl|c%O;7Y;frYOe2iw-33My}K?k01U>Iw6SQwA4
z#By|k$;}iT@h9j^e!>j=6MNuocZZ|$2^>p(H?G3^_atIZ<9BF%{E%?O79JXY9oHMj
zaQ$s;ffa^@FC_P4Tk5YOL7R+Si9V=1JbX#KKXMm3gIpuR3@V^2(iYvKF?bg)!+Myw
zHw>U5y7W`9D=tSmid{m#P1hP3+U<^o%>OYI{9qnd$932pPoM`z?NMRrJ7Od1L!`(nNZpJS6h2Mx~yPqI8{~J>;5k`#QfX5>AXPJIbF)2)#Qu@v?5=-%d^5|*|x+HePSVExbmKZHL2G#aEE
z(39{JG>d*jS1_4tYFL3f=!0F+2S;FKoDsPx@&|MY^F0(Ax(#i35c>R7^!Y{TO1zG4
z=`Qpu*&%cS-(wB)KQ~*@gbV&C=8cb_L9-N{(JSalwGZ8r@6gwD)`!EnkPm&X8oK1I
z(dWCPuie4uRy~CV>2ufx*I?58|0}v-(zNh$n1*)v6nb>Nj7ICnXto?iJIwT-FvFYC
zXs>{-SQ~7O6Vd11LuY(2@)|nO3e!0^%>TL++@ro|!(-8F7ijU^`rcZp|h19dX?ZR=|-IrCsu+iK^>d*PJus`+BurF4b7moNj=sV*F
zG@Fv;=7-*BXmhyMfEl4
zQofEpcLmLs%+EwokH*riXzVmZ2R01zFyYa7(ELw6n@Ignp}H;&QT{&O!u8{55MIS%
zSnRp*d1EvU`=VQMFZ%f^EQKGS13!bNb7EPzUJM&iZ-K_jBbapW_ERv3vM*1>GO!zZ
zf-OR4cpOc$k}JZ1+M#JR65Y#*Xc|9?F6}(@;CcaF`nBj=aud3BThW#JbOrfu6dvY+
z`5%8im;=rK{OC-JMc1ohCF-|fa~y&mJZsUkJAkglZ|HyvtPBILkKTU=noTd@0Q_xb
zGW>AZ{e|#T?AvIE+c7VGiXNrMF&)pNOPqUEm~l;X;Pue~H%DjK37gmi0RaaVp)7Fy8Z^bw_Bt7el+dALOZ&E&OFP@
zp`AjQnR+@J1EtZ4R7MZB)|krw0TjA%VG=r!{o#YyDfDFgAG#tnUkPc{3|;EcXpl`t
zw_pZ7jPucs^1K?(`f}*!4bg$LM1!{@=JNgDn}S;~1l{vd=*S?>MT2O6
z?kPTO9AC-V)uSHP{Zfqbr#8_3$g%hG=%IMq}$EOr}$~ZbKsV&u=SXY3l!=
zX;orlI0sr_SL*Z8VEP_S!>n)c({P+0sjw#XF>i*i<1eH4pF}&XwJE%8x}(oe#rF8Z
zCi36HuUv5E4K{~ABn&|Z@-2GyXL>9AiKRB$;FIXNu@NiaVVsDW-wr3_Luiygi=L!g
z(1Y&lsGe_2I036|A^&Y?G8as*Rgs_IXzIU4^*gsFVhgCxz_xhPwlKiK=u*zcoAGlr
zHqJ-&Y}>=Tp(NhM^_o~6N1;de%4Brm8#J18z7t-X1+fG52hbDiU95}wc7&O=!>ZJW
zp-cKKny$Oh;5!|CUSwx@OLo9{T%U&q_szQ!u|1e9P9Y10vuGY)#9Wy5-H?1(#ehwHgM4%yKH&HG_!)=ZCFjb_2eXwY88bgZz)m`if>
zQW(aC3Fu5tqG^=#lSJ$uOvht56Sv`Ad&4iGitS6J{vVEu(E;81X$Z~-&{$Z2eQ-VA
zkJhJ&eQE-nZpbz{9bK@*@Nf+bmxDg%Tz%N5A
zJcGTcUqpko?N{M9Crhv&_5VZ9fp&)yseetk0?QB^Ilc~W!|LCV|291Tn?&m0dNw*7
z-eP%G;aAaNiN^MEw-HGPS=ALHJ1I
zHgsh!Bq?;G(ENDl=oz%*=h2tT8uVOv4byNl+R@hN^Rrlr`mbn|7yK?dA22KRVQ72z
zqcfg>wlfQzNOCR(Po&j&JAQ*URQ5z@s6V;_Q_z7-N3&!e+VR_HT74VUbDj*poT`Qu
zxjrg#DLSA%Xm)*u9OcQ_DGKgo=I_G?Wzd7D0Xo7i=+=xt_jW28l(W(2UX0w0#>#2T
zh1dTOR`3?|T)7pS;2_L{FJgQ1e-njfT!{Y|PNo)Ejrtn&;=_kC{$|BlBZ4h@SW<
zd=XiN4)k@r5%-`kwG+|xNasMKR;2Z%Y{6r!#9@JXg>GD;h03v
zfwSle)IJkl%gxY}axS*O?dXcc&xS3#HL^S!)YYPTdvu^(G3j29px~0OMDu<-8Z3L!
zr9X;xd>(zR{*As?Z#oyAtAn=F8C}|$=n5^y{P-%S<4$yd-=Q%O|AqW_uW$Gz%6D`C
zov}O)Kwpz{(1zYe2XrW^pGMz)|KhD!{Cqf|T0~AopWBSi_!D#jC!_1v&L_i2^8a6m
z;<8we8+xD}KZ&WR#Z=Uy=fEj+i!Pu8&i`vzp%Ul{R6#pxjAqvz=zUM1d%ptBo_$FQ
zHh2+p;=kAcvt0;Z7+Ro9nM4P&0KNZN?2N0?GyRXq*u@a_+0neujn2FPn#L8;_G+N%
zoNP(qAcan7LnSYT{H}zKxF;H1_h55ei>|~)^!_ZDgL$wO^_$Rv4nSjOXjC7Ejj2z?
z(YOP7NAT~ze@mqP;m~aC!w2yziPZo9w;xWW{t+4r&3+H*ISMONKY%v)KWvGO{s>Dw
z1D*L6^uC?w%ASv||Anr^HB2-Av-}xGoCEzJA1=p2SO&MC2geB+h(4#b8T3Tv=ozdr~q3?ioSQd|BMa+~bJYNm%xF0&8N73ltktr>i
z`rrpHIHFvcgEi5P`=Sj#igxrm+R#yS=`&{u9k)SWw-eAU+kF->)jSFS6g^>+Jmv$yP;_c|nFQE-r%bu1xCq_lSg1>V8N3@+UbEKt$
zH+Rmo*bM4(aSG~9r?59RvkwVn8JC|
zQvY#DUA#bjJkG`;*Qcd^zQ2U7%#gfkskGdJuF$(U2$QEN_-(aazOeK|(7lKVHi5_S?B;i!n^PX9D%J1q@|AhP1w);-%G)lO__pe
z;eVfvW2nzZ2bQ=YjQke#8&PTWh^>G*u|C>SE3}=vF@fXJm)ayW7#E`Ly&HK9Q~CcV
z1snPook_MEgEwFr^^%w!%c31rM;mH}o{)E!O4)RJhsi=yi*BVR?^d(*o4
zza#o!H+ohdK;LRVqa9s$Q|PEH+F%{D!)EB~v>h57BhmETh-OV%p|sRVSP_R&ua0*7
z96Hf8nEL*|iGtr?wxcKDm*`B6qBHyv?eKE+`9J7ZBnpSmv!W|?1Ezu!9cbO?dUG_J
zTBAqv6!hKjpTgw-L<)~{AwOojIowbL9Y_gu#O2TiYee2c0q%z7kV!AMLT{L?O;XZ
zdUSw0(Dpt=W8(n2qNmDIaOUUHC65$|VNXPNbJwe6o0=z~ax=CbGXhbU-58&i@B*
CswT4l
delta 25065
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
diff --git a/pod/locale/fr/LC_MESSAGES/django.po b/pod/locale/fr/LC_MESSAGES/django.po
index 2ca1dcd508..2d124975e0 100644
--- a/pod/locale/fr/LC_MESSAGES/django.po
+++ b/pod/locale/fr/LC_MESSAGES/django.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Pod\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-05-15 08:40+0200\n"
+"POT-Creation-Date: 2024-05-17 15:36+0000\n"
"PO-Revision-Date: \n"
"Last-Translator: obado \n"
"Language-Team: Pod Team cotech-esup-pod@esup-portail.org\n"
@@ -1238,7 +1238,6 @@ msgstr ""
#: pod/completion/models.py pod/enrichment/models.py pod/playlist/models.py
#: pod/recorder/models.py pod/video/models.py
#: pod/video/templates/channel/channel.html
-#: pod/video/templates/videos/video_breadcrumbs.html
#: pod/video/templates/videos/videos.html pod/video_encode_transcript/models.py
msgid "Video"
msgstr "Vidéo"
@@ -2078,6 +2077,7 @@ msgid "Ending credits"
msgstr "Générique de fin"
#: pod/dressing/models.py pod/video/apps.py pod/video/models.py
+#: pod/video/templates/videos/video_breadcrumbs.html
#: pod/video/templates/videos/videos.html
msgid "Videos"
msgstr "Vidéos"
@@ -8184,13 +8184,13 @@ msgstr ""
"l’adresse suivante : %(email_address)s
\n"
#: pod/video/management/commands/check_obsolete_videos.py
-msgid "Your video will be obsolete"
-msgstr "Votre vidéo sera obsolète"
+#, python-format
+msgid "Sending mail to %(to_email)s for video %(title)s."
+msgstr "Envoi d’un courriel à %(to_email)s pour la vidéo %(title)s."
#: pod/video/management/commands/check_obsolete_videos.py
-#, python-format
-msgid "Mail sent to %(to_email)s for video %(title)s."
-msgstr "Courriel envoyé à %(to_email)s pour la vidéo %(title)s."
+msgid "Your video will be obsolete"
+msgstr "Votre vidéo sera obsolète"
#: pod/video/management/commands/check_obsolete_videos.py
#, python-format
@@ -8262,10 +8262,11 @@ msgstr "Dans %(deadline)s jours :"
#: pod/video/management/commands/create_archive_package.py
#, python-format
msgid ""
-"Package archiving done. %(amount)s video packaged (%(weight)s - "
-"[%(duration)s])"
+"Package archiving done. %(amount)s video(s) packaged (%(weight)s - "
+"[%(duration)s]) - %(nb_ignored)s video(s) ignored."
msgstr ""
-"Archivage effectué. %(amount)s vidéos traitées (%(weight)s - [%(duration)s])"
+"Archivage effectué. %(amount)s vidéos traitées (%(weight)s - [%(duration)s]) "
+"- %(nb_ignored)s vidéo(s) ignorée(s)."
#: pod/video/management/commands/create_archive_package.py
#, python-format
@@ -8285,8 +8286,17 @@ msgstr ""
"code> sans l’option --dry
pour les supprimer de %s."
#: pod/video/management/commands/create_archive_package.py
-msgid "Packaging archived videos on Pod"
-msgstr "Déplacement des vidéos archivées sur Pod"
+msgid ""
+"And below is the list of ignored videos that were not packaged because they "
+"have been recently viewed."
+msgstr ""
+"Vous trouverez ci-dessous la liste des vidéos ignorées qui n'ont pas été "
+"regroupées parce qu'elles ont été visionnées récemment."
+
+#: pod/video/management/commands/create_archive_package.py
+#, python-format
+msgid "Packaging %s archived videos on Pod"
+msgstr "Déplacement de %s vidéos archivées sur Pod"
#: pod/video/models.py pod/video/views.py
msgid "None / All"
diff --git a/pod/locale/nl/LC_MESSAGES/django.po b/pod/locale/nl/LC_MESSAGES/django.po
index dace9d8a3b..d5641293be 100644
--- a/pod/locale/nl/LC_MESSAGES/django.po
+++ b/pod/locale/nl/LC_MESSAGES/django.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Pod\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-05-15 08:40+0200\n"
+"POT-Creation-Date: 2024-05-17 15:36+0000\n"
"PO-Revision-Date: 2024-05-15 09:01+0200\n"
"Last-Translator: obado \n"
"Language-Team: \n"
@@ -1173,7 +1173,6 @@ msgstr ""
#: pod/completion/models.py pod/enrichment/models.py pod/playlist/models.py
#: pod/recorder/models.py pod/video/models.py
#: pod/video/templates/channel/channel.html
-#: pod/video/templates/videos/video_breadcrumbs.html
#: pod/video/templates/videos/videos.html pod/video_encode_transcript/models.py
msgid "Video"
msgstr ""
@@ -1973,6 +1972,7 @@ msgid "Ending credits"
msgstr ""
#: pod/dressing/models.py pod/video/apps.py pod/video/models.py
+#: pod/video/templates/videos/video_breadcrumbs.html
#: pod/video/templates/videos/videos.html
msgid "Videos"
msgstr ""
@@ -7612,12 +7612,12 @@ msgid ""
msgstr ""
#: pod/video/management/commands/check_obsolete_videos.py
-msgid "Your video will be obsolete"
+#, python-format
+msgid "Sending mail to %(to_email)s for video %(title)s."
msgstr ""
#: pod/video/management/commands/check_obsolete_videos.py
-#, python-format
-msgid "Mail sent to %(to_email)s for video %(title)s."
+msgid "Your video will be obsolete"
msgstr ""
#: pod/video/management/commands/check_obsolete_videos.py
@@ -7680,8 +7680,8 @@ msgstr ""
#: pod/video/management/commands/create_archive_package.py
#, python-format
msgid ""
-"Package archiving done. %(amount)s video packaged (%(weight)s - "
-"[%(duration)s])"
+"Package archiving done. %(amount)s video(s) packaged (%(weight)s - "
+"[%(duration)s]) - %(nb_ignored)s video(s) ignored."
msgstr ""
#: pod/video/management/commands/create_archive_package.py
@@ -7699,7 +7699,14 @@ msgid ""
msgstr ""
#: pod/video/management/commands/create_archive_package.py
-msgid "Packaging archived videos on Pod"
+msgid ""
+"And below is the list of ignored videos that were not packaged because they "
+"have been recently viewed."
+msgstr ""
+
+#: pod/video/management/commands/create_archive_package.py
+#, python-format
+msgid "Packaging %s archived videos on Pod"
msgstr ""
#: pod/video/models.py pod/video/views.py
diff --git a/pod/video/management/commands/create_archive_package.py b/pod/video/management/commands/create_archive_package.py
index 789e4bda13..e830dd01a8 100644
--- a/pod/video/management/commands/create_archive_package.py
+++ b/pod/video/management/commands/create_archive_package.py
@@ -126,7 +126,7 @@ def export_complement(
"""Store a video complement as json."""
if len(export_objects) > 0:
export_file = os.path.join(folder, "%s.json" % export_type)
- print("Export %s %s." % (len(export_objects), export_type))
+ print(" * Export %s %s." % (len(export_objects), export_type))
if not self.dry_mode:
with open(export_file, "w") as out:
content = serialize("json", export_objects)
@@ -135,7 +135,7 @@ def export_complement(
def move_video_to_archive(self, mediaPackage_dir: str, vid: Video) -> None:
"""Move video source file to mediaPackage_dir."""
if os.access(vid.video.path, os.F_OK):
- print("Moving %s" % vid.video.path)
+ print(" * Moving %s" % vid.video.path)
if not self.dry_mode:
shutil.move(
vid.video.path,
@@ -146,7 +146,7 @@ def move_video_to_archive(self, mediaPackage_dir: str, vid: Video) -> None:
# Deletes the video object and the associated folder (encoding, logs, etc.)
# Remove thumbnails (x3)
else:
- print("ERROR: Cannot acces to file '%s'." % vid.video.path)
+ print("ERROR: Cannot access to file '%s'." % vid.video.path)
def archive_pack(self, video_dir: str, user_name: str, vid: Video) -> None:
"""Create a archive package for Video vid."""
@@ -178,24 +178,26 @@ def archive_pack(self, video_dir: str, user_name: str, vid: Video) -> None:
self.export_complement(
mediaPackage_dir, model.__name__, model.objects.filter(video=vid)
)
+ # Export also the video itself as json
+ self.export_complement(mediaPackage_dir, "Video", vid)
# Store also files linked to Enrichments
for enrich in Enrichment.objects.filter(video=vid):
if enrich.document:
- print("Copying %s..." % enrich.document.file.path)
+ print(" * Copying %s..." % enrich.document.file.path)
shutil.copy(enrich.document.file.path, mediaPackage_dir)
if enrich.image:
- print("Copying %s..." % enrich.image.file.path)
+ print(" * Copying %s..." % enrich.image.file.path)
shutil.copy(enrich.image.file.path, mediaPackage_dir)
# Store file complements.
for file in Document.objects.filter(video=vid):
- print("Copying %s..." % file.document.file.path)
+ print(" * Copying %s..." % file.document.file.path)
shutil.copy(file.document.file.path, mediaPackage_dir)
# Store additional tracks (caption / subtitles)
for track in Track.objects.filter(video=vid):
- print("Copying %s..." % track.src.file.path)
+ print(" * Copying %s..." % track.src.file.path)
shutil.copy(track.src.file.path, mediaPackage_dir)
# TODO:
@@ -219,6 +221,7 @@ def handle(self, *args, **options) -> None:
total_processed = 0
total_weight = 0
list_video = []
+ ignored_video = []
if options["dry"]:
self.dry_mode = True
@@ -245,9 +248,9 @@ def handle(self, *args, **options) -> None:
# Do not archive a video with recent views.
# (if video has been shared with a token, it can still be viewed)
print(
- "- Video %s ignored (%s recent views)"
- % (vid.slug, vid.recentViewcount)
+ " * IGNORED (%s recent views)" % vid.recentViewcount
)
+ ignored_video.append(str(vid))
continue
# Recover original video slug
@@ -263,23 +266,27 @@ def handle(self, *args, **options) -> None:
list_video.append(str(vid))
self.archive_pack(video_dir, csv_entry["User name"], vid)
else:
- print("Video %s not present in archived file" % vid.id)
+ print(" * Video %s not present in archived file" % vid.id)
print("---")
# Convert seconds in human readable time
total_duration = str(timedelta(seconds=total_duration))
total_msg = _(
- "Package archiving done. %(amount)s video packaged (%(weight)s - [%(duration)s])"
+ "Package archiving done. %(amount)s video(s) packaged (%(weight)s - [%(duration)s])"
+ " - %(nb_ignored)s video(s) ignored."
) % {
"amount": total_processed,
"weight": sizeof_fmt(total_weight),
"duration": total_duration,
+ "nb_ignored": len(ignored_video)
}
print(total_msg)
if total_processed > 0:
- self.inform_managers(list_video, total_msg)
+ self.inform_managers(list_video, ignored_video, total_msg, total_processed)
- def inform_managers(self, list_video: list, total_msg: str) -> None:
+ def inform_managers(
+ self, list_video: list, ignored_video: list, total_msg: str, total_processed: int
+ ) -> None:
"""Inform site managers of packaged archives."""
msg_html = [_("Hello manager(s) of %s,") % __TITLE_SITE__]
msg_html.append("
")
@@ -307,10 +314,19 @@ def inform_managers(self, list_video: list, total_msg: str) -> None:
msg_html.append("%s
" % msg)
msg_html.append(self.get_list_video_html(list_video))
+
+ msg = _(
+ "And below is the list of ignored videos that were not packaged "
+ "because they have been recently viewed."
+ )
+
+ msg_html.append("%s
" % msg)
+ msg_html.append(self.get_list_video_html(ignored_video))
+
msg_html.append("%s
" % total_msg)
msg_html.append("%s
" % _("Regards."))
msg_html = "\n".join(msg_html)
- subject = _("Packaging archived videos on Pod")
+ subject = _("Packaging %s archived videos on Pod") % total_processed
mail_managers(
subject,
striptags(msg_html),
diff --git a/pod/video/templates/videos/dublincore.html b/pod/video/templates/videos/dublincore.html
index 4fd7ad681c..0862e1c219 100644
--- a/pod/video/templates/videos/dublincore.html
+++ b/pod/video/templates/videos/dublincore.html
@@ -2,7 +2,7 @@
{% if xml == True %}{% endif %}
{% for key, value in video.get_dublin_core.items %}
{% if xml == True %}
- <{{key}}>{{value|metaformat|striptags|truncatechars:300}}{{key}}>
+ <{{key}}>{{value|metaformat|striptags}}{{key}}>
{% else %}
{% endif %}
diff --git a/setup.cfg b/setup.cfg
index 38cae469b7..f577baac41 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,5 +1,5 @@
[flake8]
-exclude = .git,pod/*/migrations/*.py,*_settings.py,node_modules/*/*.py,pod/static/*.py,pod/custom/tenants/*/*.py
+exclude = .git,pod/*/migrations/*.py,*_settings.py,node_modules/*/*.py,pod/static/*.py,pod/custom/tenants/*/*.py,./venv/*
max-complexity = 7
max-line-length = 90
# See https://black.readthedocs.io/en/stable/guides/using_black_with_other_tools.html#flake8