From 8b7a51bbb994ebf91964d7f205571e27e0d7532e Mon Sep 17 00:00:00 2001 From: Chris Adam Date: Tue, 11 Feb 2025 11:27:14 +0100 Subject: [PATCH 1/3] Added control panel option to choose page break type for publipostage --- .../documentgenerator/content/vocabulary.py | 15 +++++++++++++++ .../documentgenerator/content/vocabulary.zcml | 7 +++++++ 2 files changed, 22 insertions(+) diff --git a/src/collective/documentgenerator/content/vocabulary.py b/src/collective/documentgenerator/content/vocabulary.py index 2d3446ef..bf90b85c 100644 --- a/src/collective/documentgenerator/content/vocabulary.py +++ b/src/collective/documentgenerator/content/vocabulary.py @@ -23,6 +23,21 @@ from zope.schema.vocabulary import SimpleVocabulary +class PageBreakVocabularyFactory(object): + """ + Vocabulary factory for 'page_break_type' field. + """ + + def __call__(self, context): + vocabulary = SimpleVocabulary( + [ + SimpleTerm("simplex", "simplex", "simplex"), + SimpleTerm("duplex", "duplex", "duplex"), + ] + ) + return vocabulary + + class FormatsVocabularyFactory(object): """ Vocabulary factory for 'pod_formats' field. diff --git a/src/collective/documentgenerator/content/vocabulary.zcml b/src/collective/documentgenerator/content/vocabulary.zcml index 7e241044..09fa46ca 100644 --- a/src/collective/documentgenerator/content/vocabulary.zcml +++ b/src/collective/documentgenerator/content/vocabulary.zcml @@ -2,6 +2,13 @@ xmlns="http://namespaces.zope.org/zope" i18n_domain="collective.documentgenerator"> + + + Date: Tue, 11 Feb 2025 11:39:47 +0100 Subject: [PATCH 2/3] Added upgrade step to add new registry entry for page break type --- .../documentgenerator/content/vocabulary.py | 2 +- .../documentgenerator/content/vocabulary.zcml | 4 ++-- .../documentgenerator/profiles.zcml | 10 ++++++++++ .../profiles/demo/templates/mailing.odt | Bin 8990 -> 9959 bytes 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/collective/documentgenerator/content/vocabulary.py b/src/collective/documentgenerator/content/vocabulary.py index bf90b85c..a035dffb 100644 --- a/src/collective/documentgenerator/content/vocabulary.py +++ b/src/collective/documentgenerator/content/vocabulary.py @@ -23,7 +23,7 @@ from zope.schema.vocabulary import SimpleVocabulary -class PageBreakVocabularyFactory(object): +class PageBreakTypeVocabularyFactory(object): """ Vocabulary factory for 'page_break_type' field. """ diff --git a/src/collective/documentgenerator/content/vocabulary.zcml b/src/collective/documentgenerator/content/vocabulary.zcml index 09fa46ca..2748ca1c 100644 --- a/src/collective/documentgenerator/content/vocabulary.zcml +++ b/src/collective/documentgenerator/content/vocabulary.zcml @@ -4,8 +4,8 @@ diff --git a/src/collective/documentgenerator/profiles.zcml b/src/collective/documentgenerator/profiles.zcml index 22739827..9533c930 100644 --- a/src/collective/documentgenerator/profiles.zcml +++ b/src/collective/documentgenerator/profiles.zcml @@ -180,6 +180,16 @@ import_steps="plone.app.registry" /> + + + + diff --git a/src/collective/documentgenerator/profiles/demo/templates/mailing.odt b/src/collective/documentgenerator/profiles/demo/templates/mailing.odt index 0a766fc171a56b6743b672a0d60d44dedc120936..ec51f18e987e73e8eb634f6d29ccea838c20ceb7 100644 GIT binary patch delta 8342 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 T{(pg%D51yHFAyNqzeoQcQM4@I delta 7483 zcmaKRWmKHYvi9H-+`?eN-GaNjyE{R{;BJEiC)hwBFt`Ml-~^WdL4vy{xJz*P$liC~ z>~p@gZvE)4uBxu?e!Je)&#Ky1&XU1UQ-p)Z0|1Z#fKOUUiisHV7{B{Cef!8H0058# zfE2%C7Y5V=05AY#xMxZCL;vn`hoYvWCH?gD^vpiDfyeQx&zzLJl(?4n!eQ5InBSH; zzf?i!m^ly%au#Y4^oC~_KS;`Ro;3h@X%(qT3A2#D7e_`${%dha7di=8f6;M?2P@!M z7a3K9TCC3C@T+pUFKL|}T!C^3xo2=Yuue+;9fJlUD=r+1ln~^A9J<)&84LZZ{O(`yGN$yRkMvd1vTZ0qbi`@$Qcy zPr}vK91RmGrY{KGsH0-RK*pL_ZJcw|+8IXAdP~k!(nNb%x(s5gS%dY8bo+7-zlI&( z+hLjcdKH8PCGMFPKyEa6D_zUKEz{q48#nIMhO25+lZU zckOHoj63B&=}w0bRdAua?(^jU%GA<3cqo>SOZ)<2bdj{A8?7X;=ofidT(GS(pat%BM2R>; zW(lUFWGjKa+tu&jY}O>$RNE@0BOMH62x^Tmhr~;Bu1Sd6TJ(!)7>F{RQt?b)OobW^ zsp*lyLg^NzGLkk0)CyVg6@f`Lt@rux@#~w@aK5%_tZ;&3j@JsTPGsDXTe&m4A70lD zWc`$0Ig|ue0jXj9bm7QXbo8)TB&O2(gfSgwH6P(vGunp0r(;y^A$CKA#tNa1e3%L- z=-P>l=i?wh0rUO&C7Rid zWcaceqD?TlBnpNGRLv*Qy1AA3@}M@(Zxf6~Xi82?wFx&^s|%3`ga3w58m$8W!`*s=$Y9@k!1yUeOYJqr3Fha7 z6vl;7>iGiW*K;C5VIi$S+#=Z{rrETG@|{uJa?UYG2(!h>&Ivt~#cC_|_j+^7u?wnh zX;Wf%3mXPz?zl#lIlSdP!{{AluRVPW#S@Y6QxA+Ph6MES7$X7N#MbC}?%i zhLR1qgmVcqn)d3kcw@S2j$2pZRpP=rndi9w<5DaU8Ws(|8ZT7sA~BzohB*v}2ZN-S ztKqZ6Esm_lFbFYH2VqY^y;f>EJT3%1(wtZv&ElIO0&Wb$`z(BdG<%v`G303RLCq6Y z>6}Wz)-@vldLL7BRX5f<%gwOXXk%@&aJ(k)C{~KMuP__tOupywtB*s@LDZ{V-s&Y} zZad?EIM>Mc0~hFF8x<)k@uz0`D$(OuX{=nKRDirYL^asr2@@Vdnr4 zb97KwJy(UPrdhgHot9CSsmg&VQ~Z!wA8amOU$1CMn)dlp__AH z#MLSlt}2IF&2lb^-4&iHE)pU73n%oSFoVdP37zArC_&d(qNHFDZ2*Z?utor;KqQ$; zyj~iYA7R}Q&xi%+0o`CBEN`_2OXu9+Qn5NKZyL^5sTO7%@r89~&E^bROj3r?4&+EyF4^W&(VEWU%knp3_5Sh~HnYkG4m@CUd4HzT!* z);d9&6aGHcBvV9USRR9KB+X7Z*-s=d+c`hvZ&|NN`LRzPN_CI#+fy}d?N<7Y@$s{H zOO;sS6k2AU7JML$FfiBd`X$hZ<488*d#Lhrt0$)SX*%uDX)Gc%3#brPPQOsEgx*-h zU6kO-~>_N1t$bIztop!SVpeQUD`2 z>>at@^?N%H+Y66z)ZkZ0&~9bBr}og-m1uk0Hg-64&ObDbphG0tVWYJl3Z0n*O^5S& zyM$0bj9Xm@WM%gb4bT&&NgmZ8FVVY8B&5YyMT$ zg<`?#uP-sH9DK@4WqDvWfLpw)$p}h6vl$;wdseKm;`}c~pI)gcA|cy^w|Ful0RX(@0Kk8~tiRvfe+c!NadY=^uySMd z200uW7{)L15CpE8nit!y+8Tn}do6iYg3%2e7O7uw&2NW%pwA#yz?1uydVfonlqWTq zB%3*i7d9@WWR~>;v%_tjqGVPSs>vgOL&5O9L7XoOkt#`AsAxWr`2KiOb%)}5eWb(W zoH`eKzE_A*BZ+}}It-g1c3sJl*@YO7a?zQ&Wa$kbjca}$`gi%QcRV8CtFKB{vaz3Y zH^S#rb$*tIqrP1UXI??io@c+CsOkKa+nxTB{Z}8Zh}JbTP=PPnJKa*+PzMSe5pfC) z)wr?d;LlX~G3h_t7l>0iyC0RSgD8t{YJzOtv|%ejI1U+<=fj|j1taxF$XdBlwxaLTj#Orei|2awl z5xjtahU+b@t=8xwhF&9y*|#xE%J9J|O|J2=*on9@02E75gn#F(IpJop5t z8)Y%AxpglOI(lI8>qq#MO_OyyTRb&|w4pJ3`AmC0*%B$P(9WMXUm=cKFBrBxwL>_-bIIB`^Fu8Z8!o7H3LSB7!T+b>l* znsTu0Zx+g|&p7mw>E(Kg+a*xC-s~g=!uawHr2sAY7GHW}N=C86VINp1i1psz^`lbc znKg=MM-2?`32aM^#jYJ#=gq<{Ak$%~^bfUmFU|ibHpPh3AlgE95;e-mF|?5x6_y@R zGN{pm2OB_irroFQGDt?aZ0z zD%PU12F`mpCOZsl#nxS15T}=mwhO-)oRr@102ge93DxOkB`RE+t>Np-+>3qoA`xVD zcikBXZA0jeTsPXQ4m|3WJJEdWN@%xvVk6;NaGg~g+AcL_cRknp_>QMVR6?UquUFiO z!DZA^PaQZ>oMdbU=xk&z!9ACV%=Ly03kfq5rWS5*{Qryh5`{j)u!X5(~ z?TC?w&rN%~@c@Abk!S@$3T-mwcZd4S^!D(@@%_yU?Y>cuWme}xhR`%<8@^jrAHHnI zh==;L&g|~J9FbQc;z1gJ&r3ER8Ic?Q67bE>^8JyfK6~4*A5GT9b{=ysW;h=_`4oqxI~v@I-W15i$T`JHemDQnj!75f)l4=L|jF zB9oM(QE0qSL=V{(gweA}CvnDZy7}=`c0-LFUo(}Ec7xUB(BAF|#W4BWov)?c0>N>g zx2p)%r*^&o)lCQQz*o#XG3#NU8{u_3pJp{e2&kxJyA?cNM34npX&>q)Qa-#3$sN|= z+jrHCZV0}VH`17dgl;RT;CPJ$dx?d2&fDC6YgPos6i$HPDv+D0R{Oh=z~oO<+WHeek?WH=3K7xW9`lxQ;^1eS}#*62vC5t zll68f*!Bv)aF~X3m$qGZ_-abB)tA}T3T5$iu4G`zVOj4>G+6;olub)wPH-27)zP%_ zO;jDB?#_D)9Is&f<3jh@#X+v0-~|Iq!S5-7O`HX(%T^0ibzom z>b~2IKJ+5`4A?lADo)nqJDA8Ti^?Q4Y@=&<1_JEee$?s7!g-bpSn_6x?Ss*Ay+tUHUPhGFRK(4WCT(VW(vf7#T%{0 z{6&3~LUf2+zI^gF%bCdYWKF6A!K-Ep*o01PQ`d6eefspG#DQdPr}_u%#N3U|4d`Lb zzT@U&Iym?#OfL1)vOOmJzK!y^<%Z-Mx(QRM<(UAoqC~V+VSaiA$yB;yyV5O>U)TPo zgyKWNohA657yJxfkdWswK6r#aXC;Q&{x2}|YybdRxtsrnGVdX(@fqw`ea8=Ykw?>n za1_0iS%l%UkJBYx(XQU59Xnv%@{$9Uk2jecXMZ!$S63Y;iF-&(86?a z3R2&%s=!$7Ik)~3 zpWqVqZ0J2^RSrwi38Lt1gqE(L36w5(2;x*R=~VG^MX&Kd4Q8W7({ukzDrW#RJ;h5p zfUv>M5JW)TJcY)D{x+`hy$P`kQ)fIlZi`?TB-tFl@TxGZ!FLkyt=!%19Bux>x%CEyZVLiffubFhJ$?!jte`Y%Qu5qF znqZiP;oXetmt*2HzSR7k9bi$W`2vP6mih`h98=H2<%jm=>D${M0ywhYbGT%EGz9~^ zGz4LRW&@k|MVFun;YYPQ@4N5Zqt-$}){){k!Cd`BvAMDr*lnyHoNWP`ipdU?lSaHW zF=D*RW4(kwFYCAVKV_)s`&zLy8LdnaeC-|a4X8J0Gt6w0hRjD);h7GPjD#=>G0geZE6tmC|JKvg2X(^5daL5%~lE79!=_jQoSo z#tX{twRp1m%T3C47Oz&Sj{QGv8=}s^|5&(;o9}g(&4JE3s#fkhNt3WPU~>MDJi^5s zv8Yo}0fcX8EMy7dk&!+wWnIi}CfkJOfL9!(!KxKN>vf;Tx1 z0fjN4V-iYaT>x=!%})EVW8$09%+c2kEe|o-uQ0?VK^UAqY)ks3Jkf@hi+YZDURI6= z#zs(Myq6gf$zN{%Q9d~_HTWwKCjnBvGP%( z7SJ0I7&W8gZyiFTc5~z?n`3sBeAheY6r8A7nc#jIesR|~Q`;RBHV#CJVzj-_>ETD*u7tO*UT4OQDl`f7x1*fF-N_{>HUo z4(Eq8u_$p5d>KpjLC1y?<|Vpn9?33Py&Poo)QVEI$!NwGYuf8H zDNSdd)4FEtIShcSx{k!-J7pwlXanc=MCiRAhw>Z^;r3UsEz0^2DgMivQ7~myEEVlL zBwlTJWift25nVv(Jwe295DS+dJ>Ysqa`$Ux^^hPn&na@{QR z5C-b9hyl6t<-L#hT3>`a{K1}{F4{$yqqo=N1;;U##^3Hh*}4rCxpUeC{#i}CoOJGr zhJ|-?V6mN2S6Ou+xq-Dq+8LINaYmj&R9Es$nQlT-JLQK!47%;tI)i-UGkJ;uXRtIHg1{x4fMo#!_@QR?xVXUUwTB_%3k%{0=TMZm#Pj2<3al4Btm0 z;y1=Mx#^tb8llyjkLUfXKo8Y1?B>G=VJKNbKdm?i z?7de1t}`WnnvL&}9VmA6(G0jCBN=NwKSJkZ0Dn_R!BhYWyYSxWv4#4~aJ4|l1OZs71(UZ3=d5^Rf97~gnO+ieA_5p9!BlXY0r6-M)aHHm(BfAc)B{C_dEA!vdy ze~S*u>A+o%J>+QN#{toi`*?G{>1q%%#zT}AB(q-m#7-%*(#u2HyoOya5Bs_$2g}DN zNX?vs>L`IM^0;^T95L7mA?NaaSEWVvUHn-lXn*=E0~d=_(rnJa75mCWbYaj$nQflb zCb`1I#8uGy*+H13`*}9mPlldI)z-gC)9wu{bHT$`JwAJmkb0}C9kth|a&H&~ZDSdC zmn8eNRt@vquiFX|+SXuXjrq0U6l3%*{EM)f2xHH6NV9!d}p%b|7g^n@2>p*%Et)kQA zrWGQ=^5!sFWg7PXp!hzbD4?6qtIa698N1^#=$82Rwf#b(iXeGL7b1V53m8~Dz@Oq6 z#D$XM)qhsU006>&@@jwe%8;^G#E>{zH1gke|4zug_zydL7|0L}5d7Qd-$3_wZtf3x zKcm|}nL0JazjyP`wf`Fj{f5DRh!gt{DE{wR^ZyD)*0VBFH)w^`9`$c$TpeLk?jWAZyfUf9%4DpSOgY=>OusS3G&1&_)bFqha~$ wP<2>A{|NH*&|5!Y8{G^Z;S~|ouvftAG2UCBJ=>Px# From 4d85cef46c7937521ebc6858b55487b78db9cfb3 Mon Sep 17 00:00:00 2001 From: Chris Adam Date: Tue, 11 Feb 2025 11:51:03 +0100 Subject: [PATCH 3/3] Added control panel option to choose page break type for publipostage --- .../documentgenerator/browser/controlpanel.py | 12 +++++++++++- src/collective/documentgenerator/helper/dexterity.py | 7 +++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/collective/documentgenerator/browser/controlpanel.py b/src/collective/documentgenerator/browser/controlpanel.py index 0e75df1c..d1352c74 100644 --- a/src/collective/documentgenerator/browser/controlpanel.py +++ b/src/collective/documentgenerator/browser/controlpanel.py @@ -104,7 +104,17 @@ class IDocumentGeneratorControlPanelSchema(Interface): description=_(u'If enabled, this will automatically apply the default page style on the firstparagraph' u'of a POD template using the "mailing" attribute (if no page style was set).'), required=False, - default=False + default=False, + ) + + page_break_type = schema.Choice( + title=_(u"Page break type"), + description=_( + u"Type of page break to use in the document. 'duplex' for recto/verso printing, 'simplex' otherwise." + ), + vocabulary="collective.documentgenerator.PageBreakType", + required=True, + default="duplex", ) diff --git a/src/collective/documentgenerator/helper/dexterity.py b/src/collective/documentgenerator/helper/dexterity.py index 522310d9..5fd255b9 100644 --- a/src/collective/documentgenerator/helper/dexterity.py +++ b/src/collective/documentgenerator/helper/dexterity.py @@ -157,6 +157,13 @@ def get_relations(self, context=None, attribute=None, backrefs=False, as_obj=Fal context = self.real_context return ih_get_relations(context, attribute=attribute, backrefs=backrefs, as_obj=as_obj) + @property + def page_break_type(self): + registry = api.portal.get_tool(name="portal_registry") + return registry[ + "collective.documentgenerator.browser.controlpanel.IDocumentGeneratorControlPanelSchema.page_break_type" + ] + class DXDisplayProxyObject(DisplayProxyObject):