From fridolin.somers@biblibre.com Fri May 7 09:18:00 2021 From: Fridolin SOMERS To: koha-devel@lists.koha-community.org Subject: [Koha-devel] TT loop count VS size Date: Fri, 07 May 2021 09:17:58 +0200 Message-ID: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============5370462907744714774==" --===============5370462907744714774== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Hi community, I've been on a mindblowing search on a template error :D I was thinking that "loop.count" was wrong for testing if loop is not empty, the method is "loop.size". See doc http://template-toolkit.org/docs/manual/Directives.html#section_FOREACH Looks like we use both actually : > git grep 'IF.*\.count ' origin/master | wc -l 602 > git grep 'IF.*\.size ' origin/master | wc -l 1636 So using count seems to work because it starts with 1. But in my opinion it is a wrong call. We can see for example : Images ([% localimages.count || 0 | html %]) This is wrong no ? Should be create a coding guideline ? -- Fridolin SOMERS Software and system maintainer 🦄 BibLibre, France --===============5370462907744714774==-- From jonathan.druart@bugs.koha-community.org Fri May 7 09:57:45 2021 From: Jonathan Druart To: koha-devel@lists.koha-community.org Subject: Re: [Koha-devel] TT loop count VS size Date: Fri, 07 May 2021 09:57:31 +0200 Message-ID: In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0762029725334949509==" --===============0762029725334949509== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit You should grep "loop.count", not ".count" Most of the count you have with your regex is coming from koha_objects->count Le ven. 7 mai 2021 à 09:17, Fridolin SOMERS a écrit : > Hi community, > > I've been on a mindblowing search on a template error :D > > I was thinking that "loop.count" was wrong for testing if loop is not > empty, the method is "loop.size". > > See doc > http://template-toolkit.org/docs/manual/Directives.html#section_FOREACH > > Looks like we use both actually : > > git grep 'IF.*\.count ' origin/master | wc -l > 602 > > git grep 'IF.*\.size ' origin/master | wc -l > 1636 > > So using count seems to work because it starts with 1. > But in my opinion it is a wrong call. > > We can see for example : > Images ([% localimages.count || 0 | html %]) > This is wrong no ? > > Should be create a coding guideline ? > > -- > Fridolin SOMERS > Software and system maintainer 🦄 > BibLibre, France > _______________________________________________ > Koha-devel mailing list > Koha-devel@lists.koha-community.org > https://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-devel > website : https://www.koha-community.org/ > git : https://git.koha-community.org/ > bugs : https://bugs.koha-community.org/ > --===============0762029725334949509== Content-Type: text/html Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" MIME-Version: 1.0 PGRpdiBkaXI9Imx0ciI+PGRpdj5Zb3Ugc2hvdWxkIGdyZXAgJnF1b3Q7bG9vcC5jb3VudCZxdW90 Oywgbm90ICZxdW90Oy5jb3VudCZxdW90OzwvZGl2PjxkaXY+TW9zdCBvZiB0aGUgY291bnQgeW91 IGhhdmUgd2l0aCB5b3VyIHJlZ2V4IGlzIGNvbWluZyBmcm9tIGtvaGFfb2JqZWN0cy0mZ3Q7Y291 bnQ8YnI+PC9kaXY+PC9kaXY+PGJyPjxkaXYgY2xhc3M9ImdtYWlsX3F1b3RlIj48ZGl2IGRpcj0i bHRyIiBjbGFzcz0iZ21haWxfYXR0ciI+TGXCoHZlbi4gNyBtYWkgMjAyMSDDoMKgMDk6MTcsIEZy aWRvbGluIFNPTUVSUyAmbHQ7PGEgaHJlZj0ibWFpbHRvOmZyaWRvbGluLnNvbWVyc0BiaWJsaWJy ZS5jb20iPmZyaWRvbGluLnNvbWVyc0BiaWJsaWJyZS5jb208L2E+Jmd0OyBhIMOpY3JpdMKgOjxi cj48L2Rpdj48YmxvY2txdW90ZSBjbGFzcz0iZ21haWxfcXVvdGUiIHN0eWxlPSJtYXJnaW46MHB4 IDBweCAwcHggMC44ZXg7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkIHJnYigyMDQsMjA0LDIwNCk7cGFk ZGluZy1sZWZ0OjFleCI+SGkgY29tbXVuaXR5LDxicj4KPGJyPgpJJiMzOTt2ZSBiZWVuIG9uIGEg bWluZGJsb3dpbmcgc2VhcmNoIG9uIGEgdGVtcGxhdGUgZXJyb3IgOkQ8YnI+Cjxicj4KSSB3YXMg dGhpbmtpbmcgdGhhdCAmcXVvdDtsb29wLmNvdW50JnF1b3Q7IHdhcyB3cm9uZyBmb3IgdGVzdGlu ZyBpZiBsb29wIGlzIG5vdCA8YnI+CmVtcHR5LCB0aGUgbWV0aG9kIGlzICZxdW90O2xvb3Auc2l6 ZSZxdW90Oy48YnI+Cjxicj4KU2VlIGRvYyA8YnI+CjxhIGhyZWY9Imh0dHA6Ly90ZW1wbGF0ZS10 b29sa2l0Lm9yZy9kb2NzL21hbnVhbC9EaXJlY3RpdmVzLmh0bWwjc2VjdGlvbl9GT1JFQUNIIiBy ZWw9Im5vcmVmZXJyZXIiIHRhcmdldD0iX2JsYW5rIj5odHRwOi8vdGVtcGxhdGUtdG9vbGtpdC5v cmcvZG9jcy9tYW51YWwvRGlyZWN0aXZlcy5odG1sI3NlY3Rpb25fRk9SRUFDSDwvYT48YnI+Cjxi cj4KTG9va3MgbGlrZSB3ZSB1c2UgYm90aCBhY3R1YWxseSA6PGJyPgrCoCAmZ3Q7IGdpdCBncmVw ICYjMzk7SUYuKlwuY291bnQgJiMzOTsgb3JpZ2luL21hc3RlciB8IHdjIC1sPGJyPgo2MDI8YnI+ CsKgICZndDsgZ2l0IGdyZXAgJiMzOTtJRi4qXC5zaXplICYjMzk7IG9yaWdpbi9tYXN0ZXIgfCB3 YyAtbDxicj4KMTYzNjxicj4KPGJyPgpTbyB1c2luZyBjb3VudCBzZWVtcyB0byB3b3JrIGJlY2F1 c2UgaXQgc3RhcnRzIHdpdGggMS48YnI+CkJ1dCBpbiBteSBvcGluaW9uIGl0IGlzIGEgd3Jvbmcg Y2FsbC48YnI+Cjxicj4KV2UgY2FuIHNlZSBmb3IgZXhhbXBsZSA6PGJyPgrCoCAmbHQ7YSBocmVm PSZxdW90OyNpbWFnZXMmcXVvdDsmZ3Q7SW1hZ2VzIChbJSBsb2NhbGltYWdlcy5jb3VudCB8fCAw IHwgaHRtbCAlXSkmbHQ7L2EmZ3Q7PGJyPgpUaGlzIGlzIHdyb25nIG5vID88YnI+Cjxicj4KU2hv dWxkIGJlIGNyZWF0ZSBhIGNvZGluZyBndWlkZWxpbmUgPzxicj4KPGJyPgotLSA8YnI+CkZyaWRv bGluIFNPTUVSUyAmbHQ7PGEgaHJlZj0ibWFpbHRvOmZyaWRvbGluLnNvbWVyc0BiaWJsaWJyZS5j b20iIHRhcmdldD0iX2JsYW5rIj5mcmlkb2xpbi5zb21lcnNAYmlibGlicmUuY29tPC9hPiZndDs8 YnI+ClNvZnR3YXJlIGFuZCBzeXN0ZW0gbWFpbnRhaW5lciDwn6aEPGJyPgpCaWJMaWJyZSwgRnJh bmNlPGJyPgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXzxi cj4KS29oYS1kZXZlbCBtYWlsaW5nIGxpc3Q8YnI+CjxhIGhyZWY9Im1haWx0bzpLb2hhLWRldmVs QGxpc3RzLmtvaGEtY29tbXVuaXR5Lm9yZyIgdGFyZ2V0PSJfYmxhbmsiPktvaGEtZGV2ZWxAbGlz dHMua29oYS1jb21tdW5pdHkub3JnPC9hPjxicj4KPGEgaHJlZj0iaHR0cHM6Ly9saXN0cy5rb2hh LWNvbW11bml0eS5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL2tvaGEtZGV2ZWwiIHJlbD0i bm9yZWZlcnJlciIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vbGlzdHMua29oYS1jb21tdW5pdHku b3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9rb2hhLWRldmVsPC9hPjxicj4Kd2Vic2l0ZSA6 IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmtvaGEtY29tbXVuaXR5Lm9yZy8iIHJlbD0ibm9yZWZlcnJl ciIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vd3d3LmtvaGEtY29tbXVuaXR5Lm9yZy88L2E+PGJy PgpnaXQgOiA8YSBocmVmPSJodHRwczovL2dpdC5rb2hhLWNvbW11bml0eS5vcmcvIiByZWw9Im5v cmVmZXJyZXIiIHRhcmdldD0iX2JsYW5rIj5odHRwczovL2dpdC5rb2hhLWNvbW11bml0eS5vcmcv PC9hPjxicj4KYnVncyA6IDxhIGhyZWY9Imh0dHBzOi8vYnVncy5rb2hhLWNvbW11bml0eS5vcmcv IiByZWw9Im5vcmVmZXJyZXIiIHRhcmdldD0iX2JsYW5rIj5odHRwczovL2J1Z3Mua29oYS1jb21t dW5pdHkub3JnLzwvYT48YnI+CjwvYmxvY2txdW90ZT48L2Rpdj4K --===============0762029725334949509==-- From dcook@prosentient.com.au Mon May 10 01:50:29 2021 From: dcook@prosentient.com.au To: koha-devel@lists.koha-community.org Subject: Re: [Koha-devel] TT loop count VS size Date: Mon, 10 May 2021 09:50:22 +1000 Message-ID: <00a601d7452e$135c7ec0$3a157c40$@prosentient.com.au> In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============3982804676643668580==" --===============3982804676643668580== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable I was going to say=E2=80=A6 I=E2=80=99d never even heard of the =E2=80=9Ccoun= t=E2=80=9D call in TT. Looking at http://template-toolkit.org/docs/manual/VMe= thods.html, it=E2=80=99s not a method for a data structure. Looking at http:/= /template-toolkit.org/docs/manual/Directives.html#section_FOREACH, it=E2=80= =99s only a method of the =E2=80=9Cloop=E2=80=9D variable.=20 =20 grep -R "loop\.count" * | wc -l 86 =20 What=E2=80=99s the actual problem being observed? =20 David Cook Software Engineer Prosentient Systems Suite 7.03 6a Glen St Milsons Point NSW 2061 Australia =20 Office: 02 9212 0899 Online: 02 8005 0595 =20 From: Koha-devel On Behalf Of J= onathan Druart Sent: Friday, 7 May 2021 5:58 PM To: Fridolin SOMERS Cc: koha-devel Subject: Re: [Koha-devel] TT loop count VS size =20 You should grep "loop.count", not ".count" Most of the count you have with your regex is coming from koha_objects->count =20 Le ven. 7 mai 2021 =C3=A0 09:17, Fridolin SOMERS > a =C3=A9crit : Hi community, I've been on a mindblowing search on a template error :D I was thinking that "loop.count" was wrong for testing if loop is not=20 empty, the method is "loop.size". See doc=20 http://template-toolkit.org/docs/manual/Directives.html#section_FOREACH Looks like we use both actually : > git grep 'IF.*\.count ' origin/master | wc -l 602 > git grep 'IF.*\.size ' origin/master | wc -l 1636 So using count seems to work because it starts with 1. But in my opinion it is a wrong call. We can see for example : Images ([% localimages.count || 0 | html %]) This is wrong no ? Should be create a coding guideline ? --=20 Fridolin SOMERS > Software and system maintainer =F0=9F=A6=84 BibLibre, France _______________________________________________ Koha-devel mailing list Koha-devel@lists.koha-community.org =20 https://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-devel website : https://www.koha-community.org/ git : https://git.koha-community.org/ bugs : https://bugs.koha-community.org/ --===============3982804676643668580== Content-Type: text/html Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" MIME-Version: 1.0 PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv VFIvUkVDLWh0bWw0MCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj1Db250ZW50LVR5cGUgY29udGVu dD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij48bWV0YSBuYW1lPUdlbmVyYXRvciBjb250ZW50 PSJNaWNyb3NvZnQgV29yZCAxNSAoZmlsdGVyZWQgbWVkaXVtKSI+PHN0eWxlPjwhLS0KLyogRm9u dCBEZWZpbml0aW9ucyAqLwpAZm9udC1mYWNlCgl7Zm9udC1mYW1pbHk6IkNhbWJyaWEgTWF0aCI7 CglwYW5vc2UtMToyIDQgNSAzIDUgNCA2IDMgMiA0O30KQGZvbnQtZmFjZQoJe2ZvbnQtZmFtaWx5 OkRlbmdYaWFuOwoJcGFub3NlLTE6MiAxIDYgMCAzIDEgMSAxIDEgMTt9CkBmb250LWZhY2UKCXtm b250LWZhbWlseTpDYWxpYnJpOwoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAyIDQ7fQpAZm9u dC1mYWNlCgl7Zm9udC1mYW1pbHk6IlNlZ29lIFVJIEVtb2ppIjsKCXBhbm9zZS0xOjIgMTEgNSAy IDQgMiA0IDIgMiAzO30KQGZvbnQtZmFjZQoJe2ZvbnQtZmFtaWx5OiJcQERlbmdYaWFuIjsKCXBh bm9zZS0xOjIgMSA2IDAgMyAxIDEgMSAxIDE7fQovKiBTdHlsZSBEZWZpbml0aW9ucyAqLwpwLk1z b05vcm1hbCwgbGkuTXNvTm9ybWFsLCBkaXYuTXNvTm9ybWFsCgl7bWFyZ2luOjBjbTsKCWZvbnQt c2l6ZToxMS4wcHQ7Cglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjt9CmE6bGluaywg c3Bhbi5Nc29IeXBlcmxpbmsKCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7Cgljb2xvcjpibHVlOwoJ dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9CnNwYW4uRW1haWxTdHlsZTE4Cgl7bXNvLXN0eWxl LXR5cGU6cGVyc29uYWwtcmVwbHk7Cglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsK CWNvbG9yOndpbmRvd3RleHQ7fQouTXNvQ2hwRGVmYXVsdAoJe21zby1zdHlsZS10eXBlOmV4cG9y dC1vbmx5OwoJZm9udC1mYW1pbHk6IkNhbGlicmkiLHNhbnMtc2VyaWY7fQpAcGFnZSBXb3JkU2Vj dGlvbjEKCXtzaXplOjYxMi4wcHQgNzkyLjBwdDsKCW1hcmdpbjo3Mi4wcHQgNzIuMHB0IDcyLjBw dCA3Mi4wcHQ7fQpkaXYuV29yZFNlY3Rpb24xCgl7cGFnZTpXb3JkU2VjdGlvbjE7fQotLT48L3N0 eWxlPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPgo8bzpzaGFwZWRlZmF1bHRzIHY6ZXh0PSJlZGl0 IiBzcGlkbWF4PSIxMDI2IiAvPgo8L3htbD48IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBtc28gOV0+ PHhtbD4KPG86c2hhcGVsYXlvdXQgdjpleHQ9ImVkaXQiPgo8bzppZG1hcCB2OmV4dD0iZWRpdCIg ZGF0YT0iMSIgLz4KPC9vOnNoYXBlbGF5b3V0PjwveG1sPjwhW2VuZGlmXS0tPjwvaGVhZD48Ym9k eSBsYW5nPUVOLUFVIGxpbms9Ymx1ZSB2bGluaz1wdXJwbGUgc3R5bGU9J3dvcmQtd3JhcDpicmVh ay13b3JkJz48ZGl2IGNsYXNzPVdvcmRTZWN0aW9uMT48cCBjbGFzcz1Nc29Ob3JtYWw+SSB3YXMg Z29pbmcgdG8gc2F54oCmIEnigJlkIG5ldmVyIGV2ZW4gaGVhcmQgb2YgdGhlIOKAnGNvdW504oCd IGNhbGwgaW4gVFQuIExvb2tpbmcgYXQgPGEgaHJlZj0iaHR0cDovL3RlbXBsYXRlLXRvb2xraXQu b3JnL2RvY3MvbWFudWFsL1ZNZXRob2RzLmh0bWwiPmh0dHA6Ly90ZW1wbGF0ZS10b29sa2l0Lm9y Zy9kb2NzL21hbnVhbC9WTWV0aG9kcy5odG1sPC9hPiwgaXTigJlzIG5vdCBhIG1ldGhvZCBmb3Ig YSBkYXRhIHN0cnVjdHVyZS4gTG9va2luZyBhdCA8YSBocmVmPSJodHRwOi8vdGVtcGxhdGUtdG9v bGtpdC5vcmcvZG9jcy9tYW51YWwvRGlyZWN0aXZlcy5odG1sI3NlY3Rpb25fRk9SRUFDSCI+aHR0 cDovL3RlbXBsYXRlLXRvb2xraXQub3JnL2RvY3MvbWFudWFsL0RpcmVjdGl2ZXMuaHRtbCNzZWN0 aW9uX0ZPUkVBQ0g8L2E+LCBpdOKAmXMgb25seSBhIG1ldGhvZCBvZiB0aGUg4oCcbG9vcOKAnSB2 YXJpYWJsZS4gPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9v OnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5ncmVwIC1SICZxdW90O2xvb3BcLmNvdW50JnF1b3Q7 ICrCoMKgIHwgd2MgLWw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+ODY8bzpwPjwv bzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9 TXNvTm9ybWFsPldoYXTigJlzIHRoZSBhY3R1YWwgcHJvYmxlbSBiZWluZyBvYnNlcnZlZD88bzpw PjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xh c3M9TXNvTm9ybWFsPkRhdmlkIENvb2s8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+ U29mdHdhcmUgRW5naW5lZXI8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+UHJvc2Vu dGllbnQgU3lzdGVtczxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5TdWl0ZSA3LjAz PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjZhIEdsZW4gU3Q8bzpwPjwvbzpwPjwv cD48cCBjbGFzcz1Nc29Ob3JtYWw+TWlsc29ucyBQb2ludCBOU1cgMjA2MTxvOnA+PC9vOnA+PC9w PjxwIGNsYXNzPU1zb05vcm1hbD5BdXN0cmFsaWE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29O b3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPk9mZmljZTogMDIg OTIxMiAwODk5PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPk9ubGluZTogMDIgODAw NSAwNTk1PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+ PC9wPjxkaXYgc3R5bGU9J2JvcmRlcjpub25lO2JvcmRlci10b3A6c29saWQgI0UxRTFFMSAxLjBw dDtwYWRkaW5nOjMuMHB0IDBjbSAwY20gMGNtJz48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+PHNwYW4g bGFuZz1FTi1VUz5Gcm9tOjwvc3Bhbj48L2I+PHNwYW4gbGFuZz1FTi1VUz4gS29oYS1kZXZlbCAm bHQ7a29oYS1kZXZlbC1ib3VuY2VzQGxpc3RzLmtvaGEtY29tbXVuaXR5Lm9yZyZndDsgPGI+T24g QmVoYWxmIE9mIDwvYj5Kb25hdGhhbiBEcnVhcnQ8YnI+PGI+U2VudDo8L2I+IEZyaWRheSwgNyBN YXkgMjAyMSA1OjU4IFBNPGJyPjxiPlRvOjwvYj4gRnJpZG9saW4gU09NRVJTICZsdDtmcmlkb2xp bi5zb21lcnNAYmlibGlicmUuY29tJmd0Ozxicj48Yj5DYzo8L2I+IGtvaGEtZGV2ZWwgJmx0O2tv aGEtZGV2ZWxAbGlzdHMua29oYS1jb21tdW5pdHkub3JnJmd0Ozxicj48Yj5TdWJqZWN0OjwvYj4g UmU6IFtLb2hhLWRldmVsXSBUVCBsb29wIGNvdW50IFZTIHNpemU8bzpwPjwvbzpwPjwvc3Bhbj48 L3A+PC9kaXY+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxkaXY+PGRp dj48cCBjbGFzcz1Nc29Ob3JtYWw+WW91IHNob3VsZCBncmVwICZxdW90O2xvb3AuY291bnQmcXVv dDssIG5vdCAmcXVvdDsuY291bnQmcXVvdDs8bzpwPjwvbzpwPjwvcD48L2Rpdj48ZGl2PjxwIGNs YXNzPU1zb05vcm1hbD5Nb3N0IG9mIHRoZSBjb3VudCB5b3UgaGF2ZSB3aXRoIHlvdXIgcmVnZXgg aXMgY29taW5nIGZyb20ga29oYV9vYmplY3RzLSZndDtjb3VudDxvOnA+PC9vOnA+PC9wPjwvZGl2 PjwvZGl2PjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48ZGl2PjxkaXY+ PHAgY2xhc3M9TXNvTm9ybWFsPkxlJm5ic3A7dmVuLiA3IG1haSAyMDIxIMOgJm5ic3A7MDk6MTcs IEZyaWRvbGluIFNPTUVSUyAmbHQ7PGEgaHJlZj0ibWFpbHRvOmZyaWRvbGluLnNvbWVyc0BiaWJs aWJyZS5jb20iPmZyaWRvbGluLnNvbWVyc0BiaWJsaWJyZS5jb208L2E+Jmd0OyBhIMOpY3JpdCZu YnNwOzo8bzpwPjwvbzpwPjwvcD48L2Rpdj48YmxvY2txdW90ZSBzdHlsZT0nYm9yZGVyOm5vbmU7 Ym9yZGVyLWxlZnQ6c29saWQgI0NDQ0NDQyAxLjBwdDtwYWRkaW5nOjBjbSAwY20gMGNtIDYuMHB0 O21hcmdpbi1sZWZ0OjQuOHB0O21hcmdpbi1yaWdodDowY20nPjxwIGNsYXNzPU1zb05vcm1hbD5I aSBjb21tdW5pdHksPGJyPjxicj5JJ3ZlIGJlZW4gb24gYSBtaW5kYmxvd2luZyBzZWFyY2ggb24g YSB0ZW1wbGF0ZSBlcnJvciA6RDxicj48YnI+SSB3YXMgdGhpbmtpbmcgdGhhdCAmcXVvdDtsb29w LmNvdW50JnF1b3Q7IHdhcyB3cm9uZyBmb3IgdGVzdGluZyBpZiBsb29wIGlzIG5vdCA8YnI+ZW1w dHksIHRoZSBtZXRob2QgaXMgJnF1b3Q7bG9vcC5zaXplJnF1b3Q7Ljxicj48YnI+U2VlIGRvYyA8 YnI+PGEgaHJlZj0iaHR0cDovL3RlbXBsYXRlLXRvb2xraXQub3JnL2RvY3MvbWFudWFsL0RpcmVj dGl2ZXMuaHRtbCNzZWN0aW9uX0ZPUkVBQ0giIHRhcmdldD0iX2JsYW5rIj5odHRwOi8vdGVtcGxh dGUtdG9vbGtpdC5vcmcvZG9jcy9tYW51YWwvRGlyZWN0aXZlcy5odG1sI3NlY3Rpb25fRk9SRUFD SDwvYT48YnI+PGJyPkxvb2tzIGxpa2Ugd2UgdXNlIGJvdGggYWN0dWFsbHkgOjxicj4mbmJzcDsg Jmd0OyBnaXQgZ3JlcCAnSUYuKlwuY291bnQgJyBvcmlnaW4vbWFzdGVyIHwgd2MgLWw8YnI+NjAy PGJyPiZuYnNwOyAmZ3Q7IGdpdCBncmVwICdJRi4qXC5zaXplICcgb3JpZ2luL21hc3RlciB8IHdj IC1sPGJyPjE2MzY8YnI+PGJyPlNvIHVzaW5nIGNvdW50IHNlZW1zIHRvIHdvcmsgYmVjYXVzZSBp dCBzdGFydHMgd2l0aCAxLjxicj5CdXQgaW4gbXkgb3BpbmlvbiBpdCBpcyBhIHdyb25nIGNhbGwu PGJyPjxicj5XZSBjYW4gc2VlIGZvciBleGFtcGxlIDo8YnI+Jm5ic3A7ICZsdDthIGhyZWY9JnF1 b3Q7I2ltYWdlcyZxdW90OyZndDtJbWFnZXMgKFslIGxvY2FsaW1hZ2VzLmNvdW50IHx8IDAgfCBo dG1sICVdKSZsdDsvYSZndDs8YnI+VGhpcyBpcyB3cm9uZyBubyA/PGJyPjxicj5TaG91bGQgYmUg Y3JlYXRlIGEgY29kaW5nIGd1aWRlbGluZSA/PGJyPjxicj4tLSA8YnI+RnJpZG9saW4gU09NRVJT ICZsdDs8YSBocmVmPSJtYWlsdG86ZnJpZG9saW4uc29tZXJzQGJpYmxpYnJlLmNvbSIgdGFyZ2V0 PSJfYmxhbmsiPmZyaWRvbGluLnNvbWVyc0BiaWJsaWJyZS5jb208L2E+Jmd0Ozxicj5Tb2Z0d2Fy ZSBhbmQgc3lzdGVtIG1haW50YWluZXIgPHNwYW4gc3R5bGU9J2ZvbnQtZmFtaWx5OiJTZWdvZSBV SSBFbW9qaSIsc2Fucy1zZXJpZic+JiMxMjk0MTI7PC9zcGFuPjxicj5CaWJMaWJyZSwgRnJhbmNl PGJyPl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fPGJyPktv aGEtZGV2ZWwgbWFpbGluZyBsaXN0PGJyPjxhIGhyZWY9Im1haWx0bzpLb2hhLWRldmVsQGxpc3Rz LmtvaGEtY29tbXVuaXR5Lm9yZyIgdGFyZ2V0PSJfYmxhbmsiPktvaGEtZGV2ZWxAbGlzdHMua29o YS1jb21tdW5pdHkub3JnPC9hPjxicj48YSBocmVmPSJodHRwczovL2xpc3RzLmtvaGEtY29tbXVu aXR5Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8va29oYS1kZXZlbCIgdGFyZ2V0PSJfYmxh bmsiPmh0dHBzOi8vbGlzdHMua29oYS1jb21tdW5pdHkub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0 aW5mby9rb2hhLWRldmVsPC9hPjxicj53ZWJzaXRlIDogPGEgaHJlZj0iaHR0cHM6Ly93d3cua29o YS1jb21tdW5pdHkub3JnLyIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vd3d3LmtvaGEtY29tbXVu aXR5Lm9yZy88L2E+PGJyPmdpdCA6IDxhIGhyZWY9Imh0dHBzOi8vZ2l0LmtvaGEtY29tbXVuaXR5 Lm9yZy8iIHRhcmdldD0iX2JsYW5rIj5odHRwczovL2dpdC5rb2hhLWNvbW11bml0eS5vcmcvPC9h Pjxicj5idWdzIDogPGEgaHJlZj0iaHR0cHM6Ly9idWdzLmtvaGEtY29tbXVuaXR5Lm9yZy8iIHRh cmdldD0iX2JsYW5rIj5odHRwczovL2J1Z3Mua29oYS1jb21tdW5pdHkub3JnLzwvYT48bzpwPjwv bzpwPjwvcD48L2Jsb2NrcXVvdGU+PC9kaXY+PC9kaXY+PC9ib2R5PjwvaHRtbD4= --===============3982804676643668580==-- From tomascohen@gmail.com Mon May 10 03:14:17 2021 From: Tomas Cohen Arazi To: koha-devel@lists.koha-community.org Subject: Re: [Koha-devel] TT loop count VS size Date: Sun, 09 May 2021 22:14:06 -0300 Message-ID: In-Reply-To: <00a601d7452e$135c7ec0$3a157c40$@prosentient.com.au> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============8906777711343406377==" --===============8906777711343406377== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit That's because .count is a Koha::Objects method. El dom., 9 may. 2021 20:50, escribió: > I was going to say… I’d never even heard of the “count” call in TT. > Looking at http://template-toolkit.org/docs/manual/VMethods.html, it’s > not a method for a data structure. Looking at > http://template-toolkit.org/docs/manual/Directives.html#section_FOREACH, > it’s only a method of the “loop” variable. > > > > grep -R "loop\.count" * | wc -l > > 86 > > > > What’s the actual problem being observed? > > > > David Cook > > Software Engineer > > Prosentient Systems > > Suite 7.03 > > 6a Glen St > > Milsons Point NSW 2061 > > Australia > > > > Office: 02 9212 0899 > > Online: 02 8005 0595 > > > > *From:* Koha-devel *On > Behalf Of *Jonathan Druart > *Sent:* Friday, 7 May 2021 5:58 PM > *To:* Fridolin SOMERS > *Cc:* koha-devel > *Subject:* Re: [Koha-devel] TT loop count VS size > > > > You should grep "loop.count", not ".count" > > Most of the count you have with your regex is coming from > koha_objects->count > > > > Le ven. 7 mai 2021 à 09:17, Fridolin SOMERS > a écrit : > > Hi community, > > I've been on a mindblowing search on a template error :D > > I was thinking that "loop.count" was wrong for testing if loop is not > empty, the method is "loop.size". > > See doc > http://template-toolkit.org/docs/manual/Directives.html#section_FOREACH > > Looks like we use both actually : > > git grep 'IF.*\.count ' origin/master | wc -l > 602 > > git grep 'IF.*\.size ' origin/master | wc -l > 1636 > > So using count seems to work because it starts with 1. > But in my opinion it is a wrong call. > > We can see for example : > Images ([% localimages.count || 0 | html %]) > This is wrong no ? > > Should be create a coding guideline ? > > -- > Fridolin SOMERS > Software and system maintainer 🦄 > BibLibre, France > _______________________________________________ > Koha-devel mailing list > Koha-devel@lists.koha-community.org > https://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-devel > website : https://www.koha-community.org/ > git : https://git.koha-community.org/ > bugs : https://bugs.koha-community.org/ > > _______________________________________________ > Koha-devel mailing list > Koha-devel@lists.koha-community.org > https://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-devel > website : https://www.koha-community.org/ > git : https://git.koha-community.org/ > bugs : https://bugs.koha-community.org/ > --===============8906777711343406377== Content-Type: text/html Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" MIME-Version: 1.0 PGRpdiBkaXI9ImF1dG8iPlRoYXQmIzM5O3MgYmVjYXVzZSAuY291bnQgaXMgYSBLb2hhOjpPYmpl Y3RzIG1ldGhvZC48L2Rpdj48YnI+PGRpdiBjbGFzcz0iZ21haWxfcXVvdGUiPjxkaXYgZGlyPSJs dHIiIGNsYXNzPSJnbWFpbF9hdHRyIj5FbCBkb20uLCA5IG1heS4gMjAyMSAyMDo1MCwgICZsdDs8 YSBocmVmPSJtYWlsdG86ZGNvb2tAcHJvc2VudGllbnQuY29tLmF1Ij5kY29va0Bwcm9zZW50aWVu dC5jb20uYXU8L2E+Jmd0OyBlc2NyaWJpw7M6PGJyPjwvZGl2PjxibG9ja3F1b3RlIGNsYXNzPSJn bWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdpbjowIDAgMCAuOGV4O2JvcmRlci1sZWZ0OjFweCAjY2Nj IHNvbGlkO3BhZGRpbmctbGVmdDoxZXgiPjxkaXYgbGFuZz0iRU4tQVUiIGxpbms9ImJsdWUiIHZs aW5rPSJwdXJwbGUiIHN0eWxlPSJ3b3JkLXdyYXA6YnJlYWstd29yZCI+PGRpdiBjbGFzcz0ibV8t NzIyMTAwMzg3MjkyMDkwOTQwOVdvcmRTZWN0aW9uMSI+PHAgY2xhc3M9Ik1zb05vcm1hbCI+SSB3 YXMgZ29pbmcgdG8gc2F54oCmIEnigJlkIG5ldmVyIGV2ZW4gaGVhcmQgb2YgdGhlIOKAnGNvdW50 4oCdIGNhbGwgaW4gVFQuIExvb2tpbmcgYXQgPGEgaHJlZj0iaHR0cDovL3RlbXBsYXRlLXRvb2xr aXQub3JnL2RvY3MvbWFudWFsL1ZNZXRob2RzLmh0bWwiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5v cmVmZXJyZXIiPmh0dHA6Ly90ZW1wbGF0ZS10b29sa2l0Lm9yZy9kb2NzL21hbnVhbC9WTWV0aG9k cy5odG1sPC9hPiwgaXTigJlzIG5vdCBhIG1ldGhvZCBmb3IgYSBkYXRhIHN0cnVjdHVyZS4gTG9v a2luZyBhdCA8YSBocmVmPSJodHRwOi8vdGVtcGxhdGUtdG9vbGtpdC5vcmcvZG9jcy9tYW51YWwv RGlyZWN0aXZlcy5odG1sI3NlY3Rpb25fRk9SRUFDSCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9y ZWZlcnJlciI+aHR0cDovL3RlbXBsYXRlLXRvb2xraXQub3JnL2RvY3MvbWFudWFsL0RpcmVjdGl2 ZXMuaHRtbCNzZWN0aW9uX0ZPUkVBQ0g8L2E+LCBpdOKAmXMgb25seSBhIG1ldGhvZCBvZiB0aGUg 4oCcbG9vcOKAnSB2YXJpYWJsZS4gPHU+PC91Pjx1PjwvdT48L3A+PHAgY2xhc3M9Ik1zb05vcm1h bCI+PHU+PC91PsKgPHU+PC91PjwvcD48cCBjbGFzcz0iTXNvTm9ybWFsIj5ncmVwIC1SICZxdW90 O2xvb3BcLmNvdW50JnF1b3Q7ICrCoMKgIHwgd2MgLWw8dT48L3U+PHU+PC91PjwvcD48cCBjbGFz cz0iTXNvTm9ybWFsIj44Njx1PjwvdT48dT48L3U+PC9wPjxwIGNsYXNzPSJNc29Ob3JtYWwiPjx1 PjwvdT7CoDx1PjwvdT48L3A+PHAgY2xhc3M9Ik1zb05vcm1hbCI+V2hhdOKAmXMgdGhlIGFjdHVh bCBwcm9ibGVtIGJlaW5nIG9ic2VydmVkPzx1PjwvdT48dT48L3U+PC9wPjxwIGNsYXNzPSJNc29O b3JtYWwiPjx1PjwvdT7CoDx1PjwvdT48L3A+PHAgY2xhc3M9Ik1zb05vcm1hbCI+RGF2aWQgQ29v azx1PjwvdT48dT48L3U+PC9wPjxwIGNsYXNzPSJNc29Ob3JtYWwiPlNvZnR3YXJlIEVuZ2luZWVy PHU+PC91Pjx1PjwvdT48L3A+PHAgY2xhc3M9Ik1zb05vcm1hbCI+UHJvc2VudGllbnQgU3lzdGVt czx1PjwvdT48dT48L3U+PC9wPjxwIGNsYXNzPSJNc29Ob3JtYWwiPlN1aXRlIDcuMDM8dT48L3U+ PHU+PC91PjwvcD48cCBjbGFzcz0iTXNvTm9ybWFsIj42YSBHbGVuIFN0PHU+PC91Pjx1PjwvdT48 L3A+PHAgY2xhc3M9Ik1zb05vcm1hbCI+TWlsc29ucyBQb2ludCBOU1cgMjA2MTx1PjwvdT48dT48 L3U+PC9wPjxwIGNsYXNzPSJNc29Ob3JtYWwiPkF1c3RyYWxpYTx1PjwvdT48dT48L3U+PC9wPjxw IGNsYXNzPSJNc29Ob3JtYWwiPjx1PjwvdT7CoDx1PjwvdT48L3A+PHAgY2xhc3M9Ik1zb05vcm1h bCI+T2ZmaWNlOiAwMiA5MjEyIDA4OTk8dT48L3U+PHU+PC91PjwvcD48cCBjbGFzcz0iTXNvTm9y bWFsIj5PbmxpbmU6IDAyIDgwMDUgMDU5NTx1PjwvdT48dT48L3U+PC9wPjxwIGNsYXNzPSJNc29O b3JtYWwiPjx1PjwvdT7CoDx1PjwvdT48L3A+PGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVy LXRvcDpzb2xpZCAjZTFlMWUxIDEuMHB0O3BhZGRpbmc6My4wcHQgMGNtIDBjbSAwY20iPjxwIGNs YXNzPSJNc29Ob3JtYWwiPjxiPjxzcGFuIGxhbmc9IkVOLVVTIj5Gcm9tOjwvc3Bhbj48L2I+PHNw YW4gbGFuZz0iRU4tVVMiPiBLb2hhLWRldmVsICZsdDs8YSBocmVmPSJtYWlsdG86a29oYS1kZXZl bC1ib3VuY2VzQGxpc3RzLmtvaGEtY29tbXVuaXR5Lm9yZyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0i bm9yZWZlcnJlciI+a29oYS1kZXZlbC1ib3VuY2VzQGxpc3RzLmtvaGEtY29tbXVuaXR5Lm9yZzwv YT4mZ3Q7IDxiPk9uIEJlaGFsZiBPZiA8L2I+Sm9uYXRoYW4gRHJ1YXJ0PGJyPjxiPlNlbnQ6PC9i PiBGcmlkYXksIDcgTWF5IDIwMjEgNTo1OCBQTTxicj48Yj5Ubzo8L2I+IEZyaWRvbGluIFNPTUVS UyAmbHQ7PGEgaHJlZj0ibWFpbHRvOmZyaWRvbGluLnNvbWVyc0BiaWJsaWJyZS5jb20iIHRhcmdl dD0iX2JsYW5rIiByZWw9Im5vcmVmZXJyZXIiPmZyaWRvbGluLnNvbWVyc0BiaWJsaWJyZS5jb208 L2E+Jmd0Ozxicj48Yj5DYzo8L2I+IGtvaGEtZGV2ZWwgJmx0OzxhIGhyZWY9Im1haWx0bzprb2hh LWRldmVsQGxpc3RzLmtvaGEtY29tbXVuaXR5Lm9yZyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9y ZWZlcnJlciI+a29oYS1kZXZlbEBsaXN0cy5rb2hhLWNvbW11bml0eS5vcmc8L2E+Jmd0Ozxicj48 Yj5TdWJqZWN0OjwvYj4gUmU6IFtLb2hhLWRldmVsXSBUVCBsb29wIGNvdW50IFZTIHNpemU8dT48 L3U+PHU+PC91Pjwvc3Bhbj48L3A+PC9kaXY+PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHU+PC91PsKg PHU+PC91PjwvcD48ZGl2PjxkaXY+PHAgY2xhc3M9Ik1zb05vcm1hbCI+WW91IHNob3VsZCBncmVw ICZxdW90O2xvb3AuY291bnQmcXVvdDssIG5vdCAmcXVvdDsuY291bnQmcXVvdDs8dT48L3U+PHU+ PC91PjwvcD48L2Rpdj48ZGl2PjxwIGNsYXNzPSJNc29Ob3JtYWwiPk1vc3Qgb2YgdGhlIGNvdW50 IHlvdSBoYXZlIHdpdGggeW91ciByZWdleCBpcyBjb21pbmcgZnJvbSBrb2hhX29iamVjdHMtJmd0 O2NvdW50PHU+PC91Pjx1PjwvdT48L3A+PC9kaXY+PC9kaXY+PHAgY2xhc3M9Ik1zb05vcm1hbCI+ PHU+PC91PsKgPHU+PC91PjwvcD48ZGl2PjxkaXY+PHAgY2xhc3M9Ik1zb05vcm1hbCI+TGXCoHZl bi4gNyBtYWkgMjAyMSDDoMKgMDk6MTcsIEZyaWRvbGluIFNPTUVSUyAmbHQ7PGEgaHJlZj0ibWFp bHRvOmZyaWRvbGluLnNvbWVyc0BiaWJsaWJyZS5jb20iIHRhcmdldD0iX2JsYW5rIiByZWw9Im5v cmVmZXJyZXIiPmZyaWRvbGluLnNvbWVyc0BiaWJsaWJyZS5jb208L2E+Jmd0OyBhIMOpY3JpdMKg Ojx1PjwvdT48dT48L3U+PC9wPjwvZGl2PjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXI6bm9uZTti b3JkZXItbGVmdDpzb2xpZCAjY2NjY2NjIDEuMHB0O3BhZGRpbmc6MGNtIDBjbSAwY20gNi4wcHQ7 bWFyZ2luLWxlZnQ6NC44cHQ7bWFyZ2luLXJpZ2h0OjBjbSI+PHAgY2xhc3M9Ik1zb05vcm1hbCI+ SGkgY29tbXVuaXR5LDxicj48YnI+SSYjMzk7dmUgYmVlbiBvbiBhIG1pbmRibG93aW5nIHNlYXJj aCBvbiBhIHRlbXBsYXRlIGVycm9yIDpEPGJyPjxicj5JIHdhcyB0aGlua2luZyB0aGF0ICZxdW90 O2xvb3AuY291bnQmcXVvdDsgd2FzIHdyb25nIGZvciB0ZXN0aW5nIGlmIGxvb3AgaXMgbm90IDxi cj5lbXB0eSwgdGhlIG1ldGhvZCBpcyAmcXVvdDtsb29wLnNpemUmcXVvdDsuPGJyPjxicj5TZWUg ZG9jIDxicj48YSBocmVmPSJodHRwOi8vdGVtcGxhdGUtdG9vbGtpdC5vcmcvZG9jcy9tYW51YWwv RGlyZWN0aXZlcy5odG1sI3NlY3Rpb25fRk9SRUFDSCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9y ZWZlcnJlciI+aHR0cDovL3RlbXBsYXRlLXRvb2xraXQub3JnL2RvY3MvbWFudWFsL0RpcmVjdGl2 ZXMuaHRtbCNzZWN0aW9uX0ZPUkVBQ0g8L2E+PGJyPjxicj5Mb29rcyBsaWtlIHdlIHVzZSBib3Ro IGFjdHVhbGx5IDo8YnI+wqAgJmd0OyBnaXQgZ3JlcCAmIzM5O0lGLipcLmNvdW50ICYjMzk7IG9y aWdpbi9tYXN0ZXIgfCB3YyAtbDxicj42MDI8YnI+wqAgJmd0OyBnaXQgZ3JlcCAmIzM5O0lGLipc LnNpemUgJiMzOTsgb3JpZ2luL21hc3RlciB8IHdjIC1sPGJyPjE2MzY8YnI+PGJyPlNvIHVzaW5n IGNvdW50IHNlZW1zIHRvIHdvcmsgYmVjYXVzZSBpdCBzdGFydHMgd2l0aCAxLjxicj5CdXQgaW4g bXkgb3BpbmlvbiBpdCBpcyBhIHdyb25nIGNhbGwuPGJyPjxicj5XZSBjYW4gc2VlIGZvciBleGFt cGxlIDo8YnI+wqAgJmx0O2EgaHJlZj0mcXVvdDsjaW1hZ2VzJnF1b3Q7Jmd0O0ltYWdlcyAoWyUg bG9jYWxpbWFnZXMuY291bnQgfHwgMCB8IGh0bWwgJV0pJmx0Oy9hJmd0Ozxicj5UaGlzIGlzIHdy b25nIG5vID88YnI+PGJyPlNob3VsZCBiZSBjcmVhdGUgYSBjb2RpbmcgZ3VpZGVsaW5lID88YnI+ PGJyPi0tIDxicj5Gcmlkb2xpbiBTT01FUlMgJmx0OzxhIGhyZWY9Im1haWx0bzpmcmlkb2xpbi5z b21lcnNAYmlibGlicmUuY29tIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub3JlZmVycmVyIj5mcmlk b2xpbi5zb21lcnNAYmlibGlicmUuY29tPC9hPiZndDs8YnI+U29mdHdhcmUgYW5kIHN5c3RlbSBt YWludGFpbmVyIDxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtTZWdvZSBVSSBFbW9qaSZx dW90OyxzYW5zLXNlcmlmIj7wn6aEPC9zcGFuPjxicj5CaWJMaWJyZSwgRnJhbmNlPGJyPl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fPGJyPktvaGEtZGV2ZWwg bWFpbGluZyBsaXN0PGJyPjxhIGhyZWY9Im1haWx0bzpLb2hhLWRldmVsQGxpc3RzLmtvaGEtY29t bXVuaXR5Lm9yZyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9yZWZlcnJlciI+S29oYS1kZXZlbEBs aXN0cy5rb2hhLWNvbW11bml0eS5vcmc8L2E+PGJyPjxhIGhyZWY9Imh0dHBzOi8vbGlzdHMua29o YS1jb21tdW5pdHkub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9rb2hhLWRldmVsIiB0YXJn ZXQ9Il9ibGFuayIgcmVsPSJub3JlZmVycmVyIj5odHRwczovL2xpc3RzLmtvaGEtY29tbXVuaXR5 Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8va29oYS1kZXZlbDwvYT48YnI+d2Vic2l0ZSA6 IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmtvaGEtY29tbXVuaXR5Lm9yZy8iIHRhcmdldD0iX2JsYW5r IiByZWw9Im5vcmVmZXJyZXIiPmh0dHBzOi8vd3d3LmtvaGEtY29tbXVuaXR5Lm9yZy88L2E+PGJy PmdpdCA6IDxhIGhyZWY9Imh0dHBzOi8vZ2l0LmtvaGEtY29tbXVuaXR5Lm9yZy8iIHRhcmdldD0i X2JsYW5rIiByZWw9Im5vcmVmZXJyZXIiPmh0dHBzOi8vZ2l0LmtvaGEtY29tbXVuaXR5Lm9yZy88 L2E+PGJyPmJ1Z3MgOiA8YSBocmVmPSJodHRwczovL2J1Z3Mua29oYS1jb21tdW5pdHkub3JnLyIg dGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9yZWZlcnJlciI+aHR0cHM6Ly9idWdzLmtvaGEtY29tbXVu aXR5Lm9yZy88L2E+PHU+PC91Pjx1PjwvdT48L3A+PC9ibG9ja3F1b3RlPjwvZGl2PjwvZGl2Pjwv ZGl2Pl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fPGJyPgpL b2hhLWRldmVsIG1haWxpbmcgbGlzdDxicj4KPGEgaHJlZj0ibWFpbHRvOktvaGEtZGV2ZWxAbGlz dHMua29oYS1jb21tdW5pdHkub3JnIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub3JlZmVycmVyIj5L b2hhLWRldmVsQGxpc3RzLmtvaGEtY29tbXVuaXR5Lm9yZzwvYT48YnI+CjxhIGhyZWY9Imh0dHBz Oi8vbGlzdHMua29oYS1jb21tdW5pdHkub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9rb2hh LWRldmVsIiByZWw9Im5vcmVmZXJyZXIgbm9yZWZlcnJlciIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBz Oi8vbGlzdHMua29oYS1jb21tdW5pdHkub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9rb2hh LWRldmVsPC9hPjxicj4Kd2Vic2l0ZSA6IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmtvaGEtY29tbXVu aXR5Lm9yZy8iIHJlbD0ibm9yZWZlcnJlciBub3JlZmVycmVyIiB0YXJnZXQ9Il9ibGFuayI+aHR0 cHM6Ly93d3cua29oYS1jb21tdW5pdHkub3JnLzwvYT48YnI+CmdpdCA6IDxhIGhyZWY9Imh0dHBz Oi8vZ2l0LmtvaGEtY29tbXVuaXR5Lm9yZy8iIHJlbD0ibm9yZWZlcnJlciBub3JlZmVycmVyIiB0 YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly9naXQua29oYS1jb21tdW5pdHkub3JnLzwvYT48YnI+CmJ1 Z3MgOiA8YSBocmVmPSJodHRwczovL2J1Z3Mua29oYS1jb21tdW5pdHkub3JnLyIgcmVsPSJub3Jl ZmVycmVyIG5vcmVmZXJyZXIiIHRhcmdldD0iX2JsYW5rIj5odHRwczovL2J1Z3Mua29oYS1jb21t dW5pdHkub3JnLzwvYT48YnI+CjwvYmxvY2txdW90ZT48L2Rpdj4K --===============8906777711343406377==-- From dcook@prosentient.com.au Mon May 10 04:20:19 2021 From: dcook@prosentient.com.au To: koha-devel@lists.koha-community.org Subject: Re: [Koha-devel] TT loop count VS size Date: Mon, 10 May 2021 12:20:12 +1000 Message-ID: <00c401d74543$018ca980$04a5fc80$@prosentient.com.au> In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============5177038060662437776==" --===============5177038060662437776== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable I know that .count is an object method, but I don=E2=80=99t understand the pr= oblem that Fridolin is having. I don=E2=80=99t see any problem at this point.= =20 =20 David Cook Software Engineer Prosentient Systems Suite 7.03 6a Glen St Milsons Point NSW 2061 Australia =20 Office: 02 9212 0899 Online: 02 8005 0595 =20 From: Tomas Cohen Arazi =20 Sent: Monday, 10 May 2021 11:14 AM To: David Cook Cc: Jonathan Druart ; Fridolin SOMER= S ; koha-devel Subject: Re: [Koha-devel] TT loop count VS size =20 That's because .count is a Koha::Objects method. =20 El dom., 9 may. 2021 20:50, > escribi=C3=B3: I was going to say=E2=80=A6 I=E2=80=99d never even heard of the =E2=80=9Ccoun= t=E2=80=9D call in TT. Looking at http://template-toolkit.org/docs/manual/VMe= thods.html, it=E2=80=99s not a method for a data structure. Looking at http:/= /template-toolkit.org/docs/manual/Directives.html#section_FOREACH, it=E2=80= =99s only a method of the =E2=80=9Cloop=E2=80=9D variable.=20 =20 grep -R "loop\.count" * | wc -l 86 =20 What=E2=80=99s the actual problem being observed? =20 David Cook Software Engineer Prosentient Systems Suite 7.03 6a Glen St Milsons Point NSW 2061 Australia =20 Office: 02 9212 0899 Online: 02 8005 0595 =20 From: Koha-devel > On Behalf Of Jonathan Druart Sent: Friday, 7 May 2021 5:58 PM To: Fridolin SOMERS > Cc: koha-devel > Subject: Re: [Koha-devel] TT loop count VS size =20 You should grep "loop.count", not ".count" Most of the count you have with your regex is coming from koha_objects->count =20 Le ven. 7 mai 2021 =C3=A0 09:17, Fridolin SOMERS > a =C3=A9crit : Hi community, I've been on a mindblowing search on a template error :D I was thinking that "loop.count" was wrong for testing if loop is not=20 empty, the method is "loop.size". See doc=20 http://template-toolkit.org/docs/manual/Directives.html#section_FOREACH Looks like we use both actually : > git grep 'IF.*\.count ' origin/master | wc -l 602 > git grep 'IF.*\.size ' origin/master | wc -l 1636 So using count seems to work because it starts with 1. But in my opinion it is a wrong call. We can see for example : Images ([% localimages.count || 0 | html %]) This is wrong no ? Should be create a coding guideline ? --=20 Fridolin SOMERS Software and system maintainer =F0=9F=A6=84 BibLibre, France _______________________________________________ Koha-devel mailing list Koha-devel@lists.koha-community.org =20 https://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-devel website : https://www.koha-community.org/ git : https://git.koha-community.org/ bugs : https://bugs.koha-community.org/ _______________________________________________ Koha-devel mailing list Koha-devel@lists.koha-community.org =20 https://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-devel website : https://www.koha-community.org/ git : https://git.koha-community.org/ bugs : https://bugs.koha-community.org/ --===============5177038060662437776== Content-Type: text/html Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" MIME-Version: 1.0 PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv VFIvUkVDLWh0bWw0MCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj1Db250ZW50LVR5cGUgY29udGVu dD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij48bWV0YSBuYW1lPUdlbmVyYXRvciBjb250ZW50 PSJNaWNyb3NvZnQgV29yZCAxNSAoZmlsdGVyZWQgbWVkaXVtKSI+PHN0eWxlPjwhLS0KLyogRm9u dCBEZWZpbml0aW9ucyAqLwpAZm9udC1mYWNlCgl7Zm9udC1mYW1pbHk6IkNhbWJyaWEgTWF0aCI7 CglwYW5vc2UtMToyIDQgNSAzIDUgNCA2IDMgMiA0O30KQGZvbnQtZmFjZQoJe2ZvbnQtZmFtaWx5 OkRlbmdYaWFuOwoJcGFub3NlLTE6MiAxIDYgMCAzIDEgMSAxIDEgMTt9CkBmb250LWZhY2UKCXtm b250LWZhbWlseTpDYWxpYnJpOwoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAyIDQ7fQpAZm9u dC1mYWNlCgl7Zm9udC1mYW1pbHk6IlNlZ29lIFVJIEVtb2ppIjsKCXBhbm9zZS0xOjIgMTEgNSAy IDQgMiA0IDIgMiAzO30KQGZvbnQtZmFjZQoJe2ZvbnQtZmFtaWx5OiJcQERlbmdYaWFuIjsKCXBh bm9zZS0xOjIgMSA2IDAgMyAxIDEgMSAxIDE7fQovKiBTdHlsZSBEZWZpbml0aW9ucyAqLwpwLk1z b05vcm1hbCwgbGkuTXNvTm9ybWFsLCBkaXYuTXNvTm9ybWFsCgl7bWFyZ2luOjBjbTsKCWZvbnQt c2l6ZToxMS4wcHQ7Cglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjt9CmE6bGluaywg c3Bhbi5Nc29IeXBlcmxpbmsKCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7Cgljb2xvcjpibHVlOwoJ dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9CnNwYW4uRW1haWxTdHlsZTE4Cgl7bXNvLXN0eWxl LXR5cGU6cGVyc29uYWwtcmVwbHk7Cglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsK CWNvbG9yOndpbmRvd3RleHQ7fQouTXNvQ2hwRGVmYXVsdAoJe21zby1zdHlsZS10eXBlOmV4cG9y dC1vbmx5OwoJZm9udC1mYW1pbHk6IkNhbGlicmkiLHNhbnMtc2VyaWY7fQpAcGFnZSBXb3JkU2Vj dGlvbjEKCXtzaXplOjYxMi4wcHQgNzkyLjBwdDsKCW1hcmdpbjo3Mi4wcHQgNzIuMHB0IDcyLjBw dCA3Mi4wcHQ7fQpkaXYuV29yZFNlY3Rpb24xCgl7cGFnZTpXb3JkU2VjdGlvbjE7fQotLT48L3N0 eWxlPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPgo8bzpzaGFwZWRlZmF1bHRzIHY6ZXh0PSJlZGl0 IiBzcGlkbWF4PSIxMDI2IiAvPgo8L3htbD48IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBtc28gOV0+ PHhtbD4KPG86c2hhcGVsYXlvdXQgdjpleHQ9ImVkaXQiPgo8bzppZG1hcCB2OmV4dD0iZWRpdCIg ZGF0YT0iMSIgLz4KPC9vOnNoYXBlbGF5b3V0PjwveG1sPjwhW2VuZGlmXS0tPjwvaGVhZD48Ym9k eSBsYW5nPUVOLUFVIGxpbms9Ymx1ZSB2bGluaz1wdXJwbGUgc3R5bGU9J3dvcmQtd3JhcDpicmVh ay13b3JkJz48ZGl2IGNsYXNzPVdvcmRTZWN0aW9uMT48cCBjbGFzcz1Nc29Ob3JtYWw+SSBrbm93 IHRoYXQgLmNvdW50IGlzIGFuIG9iamVjdCBtZXRob2QsIGJ1dCBJIGRvbuKAmXQgdW5kZXJzdGFu ZCB0aGUgcHJvYmxlbSB0aGF0IEZyaWRvbGluIGlzIGhhdmluZy4gSSBkb27igJl0IHNlZSBhbnkg cHJvYmxlbSBhdCB0aGlzIHBvaW50LiA8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+ PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRhdmlkIENvb2s8bzpwPjwv bzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+U29mdHdhcmUgRW5naW5lZXI8bzpwPjwvbzpwPjwv cD48cCBjbGFzcz1Nc29Ob3JtYWw+UHJvc2VudGllbnQgU3lzdGVtczxvOnA+PC9vOnA+PC9wPjxw IGNsYXNzPU1zb05vcm1hbD5TdWl0ZSA3LjAzPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9y bWFsPjZhIEdsZW4gU3Q8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+TWlsc29ucyBQ b2ludCBOU1cgMjA2MTxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BdXN0cmFsaWE8 bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAg Y2xhc3M9TXNvTm9ybWFsPk9mZmljZTogMDIgOTIxMiAwODk5PG86cD48L286cD48L3A+PHAgY2xh c3M9TXNvTm9ybWFsPk9ubGluZTogMDIgODAwNSAwNTk1PG86cD48L286cD48L3A+PHAgY2xhc3M9 TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxkaXYgc3R5bGU9J2JvcmRlcjpub25lO2Jv cmRlci10b3A6c29saWQgI0UxRTFFMSAxLjBwdDtwYWRkaW5nOjMuMHB0IDBjbSAwY20gMGNtJz48 cCBjbGFzcz1Nc29Ob3JtYWw+PGI+PHNwYW4gbGFuZz1FTi1VUz5Gcm9tOjwvc3Bhbj48L2I+PHNw YW4gbGFuZz1FTi1VUz4gVG9tYXMgQ29oZW4gQXJhemkgJmx0O3RvbWFzY29oZW5AZ21haWwuY29t Jmd0OyA8YnI+PGI+U2VudDo8L2I+IE1vbmRheSwgMTAgTWF5IDIwMjEgMTE6MTQgQU08YnI+PGI+ VG86PC9iPiBEYXZpZCBDb29rICZsdDtkY29va0Bwcm9zZW50aWVudC5jb20uYXUmZ3Q7PGJyPjxi PkNjOjwvYj4gSm9uYXRoYW4gRHJ1YXJ0ICZsdDtqb25hdGhhbi5kcnVhcnRAYnVncy5rb2hhLWNv bW11bml0eS5vcmcmZ3Q7OyBGcmlkb2xpbiBTT01FUlMgJmx0O2ZyaWRvbGluLnNvbWVyc0BiaWJs aWJyZS5jb20mZ3Q7OyBrb2hhLWRldmVsICZsdDtrb2hhLWRldmVsQGxpc3RzLmtvaGEtY29tbXVu aXR5Lm9yZyZndDs8YnI+PGI+U3ViamVjdDo8L2I+IFJlOiBbS29oYS1kZXZlbF0gVFQgbG9vcCBj b3VudCBWUyBzaXplPG86cD48L286cD48L3NwYW4+PC9wPjwvZGl2PjxwIGNsYXNzPU1zb05vcm1h bD48bzpwPiZuYnNwOzwvbzpwPjwvcD48ZGl2PjxwIGNsYXNzPU1zb05vcm1hbD5UaGF0J3MgYmVj YXVzZSAuY291bnQgaXMgYSBLb2hhOjpPYmplY3RzIG1ldGhvZC48bzpwPjwvbzpwPjwvcD48L2Rp dj48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PGRpdj48ZGl2PjxwIGNs YXNzPU1zb05vcm1hbD5FbCBkb20uLCA5IG1heS4gMjAyMSAyMDo1MCwgJmx0OzxhIGhyZWY9Im1h aWx0bzpkY29va0Bwcm9zZW50aWVudC5jb20uYXUiPmRjb29rQHByb3NlbnRpZW50LmNvbS5hdTwv YT4mZ3Q7IGVzY3JpYmnDszo8bzpwPjwvbzpwPjwvcD48L2Rpdj48YmxvY2txdW90ZSBzdHlsZT0n Ym9yZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29saWQgI0NDQ0NDQyAxLjBwdDtwYWRkaW5nOjBjbSAw Y20gMGNtIDYuMHB0O21hcmdpbi1sZWZ0OjQuOHB0O21hcmdpbi1yaWdodDowY20nPjxkaXY+PGRp dj48cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1t YXJnaW4tYm90dG9tLWFsdDphdXRvJz5JIHdhcyBnb2luZyB0byBzYXnigKYgSeKAmWQgbmV2ZXIg ZXZlbiBoZWFyZCBvZiB0aGUg4oCcY291bnTigJ0gY2FsbCBpbiBUVC4gTG9va2luZyBhdCA8YSBo cmVmPSJodHRwOi8vdGVtcGxhdGUtdG9vbGtpdC5vcmcvZG9jcy9tYW51YWwvVk1ldGhvZHMuaHRt bCIgdGFyZ2V0PSJfYmxhbmsiPmh0dHA6Ly90ZW1wbGF0ZS10b29sa2l0Lm9yZy9kb2NzL21hbnVh bC9WTWV0aG9kcy5odG1sPC9hPiwgaXTigJlzIG5vdCBhIG1ldGhvZCBmb3IgYSBkYXRhIHN0cnVj dHVyZS4gTG9va2luZyBhdCA8YSBocmVmPSJodHRwOi8vdGVtcGxhdGUtdG9vbGtpdC5vcmcvZG9j cy9tYW51YWwvRGlyZWN0aXZlcy5odG1sI3NlY3Rpb25fRk9SRUFDSCIgdGFyZ2V0PSJfYmxhbmsi Pmh0dHA6Ly90ZW1wbGF0ZS10b29sa2l0Lm9yZy9kb2NzL21hbnVhbC9EaXJlY3RpdmVzLmh0bWwj c2VjdGlvbl9GT1JFQUNIPC9hPiwgaXTigJlzIG9ubHkgYSBtZXRob2Qgb2YgdGhlIOKAnGxvb3Di gJ0gdmFyaWFibGUuIDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNv LW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8nPiZuYnNwOzxv OnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0 OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8nPmdyZXAgLVIgJnF1b3Q7bG9vcFwuY291 bnQmcXVvdDsgKiZuYnNwOyZuYnNwOyB8IHdjIC1sPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNv Tm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1h bHQ6YXV0byc+ODY8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1t YXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvJz4mbmJzcDs8bzpw PjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDph dXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvJz5XaGF04oCZcyB0aGUgYWN0dWFsIHByb2Js ZW0gYmVpbmcgb2JzZXJ2ZWQ/PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxl PSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byc+Jm5i c3A7PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRv cC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byc+RGF2aWQgQ29vazxvOnA+PC9v OnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87 bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8nPlNvZnR3YXJlIEVuZ2luZWVyPG86cD48L286cD48 L3A+PHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28t bWFyZ2luLWJvdHRvbS1hbHQ6YXV0byc+UHJvc2VudGllbnQgU3lzdGVtczxvOnA+PC9vOnA+PC9w PjxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1h cmdpbi1ib3R0b20tYWx0OmF1dG8nPlN1aXRlIDcuMDM8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1N c29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9t LWFsdDphdXRvJz42YSBHbGVuIFN0PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsIHN0 eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byc+ TWlsc29ucyBQb2ludCBOU1cgMjA2MTxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbCBz dHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8n PkF1c3RyYWxpYTxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1h cmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8nPiZuYnNwOzxvOnA+ PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1 dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8nPk9mZmljZTogMDIgOTIxMiAwODk5PG86cD48 L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0 bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byc+T25saW5lOiAwMiA4MDA1IDA1OTU8bzpwPjwv bzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRv O21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvJz4mbmJzcDs8bzpwPjwvbzpwPjwvcD48ZGl2IHN0 eWxlPSdib3JkZXI6bm9uZTtib3JkZXItdG9wOnNvbGlkICNFMUUxRTEgMS4wcHQ7cGFkZGluZzoz LjBwdCAwY20gMGNtIDBjbSc+PHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRv cC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byc+PGI+PHNwYW4gbGFuZz1FTi1V Uz5Gcm9tOjwvc3Bhbj48L2I+PHNwYW4gbGFuZz1FTi1VUz4gS29oYS1kZXZlbCAmbHQ7PGEgaHJl Zj0ibWFpbHRvOmtvaGEtZGV2ZWwtYm91bmNlc0BsaXN0cy5rb2hhLWNvbW11bml0eS5vcmciIHRh cmdldD0iX2JsYW5rIj5rb2hhLWRldmVsLWJvdW5jZXNAbGlzdHMua29oYS1jb21tdW5pdHkub3Jn PC9hPiZndDsgPGI+T24gQmVoYWxmIE9mIDwvYj5Kb25hdGhhbiBEcnVhcnQ8YnI+PGI+U2VudDo8 L2I+IEZyaWRheSwgNyBNYXkgMjAyMSA1OjU4IFBNPGJyPjxiPlRvOjwvYj4gRnJpZG9saW4gU09N RVJTICZsdDs8YSBocmVmPSJtYWlsdG86ZnJpZG9saW4uc29tZXJzQGJpYmxpYnJlLmNvbSIgdGFy Z2V0PSJfYmxhbmsiPmZyaWRvbGluLnNvbWVyc0BiaWJsaWJyZS5jb208L2E+Jmd0Ozxicj48Yj5D Yzo8L2I+IGtvaGEtZGV2ZWwgJmx0OzxhIGhyZWY9Im1haWx0bzprb2hhLWRldmVsQGxpc3RzLmtv aGEtY29tbXVuaXR5Lm9yZyIgdGFyZ2V0PSJfYmxhbmsiPmtvaGEtZGV2ZWxAbGlzdHMua29oYS1j b21tdW5pdHkub3JnPC9hPiZndDs8YnI+PGI+U3ViamVjdDo8L2I+IFJlOiBbS29oYS1kZXZlbF0g VFQgbG9vcCBjb3VudCBWUyBzaXplPC9zcGFuPjxvOnA+PC9vOnA+PC9wPjwvZGl2PjxwIGNsYXNz PU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0 b20tYWx0OmF1dG8nPiZuYnNwOzxvOnA+PC9vOnA+PC9wPjxkaXY+PGRpdj48cCBjbGFzcz1Nc29O b3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFs dDphdXRvJz5Zb3Ugc2hvdWxkIGdyZXAgJnF1b3Q7bG9vcC5jb3VudCZxdW90Oywgbm90ICZxdW90 Oy5jb3VudCZxdW90OzxvOnA+PC9vOnA+PC9wPjwvZGl2PjxkaXY+PHAgY2xhc3M9TXNvTm9ybWFs IHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0 byc+TW9zdCBvZiB0aGUgY291bnQgeW91IGhhdmUgd2l0aCB5b3VyIHJlZ2V4IGlzIGNvbWluZyBm cm9tIGtvaGFfb2JqZWN0cy0mZ3Q7Y291bnQ8bzpwPjwvbzpwPjwvcD48L2Rpdj48L2Rpdj48cCBj bGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4t Ym90dG9tLWFsdDphdXRvJz4mbmJzcDs8bzpwPjwvbzpwPjwvcD48ZGl2PjxkaXY+PHAgY2xhc3M9 TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRv bS1hbHQ6YXV0byc+TGUmbmJzcDt2ZW4uIDcgbWFpIDIwMjEgw6AmbmJzcDswOToxNywgRnJpZG9s aW4gU09NRVJTICZsdDs8YSBocmVmPSJtYWlsdG86ZnJpZG9saW4uc29tZXJzQGJpYmxpYnJlLmNv bSIgdGFyZ2V0PSJfYmxhbmsiPmZyaWRvbGluLnNvbWVyc0BiaWJsaWJyZS5jb208L2E+Jmd0OyBh IMOpY3JpdCZuYnNwOzo8bzpwPjwvbzpwPjwvcD48L2Rpdj48YmxvY2txdW90ZSBzdHlsZT0nYm9y ZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29saWQgI0NDQ0NDQyAxLjBwdDtwYWRkaW5nOjBjbSAwY20g MGNtIDYuMHB0O21hcmdpbi1sZWZ0OjQuOHB0O21hcmdpbi10b3A6NS4wcHQ7bWFyZ2luLXJpZ2h0 OjBjbTttYXJnaW4tYm90dG9tOjUuMHB0Jz48cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1t YXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvJz5IaSBjb21tdW5p dHksPGJyPjxicj5JJ3ZlIGJlZW4gb24gYSBtaW5kYmxvd2luZyBzZWFyY2ggb24gYSB0ZW1wbGF0 ZSBlcnJvciA6RDxicj48YnI+SSB3YXMgdGhpbmtpbmcgdGhhdCAmcXVvdDtsb29wLmNvdW50JnF1 b3Q7IHdhcyB3cm9uZyBmb3IgdGVzdGluZyBpZiBsb29wIGlzIG5vdCA8YnI+ZW1wdHksIHRoZSBt ZXRob2QgaXMgJnF1b3Q7bG9vcC5zaXplJnF1b3Q7Ljxicj48YnI+U2VlIGRvYyA8YnI+PGEgaHJl Zj0iaHR0cDovL3RlbXBsYXRlLXRvb2xraXQub3JnL2RvY3MvbWFudWFsL0RpcmVjdGl2ZXMuaHRt bCNzZWN0aW9uX0ZPUkVBQ0giIHRhcmdldD0iX2JsYW5rIj5odHRwOi8vdGVtcGxhdGUtdG9vbGtp dC5vcmcvZG9jcy9tYW51YWwvRGlyZWN0aXZlcy5odG1sI3NlY3Rpb25fRk9SRUFDSDwvYT48YnI+ PGJyPkxvb2tzIGxpa2Ugd2UgdXNlIGJvdGggYWN0dWFsbHkgOjxicj4mbmJzcDsgJmd0OyBnaXQg Z3JlcCAnSUYuKlwuY291bnQgJyBvcmlnaW4vbWFzdGVyIHwgd2MgLWw8YnI+NjAyPGJyPiZuYnNw OyAmZ3Q7IGdpdCBncmVwICdJRi4qXC5zaXplICcgb3JpZ2luL21hc3RlciB8IHdjIC1sPGJyPjE2 MzY8YnI+PGJyPlNvIHVzaW5nIGNvdW50IHNlZW1zIHRvIHdvcmsgYmVjYXVzZSBpdCBzdGFydHMg d2l0aCAxLjxicj5CdXQgaW4gbXkgb3BpbmlvbiBpdCBpcyBhIHdyb25nIGNhbGwuPGJyPjxicj5X ZSBjYW4gc2VlIGZvciBleGFtcGxlIDo8YnI+Jm5ic3A7ICZsdDthIGhyZWY9JnF1b3Q7I2ltYWdl cyZxdW90OyZndDtJbWFnZXMgKFslIGxvY2FsaW1hZ2VzLmNvdW50IHx8IDAgfCBodG1sICVdKSZs dDsvYSZndDs8YnI+VGhpcyBpcyB3cm9uZyBubyA/PGJyPjxicj5TaG91bGQgYmUgY3JlYXRlIGEg Y29kaW5nIGd1aWRlbGluZSA/PGJyPjxicj4tLSA8YnI+RnJpZG9saW4gU09NRVJTICZsdDs8YSBo cmVmPSJtYWlsdG86ZnJpZG9saW4uc29tZXJzQGJpYmxpYnJlLmNvbSIgdGFyZ2V0PSJfYmxhbmsi PmZyaWRvbGluLnNvbWVyc0BiaWJsaWJyZS5jb208L2E+Jmd0Ozxicj5Tb2Z0d2FyZSBhbmQgc3lz dGVtIG1haW50YWluZXIgPHNwYW4gc3R5bGU9J2ZvbnQtZmFtaWx5OiJTZWdvZSBVSSBFbW9qaSIs c2Fucy1zZXJpZic+JiMxMjk0MTI7PC9zcGFuPjxicj5CaWJMaWJyZSwgRnJhbmNlPGJyPl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fPGJyPktvaGEtZGV2ZWwg bWFpbGluZyBsaXN0PGJyPjxhIGhyZWY9Im1haWx0bzpLb2hhLWRldmVsQGxpc3RzLmtvaGEtY29t bXVuaXR5Lm9yZyIgdGFyZ2V0PSJfYmxhbmsiPktvaGEtZGV2ZWxAbGlzdHMua29oYS1jb21tdW5p dHkub3JnPC9hPjxicj48YSBocmVmPSJodHRwczovL2xpc3RzLmtvaGEtY29tbXVuaXR5Lm9yZy9j Z2ktYmluL21haWxtYW4vbGlzdGluZm8va29oYS1kZXZlbCIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBz Oi8vbGlzdHMua29oYS1jb21tdW5pdHkub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9rb2hh LWRldmVsPC9hPjxicj53ZWJzaXRlIDogPGEgaHJlZj0iaHR0cHM6Ly93d3cua29oYS1jb21tdW5p dHkub3JnLyIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vd3d3LmtvaGEtY29tbXVuaXR5Lm9yZy88 L2E+PGJyPmdpdCA6IDxhIGhyZWY9Imh0dHBzOi8vZ2l0LmtvaGEtY29tbXVuaXR5Lm9yZy8iIHRh cmdldD0iX2JsYW5rIj5odHRwczovL2dpdC5rb2hhLWNvbW11bml0eS5vcmcvPC9hPjxicj5idWdz IDogPGEgaHJlZj0iaHR0cHM6Ly9idWdzLmtvaGEtY29tbXVuaXR5Lm9yZy8iIHRhcmdldD0iX2Js YW5rIj5odHRwczovL2J1Z3Mua29oYS1jb21tdW5pdHkub3JnLzwvYT48bzpwPjwvbzpwPjwvcD48 L2Jsb2NrcXVvdGU+PC9kaXY+PC9kaXY+PC9kaXY+PHAgY2xhc3M9TXNvTm9ybWFsPl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fPGJyPktvaGEtZGV2ZWwgbWFp bGluZyBsaXN0PGJyPjxhIGhyZWY9Im1haWx0bzpLb2hhLWRldmVsQGxpc3RzLmtvaGEtY29tbXVu aXR5Lm9yZyIgdGFyZ2V0PSJfYmxhbmsiPktvaGEtZGV2ZWxAbGlzdHMua29oYS1jb21tdW5pdHku b3JnPC9hPjxicj48YSBocmVmPSJodHRwczovL2xpc3RzLmtvaGEtY29tbXVuaXR5Lm9yZy9jZ2kt YmluL21haWxtYW4vbGlzdGluZm8va29oYS1kZXZlbCIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8v bGlzdHMua29oYS1jb21tdW5pdHkub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9rb2hhLWRl dmVsPC9hPjxicj53ZWJzaXRlIDogPGEgaHJlZj0iaHR0cHM6Ly93d3cua29oYS1jb21tdW5pdHku b3JnLyIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vd3d3LmtvaGEtY29tbXVuaXR5Lm9yZy88L2E+ PGJyPmdpdCA6IDxhIGhyZWY9Imh0dHBzOi8vZ2l0LmtvaGEtY29tbXVuaXR5Lm9yZy8iIHRhcmdl dD0iX2JsYW5rIj5odHRwczovL2dpdC5rb2hhLWNvbW11bml0eS5vcmcvPC9hPjxicj5idWdzIDog PGEgaHJlZj0iaHR0cHM6Ly9idWdzLmtvaGEtY29tbXVuaXR5Lm9yZy8iIHRhcmdldD0iX2JsYW5r Ij5odHRwczovL2J1Z3Mua29oYS1jb21tdW5pdHkub3JnLzwvYT48bzpwPjwvbzpwPjwvcD48L2Js b2NrcXVvdGU+PC9kaXY+PC9kaXY+PC9ib2R5PjwvaHRtbD4= --===============5177038060662437776==-- From fridolin.somers@biblibre.com Mon May 10 10:02:05 2021 From: Fridolin SOMERS To: koha-devel@lists.koha-community.org Subject: Re: [Koha-devel] TT loop count VS size Date: Mon, 10 May 2021 10:02:02 +0200 Message-ID: <401f353d-e741-ad2e-3f26-15a17f6fa2cb@biblibre.com> In-Reply-To: <00c401d74543$018ca980$04a5fc80$@prosentient.com.au> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============6119058801004714002==" --===============6119058801004714002== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Ahhh my bad. So VAR.size is when VAR is an array. VAR.count is allow when VAR is a Koha::Objects, in perl called with ->count. Forget my warning ;) Best regards, Le 10/05/2021 =C3=A0 04:20, dcook@prosentient.com.au a =C3=A9crit=C2=A0: > I know that .count is an object method, but I don=E2=80=99t understand the = > problem that Fridolin is having. I don=E2=80=99t see any problem at this po= int. >=20 > David Cook >=20 > Software Engineer >=20 > Prosentient Systems >=20 > Suite 7.03 >=20 > 6a Glen St >=20 > Milsons Point NSW 2061 >=20 > Australia >=20 > Office: 02 9212 0899 >=20 > Online: 02 8005 0595 >=20 > *From:*Tomas Cohen Arazi > *Sent:* Monday, 10 May 2021 11:14 AM > *To:* David Cook > *Cc:* Jonathan Druart ;=20 > Fridolin SOMERS ; koha-devel=20 > > *Subject:* Re: [Koha-devel] TT loop count VS size >=20 > That's because .count is a Koha::Objects method. >=20 > El dom., 9 may. 2021 20:50, > escribi=C3=B3: >=20 > I was going to say=E2=80=A6 I=E2=80=99d never even heard of the =E2=80= =9Ccount=E2=80=9D call in TT. > Looking at http://template-toolkit.org/docs/manual/VMethods.html > , it=E2=80=99s n= ot a > method for a data structure. Looking at > http://template-toolkit.org/docs/manual/Directives.html#section_FOREACH > , > it=E2=80=99s only a method of the =E2=80=9Cloop=E2=80=9D variable. >=20 > grep -R "loop\.count" *=C2=A0=C2=A0 | wc -l >=20 > 86 >=20 > What=E2=80=99s the actual problem being observed? >=20 > David Cook >=20 > Software Engineer >=20 > Prosentient Systems >=20 > Suite 7.03 >=20 > 6a Glen St >=20 > Milsons Point NSW 2061 >=20 > Australia >=20 > Office: 02 9212 0899 >=20 > Online: 02 8005 0595 >=20 > *From:*Koha-devel > *On Behalf Of > *Jonathan Druart > *Sent:* Friday, 7 May 2021 5:58 PM > *To:* Fridolin SOMERS > > *Cc:* koha-devel > > *Subject:* Re: [Koha-devel] TT loop count VS size >=20 > You should grep "loop.count", not ".count" >=20 > Most of the count you have with your regex is coming from > koha_objects->count >=20 > Le=C2=A0ven. 7 mai 2021 =C3=A0=C2=A009:17, Fridolin SOMERS > > > a =C3=A9crit=C2=A0: >=20 > Hi community, >=20 > I've been on a mindblowing search on a template error :D >=20 > I was thinking that "loop.count" was wrong for testing if loop > is not > empty, the method is "loop.size". >=20 > See doc > http://template-toolkit.org/docs/manual/Directives.html#section_FOR= EACH > >=20 > Looks like we use both actually : > =C2=A0 > git grep 'IF.*\.count ' origin/master | wc -l > 602 > =C2=A0 > git grep 'IF.*\.size ' origin/master | wc -l > 1636 >=20 > So using count seems to work because it starts with 1. > But in my opinion it is a wrong call. >=20 > We can see for example : > =C2=A0 Images ([% localimages.count || 0 | html > %]) > This is wrong no ? >=20 > Should be create a coding guideline ? >=20 > --=20 > Fridolin SOMERS > > Software and system maintainer =F0=9F=A6=84 > BibLibre, France > _______________________________________________ > Koha-devel mailing list > Koha-devel@lists.koha-community.org > > https://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-devel > > website : https://www.koha-community.org/ > > git : https://git.koha-community.org/ > > bugs : https://bugs.koha-community.org/ > >=20 > _______________________________________________ > Koha-devel mailing list > Koha-devel@lists.koha-community.org > > https://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-devel > > website : https://www.koha-community.org/ > > git : https://git.koha-community.org/ > bugs : https://bugs.koha-community.org/ > >=20 --=20 Fridolin SOMERS Software and system maintainer =F0=9F=A6=84 BibLibre, France --===============6119058801004714002==--