From 87d1ff9877eb7007fda7d0382b348bf1e021fdb6 Mon Sep 17 00:00:00 2001 From: nobuQuartile Date: Mon, 13 Apr 2026 03:03:40 +0000 Subject: [PATCH 01/11] [FIX] web_form_banner: use record_id in help text --- web_form_banner/views/web_form_banner_rule_views.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web_form_banner/views/web_form_banner_rule_views.xml b/web_form_banner/views/web_form_banner_rule_views.xml index 7db656156dfe..0697efc61f22 100644 --- a/web_form_banner/views/web_form_banner_rule_views.xml +++ b/web_form_banner/views/web_form_banner_rule_views.xml @@ -113,7 +113,7 @@ (one2many/reference, etc).
  • current_id: Integer id of the record being edited, or record_id: Integer id of the record being edited, or False if the form is creating a new record.
  • From 8fbd33d5b05d825f63a81bbb916d1b6947689a96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20-=20Le=20Filament?= <30716308+remi-filament@users.noreply.github.com> Date: Mon, 17 Nov 2025 14:20:13 +0100 Subject: [PATCH 02/11] [FIX] web_favicon: use sanitized cids cookie --- web_favicon/models/res_company.py | 4 +--- web_favicon/tests/test_web_favicon.py | 9 ++++++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/web_favicon/models/res_company.py b/web_favicon/models/res_company.py index f0f468ae53ed..f40eeb6f3ef4 100644 --- a/web_favicon/models/res_company.py +++ b/web_favicon/models/res_company.py @@ -72,9 +72,7 @@ def _get_favicon(self): website = self.env["website"].browse(self.env.context.get("website_id")) return website.image_url(website, "favicon") company_id = ( - request.httprequest.cookies.get("cids") - if request.httprequest.cookies.get("cids") - else False + request.cookies.get("cids") if request.cookies.get("cids") else False ) company = ( self.browse(int(company_id.split("-")[0])).sudo() diff --git a/web_favicon/tests/test_web_favicon.py b/web_favicon/tests/test_web_favicon.py index 387c53bbd66f..afc8eeb16c23 100644 --- a/web_favicon/tests/test_web_favicon.py +++ b/web_favicon/tests/test_web_favicon.py @@ -38,7 +38,7 @@ def test_01_web_favicon(self): self.assertEqual(image.size, (1920, 1080)) self.assertEqual(image.getpixel((0, 0)), bg_color) with MockRequest(self.env) as mock_request: - mock_request.httprequest.cookies = {"cids": str(company.id)} + mock_request.cookies = {"cids": str(company.id)} self.assertTrue(Company._get_favicon()) def test_02_default_favicon_creation(self): @@ -83,10 +83,13 @@ def test_04_favicon_multiple_companies(self): company_2 = Company.create( {"name": "Company 2", "favicon": Company._get_default_favicon()} ) + company_3 = Company.create( + {"name": "Company 3", "favicon": Company._get_default_favicon()} + ) with MockRequest(self.env) as mock_request: - mock_request.httprequest.cookies = { - "cids": f"{company_1.id}-{company_2.id}" + mock_request.cookies = { + "cids": f"{company_1.id}-{company_2.id}-{company_3.id}" } favicon_url = Company._get_favicon() From f00bc6def5eb56f0fc45a5b04506f1bc90b3ad35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Mart=C3=ADnez?= Date: Mon, 20 Apr 2026 10:28:35 +0200 Subject: [PATCH 03/11] [ADD] web_widget_o2m_attachment_image_gallery: New module TT61752 --- .../README.rst | 97 ++++ .../__init__.py | 0 .../__manifest__.py | 19 + ...eb_widget_o2m_attachment_image_gallery.pot | 15 + .../pyproject.toml | 3 + .../readme/CONTRIBUTORS.md | 2 + .../readme/DESCRIPTION.md | 1 + .../readme/USAGE.md | 5 + .../static/description/icon.png | Bin 0 -> 9455 bytes .../static/description/index.html | 442 ++++++++++++++++++ .../js/o2m_attachment_image_gallery.esm.js | 54 +++ .../src/xml/o2m_attachment_image_gallery.xml | 12 + 12 files changed, 650 insertions(+) create mode 100644 web_widget_o2m_attachment_image_gallery/README.rst create mode 100644 web_widget_o2m_attachment_image_gallery/__init__.py create mode 100644 web_widget_o2m_attachment_image_gallery/__manifest__.py create mode 100644 web_widget_o2m_attachment_image_gallery/i18n/web_widget_o2m_attachment_image_gallery.pot create mode 100644 web_widget_o2m_attachment_image_gallery/pyproject.toml create mode 100644 web_widget_o2m_attachment_image_gallery/readme/CONTRIBUTORS.md create mode 100644 web_widget_o2m_attachment_image_gallery/readme/DESCRIPTION.md create mode 100644 web_widget_o2m_attachment_image_gallery/readme/USAGE.md create mode 100644 web_widget_o2m_attachment_image_gallery/static/description/icon.png create mode 100644 web_widget_o2m_attachment_image_gallery/static/description/index.html create mode 100644 web_widget_o2m_attachment_image_gallery/static/src/js/o2m_attachment_image_gallery.esm.js create mode 100644 web_widget_o2m_attachment_image_gallery/static/src/xml/o2m_attachment_image_gallery.xml diff --git a/web_widget_o2m_attachment_image_gallery/README.rst b/web_widget_o2m_attachment_image_gallery/README.rst new file mode 100644 index 000000000000..c242650fc864 --- /dev/null +++ b/web_widget_o2m_attachment_image_gallery/README.rst @@ -0,0 +1,97 @@ +========================================== +Widget o2m Attachment Image Gallery Widget +========================================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:bdf4420a8c609da5fafebdebd86f0b54816ee401b89cfbc7dd02f0aae48bbd58 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github + :target: https://github.com/OCA/web/tree/18.0/web_widget_o2m_attachment_image_gallery + :alt: OCA/web +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/web-18-0/web-18-0-web_widget_o2m_attachment_image_gallery + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/web&target_branch=18.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module allows you to set up an image gallery in a view (such as a +Kanban view). + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +Example: +-------- + +.. code:: xml + + + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +------- + +* Tecnativa + +Contributors +------------ + +- `Tecnativa `__: + + - Víctor Martínez + +Maintainers +----------- + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +.. |maintainer-victoralmau| image:: https://github.com/victoralmau.png?size=40px + :target: https://github.com/victoralmau + :alt: victoralmau + +Current `maintainer `__: + +|maintainer-victoralmau| + +This module is part of the `OCA/web `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/web_widget_o2m_attachment_image_gallery/__init__.py b/web_widget_o2m_attachment_image_gallery/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/web_widget_o2m_attachment_image_gallery/__manifest__.py b/web_widget_o2m_attachment_image_gallery/__manifest__.py new file mode 100644 index 000000000000..212848bd2b65 --- /dev/null +++ b/web_widget_o2m_attachment_image_gallery/__manifest__.py @@ -0,0 +1,19 @@ +# Copyright 2026 Tecnativa - Víctor Martínez +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +{ + "name": "Widget o2m Attachment Image Gallery Widget", + "version": "18.0.1.0.0", + "license": "AGPL-3", + "author": "Tecnativa, Odoo Community Association (OCA)", + "website": "https://github.com/OCA/web", + "depends": ["web"], + "assets": { + "web.assets_backend": [ + "web_widget_o2m_attachment_image_gallery/static/src/**/*.js", + "web_widget_o2m_attachment_image_gallery/static/src/**/*.xml", + ], + }, + "installable": True, + "maintainers": ["victoralmau"], +} diff --git a/web_widget_o2m_attachment_image_gallery/i18n/web_widget_o2m_attachment_image_gallery.pot b/web_widget_o2m_attachment_image_gallery/i18n/web_widget_o2m_attachment_image_gallery.pot new file mode 100644 index 000000000000..e3530b4459f9 --- /dev/null +++ b/web_widget_o2m_attachment_image_gallery/i18n/web_widget_o2m_attachment_image_gallery.pot @@ -0,0 +1,15 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-04-20 11:18+0000\n" +"PO-Revision-Date: 2026-04-20 11:18+0000\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" diff --git a/web_widget_o2m_attachment_image_gallery/pyproject.toml b/web_widget_o2m_attachment_image_gallery/pyproject.toml new file mode 100644 index 000000000000..4231d0cccb3d --- /dev/null +++ b/web_widget_o2m_attachment_image_gallery/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/web_widget_o2m_attachment_image_gallery/readme/CONTRIBUTORS.md b/web_widget_o2m_attachment_image_gallery/readme/CONTRIBUTORS.md new file mode 100644 index 000000000000..ed67b081ec18 --- /dev/null +++ b/web_widget_o2m_attachment_image_gallery/readme/CONTRIBUTORS.md @@ -0,0 +1,2 @@ +- [Tecnativa](https://www.tecnativa.com): + - Víctor Martínez diff --git a/web_widget_o2m_attachment_image_gallery/readme/DESCRIPTION.md b/web_widget_o2m_attachment_image_gallery/readme/DESCRIPTION.md new file mode 100644 index 000000000000..cb8692db9746 --- /dev/null +++ b/web_widget_o2m_attachment_image_gallery/readme/DESCRIPTION.md @@ -0,0 +1 @@ +This module allows you to set up an image gallery in a view (such as a Kanban view). diff --git a/web_widget_o2m_attachment_image_gallery/readme/USAGE.md b/web_widget_o2m_attachment_image_gallery/readme/USAGE.md new file mode 100644 index 000000000000..0908cbd74a72 --- /dev/null +++ b/web_widget_o2m_attachment_image_gallery/readme/USAGE.md @@ -0,0 +1,5 @@ +## Example: + +``` xml + +``` diff --git a/web_widget_o2m_attachment_image_gallery/static/description/icon.png b/web_widget_o2m_attachment_image_gallery/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 zcmW++2RxMjAAjx~&dlBk9S+%}OXg)AGE&Cb*&}d0jUxM@u(PQx^-s)697TX`ehR4?GS^qbkof1cslKgkU)h65qZ9Oc=ml_0temigYLJfnz{IDzUf>bGs4N!v3=Z3jMq&A#7%rM5eQ#dc?k~! zVpnB`o+K7|Al`Q_U;eD$B zfJtP*jH`siUq~{KE)`jP2|#TUEFGRryE2`i0**z#*^6~AI|YzIWy$Cu#CSLW3q=GA z6`?GZymC;dCPk~rBS%eCb`5OLr;RUZ;D`}um=H)BfVIq%7VhiMr)_#G0N#zrNH|__ zc+blN2UAB0=617@>_u;MPHN;P;N#YoE=)R#i$k_`UAA>WWCcEVMh~L_ zj--gtp&|K1#58Yz*AHCTMziU1Jzt_jG0I@qAOHsk$2}yTmVkBp_eHuY$A9)>P6o~I z%aQ?!(GqeQ-Y+b0I(m9pwgi(IIZZzsbMv+9w{PFtd_<_(LA~0H(xz{=FhLB@(1&qHA5EJw1>>=%q2f&^X>IQ{!GJ4e9U z&KlB)z(84HmNgm2hg2C0>WM{E(DdPr+EeU_N@57;PC2&DmGFW_9kP&%?X4}+xWi)( z;)z%wI5>D4a*5XwD)P--sPkoY(a~WBw;E~AW`Yue4kFa^LM3X`8x|}ZUeMnqr}>kH zG%WWW>3ml$Yez?i%)2pbKPI7?5o?hydokgQyZsNEr{a|mLdt;X2TX(#B1j35xPnPW z*bMSSOauW>o;*=kO8ojw91VX!qoOQb)zHJ!odWB}d+*K?#sY_jqPdg{Sm2HdYzdEx zOGVPhVRTGPtv0o}RfVP;Nd(|CB)I;*t&QO8h zFfekr30S!-LHmV_Su-W+rEwYXJ^;6&3|L$mMC8*bQptyOo9;>Qb9Q9`ySe3%V$A*9 zeKEe+b0{#KWGp$F+tga)0RtI)nhMa-K@JS}2krK~n8vJ=Ngm?R!9G<~RyuU0d?nz# z-5EK$o(!F?hmX*2Yt6+coY`6jGbb7tF#6nHA zuKk=GGJ;ZwON1iAfG$E#Y7MnZVmrY|j0eVI(DN_MNFJmyZ|;w4tf@=CCDZ#5N_0K= z$;R~bbk?}TpfDjfB&aiQ$VA}s?P}xPERJG{kxk5~R`iRS(SK5d+Xs9swCozZISbnS zk!)I0>t=A<-^z(cmSFz3=jZ23u13X><0b)P)^1T_))Kr`e!-pb#q&J*Q`p+B6la%C zuVl&0duN<;uOsB3%T9Fp8t{ED108<+W(nOZd?gDnfNBC3>M8WE61$So|P zVvqH0SNtDTcsUdzaMDpT=Ty0pDHHNL@Z0w$Y`XO z2M-_r1S+GaH%pz#Uy0*w$Vdl=X=rQXEzO}d6J^R6zjM1u&c9vYLvLp?W7w(?np9x1 zE_0JSAJCPB%i7p*Wvg)pn5T`8k3-uR?*NT|J`eS#_#54p>!p(mLDvmc-3o0mX*mp_ zN*AeS<>#^-{S%W<*mz^!X$w_2dHWpcJ6^j64qFBft-o}o_Vx80o0>}Du;>kLts;$8 zC`7q$QI(dKYG`Wa8#wl@V4jVWBRGQ@1dr-hstpQL)Tl+aqVpGpbSfN>5i&QMXfiZ> zaA?T1VGe?rpQ@;+pkrVdd{klI&jVS@I5_iz!=UMpTsa~mBga?1r}aRBm1WS;TT*s0f0lY=JBl66Upy)-k4J}lh=P^8(SXk~0xW=T9v*B|gzIhN z>qsO7dFd~mgxAy4V?&)=5ieYq?zi?ZEoj)&2o)RLy=@hbCRcfT5jigwtQGE{L*8<@Yd{zg;CsL5mvzfDY}P-wos_6PfprFVaeqNE%h zKZhLtcQld;ZD+>=nqN~>GvROfueSzJD&BE*}XfU|H&(FssBqY=hPCt`d zH?@s2>I(|;fcW&YM6#V#!kUIP8$Nkdh0A(bEVj``-AAyYgwY~jB zT|I7Bf@%;7aL7Wf4dZ%VqF$eiaC38OV6oy3Z#TER2G+fOCd9Iaoy6aLYbPTN{XRPz z;U!V|vBf%H!}52L2gH_+j;`bTcQRXB+y9onc^wLm5wi3-Be}U>k_u>2Eg$=k!(l@I zcCg+flakT2Nej3i0yn+g+}%NYb?ta;R?(g5SnwsQ49U8Wng8d|{B+lyRcEDvR3+`O{zfmrmvFrL6acVP%yG98X zo&+VBg@px@i)%o?dG(`T;n*$S5*rnyiR#=wW}}GsAcfyQpE|>a{=$Hjg=-*_K;UtD z#z-)AXwSRY?OPefw^iI+ z)AXz#PfEjlwTes|_{sB?4(O@fg0AJ^g8gP}ex9Ucf*@_^J(s_5jJV}c)s$`Myn|Kd z$6>}#q^n{4vN@+Os$m7KV+`}c%4)4pv@06af4-x5#wj!KKb%caK{A&Y#Rfs z-po?Dcb1({W=6FKIUirH&(yg=*6aLCekcKwyfK^JN5{wcA3nhO(o}SK#!CINhI`-I z1)6&n7O&ZmyFMuNwvEic#IiOAwNkR=u5it{B9n2sAJV5pNhar=j5`*N!Na;c7g!l$ z3aYBqUkqqTJ=Re-;)s!EOeij=7SQZ3Hq}ZRds%IM*PtM$wV z@;rlc*NRK7i3y5BETSKuumEN`Xu_8GP1Ri=OKQ$@I^ko8>H6)4rjiG5{VBM>B|%`&&s^)jS|-_95&yc=GqjNo{zFkw%%HHhS~e=s zD#sfS+-?*t|J!+ozP6KvtOl!R)@@-z24}`9{QaVLD^9VCSR2b`b!KC#o;Ki<+wXB6 zx3&O0LOWcg4&rv4QG0)4yb}7BFSEg~=IR5#ZRj8kg}dS7_V&^%#Do==#`u zpy6{ox?jWuR(;pg+f@mT>#HGWHAJRRDDDv~@(IDw&R>9643kK#HN`!1vBJHnC+RM&yIh8{gG2q zA%e*U3|N0XSRa~oX-3EAneep)@{h2vvd3Xvy$7og(sayr@95+e6~Xvi1tUqnIxoIH zVWo*OwYElb#uyW{Imam6f2rGbjR!Y3`#gPqkv57dB6K^wRGxc9B(t|aYDGS=m$&S!NmCtrMMaUg(c zc2qC=2Z`EEFMW-me5B)24AqF*bV5Dr-M5ig(l-WPS%CgaPzs6p_gnCIvTJ=Y<6!gT zVt@AfYCzjjsMEGi=rDQHo0yc;HqoRNnNFeWZgcm?f;cp(6CNylj36DoL(?TS7eU#+ z7&mfr#y))+CJOXQKUMZ7QIdS9@#-}7y2K1{8)cCt0~-X0O!O?Qx#E4Og+;A2SjalQ zs7r?qn0H044=sDN$SRG$arw~n=+T_DNdSrarmu)V6@|?1-ZB#hRn`uilTGPJ@fqEy zGt(f0B+^JDP&f=r{#Y_wi#AVDf-y!RIXU^0jXsFpf>=Ji*TeqSY!H~AMbJdCGLhC) zn7Rx+sXw6uYj;WRYrLd^5IZq@6JI1C^YkgnedZEYy<&4(z%Q$5yv#Boo{AH8n$a zhb4Y3PWdr269&?V%uI$xMcUrMzl=;w<_nm*qr=c3Rl@i5wWB;e-`t7D&c-mcQl7x! zZWB`UGcw=Y2=}~wzrfLx=uet<;m3~=8I~ZRuzvMQUQdr+yTV|ATf1Uuomr__nDf=X zZ3WYJtHp_ri(}SQAPjv+Y+0=fH4krOP@S&=zZ-t1jW1o@}z;xk8 z(Nz1co&El^HK^NrhVHa-_;&88vTU>_J33=%{if;BEY*J#1n59=07jrGQ#IP>@u#3A z;!q+E1Rj3ZJ+!4bq9F8PXJ@yMgZL;>&gYA0%_Kbi8?S=XGM~dnQZQ!yBSgcZhY96H zrWnU;k)qy`rX&&xlDyA%(a1Hhi5CWkmg(`Gb%m(HKi-7Z!LKGRP_B8@`7&hdDy5n= z`OIxqxiVfX@OX1p(mQu>0Ai*v_cTMiw4qRt3~NBvr9oBy0)r>w3p~V0SCm=An6@3n)>@z!|o-$HvDK z|3D2ZMJkLE5loMKl6R^ez@Zz%S$&mbeoqH5`Bb){Ei21q&VP)hWS2tjShfFtGE+$z zzCR$P#uktu+#!w)cX!lWN1XU%K-r=s{|j?)Akf@q#3b#{6cZCuJ~gCxuMXRmI$nGtnH+-h z+GEi!*X=AP<|fG`1>MBdTb?28JYc=fGvAi2I<$B(rs$;eoJCyR6_bc~p!XR@O-+sD z=eH`-ye})I5ic1eL~TDmtfJ|8`0VJ*Yr=hNCd)G1p2MMz4C3^Mj?7;!w|Ly%JqmuW zlIEW^Ft%z?*|fpXda>Jr^1noFZEwFgVV%|*XhH@acv8rdGxeEX{M$(vG{Zw+x(ei@ zmfXb22}8-?Fi`vo-YVrTH*C?a8%M=Hv9MqVH7H^J$KsD?>!SFZ;ZsvnHr_gn=7acz z#W?0eCdVhVMWN12VV^$>WlQ?f;P^{(&pYTops|btm6aj>_Uz+hqpGwB)vWp0Cf5y< zft8-je~nn?W11plq}N)4A{l8I7$!ks_x$PXW-2XaRFswX_BnF{R#6YIwMhAgd5F9X zGmwdadS6(a^fjHtXg8=l?Rc0Sm%hk6E9!5cLVloEy4eh(=FwgP`)~I^5~pBEWo+F6 zSf2ncyMurJN91#cJTy_u8Y}@%!bq1RkGC~-bV@SXRd4F{R-*V`bS+6;W5vZ(&+I<9$;-V|eNfLa5n-6% z2(}&uGRF;p92eS*sE*oR$@pexaqr*meB)VhmIg@h{uzkk$9~qh#cHhw#>O%)b@+(| z^IQgqzuj~Sk(J;swEM-3TrJAPCq9k^^^`q{IItKBRXYe}e0Tdr=Huf7da3$l4PdpwWDop%^}n;dD#K4s#DYA8SHZ z&1!riV4W4R7R#C))JH1~axJ)RYnM$$lIR%6fIVA@zV{XVyx}C+a-Dt8Y9M)^KU0+H zR4IUb2CJ{Hg>CuaXtD50jB(_Tcx=Z$^WYu2u5kubqmwp%drJ6 z?Fo40g!Qd<-l=TQxqHEOuPX0;^z7iX?Ke^a%XT<13TA^5`4Xcw6D@Ur&VT&CUe0d} z1GjOVF1^L@>O)l@?bD~$wzgf(nxX1OGD8fEV?TdJcZc2KoUe|oP1#=$$7ee|xbY)A zDZq+cuTpc(fFdj^=!;{k03C69lMQ(|>uhRfRu%+!k&YOi-3|1QKB z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/web_widget_o2m_attachment_image_gallery/static/description/index.html b/web_widget_o2m_attachment_image_gallery/static/description/index.html new file mode 100644 index 000000000000..10b85efd3f1b --- /dev/null +++ b/web_widget_o2m_attachment_image_gallery/static/description/index.html @@ -0,0 +1,442 @@ + + + + + +Widget o2m Attachment Image Gallery Widget + + + + + + diff --git a/web_widget_o2m_attachment_image_gallery/static/src/js/o2m_attachment_image_gallery.esm.js b/web_widget_o2m_attachment_image_gallery/static/src/js/o2m_attachment_image_gallery.esm.js new file mode 100644 index 000000000000..a65b1264c96d --- /dev/null +++ b/web_widget_o2m_attachment_image_gallery/static/src/js/o2m_attachment_image_gallery.esm.js @@ -0,0 +1,54 @@ +import {Component, onWillStart, useState} from "@odoo/owl"; +import {registry} from "@web/core/registry"; +import {useFileViewer} from "@web/core/file_viewer/file_viewer_hook"; +import {useService} from "@web/core/utils/hooks"; + +export class O2mAttachmentImageGalleryField extends Component { + static template = + "web_widget_o2m_attachment_image_gallery.o2mAttachmentImageGalleryField"; + setup() { + this.orm = useService("orm"); + this.store = useService("mail.store"); + this.fileViewer = useFileViewer(); + this.state = useState({ + attachments: [], + }); + onWillStart(() => this._loadImages()); + } + + async _loadImages() { + const record = this.props.record; + if (!record || !record.data) { + this.state.attachments = []; + return; + } + const attachments = record.data[this.props.name].records; + this.state.attachments = attachments.map((att) => ({ + id: att.resId, + name: att.data.name, + mimetype: att.data.mimetype, + })); + } + openGallery = (index = 0) => { + this.state.index = index; + const files = this.state.attachments.map((att) => + this.store.Attachment.insert({ + id: att.id, + name: att.name, + filename: att.name, + mimetype: att.mimetype, + }) + ); + this.fileViewer.open(files[index], files); + }; +} +export const o2mAttachmentImageGalleryField = { + component: O2mAttachmentImageGalleryField, + relatedFields: [ + {name: "name", type: "char"}, + {name: "mimetype", type: "char"}, + ], +}; +registry + .category("fields") + .add("o2m_attachment_image_gallery", o2mAttachmentImageGalleryField); diff --git a/web_widget_o2m_attachment_image_gallery/static/src/xml/o2m_attachment_image_gallery.xml b/web_widget_o2m_attachment_image_gallery/static/src/xml/o2m_attachment_image_gallery.xml new file mode 100644 index 000000000000..7b383770cd1f --- /dev/null +++ b/web_widget_o2m_attachment_image_gallery/static/src/xml/o2m_attachment_image_gallery.xml @@ -0,0 +1,12 @@ + + + From 254704996b30f927ef8de7c27f349d4f1194322a Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Thu, 30 Apr 2026 09:13:11 +0000 Subject: [PATCH 04/11] [BOT] post-merge updates --- README.md | 2 +- web_favicon/README.rst | 8 ++++-- web_favicon/__manifest__.py | 2 +- web_favicon/static/description/index.html | 30 ++++++++++++++--------- 4 files changed, 26 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 58015aac5920..b5427a23eaac 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ addon | version | maintainers | summary [web_editor_disable_chatgpt](web_editor_disable_chatgpt/) | 18.0.1.0.0 | | Web Disable ChatGPT [web_environment_ribbon](web_environment_ribbon/) | 18.0.1.0.3 | | Web Environment Ribbon [web_excel_export_dynamic_expand](web_excel_export_dynamic_expand/) | 18.0.1.0.0 | | Export collapsed groups or the full tree, based on its view. -[web_favicon](web_favicon/) | 18.0.1.0.0 | | Allows to set a custom shortcut icon (aka favicon) +[web_favicon](web_favicon/) | 18.0.1.0.1 | | Allows to set a custom shortcut icon (aka favicon) [web_filter_header_button](web_filter_header_button/) | 18.0.1.0.0 | | Show selected filters as buttons in the control panel [web_form_banner](web_form_banner/) | 18.0.1.0.1 | | Web Form Banner [web_group_expand](web_group_expand/) | 18.0.1.0.1 | | Group Expand Buttons diff --git a/web_favicon/README.rst b/web_favicon/README.rst index 915a91a9a6f4..fdbc9b592c4a 100644 --- a/web_favicon/README.rst +++ b/web_favicon/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + ==================== Custom shortcut icon ==================== @@ -7,13 +11,13 @@ Custom shortcut icon !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:fa990988a68288b8264800bce0451c78b1223106dbcd4996b260a5e9743fc460 + !! source digest: sha256:298837fb4ce178618580cba6cfa0f6d5e1d3c41ef4d05ab89807f73255c1fd26 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status :alt: Beta -.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github diff --git a/web_favicon/__manifest__.py b/web_favicon/__manifest__.py index 4f55e4a7af8c..a0d7c9a31d57 100644 --- a/web_favicon/__manifest__.py +++ b/web_favicon/__manifest__.py @@ -5,7 +5,7 @@ { "name": "Custom shortcut icon", - "version": "18.0.1.0.0", + "version": "18.0.1.0.1", "author": "Therp BV, " "Tecnativa, " "OERP Canada," diff --git a/web_favicon/static/description/index.html b/web_favicon/static/description/index.html index fa620bc65c68..f274f76d1a9d 100644 --- a/web_favicon/static/description/index.html +++ b/web_favicon/static/description/index.html @@ -3,7 +3,7 @@ -Custom shortcut icon +README.rst -
    -

    Custom shortcut icon

    +
    + + +Odoo Community Association + +
    +

    Custom shortcut icon

    -

    Beta License: AGPL-3 OCA/web Translate me on Weblate Try me on Runboat

    +

    Beta License: AGPL-3 OCA/web Translate me on Weblate Try me on Runboat

    This module was written to allow you to customize your Odoo instance’s shortcut icon (aka favicon). This is useful for branding purposes, but also for integrators who have many different Odoo instances running and @@ -392,7 +397,7 @@

    Custom shortcut icon

    -

    Configuration

    +

    Configuration

    Upload your favicon (16x16, 32x32, 64x64 or “as big as possible”) on the company form. The file format would be ico, gif or png with 16x16, 32x32 or 64x64 pixels and 16 colors. Highers resolutions or colors support @@ -408,7 +413,7 @@

    Configuration

    “Administration / Settings”.

    -

    Known issues / Roadmap

    +

    Known issues / Roadmap

    • Allow to upload some big icon (preferrably SVG or the like) and generate all the icons from it
    • @@ -421,7 +426,7 @@

      Known issues / Roadmap

    -

    Bug Tracker

    +

    Bug Tracker

    Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed @@ -429,9 +434,9 @@

    Bug Tracker

    Do not contact contributors directly about support or help with technical issues.

    -

    Credits

    +

    Credits

    -

    Authors

    +

    Authors

    • Therp BV
    • Tecnativa
    • @@ -439,7 +444,7 @@

      Authors

    -

    Contributors

    +

    Contributors

    -

    Maintainers

    +

    Maintainers

    This module is maintained by the OCA.

    Odoo Community Association @@ -461,5 +466,6 @@

    Maintainers

    +
    From e7d4dce22e8be504154149cdb2d4a5a03e222bb8 Mon Sep 17 00:00:00 2001 From: mymage Date: Thu, 30 Apr 2026 08:18:59 +0000 Subject: [PATCH 05/11] Translated using Weblate (Italian) Currently translated at 100.0% (7 of 7 strings) Translation: web-18.0/web-18.0-web_theme_classic Translate-URL: https://translation.odoo-community.org/projects/web-18-0/web-18-0-web_theme_classic/it/ --- web_theme_classic/i18n/it.po | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/web_theme_classic/i18n/it.po b/web_theme_classic/i18n/it.po index ec4b00c38cfc..17739385a8f7 100644 --- a/web_theme_classic/i18n/it.po +++ b/web_theme_classic/i18n/it.po @@ -5,34 +5,36 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 17.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2026-04-30 09:36+0000\n" +"Last-Translator: mymage \n" "Language-Team: none\n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.15.2\n" #. module: web_theme_classic #. odoo-javascript #: code:addons/web_theme_classic/static/src/js/switch_theme.esm.js:0 msgid "Classic Theme" -msgstr "" +msgstr "Tema classico" #. module: web_theme_classic #: model:ir.model.fields,field_description:web_theme_classic.field_res_users__persistent_classic_theme msgid "Classic Theme Persistent" -msgstr "" +msgstr "Tema classico persistente" #. module: web_theme_classic #: model:ir.model,name:web_theme_classic.model_ir_http msgid "HTTP Routing" -msgstr "" +msgstr "Instradamento HTTP" #. module: web_theme_classic #: model:ir.model.fields,field_description:web_theme_classic.field_res_users_settings__persistent_classic_theme msgid "Persistent Classic Theme" -msgstr "" +msgstr "Tema classico persistente" #. module: web_theme_classic #: model:ir.model.fields,help:web_theme_classic.field_res_users__persistent_classic_theme @@ -42,13 +44,19 @@ msgid "" "menu in the navbar to enable Classic Mode on a specific session/device \n" "The toggle is not visible while Persistent Classic Theme is enabled" msgstr "" +"Questa opzione abilita il tema classico sull'account di questo utente su " +"tutti i dispositivi.\n" +"Disabilitandola, si potrà utilizzare l'interruttore nel pulsante menu " +"dell'utente nella barra di navigazione per abilitare la modalità classica su " +"una sessione/dispositivo specifici.\n" +"L'interruttore non è visibile quando il tema classico persistente è abilitato" #. module: web_theme_classic #: model:ir.model,name:web_theme_classic.model_res_users msgid "User" -msgstr "" +msgstr "Utente" #. module: web_theme_classic #: model:ir.model,name:web_theme_classic.model_res_users_settings msgid "User Settings" -msgstr "" +msgstr "Impostazioni utente" From 9e19e9771cb9664b52a13a82ce171289e7af80b0 Mon Sep 17 00:00:00 2001 From: oca-ci Date: Fri, 1 May 2026 08:55:12 +0000 Subject: [PATCH 06/11] [UPD] Update web_widget_o2m_attachment_image_gallery.pot --- .../i18n/web_widget_o2m_attachment_image_gallery.pot | 2 -- 1 file changed, 2 deletions(-) diff --git a/web_widget_o2m_attachment_image_gallery/i18n/web_widget_o2m_attachment_image_gallery.pot b/web_widget_o2m_attachment_image_gallery/i18n/web_widget_o2m_attachment_image_gallery.pot index e3530b4459f9..aadee09bfeda 100644 --- a/web_widget_o2m_attachment_image_gallery/i18n/web_widget_o2m_attachment_image_gallery.pot +++ b/web_widget_o2m_attachment_image_gallery/i18n/web_widget_o2m_attachment_image_gallery.pot @@ -5,8 +5,6 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 18.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-04-20 11:18+0000\n" -"PO-Revision-Date: 2026-04-20 11:18+0000\n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" From f6d5a7d9e2576dd0954a835e46f37bd324d2c4d7 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Fri, 1 May 2026 09:02:33 +0000 Subject: [PATCH 07/11] [BOT] post-merge updates --- README.md | 1 + setup/_metapackage/pyproject.toml | 3 +- .../README.rst | 12 +++++--- .../static/description/index.html | 30 +++++++++++-------- 4 files changed, 29 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index b5427a23eaac..f9a348778e9f 100644 --- a/README.md +++ b/README.md @@ -70,6 +70,7 @@ addon | version | maintainers | summary [web_widget_dropdown_dynamic](web_widget_dropdown_dynamic/) | 18.0.2.0.0 | | This module adds support for dynamic dropdown widget [web_widget_mpld3_chart](web_widget_mpld3_chart/) | 18.0.1.0.0 | JordiBForgeFlow ThiagoMForgeFlow | This widget allows to display charts using MPLD3 library. [web_widget_numeric_step](web_widget_numeric_step/) | 18.0.1.0.2 | rafaelbn yajo | Web Widget Numeric Step +[web_widget_o2m_attachment_image_gallery](web_widget_o2m_attachment_image_gallery/) | 18.0.1.0.0 | victoralmau | Widget o2m Attachment Image Gallery Widget [web_widget_one2many_tree_line_duplicate](web_widget_one2many_tree_line_duplicate/) | 18.0.1.0.1 | | Web Widget One2many Tree Line Duplicate [web_widget_open_tab](web_widget_open_tab/) | 18.0.1.0.0 | | Allow to open record from trees on new tab from tree views [web_widget_popover](web_widget_popover/) | 18.0.1.0.0 | ivantodorovich | Render an icon that displays the field content in a popover diff --git a/setup/_metapackage/pyproject.toml b/setup/_metapackage/pyproject.toml index 3ec909679fff..763993242380 100644 --- a/setup/_metapackage/pyproject.toml +++ b/setup/_metapackage/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "odoo-addons-oca-web" -version = "18.0.20260224.0" +version = "18.0.20260501.0" dependencies = [ "odoo-addon-web_calendar_slot_duration==18.0.*", "odoo-addon-web_chatter_position==18.0.*", @@ -51,6 +51,7 @@ dependencies = [ "odoo-addon-web_widget_dropdown_dynamic==18.0.*", "odoo-addon-web_widget_mpld3_chart==18.0.*", "odoo-addon-web_widget_numeric_step==18.0.*", + "odoo-addon-web_widget_o2m_attachment_image_gallery==18.0.*", "odoo-addon-web_widget_one2many_tree_line_duplicate==18.0.*", "odoo-addon-web_widget_open_tab==18.0.*", "odoo-addon-web_widget_popover==18.0.*", diff --git a/web_widget_o2m_attachment_image_gallery/README.rst b/web_widget_o2m_attachment_image_gallery/README.rst index c242650fc864..09fbf93ca23f 100644 --- a/web_widget_o2m_attachment_image_gallery/README.rst +++ b/web_widget_o2m_attachment_image_gallery/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + ========================================== Widget o2m Attachment Image Gallery Widget ========================================== @@ -7,13 +11,13 @@ Widget o2m Attachment Image Gallery Widget !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:bdf4420a8c609da5fafebdebd86f0b54816ee401b89cfbc7dd02f0aae48bbd58 + !! source digest: sha256:ec29f4baf1de38486b9426d66744f784163b4682941a4b004ce9b33bc524ce29 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status :alt: Beta -.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github @@ -67,9 +71,9 @@ Authors Contributors ------------ -- `Tecnativa `__: +- `Tecnativa `__: - - Víctor Martínez + - Víctor Martínez Maintainers ----------- diff --git a/web_widget_o2m_attachment_image_gallery/static/description/index.html b/web_widget_o2m_attachment_image_gallery/static/description/index.html index 10b85efd3f1b..8562ee564a65 100644 --- a/web_widget_o2m_attachment_image_gallery/static/description/index.html +++ b/web_widget_o2m_attachment_image_gallery/static/description/index.html @@ -3,7 +3,7 @@ -Widget o2m Attachment Image Gallery Widget +README.rst - From 7634cc362ef4e3526ca9e0bb5b462ddbd87f8748 Mon Sep 17 00:00:00 2001 From: mymage Date: Mon, 4 May 2026 07:50:04 +0000 Subject: [PATCH 08/11] Added translation using Weblate (Italian) --- web_widget_o2m_attachment_image_gallery/i18n/it.po | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 web_widget_o2m_attachment_image_gallery/i18n/it.po diff --git a/web_widget_o2m_attachment_image_gallery/i18n/it.po b/web_widget_o2m_attachment_image_gallery/i18n/it.po new file mode 100644 index 000000000000..c0d5085374bd --- /dev/null +++ b/web_widget_o2m_attachment_image_gallery/i18n/it.po @@ -0,0 +1,14 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" From 846ce0e9a2952c8dce2c707e1e08425e8fe54cb8 Mon Sep 17 00:00:00 2001 From: oca-ci Date: Wed, 6 May 2026 14:04:54 +0000 Subject: [PATCH 09/11] [UPD] Update web_form_banner.pot --- web_form_banner/i18n/web_form_banner.pot | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/web_form_banner/i18n/web_form_banner.pot b/web_form_banner/i18n/web_form_banner.pot index 86594a656c0c..77d0b123972e 100644 --- a/web_form_banner/i18n/web_form_banner.pot +++ b/web_form_banner/i18n/web_form_banner.pot @@ -32,13 +32,6 @@ msgid "" "(dict(env.context))." msgstr "" -#. module: web_form_banner -#: model_terms:ir.ui.view,arch_db:web_form_banner.view_web_form_banner_rule_form -msgid "" -"current_id: Integer id of the record being edited, or False if the form\n" -" is creating a new record." -msgstr "" - #. module: web_form_banner #: model_terms:ir.ui.view,arch_db:web_form_banner.view_web_form_banner_rule_form msgid "" @@ -81,6 +74,13 @@ msgstr "" msgid "record: Current record (the form's record)." msgstr "" +#. module: web_form_banner +#: model_terms:ir.ui.view,arch_db:web_form_banner.view_web_form_banner_rule_form +msgid "" +"record_id: Integer id of the record being edited, or False if the form\n" +" is creating a new record." +msgstr "" + #. module: web_form_banner #: model_terms:ir.ui.view,arch_db:web_form_banner.view_web_form_banner_rule_form msgid "time, datetime: Standard Python time/datetime modules." From 4ae1c0ae8e8a7e57f03b4756756d120ee2ae8596 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Wed, 6 May 2026 14:12:47 +0000 Subject: [PATCH 10/11] [BOT] post-merge updates --- README.md | 2 +- web_form_banner/README.rst | 2 +- web_form_banner/__manifest__.py | 2 +- web_form_banner/static/description/index.html | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index f9a348778e9f..3b164140b410 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ addon | version | maintainers | summary [web_excel_export_dynamic_expand](web_excel_export_dynamic_expand/) | 18.0.1.0.0 | | Export collapsed groups or the full tree, based on its view. [web_favicon](web_favicon/) | 18.0.1.0.1 | | Allows to set a custom shortcut icon (aka favicon) [web_filter_header_button](web_filter_header_button/) | 18.0.1.0.0 | | Show selected filters as buttons in the control panel -[web_form_banner](web_form_banner/) | 18.0.1.0.1 | | Web Form Banner +[web_form_banner](web_form_banner/) | 18.0.1.1.0 | | Web Form Banner [web_group_expand](web_group_expand/) | 18.0.1.0.1 | | Group Expand Buttons [web_ir_actions_act_multi](web_ir_actions_act_multi/) | 18.0.1.0.0 | | Enables triggering of more than one action on ActionManager [web_ir_actions_act_window_message](web_ir_actions_act_window_message/) | 18.0.1.0.1 | | Show a message box to users diff --git a/web_form_banner/README.rst b/web_form_banner/README.rst index 0475d62dffa7..94b6c0ce6ec4 100644 --- a/web_form_banner/README.rst +++ b/web_form_banner/README.rst @@ -11,7 +11,7 @@ Web Form Banner !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:e717dbf8e121cc9ae1a93ad095f7d6a3d3a0219dbbb41e7292c39b58cb2eb653 + !! source digest: sha256:d5dd848e3f2205d7a480f4606bad02c27855e9a060c2593c209f79dbdfa14a0d !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/web_form_banner/__manifest__.py b/web_form_banner/__manifest__.py index b3e4647c0d58..1b0c230ea546 100644 --- a/web_form_banner/__manifest__.py +++ b/web_form_banner/__manifest__.py @@ -2,7 +2,7 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). { "name": "Web Form Banner", - "version": "18.0.1.0.1", + "version": "18.0.1.1.0", "category": "Web", "author": "Quartile, Odoo Community Association (OCA)", "website": "https://github.com/OCA/web", diff --git a/web_form_banner/static/description/index.html b/web_form_banner/static/description/index.html index 5cca12293168..ac269e13984c 100644 --- a/web_form_banner/static/description/index.html +++ b/web_form_banner/static/description/index.html @@ -372,7 +372,7 @@

    Web Form Banner

    !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:e717dbf8e121cc9ae1a93ad095f7d6a3d3a0219dbbb41e7292c39b58cb2eb653 +!! source digest: sha256:d5dd848e3f2205d7a480f4606bad02c27855e9a060c2593c209f79dbdfa14a0d !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

    Beta License: AGPL-3 OCA/web Translate me on Weblate Try me on Runboat

    The module adds configurable banners for backend form views. Define From 5541e81453d72c0fac614c66fe99ec1804c9c599 Mon Sep 17 00:00:00 2001 From: Weblate Date: Wed, 6 May 2026 14:12:58 +0000 Subject: [PATCH 11/11] Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: web-18.0/web-18.0-web_form_banner Translate-URL: https://translation.odoo-community.org/projects/web-18-0/web-18-0-web_form_banner/ --- web_form_banner/i18n/it.po | 85 ++++++++++++++++++++++---------------- web_form_banner/i18n/ja.po | 16 +++---- 2 files changed, 57 insertions(+), 44 deletions(-) diff --git a/web_form_banner/i18n/it.po b/web_form_banner/i18n/it.po index dacbb4b7fd3a..012f98d51ec8 100644 --- a/web_form_banner/i18n/it.po +++ b/web_form_banner/i18n/it.po @@ -33,21 +33,11 @@ msgstr "" #. module: web_form_banner #: model_terms:ir.ui.view,arch_db:web_form_banner.view_web_form_banner_rule_form msgid "" -"ctx: Copy of the current context " -"(dict(env.context))." +"ctx: Copy of the current context (dict(env.context))." msgstr "" -"ctx: Copia del contesto attuale " -"(dict(env.context))." - -#. module: web_form_banner -#: model_terms:ir.ui.view,arch_db:web_form_banner.view_web_form_banner_rule_form -msgid "" -"current_id: Integer id of the record being edited, or False if the form\n" -" is creating a new record." -msgstr "" -"current_id: ID intero del record in modifica o False se il modulo\n" -" sta creando un nuovo rerord." +"ctx: Copia del contesto attuale (dict(env.context))." #. module: web_form_banner #: model_terms:ir.ui.view,arch_db:web_form_banner.view_web_form_banner_rule_form @@ -55,16 +45,20 @@ msgid "" "dateutil: { \"parser\": dateutil.parser, " "\"relativedelta\": dateutil.relativedelta }" msgstr "" -"dateutil: { \"parser\": dateutil.parser, \"relativedelta\"" -": dateutil.relativedelta }" +"dateutil: { \"parser\": dateutil.parser, " +"\"relativedelta\": dateutil.relativedelta }" #. module: web_form_banner #: model_terms:ir.ui.view,arch_db:web_form_banner.view_web_form_banner_rule_form msgid "" -"draft: The persisted field values of the ORM record (before applying the current\n" -" form's unsaved changes) + the current unsaved changes on trigger fields.\n" -" Should be used instead of record when your rule is triggered dynamically by an\n" -" update to a trigger field. It doesn't include any values from complex fields\n" +"draft: The persisted field values of the ORM record (before " +"applying the current\n" +" form's unsaved changes) + the current " +"unsaved changes on trigger fields.\n" +" Should be used instead of record when your rule is triggered dynamically by an\n" +" update to a trigger field. It doesn't " +"include any values from complex fields\n" " (one2many/reference, etc)." msgstr "" "bozza: i valori dei campi persistenti del record ORM (prima " @@ -85,32 +79,39 @@ msgstr "env: ambiente Odoo per accesso ORM." #. module: web_form_banner #: model_terms:ir.ui.view,arch_db:web_form_banner.view_web_form_banner_rule_form msgid "" -"float_compare, float_is_zero, " -"float_round: Odoo float utils for precision-safe " -"comparisons/rounding." +"float_compare, float_is_zero, float_round: Odoo float utils for precision-safe comparisons/rounding." msgstr "" -"float_compare, float_is_zero, " -"float_round: utilità decimali Odoo per comparazione sicura / " -"arrotondamento." +"float_compare, float_is_zero, float_round: utilità decimali Odoo per comparazione sicura / arrotondamento." #. module: web_form_banner #: model_terms:ir.ui.view,arch_db:web_form_banner.view_web_form_banner_rule_form msgid "" -"model: Shortcut to the current model " -"(env[record._name])." +"model: Shortcut to the current model (env[record._name])." msgstr "" -"model: scorciatoia al modello attuale (env[record._name]" -")." +"model: scorciatoia al modello attuale (env[record._name])." #. module: web_form_banner #: model_terms:ir.ui.view,arch_db:web_form_banner.view_web_form_banner_rule_form msgid "record: Current record (the form's record)." msgstr "record: record attuale (il record della maschera)." +#. module: web_form_banner +#: model_terms:ir.ui.view,arch_db:web_form_banner.view_web_form_banner_rule_form +msgid "" +"record_id: Integer id of the record being edited, or " +"False if the form\n" +" is creating a new record." +msgstr "" + #. module: web_form_banner #: model_terms:ir.ui.view,arch_db:web_form_banner.view_web_form_banner_rule_form msgid "time, datetime: Standard Python time/datetime modules." -msgstr "time, datetime: moduli orario/dataoraraio Python standard." +msgstr "" +"time, datetime: moduli orario/dataoraraio Python standard." #. module: web_form_banner #: model_terms:ir.ui.view,arch_db:web_form_banner.view_web_form_banner_rule_form @@ -150,7 +151,8 @@ msgstr "In archivio" #. module: web_form_banner #: model_terms:ir.ui.view,arch_db:web_form_banner.view_web_form_banner_rule_form msgid "Available evaluation context variables are as follows:" -msgstr "Le valutazioni delle variabili di contesto disponibili sono come segue:" +msgstr "" +"Le valutazioni delle variabili di contesto disponibili sono come segue:" #. module: web_form_banner #: model:ir.model,name:web_form_banner.model_base @@ -316,12 +318,13 @@ msgstr "Posizione" #: model:ir.model.fields,help:web_form_banner.field_web_form_banner_rule__message_value_code msgid "" "Python expression evaluated server-side. Must return a dict.\n" -"Keys: visible(bool, default True), severity(str), values(dict for ${...} in \n" +"Keys: visible(bool, default True), severity(str), values(dict for ${...} " +"in \n" "message), and/or html(str) to override template rendering." msgstr "" "Espressione Python valutata lato server. Deve restituire un dizionario.\n" -"Chiavi: visible(bool, predefinito True), severity(str), values(dict per " -"${...} in\n" +"Chiavi: visible(bool, predefinito True), severity(str), values(dict per $" +"{...} in\n" "message) e/o html(str) per sovrascrivere il rendering del template." #. module: web_form_banner @@ -392,7 +395,8 @@ msgid "" " domain += [(\"id\", \"<\", record_id)]\n" "last = model.search(domain, order=\"date_order desc, id desc\", limit=1)\n" "if last:\n" -" html = \"<strong>Previous order:</strong> <a href='%s'>%s</a>\" % (url_for(last), last.name)\n" +" html = \"<strong>Previous order:</strong> <a href='%s'>" +"%s</a>\" % (url_for(last), last.name)\n" " result = {\"visible\": True, \"html\": html}\n" "else:\n" " result = {\"visible\": False}" @@ -417,3 +421,12 @@ msgstr "es. Attenzione su clienti pericolosi" #: model_terms:ir.ui.view,arch_db:web_form_banner.view_web_form_banner_rule_tree msgid "return {'visible': True, 'values': {'title': '...'}}" msgstr "return {'visible': True, 'values': {'title': '...'}}" + +#~ msgid "" +#~ "current_id: Integer id of the record being edited, or " +#~ "False if the form\n" +#~ " is creating a new record." +#~ msgstr "" +#~ "current_id: ID intero del record in modifica o False se il modulo\n" +#~ " sta creando un nuovo rerord." diff --git a/web_form_banner/i18n/ja.po b/web_form_banner/i18n/ja.po index 4e85c5bfbbbe..f40b8a47a29b 100644 --- a/web_form_banner/i18n/ja.po +++ b/web_form_banner/i18n/ja.po @@ -35,14 +35,6 @@ msgid "" "code>)." msgstr "" -#. module: web_form_banner -#: model_terms:ir.ui.view,arch_db:web_form_banner.view_web_form_banner_rule_form -msgid "" -"current_id: Integer id of the record being edited, or " -"False if the form\n" -" is creating a new record." -msgstr "" - #. module: web_form_banner #: model_terms:ir.ui.view,arch_db:web_form_banner.view_web_form_banner_rule_form msgid "" @@ -88,6 +80,14 @@ msgstr "" msgid "record: Current record (the form's record)." msgstr "" +#. module: web_form_banner +#: model_terms:ir.ui.view,arch_db:web_form_banner.view_web_form_banner_rule_form +msgid "" +"record_id: Integer id of the record being edited, or " +"False if the form\n" +" is creating a new record." +msgstr "" + #. module: web_form_banner #: model_terms:ir.ui.view,arch_db:web_form_banner.view_web_form_banner_rule_form msgid "time, datetime: Standard Python time/datetime modules."