From 1a575e56cd04e083ecf90c53a706eff3a54105ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kh=C3=B4i=20=28Ki=C3=AAn=20Kim=29?= Date: Wed, 4 Dec 2024 12:06:37 +0700 Subject: [PATCH 1/4] [MOV] product_template_tags_code: product_template_tags_code becomes product_tags_code --- product_tags_code/README.rst | 99 ++++ product_tags_code/__init__.py | 1 + product_tags_code/__manifest__.py | 13 + product_tags_code/i18n/es.po | 47 ++ product_tags_code/i18n/it.po | 47 ++ product_tags_code/i18n/product_tags_code.pot | 44 ++ product_tags_code/models/__init__.py | 1 + product_tags_code/models/product_tag.py | 35 ++ product_tags_code/pyproject.toml | 3 + product_tags_code/readme/CONFIGURE.md | 4 + product_tags_code/readme/CONTRIBUTORS.md | 6 + product_tags_code/readme/CREDITS.md | 3 + product_tags_code/readme/DESCRIPTION.md | 1 + product_tags_code/static/description/icon.png | Bin 0 -> 9455 bytes .../static/description/index.html | 447 ++++++++++++++++++ product_tags_code/tests/__init__.py | 4 + .../tests/test_product_tags_code.py | 46 ++ product_tags_code/views/product_tag_views.xml | 24 + 18 files changed, 825 insertions(+) create mode 100644 product_tags_code/README.rst create mode 100644 product_tags_code/__init__.py create mode 100644 product_tags_code/__manifest__.py create mode 100644 product_tags_code/i18n/es.po create mode 100644 product_tags_code/i18n/it.po create mode 100644 product_tags_code/i18n/product_tags_code.pot create mode 100644 product_tags_code/models/__init__.py create mode 100644 product_tags_code/models/product_tag.py create mode 100644 product_tags_code/pyproject.toml create mode 100644 product_tags_code/readme/CONFIGURE.md create mode 100644 product_tags_code/readme/CONTRIBUTORS.md create mode 100644 product_tags_code/readme/CREDITS.md create mode 100644 product_tags_code/readme/DESCRIPTION.md create mode 100644 product_tags_code/static/description/icon.png create mode 100644 product_tags_code/static/description/index.html create mode 100644 product_tags_code/tests/__init__.py create mode 100644 product_tags_code/tests/test_product_tags_code.py create mode 100644 product_tags_code/views/product_tag_views.xml diff --git a/product_tags_code/README.rst b/product_tags_code/README.rst new file mode 100644 index 00000000000..3c7bfe556ec --- /dev/null +++ b/product_tags_code/README.rst @@ -0,0 +1,99 @@ +================= +Product Tags Code +================= + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:9f262329aa57825a999684e47eb384f4421d82420f6de9a54c2e46b8069517e9 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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%2Fproduct--attribute-lightgray.png?logo=github + :target: https://github.com/OCA/product-attribute/tree/18.0/product_tags_code + :alt: OCA/product-attribute +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/product-attribute-18-0/product-attribute-18-0-product_tags_code + :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/product-attribute&target_branch=18.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +Allows to reference tag records trough a unique code. + +**Table of contents** + +.. contents:: + :local: + +Configuration +============= + +To configure this module, you need to: + +1. Go to the product form view. +2. Create and edit tags using the form view + +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 +------- + +* Camptocamp SA + +Contributors +------------ + +- Thomas Nowicki + +- Simone Orsi + +- [Trobz] (https://trobz.com/): + + - Dung Tran + - Khoi (Kien Kim) + +Other credits +------------- + +The migration of this module from 14.0 to 18.0 was financially supported +by: + +- Camptocamp + +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. + +This module is part of the `OCA/product-attribute `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/product_tags_code/__init__.py b/product_tags_code/__init__.py new file mode 100644 index 00000000000..0650744f6bc --- /dev/null +++ b/product_tags_code/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/product_tags_code/__manifest__.py b/product_tags_code/__manifest__.py new file mode 100644 index 00000000000..cbade93749a --- /dev/null +++ b/product_tags_code/__manifest__.py @@ -0,0 +1,13 @@ +# Copyright 2020 Camptocamp +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +{ + "name": "Product Tags Code", + "summary": "This addon allow to add code on products tags", + "version": "18.0.1.0.0", + "license": "AGPL-3", + "author": "Camptocamp SA, Odoo Community Association (OCA)", + "website": "https://github.com/OCA/product-attribute", + "depends": ["product"], + "data": ["views/product_tag_views.xml"], +} diff --git a/product_tags_code/i18n/es.po b/product_tags_code/i18n/es.po new file mode 100644 index 00000000000..cc8ee6b09b5 --- /dev/null +++ b/product_tags_code/i18n/es.po @@ -0,0 +1,47 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_template_tags_code +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 13.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2024-01-15 16:36+0000\n" +"Last-Translator: Ivorra78 \n" +"Language-Team: none\n" +"Language: es\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 4.17\n" + +#. module: product_template_tags_code +#: model:ir.model.fields,field_description:product_template_tags_code.field_product_template_tag__code +msgid "Code" +msgstr "Código" + +#. module: product_template_tags_code +#: model:ir.model.fields,field_description:product_template_tags_code.field_product_template_tag__display_name +msgid "Display Name" +msgstr "Mostrar Nombre" + +#. module: product_template_tags_code +#: model:ir.model.fields,field_description:product_template_tags_code.field_product_template_tag__id +msgid "ID" +msgstr "ID" + +#. module: product_template_tags_code +#: model:ir.model.fields,field_description:product_template_tags_code.field_product_template_tag____last_update +msgid "Last Modified on" +msgstr "Última Modificación el" + +#. module: product_template_tags_code +#: model:ir.model,name:product_template_tags_code.model_product_template_tag +msgid "Product Tag" +msgstr "Etiqueta de producto" + +#. module: product_template_tags_code +#: model:ir.model.constraint,message:product_template_tags_code.constraint_product_template_tag_code_uniq +msgid "Product template tag code already exists" +msgstr "El código de etiqueta de la plantilla de producto ya existe" diff --git a/product_tags_code/i18n/it.po b/product_tags_code/i18n/it.po new file mode 100644 index 00000000000..f3e896dec53 --- /dev/null +++ b/product_tags_code/i18n/it.po @@ -0,0 +1,47 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_template_tags_code +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2023-11-06 08:37+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 4.17\n" + +#. module: product_template_tags_code +#: model:ir.model.fields,field_description:product_template_tags_code.field_product_template_tag__code +msgid "Code" +msgstr "Codice" + +#. module: product_template_tags_code +#: model:ir.model.fields,field_description:product_template_tags_code.field_product_template_tag__display_name +msgid "Display Name" +msgstr "Nome visualizzato" + +#. module: product_template_tags_code +#: model:ir.model.fields,field_description:product_template_tags_code.field_product_template_tag__id +msgid "ID" +msgstr "ID" + +#. module: product_template_tags_code +#: model:ir.model.fields,field_description:product_template_tags_code.field_product_template_tag____last_update +msgid "Last Modified on" +msgstr "Ultima modifica il" + +#. module: product_template_tags_code +#: model:ir.model,name:product_template_tags_code.model_product_template_tag +msgid "Product Tag" +msgstr "Etichetta prodotto" + +#. module: product_template_tags_code +#: model:ir.model.constraint,message:product_template_tags_code.constraint_product_template_tag_code_uniq +msgid "Product template tag code already exists" +msgstr "Codice etichetta modello prodotto già esistente" diff --git a/product_tags_code/i18n/product_tags_code.pot b/product_tags_code/i18n/product_tags_code.pot new file mode 100644 index 00000000000..74dc1626e1d --- /dev/null +++ b/product_tags_code/i18n/product_tags_code.pot @@ -0,0 +1,44 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_template_tags_code +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \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" + +#. module: product_template_tags_code +#: model:ir.model.fields,field_description:product_template_tags_code.field_product_template_tag__code +msgid "Code" +msgstr "" + +#. module: product_template_tags_code +#: model:ir.model.fields,field_description:product_template_tags_code.field_product_template_tag__display_name +msgid "Display Name" +msgstr "" + +#. module: product_template_tags_code +#: model:ir.model.fields,field_description:product_template_tags_code.field_product_template_tag__id +msgid "ID" +msgstr "" + +#. module: product_template_tags_code +#: model:ir.model.fields,field_description:product_template_tags_code.field_product_template_tag____last_update +msgid "Last Modified on" +msgstr "" + +#. module: product_template_tags_code +#: model:ir.model,name:product_template_tags_code.model_product_template_tag +msgid "Product Tag" +msgstr "" + +#. module: product_template_tags_code +#: model:ir.model.constraint,message:product_template_tags_code.constraint_product_template_tag_code_uniq +msgid "Product template tag code already exists" +msgstr "" diff --git a/product_tags_code/models/__init__.py b/product_tags_code/models/__init__.py new file mode 100644 index 00000000000..9eeecb86d32 --- /dev/null +++ b/product_tags_code/models/__init__.py @@ -0,0 +1 @@ +from . import product_tag diff --git a/product_tags_code/models/product_tag.py b/product_tags_code/models/product_tag.py new file mode 100644 index 00000000000..0f3ea6fa6c8 --- /dev/null +++ b/product_tags_code/models/product_tag.py @@ -0,0 +1,35 @@ +# Copyright 2020 Camptocamp +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import api, fields, models + + +class ProductTag(models.Model): + _inherit = "product.tag" + + code = fields.Char( + compute="_compute_code", + readonly=False, + inverse="_inverse_code", + store=True, + ) + + _sql_constraints = [ + ( + "code_uniq", + "unique(code)", + "Product template tag code already exists", + ) + ] + + @api.depends("name", "code") + def _compute_code(self): + for rec in self: + if rec.name and rec.name.strip(): + rec.code = self.env["ir.http"]._slugify(rec.name) + else: + rec.code = "" + + def _inverse_code(self): + for rec in self: + rec.code = self.env["ir.http"]._slugify(rec.code) diff --git a/product_tags_code/pyproject.toml b/product_tags_code/pyproject.toml new file mode 100644 index 00000000000..4231d0cccb3 --- /dev/null +++ b/product_tags_code/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/product_tags_code/readme/CONFIGURE.md b/product_tags_code/readme/CONFIGURE.md new file mode 100644 index 00000000000..626c16a4866 --- /dev/null +++ b/product_tags_code/readme/CONFIGURE.md @@ -0,0 +1,4 @@ +To configure this module, you need to: + +1. Go to the product form view. +2. Create and edit tags using the form view diff --git a/product_tags_code/readme/CONTRIBUTORS.md b/product_tags_code/readme/CONTRIBUTORS.md new file mode 100644 index 00000000000..5cb808664d5 --- /dev/null +++ b/product_tags_code/readme/CONTRIBUTORS.md @@ -0,0 +1,6 @@ +- Thomas Nowicki \<\> +- Simone Orsi \<\> + +- [Trobz] (https://trobz.com/): + - Dung Tran \<\> + - Khoi (Kien Kim) \<\> diff --git a/product_tags_code/readme/CREDITS.md b/product_tags_code/readme/CREDITS.md new file mode 100644 index 00000000000..efcd44035e1 --- /dev/null +++ b/product_tags_code/readme/CREDITS.md @@ -0,0 +1,3 @@ +The migration of this module from 14.0 to 18.0 was financially supported by: + +- Camptocamp diff --git a/product_tags_code/readme/DESCRIPTION.md b/product_tags_code/readme/DESCRIPTION.md new file mode 100644 index 00000000000..07c848248b1 --- /dev/null +++ b/product_tags_code/readme/DESCRIPTION.md @@ -0,0 +1 @@ +Allows to reference tag records trough a unique code. diff --git a/product_tags_code/static/description/icon.png b/product_tags_code/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/product_tags_code/static/description/index.html b/product_tags_code/static/description/index.html new file mode 100644 index 00000000000..9634c933966 --- /dev/null +++ b/product_tags_code/static/description/index.html @@ -0,0 +1,447 @@ + + + + + +Product Tags Code + + + +
+

Product Tags Code

+ + +

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

+

Allows to reference tag records trough a unique code.

+

Table of contents

+ +
+

Configuration

+

To configure this module, you need to:

+
    +
  1. Go to the product form view.
  2. +
  3. Create and edit tags using the form view
  4. +
+
+
+

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

+
    +
  • Camptocamp SA
  • +
+
+
+

Contributors

+ +
+
+

Other credits

+

The migration of this module from 14.0 to 18.0 was financially supported +by:

+
    +
  • Camptocamp
  • +
+
+
+

Maintainers

+

This module is maintained by the OCA.

+ +Odoo Community Association + +

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.

+

This module is part of the OCA/product-attribute project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/product_tags_code/tests/__init__.py b/product_tags_code/tests/__init__.py new file mode 100644 index 00000000000..3d700ed3b3b --- /dev/null +++ b/product_tags_code/tests/__init__.py @@ -0,0 +1,4 @@ +# Copyright 2020 Camptocamp +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import test_product_tags_code diff --git a/product_tags_code/tests/test_product_tags_code.py b/product_tags_code/tests/test_product_tags_code.py new file mode 100644 index 00000000000..81a4a414181 --- /dev/null +++ b/product_tags_code/tests/test_product_tags_code.py @@ -0,0 +1,46 @@ +# Copyright 2020 Camptocamp +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo.addons.base.tests.common import BaseCommon + + +class TestProductTagsCode(BaseCommon): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.product_tmpl = cls.env["product.template"].create({"name": "Test Product"}) + + def test_product_tags_code(self): + product_tag = self.env["product.tag"].create( + { + "name": "Test Tag", + "product_template_ids": [(6, 0, [self.product_tmpl.id])], + } + ) + self.assertEqual(product_tag.code, "test-tag") + + def test_product_tags_code_writable(self): + product_tag = self.env["product.tag"].create( + { + "name": "Test Tag", + "code": "foo tag !!", + "product_template_ids": [(6, 0, [self.product_tmpl.id])], + } + ) + self.assertEqual(product_tag.code, "foo-tag") + product_tag.write({"code": "test tag writable"}) + self.assertEqual(product_tag.code, "test-tag-writable") + product_tag.write({"name": "test tag name 2"}) + self.assertEqual(product_tag.code, "test-tag-name-2") + + def test_product_multi_tags(self): + prods_data = [] + for x in range(3): + prods_data.append( + { + "name": f"YO{x}", + "product_template_ids": [(6, 0, [self.product_tmpl.id])], + } + ) + prods = self.env["product.tag"].create(prods_data) + self.assertEqual(prods.mapped("code"), ["yo0", "yo1", "yo2"]) diff --git a/product_tags_code/views/product_tag_views.xml b/product_tags_code/views/product_tag_views.xml new file mode 100644 index 00000000000..619935225f7 --- /dev/null +++ b/product_tags_code/views/product_tag_views.xml @@ -0,0 +1,24 @@ + + + + product.tag.form.view.inherit + product.tag + + + + + + + + + product.tag.tree.view.inherit + product.tag + + + + + + + + From 170b8b996ccf7ff38ede011addc5f6038807a140 Mon Sep 17 00:00:00 2001 From: oca-ci Date: Wed, 5 Mar 2025 12:50:33 +0000 Subject: [PATCH 2/4] [UPD] Update product_tags_code.pot --- product_tags_code/i18n/product_tags_code.pot | 31 +++++--------------- 1 file changed, 8 insertions(+), 23 deletions(-) diff --git a/product_tags_code/i18n/product_tags_code.pot b/product_tags_code/i18n/product_tags_code.pot index 74dc1626e1d..9f000ac7250 100644 --- a/product_tags_code/i18n/product_tags_code.pot +++ b/product_tags_code/i18n/product_tags_code.pot @@ -1,10 +1,10 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * product_template_tags_code +# * product_tags_code # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 14.0\n" +"Project-Id-Version: Odoo Server 18.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" @@ -13,32 +13,17 @@ msgstr "" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" -#. module: product_template_tags_code -#: model:ir.model.fields,field_description:product_template_tags_code.field_product_template_tag__code +#. module: product_tags_code +#: model:ir.model.fields,field_description:product_tags_code.field_product_tag__code msgid "Code" msgstr "" -#. module: product_template_tags_code -#: model:ir.model.fields,field_description:product_template_tags_code.field_product_template_tag__display_name -msgid "Display Name" -msgstr "" - -#. module: product_template_tags_code -#: model:ir.model.fields,field_description:product_template_tags_code.field_product_template_tag__id -msgid "ID" -msgstr "" - -#. module: product_template_tags_code -#: model:ir.model.fields,field_description:product_template_tags_code.field_product_template_tag____last_update -msgid "Last Modified on" -msgstr "" - -#. module: product_template_tags_code -#: model:ir.model,name:product_template_tags_code.model_product_template_tag +#. module: product_tags_code +#: model:ir.model,name:product_tags_code.model_product_tag msgid "Product Tag" msgstr "" -#. module: product_template_tags_code -#: model:ir.model.constraint,message:product_template_tags_code.constraint_product_template_tag_code_uniq +#. module: product_tags_code +#: model:ir.model.constraint,message:product_tags_code.constraint_product_tag_code_uniq msgid "Product template tag code already exists" msgstr "" From bc7fc3fa3d9afabe4875184e2ba197f92498eb15 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Wed, 5 Mar 2025 12:53:48 +0000 Subject: [PATCH 3/4] [BOT] post-merge updates --- product_tags_code/README.rst | 14 +++++++------- product_tags_code/static/description/index.html | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/product_tags_code/README.rst b/product_tags_code/README.rst index 3c7bfe556ec..c15cb8866fd 100644 --- a/product_tags_code/README.rst +++ b/product_tags_code/README.rst @@ -7,7 +7,7 @@ Product Tags Code !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:9f262329aa57825a999684e47eb384f4421d82420f6de9a54c2e46b8069517e9 + !! source digest: sha256:a822c71ca50086cfa548efbc4e9f80219d80e7f00a11af90232071af7577bc81 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png @@ -64,14 +64,14 @@ Authors Contributors ------------ -- Thomas Nowicki +- Thomas Nowicki -- Simone Orsi +- Simone Orsi -- [Trobz] (https://trobz.com/): +- [Trobz] (https://trobz.com/): - - Dung Tran - - Khoi (Kien Kim) + - Dung Tran + - Khoi (Kien Kim) Other credits ------------- @@ -79,7 +79,7 @@ Other credits The migration of this module from 14.0 to 18.0 was financially supported by: -- Camptocamp +- Camptocamp Maintainers ----------- diff --git a/product_tags_code/static/description/index.html b/product_tags_code/static/description/index.html index 9634c933966..f470449aba6 100644 --- a/product_tags_code/static/description/index.html +++ b/product_tags_code/static/description/index.html @@ -367,7 +367,7 @@

Product Tags Code

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

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

Allows to reference tag records trough a unique code.

From 62284bb72e1ca60529af481d4f9fa751bb875774 Mon Sep 17 00:00:00 2001 From: Ruchir Shukla Date: Wed, 1 Oct 2025 15:25:47 +0530 Subject: [PATCH 4/4] [MIG] product_tags_code: Migration to 19.0 --- product_tags_code/README.rst | 35 ++++++++++------- product_tags_code/__manifest__.py | 2 +- product_tags_code/models/product_tag.py | 11 ++---- product_tags_code/readme/CREDITS.md | 4 ++ product_tags_code/readme/DESCRIPTION.md | 2 +- .../static/description/index.html | 39 ++++++++++++------- .../tests/test_product_tags_code.py | 8 ++-- product_tags_code/views/product_tag_views.xml | 2 +- 8 files changed, 63 insertions(+), 40 deletions(-) diff --git a/product_tags_code/README.rst b/product_tags_code/README.rst index c15cb8866fd..012c5193528 100644 --- a/product_tags_code/README.rst +++ b/product_tags_code/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 + ================= Product Tags Code ================= @@ -13,22 +17,22 @@ Product Tags Code .. |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%2Fproduct--attribute-lightgray.png?logo=github - :target: https://github.com/OCA/product-attribute/tree/18.0/product_tags_code + :target: https://github.com/OCA/product-attribute/tree/19.0/product_tags_code :alt: OCA/product-attribute .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/product-attribute-18-0/product-attribute-18-0-product_tags_code + :target: https://translation.odoo-community.org/projects/product-attribute-19-0/product-attribute-19-0-product_tags_code :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/product-attribute&target_branch=18.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/product-attribute&target_branch=19.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| -Allows to reference tag records trough a unique code. +Allows to reference tag records through a unique code. **Table of contents** @@ -49,7 +53,7 @@ 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 `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -64,14 +68,14 @@ Authors Contributors ------------ -- Thomas Nowicki +- Thomas Nowicki -- Simone Orsi +- Simone Orsi -- [Trobz] (https://trobz.com/): +- [Trobz] (`https://trobz.com/ `__): - - Dung Tran - - Khoi (Kien Kim) + - Dung Tran + - Khoi (Kien Kim) Other credits ------------- @@ -79,7 +83,12 @@ Other credits The migration of this module from 14.0 to 18.0 was financially supported by: -- Camptocamp +- Camptocamp + +The migration of this module from 18.0 to 19.0 was financially supported +by: + +- PLEDRA NETCOM S.R.L Maintainers ----------- @@ -94,6 +103,6 @@ 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. -This module is part of the `OCA/product-attribute `_ project on GitHub. +This module is part of the `OCA/product-attribute `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/product_tags_code/__manifest__.py b/product_tags_code/__manifest__.py index cbade93749a..abdcb71cd38 100644 --- a/product_tags_code/__manifest__.py +++ b/product_tags_code/__manifest__.py @@ -4,7 +4,7 @@ { "name": "Product Tags Code", "summary": "This addon allow to add code on products tags", - "version": "18.0.1.0.0", + "version": "19.0.1.0.0", "license": "AGPL-3", "author": "Camptocamp SA, Odoo Community Association (OCA)", "website": "https://github.com/OCA/product-attribute", diff --git a/product_tags_code/models/product_tag.py b/product_tags_code/models/product_tag.py index 0f3ea6fa6c8..c12a2a8c625 100644 --- a/product_tags_code/models/product_tag.py +++ b/product_tags_code/models/product_tag.py @@ -14,13 +14,10 @@ class ProductTag(models.Model): store=True, ) - _sql_constraints = [ - ( - "code_uniq", - "unique(code)", - "Product template tag code already exists", - ) - ] + _code_uniq = models.Constraint( + "unique (code)", + "Product template tag code already exists", + ) @api.depends("name", "code") def _compute_code(self): diff --git a/product_tags_code/readme/CREDITS.md b/product_tags_code/readme/CREDITS.md index efcd44035e1..ddad62b9483 100644 --- a/product_tags_code/readme/CREDITS.md +++ b/product_tags_code/readme/CREDITS.md @@ -1,3 +1,7 @@ The migration of this module from 14.0 to 18.0 was financially supported by: - Camptocamp + +The migration of this module from 18.0 to 19.0 was financially supported by: + +- PLEDRA NETCOM S.R.L diff --git a/product_tags_code/readme/DESCRIPTION.md b/product_tags_code/readme/DESCRIPTION.md index 07c848248b1..a78f1913bec 100644 --- a/product_tags_code/readme/DESCRIPTION.md +++ b/product_tags_code/readme/DESCRIPTION.md @@ -1 +1 @@ -Allows to reference tag records trough a unique code. +Allows to reference tag records through a unique code. diff --git a/product_tags_code/static/description/index.html b/product_tags_code/static/description/index.html index f470449aba6..5d437e0dbc7 100644 --- a/product_tags_code/static/description/index.html +++ b/product_tags_code/static/description/index.html @@ -3,7 +3,7 @@ -Product Tags Code +README.rst -
-

Product Tags Code

+
+ + +Odoo Community Association + +
+

Product Tags Code

-

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

-

Allows to reference tag records trough a unique code.

+

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

+

Allows to reference tag records through a unique code.

Table of contents

    @@ -386,7 +391,7 @@

    Product Tags Code

-

Configuration

+

Configuration

To configure this module, you need to:

  1. Go to the product form view.
  2. @@ -394,23 +399,23 @@

    Configuration

-

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 -feedback.

+feedback.

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

-

Credits

+

Credits

-

Authors

+

Authors

  • Camptocamp SA
-

Contributors

+

Contributors

-

Other credits

+

Other credits

The migration of this module from 14.0 to 18.0 was financially supported by:

  • Camptocamp
+

The migration of this module from 18.0 to 19.0 was financially supported +by:

+
    +
  • PLEDRA NETCOM S.R.L
  • +
-

Maintainers

+

Maintainers

This module is maintained by the OCA.

Odoo Community Association @@ -438,10 +448,11 @@

Maintainers

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.

-

This module is part of the OCA/product-attribute project on GitHub.

+

This module is part of the OCA/product-attribute project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
diff --git a/product_tags_code/tests/test_product_tags_code.py b/product_tags_code/tests/test_product_tags_code.py index 81a4a414181..9ee56ba4ce7 100644 --- a/product_tags_code/tests/test_product_tags_code.py +++ b/product_tags_code/tests/test_product_tags_code.py @@ -1,6 +1,8 @@ # Copyright 2020 Camptocamp # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +from odoo import Command + from odoo.addons.base.tests.common import BaseCommon @@ -14,7 +16,7 @@ def test_product_tags_code(self): product_tag = self.env["product.tag"].create( { "name": "Test Tag", - "product_template_ids": [(6, 0, [self.product_tmpl.id])], + "product_template_ids": [Command.set([self.product_tmpl.id])], } ) self.assertEqual(product_tag.code, "test-tag") @@ -24,7 +26,7 @@ def test_product_tags_code_writable(self): { "name": "Test Tag", "code": "foo tag !!", - "product_template_ids": [(6, 0, [self.product_tmpl.id])], + "product_template_ids": [Command.set([self.product_tmpl.id])], } ) self.assertEqual(product_tag.code, "foo-tag") @@ -39,7 +41,7 @@ def test_product_multi_tags(self): prods_data.append( { "name": f"YO{x}", - "product_template_ids": [(6, 0, [self.product_tmpl.id])], + "product_template_ids": [Command.set([self.product_tmpl.id])], } ) prods = self.env["product.tag"].create(prods_data) diff --git a/product_tags_code/views/product_tag_views.xml b/product_tags_code/views/product_tag_views.xml index 619935225f7..f0763dbf5ef 100644 --- a/product_tags_code/views/product_tag_views.xml +++ b/product_tags_code/views/product_tag_views.xml @@ -6,7 +6,7 @@ product.tag - +