From 5fa2a94b934c11842c69a9fe1dc3a66e97add569 Mon Sep 17 00:00:00 2001 From: tendil Date: Thu, 20 Nov 2025 16:32:14 +0000 Subject: [PATCH 1/9] [ADD] product_sale_team: add module - Add sales_team_id Many2one field on product.template to store the Sales Team for a product. - Extend the product template form view to display the Sales Team field on the General Information tab. - Add basic documentation (CONTEXT, DESCRIPTION, USAGE) and a test. Task: 5084 --- product_sale_team/README.rst | 101 ++++ product_sale_team/__init__.py | 4 + product_sale_team/__manifest__.py | 20 + product_sale_team/i18n/product_sale_team.pot | 33 ++ product_sale_team/models/__init__.py | 4 + product_sale_team/models/product_template.py | 13 + product_sale_team/pyproject.toml | 3 + product_sale_team/readme/CONTEXT.md | 1 + product_sale_team/readme/CONTRIBUTORS.md | 3 + product_sale_team/readme/CREDITS.md | 2 + product_sale_team/readme/DESCRIPTION.md | 2 + product_sale_team/readme/USAGE.md | 2 + product_sale_team/static/description/icon.png | Bin 0 -> 9455 bytes .../static/description/index.html | 452 ++++++++++++++++++ product_sale_team/tests/__init__.py | 4 + .../tests/test_product_sale_team.py | 15 + .../views/product_template_views.xml | 15 + 17 files changed, 674 insertions(+) create mode 100644 product_sale_team/README.rst create mode 100644 product_sale_team/__init__.py create mode 100644 product_sale_team/__manifest__.py create mode 100644 product_sale_team/i18n/product_sale_team.pot create mode 100644 product_sale_team/models/__init__.py create mode 100644 product_sale_team/models/product_template.py create mode 100644 product_sale_team/pyproject.toml create mode 100644 product_sale_team/readme/CONTEXT.md create mode 100644 product_sale_team/readme/CONTRIBUTORS.md create mode 100644 product_sale_team/readme/CREDITS.md create mode 100644 product_sale_team/readme/DESCRIPTION.md create mode 100644 product_sale_team/readme/USAGE.md create mode 100644 product_sale_team/static/description/icon.png create mode 100644 product_sale_team/static/description/index.html create mode 100644 product_sale_team/tests/__init__.py create mode 100644 product_sale_team/tests/test_product_sale_team.py create mode 100644 product_sale_team/views/product_template_views.xml diff --git a/product_sale_team/README.rst b/product_sale_team/README.rst new file mode 100644 index 00000000000..6d1165b5685 --- /dev/null +++ b/product_sale_team/README.rst @@ -0,0 +1,101 @@ +================= +Product Sale Team +================= + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:daf9fe8bf3e26abc698b11f3d4f17660c366b6699969a09b072c6fdaf731e98d + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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-LGPL--3-blue.png + :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html + :alt: License: LGPL-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_sale_team + :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_sale_team + :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| + +This module add the "Sales Team" field to the product template. Please +be advised that this is a technical module that meant to be used as a +part of other modules built on top of it. + +**Table of contents** + +.. contents:: + :local: + +Use Cases / Context +=================== + +Sometimes you would need to define a Sales Team for specific product. Eg +it's a piece of a complex equipment that has a specific sales flow. + +Usage +===== + +- Open the product +- Select a sales team in the corresponding field located in the "General + Information" tab + +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 +------- + +* Cetmix + +Contributors +------------ + +- `Cetmix `__: + + - Ivan Sokolov + - Dmitry Meita + +Other credits +------------- + +The development of this module has been financially supported by: + +- Geschäftsstelle Sozialinfo + +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_sale_team/__init__.py b/product_sale_team/__init__.py new file mode 100644 index 00000000000..57a36fc0f6b --- /dev/null +++ b/product_sale_team/__init__.py @@ -0,0 +1,4 @@ +# Copyright (C) 2025 Cetmix OÜ +# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). + +from . import models diff --git a/product_sale_team/__manifest__.py b/product_sale_team/__manifest__.py new file mode 100644 index 00000000000..9f7656bbc77 --- /dev/null +++ b/product_sale_team/__manifest__.py @@ -0,0 +1,20 @@ +# Copyright (C) 2025 Cetmix OÜ +# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). + +{ + "name": "Product Sale Team", + "summary": "Sale Team for products", + "version": "18.0.1.0.0", + "category": "Product", + "author": "Cetmix, Odoo Community Association (OCA)", + "website": "https://github.com/OCA/product-attribute", + "license": "LGPL-3", + "depends": [ + "crm", + "product", + ], + "data": [ + "views/product_template_views.xml", + ], + "installable": True, +} diff --git a/product_sale_team/i18n/product_sale_team.pot b/product_sale_team/i18n/product_sale_team.pot new file mode 100644 index 00000000000..aa0cdbcec80 --- /dev/null +++ b/product_sale_team/i18n/product_sale_team.pot @@ -0,0 +1,33 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_sale_team +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-20 16:19+0000\n" +"PO-Revision-Date: 2025-11-20 16:19+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" + +#. module: product_sale_team +#: model:ir.model.fields,help:product_sale_team.field_product_product__sales_team_id +#: model:ir.model.fields,help:product_sale_team.field_product_template__sales_team_id +msgid "Default sales team responsible for this product." +msgstr "" + +#. module: product_sale_team +#: model:ir.model,name:product_sale_team.model_product_template +msgid "Product" +msgstr "" + +#. module: product_sale_team +#: model:ir.model.fields,field_description:product_sale_team.field_product_product__sales_team_id +#: model:ir.model.fields,field_description:product_sale_team.field_product_template__sales_team_id +msgid "Sales Team" +msgstr "" diff --git a/product_sale_team/models/__init__.py b/product_sale_team/models/__init__.py new file mode 100644 index 00000000000..ab7478ff551 --- /dev/null +++ b/product_sale_team/models/__init__.py @@ -0,0 +1,4 @@ +# Copyright (C) 2025 Cetmix OÜ +# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). + +from . import product_template diff --git a/product_sale_team/models/product_template.py b/product_sale_team/models/product_template.py new file mode 100644 index 00000000000..a28b68fcf5c --- /dev/null +++ b/product_sale_team/models/product_template.py @@ -0,0 +1,13 @@ +# Copyright (C) 2025 Cetmix OÜ +# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). + +from odoo import fields, models + + +class ProductTemplate(models.Model): + _inherit = "product.template" + + sales_team_id = fields.Many2one( + comodel_name="crm.team", + help="Default sales team responsible for this product.", + ) diff --git a/product_sale_team/pyproject.toml b/product_sale_team/pyproject.toml new file mode 100644 index 00000000000..4231d0cccb3 --- /dev/null +++ b/product_sale_team/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/product_sale_team/readme/CONTEXT.md b/product_sale_team/readme/CONTEXT.md new file mode 100644 index 00000000000..80b62777d55 --- /dev/null +++ b/product_sale_team/readme/CONTEXT.md @@ -0,0 +1 @@ +Sometimes you would need to define a Sales Team for specific product. Eg it's a piece of a complex equipment that has a specific sales flow. diff --git a/product_sale_team/readme/CONTRIBUTORS.md b/product_sale_team/readme/CONTRIBUTORS.md new file mode 100644 index 00000000000..5ff5c979414 --- /dev/null +++ b/product_sale_team/readme/CONTRIBUTORS.md @@ -0,0 +1,3 @@ +* [Cetmix](https://cetmix.com/): + * Ivan Sokolov + * Dmitry Meita diff --git a/product_sale_team/readme/CREDITS.md b/product_sale_team/readme/CREDITS.md new file mode 100644 index 00000000000..b2770d9c69a --- /dev/null +++ b/product_sale_team/readme/CREDITS.md @@ -0,0 +1,2 @@ +The development of this module has been financially supported by: + - Geschäftsstelle Sozialinfo diff --git a/product_sale_team/readme/DESCRIPTION.md b/product_sale_team/readme/DESCRIPTION.md new file mode 100644 index 00000000000..416a28b0cf8 --- /dev/null +++ b/product_sale_team/readme/DESCRIPTION.md @@ -0,0 +1,2 @@ +This module add the "Sales Team" field to the product template. +Please be advised that this is a technical module that meant to be used as a part of other modules built on top of it. diff --git a/product_sale_team/readme/USAGE.md b/product_sale_team/readme/USAGE.md new file mode 100644 index 00000000000..3e532804673 --- /dev/null +++ b/product_sale_team/readme/USAGE.md @@ -0,0 +1,2 @@ +- Open the product +- Select a sales team in the corresponding field located in the "General Information" tab diff --git a/product_sale_team/static/description/icon.png b/product_sale_team/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_sale_team/static/description/index.html b/product_sale_team/static/description/index.html new file mode 100644 index 00000000000..1ef5f19f70b --- /dev/null +++ b/product_sale_team/static/description/index.html @@ -0,0 +1,452 @@ + + + + + +Product Sale Team + + + +
+

Product Sale Team

+ + +

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

+

This module add the “Sales Team” field to the product template. Please +be advised that this is a technical module that meant to be used as a +part of other modules built on top of it.

+

Table of contents

+ +
+

Use Cases / Context

+

Sometimes you would need to define a Sales Team for specific product. Eg +it’s a piece of a complex equipment that has a specific sales flow.

+
+
+

Usage

+
    +
  • Open the product
  • +
  • Select a sales team in the corresponding field located in the “General +Information” tab
  • +
+
+
+

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

+
    +
  • Cetmix
  • +
+
+
+

Contributors

+
    +
  • Cetmix:
      +
    • Ivan Sokolov
    • +
    • Dmitry Meita
    • +
    +
  • +
+
+
+

Other credits

+

The development of this module has been financially supported by:

+
    +
  • Geschäftsstelle Sozialinfo
  • +
+
+
+

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_sale_team/tests/__init__.py b/product_sale_team/tests/__init__.py new file mode 100644 index 00000000000..fcf63bb926b --- /dev/null +++ b/product_sale_team/tests/__init__.py @@ -0,0 +1,4 @@ +# Copyright (C) 2025 Cetmix OÜ +# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). + +from . import test_product_sale_team diff --git a/product_sale_team/tests/test_product_sale_team.py b/product_sale_team/tests/test_product_sale_team.py new file mode 100644 index 00000000000..97135f839be --- /dev/null +++ b/product_sale_team/tests/test_product_sale_team.py @@ -0,0 +1,15 @@ +# Copyright (C) 2025 Cetmix OÜ +# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). + +from odoo.tests import TransactionCase, tagged + + +@tagged("post_install", "-at_install") +class TestProductSaleTeam(TransactionCase): + def test_sale_team_field_metadata(self): + """Ensure product.template has a Many2one to crm.team.""" + ProductTemplate = self.env["product.template"] + self.assertIn("sales_team_id", ProductTemplate._fields) + field = ProductTemplate._fields["sales_team_id"] + self.assertEqual(field.type, "many2one") + self.assertEqual(field.comodel_name, "crm.team") diff --git a/product_sale_team/views/product_template_views.xml b/product_sale_team/views/product_template_views.xml new file mode 100644 index 00000000000..8e6f90fc7aa --- /dev/null +++ b/product_sale_team/views/product_template_views.xml @@ -0,0 +1,15 @@ + + + product.template.sale.team.form.view + product.template + + + + + + + + From ebe152755b8934da1aea74bd0acafb72dd1403cb Mon Sep 17 00:00:00 2001 From: oca-ci Date: Thu, 8 Jan 2026 14:59:44 +0000 Subject: [PATCH 2/9] [UPD] Update product_sale_team.pot --- product_sale_team/i18n/product_sale_team.pot | 2 -- 1 file changed, 2 deletions(-) diff --git a/product_sale_team/i18n/product_sale_team.pot b/product_sale_team/i18n/product_sale_team.pot index aa0cdbcec80..45fb10899c8 100644 --- a/product_sale_team/i18n/product_sale_team.pot +++ b/product_sale_team/i18n/product_sale_team.pot @@ -6,8 +6,6 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 18.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-20 16:19+0000\n" -"PO-Revision-Date: 2025-11-20 16:19+0000\n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" From 4a3e8c8b4a81984edba8d2093b286d8f72d16abc Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Thu, 8 Jan 2026 15:05:29 +0000 Subject: [PATCH 3/9] [BOT] post-merge updates --- product_sale_team/README.rst | 8 +++-- .../static/description/index.html | 32 +++++++++++-------- 2 files changed, 25 insertions(+), 15 deletions(-) diff --git a/product_sale_team/README.rst b/product_sale_team/README.rst index 6d1165b5685..bffcff540d8 100644 --- a/product_sale_team/README.rst +++ b/product_sale_team/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 Sale Team ================= @@ -7,13 +11,13 @@ Product Sale Team !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:daf9fe8bf3e26abc698b11f3d4f17660c366b6699969a09b072c6fdaf731e98d + !! source digest: sha256:6535df5d4c1ae7775ce5a415385b4aa469aa9e576fc6d269e68dd89eb9c646a6 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |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-LGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/license-LGPL--3-blue.png :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html :alt: License: LGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fproduct--attribute-lightgray.png?logo=github diff --git a/product_sale_team/static/description/index.html b/product_sale_team/static/description/index.html index 1ef5f19f70b..dead83ecf71 100644 --- a/product_sale_team/static/description/index.html +++ b/product_sale_team/static/description/index.html @@ -3,7 +3,7 @@ -Product Sale Team +README.rst -
-

Product Sale Team

+
+ + +Odoo Community Association + +
+

Product Sale Team

-

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

+

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

This module add the “Sales Team” field to the product template. Please be advised that this is a technical module that meant to be used as a part of other modules built on top of it.

@@ -389,12 +394,12 @@

Product Sale Team

-

Use Cases / Context

+

Use Cases / Context

Sometimes you would need to define a Sales Team for specific product. Eg it’s a piece of a complex equipment that has a specific sales flow.

-

Usage

+

Usage

  • Open the product
  • Select a sales team in the corresponding field located in the “General @@ -402,7 +407,7 @@

    Usage

-

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 @@ -410,15 +415,15 @@

Bug Tracker

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

-

Credits

+

Credits

-

Authors

+

Authors

  • Cetmix
-

Contributors

+

Contributors

-

Other credits

+

Other credits

The development of this module has been financially supported by:

  • Geschäftsstelle Sozialinfo
-

Maintainers

+

Maintainers

This module is maintained by the OCA.

Odoo Community Association @@ -448,5 +453,6 @@

Maintainers

+
From ef075fe73eb044676739c7648dba6c9f94bd4307 Mon Sep 17 00:00:00 2001 From: mymage Date: Sat, 10 Jan 2026 08:22:29 +0000 Subject: [PATCH 4/9] Added translation using Weblate (Italian) --- product_sale_team/i18n/it.po | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 product_sale_team/i18n/it.po diff --git a/product_sale_team/i18n/it.po b/product_sale_team/i18n/it.po new file mode 100644 index 00000000000..0529d00ebc3 --- /dev/null +++ b/product_sale_team/i18n/it.po @@ -0,0 +1,32 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_sale_team +# +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" + +#. module: product_sale_team +#: model:ir.model.fields,help:product_sale_team.field_product_product__sales_team_id +#: model:ir.model.fields,help:product_sale_team.field_product_template__sales_team_id +msgid "Default sales team responsible for this product." +msgstr "" + +#. module: product_sale_team +#: model:ir.model,name:product_sale_team.model_product_template +msgid "Product" +msgstr "" + +#. module: product_sale_team +#: model:ir.model.fields,field_description:product_sale_team.field_product_product__sales_team_id +#: model:ir.model.fields,field_description:product_sale_team.field_product_template__sales_team_id +msgid "Sales Team" +msgstr "" From 3ce84d3557672854294f9fbd75edf9734cdc19ab Mon Sep 17 00:00:00 2001 From: mymage Date: Wed, 21 Jan 2026 07:26:52 +0000 Subject: [PATCH 5/9] Translated using Weblate (Italian) Currently translated at 100.0% (3 of 3 strings) Translation: product-attribute-18.0/product-attribute-18.0-product_sale_team Translate-URL: https://translation.odoo-community.org/projects/product-attribute-18-0/product-attribute-18-0-product_sale_team/it/ --- product_sale_team/i18n/it.po | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/product_sale_team/i18n/it.po b/product_sale_team/i18n/it.po index 0529d00ebc3..b2690d52336 100644 --- a/product_sale_team/i18n/it.po +++ b/product_sale_team/i18n/it.po @@ -6,27 +6,29 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 18.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2026-01-21 07:52+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: product_sale_team #: model:ir.model.fields,help:product_sale_team.field_product_product__sales_team_id #: model:ir.model.fields,help:product_sale_team.field_product_template__sales_team_id msgid "Default sales team responsible for this product." -msgstr "" +msgstr "Team vendite predefinito responsabile di questo prodotto." #. module: product_sale_team #: model:ir.model,name:product_sale_team.model_product_template msgid "Product" -msgstr "" +msgstr "Prodotto" #. module: product_sale_team #: model:ir.model.fields,field_description:product_sale_team.field_product_product__sales_team_id #: model:ir.model.fields,field_description:product_sale_team.field_product_template__sales_team_id msgid "Sales Team" -msgstr "" +msgstr "Team di vendita" From e6fc53842f25eeaaa41612112918915071814d60 Mon Sep 17 00:00:00 2001 From: Bhavesh Heliconia Date: Thu, 21 May 2026 13:52:48 +0530 Subject: [PATCH 6/9] [MIG] product_sale_team: Migration to 19.0 --- product_sale_team/README.rst | 17 ++++++++++++----- product_sale_team/__manifest__.py | 2 +- product_sale_team/readme/CONTRIBUTORS.md | 2 ++ product_sale_team/readme/USAGE.md | 2 ++ .../static/description/index.html | 13 ++++++++++--- .../tests/test_product_sale_team.py | 6 ++++-- .../views/product_template_views.xml | 18 ++++++++++++++++++ 7 files changed, 49 insertions(+), 11 deletions(-) diff --git a/product_sale_team/README.rst b/product_sale_team/README.rst index bffcff540d8..47f332289e4 100644 --- a/product_sale_team/README.rst +++ b/product_sale_team/README.rst @@ -21,13 +21,13 @@ Product Sale Team :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html :alt: License: LGPL-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_sale_team + :target: https://github.com/OCA/product-attribute/tree/19.0/product_sale_team :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_sale_team + :target: https://translation.odoo-community.org/projects/product-attribute-19-0/product-attribute-19-0-product_sale_team :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| @@ -53,6 +53,9 @@ Usage - Open the product - Select a sales team in the corresponding field located in the "General Information" tab +- Go to *Sales > Products* +- Use the *Sales Team* filter/group by option from the search view to + find products assigned to a specific sales team Bug Tracker =========== @@ -60,7 +63,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. @@ -80,6 +83,10 @@ Contributors - Ivan Sokolov - Dmitry Meita +- `Heliconia Solutions Pvt. Ltd. `__ + + - Bhavesh Heliconia + Other credits ------------- @@ -100,6 +107,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_sale_team/__manifest__.py b/product_sale_team/__manifest__.py index 9f7656bbc77..f2d1e2e2eb9 100644 --- a/product_sale_team/__manifest__.py +++ b/product_sale_team/__manifest__.py @@ -4,7 +4,7 @@ { "name": "Product Sale Team", "summary": "Sale Team for products", - "version": "18.0.1.0.0", + "version": "19.0.1.0.0", "category": "Product", "author": "Cetmix, Odoo Community Association (OCA)", "website": "https://github.com/OCA/product-attribute", diff --git a/product_sale_team/readme/CONTRIBUTORS.md b/product_sale_team/readme/CONTRIBUTORS.md index 5ff5c979414..74bc12b5296 100644 --- a/product_sale_team/readme/CONTRIBUTORS.md +++ b/product_sale_team/readme/CONTRIBUTORS.md @@ -1,3 +1,5 @@ * [Cetmix](https://cetmix.com/): * Ivan Sokolov * Dmitry Meita +- [Heliconia Solutions Pvt. Ltd.](https://www.heliconia.io) + - Bhavesh Heliconia diff --git a/product_sale_team/readme/USAGE.md b/product_sale_team/readme/USAGE.md index 3e532804673..8ce021bd181 100644 --- a/product_sale_team/readme/USAGE.md +++ b/product_sale_team/readme/USAGE.md @@ -1,2 +1,4 @@ - Open the product - Select a sales team in the corresponding field located in the "General Information" tab +- Go to *Sales > Products* +- Use the *Sales Team* filter/group by option from the search view to find products assigned to a specific sales team diff --git a/product_sale_team/static/description/index.html b/product_sale_team/static/description/index.html index dead83ecf71..e9acb0e8090 100644 --- a/product_sale_team/static/description/index.html +++ b/product_sale_team/static/description/index.html @@ -374,7 +374,7 @@

Product Sale Team

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:6535df5d4c1ae7775ce5a415385b4aa469aa9e576fc6d269e68dd89eb9c646a6 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

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

+

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

This module add the “Sales Team” field to the product template. Please be advised that this is a technical module that meant to be used as a part of other modules built on top of it.

@@ -404,6 +404,9 @@

Usage

  • Open the product
  • Select a sales team in the corresponding field located in the “General Information” tab
  • +
  • Go to Sales > Products
  • +
  • Use the Sales Team filter/group by option from the search view to +find products assigned to a specific sales team
  • @@ -411,7 +414,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.

    @@ -430,6 +433,10 @@

    Contributors

  • Dmitry Meita
  • +
  • Heliconia Solutions Pvt. Ltd.
      +
    • Bhavesh Heliconia
    • +
    +
  • @@ -448,7 +455,7 @@

    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_sale_team/tests/test_product_sale_team.py b/product_sale_team/tests/test_product_sale_team.py index 97135f839be..dcde46e8626 100644 --- a/product_sale_team/tests/test_product_sale_team.py +++ b/product_sale_team/tests/test_product_sale_team.py @@ -1,11 +1,13 @@ # Copyright (C) 2025 Cetmix OÜ # License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). -from odoo.tests import TransactionCase, tagged +from odoo.tests import tagged + +from odoo.addons.base.tests.common import BaseCommon @tagged("post_install", "-at_install") -class TestProductSaleTeam(TransactionCase): +class TestProductSaleTeam(BaseCommon): def test_sale_team_field_metadata(self): """Ensure product.template has a Many2one to crm.team.""" ProductTemplate = self.env["product.template"] diff --git a/product_sale_team/views/product_template_views.xml b/product_sale_team/views/product_template_views.xml index 8e6f90fc7aa..f6888ff40e5 100644 --- a/product_sale_team/views/product_template_views.xml +++ b/product_sale_team/views/product_template_views.xml @@ -12,4 +12,22 @@ + + + product.template.search.view.inherit.sales_team + product.template + + + + + + + + + + From 4a82011736d9e0102dedea0db0b5df3a89230a97 Mon Sep 17 00:00:00 2001 From: mymage Date: Mon, 20 Jul 2026 06:33:26 +0000 Subject: [PATCH 7/9] Translated using Weblate (Italian) Currently translated at 100.0% (32 of 32 strings) Translation: product-attribute-19.0/product-attribute-19.0-product_class Translate-URL: https://translation.odoo-community.org/projects/product-attribute-19-0/product-attribute-19-0-product_class/it/ --- product_class/i18n/it.po | 69 ++++++++++++++++++++++++---------------- 1 file changed, 41 insertions(+), 28 deletions(-) diff --git a/product_class/i18n/it.po b/product_class/i18n/it.po index 576717f2de4..ed586bfdc39 100644 --- a/product_class/i18n/it.po +++ b/product_class/i18n/it.po @@ -6,51 +6,54 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 19.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2026-07-20 08:44+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: product_class #: model:ir.model.constraint,message:product_class.constraint_product_class_name_uniq msgid "A product class with this name already exists." -msgstr "" +msgstr "Una classe prodotto con questo nome esiste già." #. module: product_class #: model:ir.model.fields,field_description:product_class.field_product_class__active msgid "Active" -msgstr "" +msgstr "Attiva" #. module: product_class #: model:ir.model.fields,help:product_class.field_product_class__attribute_line_ids msgid "" "Allowed attributes for products of thisclass and whether they are required." msgstr "" +"Attributi consentiti per i prodotti di questa classe e se sono richiesti." #. module: product_class #: model_terms:ir.ui.view,arch_db:product_class.product_class_search msgid "Archived" -msgstr "" +msgstr "In archivio" #. module: product_class #: model:ir.model.fields,field_description:product_class.field_product_class_attribute_line__attribute_id msgid "Attribute" -msgstr "" +msgstr "Attributo" #. module: product_class #: model:ir.model.fields,field_description:product_class.field_product_class__attribute_line_ids #: model_terms:ir.ui.view,arch_db:product_class.product_class_form msgid "Attributes" -msgstr "" +msgstr "Attributi" #. module: product_class #: model:ir.model.fields,help:product_class.field_product_product__class_attribute_ids #: model:ir.model.fields,help:product_class.field_product_template__class_attribute_ids msgid "Attributes allowed by the selected product class" -msgstr "" +msgstr "Attributi consentiti dalla classe prodotto selezionata" #. module: product_class #. odoo-python @@ -60,35 +63,38 @@ msgid "" "'%(product_class)s': %(attrs)s. Please remove these attributes or change the" " product class." msgstr "" +"Non si possono rimuovere attributi utilizzati in prodotti assegnati alla " +"lasse '%(product_class)s': %(attrs)s. Rimuovere questi attributi o " +"modificare la classe prodotto." #. module: product_class #: model:ir.model.fields,field_description:product_class.field_product_attribute__class_attribute_line_ids msgid "Class Attribute Lines" -msgstr "" +msgstr "Righe attributo classe" #. module: product_class #: model:ir.model.fields,field_description:product_class.field_product_product__class_attribute_ids #: model:ir.model.fields,field_description:product_class.field_product_template__class_attribute_ids msgid "Class Attributes" -msgstr "" +msgstr "Attributi classe" #. module: product_class #: model:ir.model.fields,field_description:product_class.field_product_product__class_required_attribute_ids #: model:ir.model.fields,field_description:product_class.field_product_template__class_required_attribute_ids msgid "Class Required Attributes" -msgstr "" +msgstr "Attributi richiesti dalla classe" #. module: product_class #: model:ir.model.fields,field_description:product_class.field_product_class__create_uid #: model:ir.model.fields,field_description:product_class.field_product_class_attribute_line__create_uid msgid "Created by" -msgstr "" +msgstr "Creato da" #. module: product_class #: model:ir.model.fields,field_description:product_class.field_product_class__create_date #: model:ir.model.fields,field_description:product_class.field_product_class_attribute_line__create_date msgid "Created on" -msgstr "" +msgstr "Creato il" #. module: product_class #: model:ir.model.fields,field_description:product_class.field_product_attribute__display_name @@ -96,12 +102,12 @@ msgstr "" #: model:ir.model.fields,field_description:product_class.field_product_class_attribute_line__display_name #: model:ir.model.fields,field_description:product_class.field_product_template__display_name msgid "Display Name" -msgstr "" +msgstr "Nome visualizzato" #. module: product_class #: model:ir.model.constraint,message:product_class.constraint_product_class_attribute_line_class_attribute_uniq msgid "Each attribute can be configured only once per product class." -msgstr "" +msgstr "Ogni attributo può essere configurato una sola volta per classe." #. module: product_class #: model:ir.model.fields,field_description:product_class.field_product_attribute__id @@ -109,34 +115,36 @@ msgstr "" #: model:ir.model.fields,field_description:product_class.field_product_class_attribute_line__id #: model:ir.model.fields,field_description:product_class.field_product_template__id msgid "ID" -msgstr "" +msgstr "ID" #. module: product_class #: model:ir.model.fields,help:product_class.field_product_class_attribute_line__required msgid "If enabled, products of this class must define this attribute." msgstr "" +"Se abilitata, i prodotti di questa categoria devono definire questo " +"attributo." #. module: product_class #: model:ir.model.fields,field_description:product_class.field_product_class__write_uid #: model:ir.model.fields,field_description:product_class.field_product_class_attribute_line__write_uid msgid "Last Updated by" -msgstr "" +msgstr "Ultimo aggiornamento di" #. module: product_class #: model:ir.model.fields,field_description:product_class.field_product_class__write_date #: model:ir.model.fields,field_description:product_class.field_product_class_attribute_line__write_date msgid "Last Updated on" -msgstr "" +msgstr "Ultimo aggiornamento il" #. module: product_class #: model:ir.model.fields,field_description:product_class.field_product_class__name msgid "Name" -msgstr "" +msgstr "Nome" #. module: product_class #: model:ir.model,name:product_class.model_product_template msgid "Product" -msgstr "" +msgstr "Prodotto" #. module: product_class #. odoo-python @@ -146,6 +154,9 @@ msgid "" " class '%(product_class)s': %(attrs)s. Please remove these attributes or " "change the product class." msgstr "" +"Il prodotto '%(product)s' ha righe attributo che non appartengono alla " +"classe '%(product_class)s' selezionata: %(attrs)s. Rimuovere questi " +"attributi o modificare la classe del prodotto." #. module: product_class #. odoo-python @@ -154,11 +165,13 @@ msgid "" "Product '%(product)s' is missing required attributes for the selected class " "'%(product_class)s': %(attrs)s." msgstr "" +"Al prodotto '%(product)s' mancano gli attributi richiesti per la classe '%" +"(product_class)s' selezionata: %(attrs)s." #. module: product_class #: model:ir.model,name:product_class.model_product_attribute msgid "Product Attribute" -msgstr "" +msgstr "Attributo prodotto" #. module: product_class #: model:ir.model,name:product_class.model_product_class @@ -167,12 +180,12 @@ msgstr "" #: model:ir.model.fields,field_description:product_class.field_product_template__class_id #: model_terms:ir.ui.view,arch_db:product_class.product_class_search msgid "Product Class" -msgstr "" +msgstr "Classe prodotto" #. module: product_class #: model:ir.model,name:product_class.model_product_class_attribute_line msgid "Product Class Attribute Line" -msgstr "" +msgstr "Riga attributo classe prodotto" #. module: product_class #: model:ir.actions.act_window,name:product_class.product_class_action @@ -180,31 +193,31 @@ msgstr "" #: model:ir.ui.menu,name:product_class.menu_product_class_stock_config #: model_terms:ir.ui.view,arch_db:product_class.product_attribute_view_form msgid "Product Classes" -msgstr "" +msgstr "Classi prodotto" #. module: product_class #: model:ir.model.fields,field_description:product_class.field_product_attribute__classes_count msgid "Product Classes Count" -msgstr "" +msgstr "Conteggio classi prodotto" #. module: product_class #: model:ir.model.fields,help:product_class.field_product_product__class_id #: model:ir.model.fields,help:product_class.field_product_template__class_id msgid "Product class that constrains which attributes can be used" -msgstr "" +msgstr "Classe prodotto che contiene gli attributi che possono essere usati" #. module: product_class #: model:ir.model.fields,help:product_class.field_product_attribute__class_attribute_line_ids msgid "Product classes that include this attribute." -msgstr "" +msgstr "Classi prodotto che includono questo attributo." #. module: product_class #: model:ir.model.fields,field_description:product_class.field_product_class_attribute_line__required msgid "Required" -msgstr "" +msgstr "Richiesto" #. module: product_class #: model:ir.model.fields,help:product_class.field_product_product__class_required_attribute_ids #: model:ir.model.fields,help:product_class.field_product_template__class_required_attribute_ids msgid "Required attributes for the selected product class." -msgstr "" +msgstr "Attributi richiesti per la classe prodotto selezionata." From 244e4f3858c21ec00a5b6b2bf4838937e032f760 Mon Sep 17 00:00:00 2001 From: oca-ci Date: Mon, 20 Jul 2026 15:41:52 +0000 Subject: [PATCH 8/9] [UPD] Update product_sale_team.pot --- product_sale_team/i18n/product_sale_team.pot | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/product_sale_team/i18n/product_sale_team.pot b/product_sale_team/i18n/product_sale_team.pot index 45fb10899c8..3cdc725cd13 100644 --- a/product_sale_team/i18n/product_sale_team.pot +++ b/product_sale_team/i18n/product_sale_team.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 18.0\n" +"Project-Id-Version: Odoo Server 19.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" @@ -19,6 +19,16 @@ msgstr "" msgid "Default sales team responsible for this product." msgstr "" +#. module: product_sale_team +#: model:ir.model.fields,field_description:product_sale_team.field_product_template__display_name +msgid "Display Name" +msgstr "" + +#. module: product_sale_team +#: model:ir.model.fields,field_description:product_sale_team.field_product_template__id +msgid "ID" +msgstr "" + #. module: product_sale_team #: model:ir.model,name:product_sale_team.model_product_template msgid "Product" @@ -27,5 +37,6 @@ msgstr "" #. module: product_sale_team #: model:ir.model.fields,field_description:product_sale_team.field_product_product__sales_team_id #: model:ir.model.fields,field_description:product_sale_team.field_product_template__sales_team_id +#: model_terms:ir.ui.view,arch_db:product_sale_team.product_template_search_view_inherit_sales_team msgid "Sales Team" msgstr "" From 332792ed1c399ca844a0e9efec4b1de216748297 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Mon, 20 Jul 2026 15:48:04 +0000 Subject: [PATCH 9/9] [BOT] post-merge updates --- README.md | 1 + product_sale_team/README.rst | 2 +- product_sale_team/static/description/index.html | 2 +- setup/_metapackage/pyproject.toml | 3 ++- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 771f198cd8c..596b6e5f452 100644 --- a/README.md +++ b/README.md @@ -40,6 +40,7 @@ addon | version | maintainers | summary [product_pricelist_item_list_view](product_pricelist_item_list_view/) | 19.0.1.0.0 | LoisRForgeFlow | View and search the list of pricelist items [product_pricelist_revision](product_pricelist_revision/) | 19.0.1.0.0 | | Product Pricelist Revision [product_pricelist_supplierinfo](product_pricelist_supplierinfo/) | 19.0.1.0.0 | luisg123v | Allows to create priceslists based on supplier info +[product_sale_team](product_sale_team/) | 19.0.1.0.0 | | Sale Team for products [product_secondary_unit](product_secondary_unit/) | 19.0.1.0.0 | sergio-teruel | Set a secondary unit per product [product_set](product_set/) | 19.0.1.0.0 | | Product set [product_state](product_state/) | 19.0.1.0.1 | emagdalenaC2i | Module introducing a state field on product template diff --git a/product_sale_team/README.rst b/product_sale_team/README.rst index 47f332289e4..8552964958c 100644 --- a/product_sale_team/README.rst +++ b/product_sale_team/README.rst @@ -11,7 +11,7 @@ Product Sale Team !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:6535df5d4c1ae7775ce5a415385b4aa469aa9e576fc6d269e68dd89eb9c646a6 + !! source digest: sha256:80dcedefb06f0d68d82bd73909893f47b7f16ddc8a185e2b0b8cb5d635087cc2 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/product_sale_team/static/description/index.html b/product_sale_team/static/description/index.html index e9acb0e8090..dace4b76108 100644 --- a/product_sale_team/static/description/index.html +++ b/product_sale_team/static/description/index.html @@ -372,7 +372,7 @@

    Product Sale Team

    !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:6535df5d4c1ae7775ce5a415385b4aa469aa9e576fc6d269e68dd89eb9c646a6 +!! source digest: sha256:80dcedefb06f0d68d82bd73909893f47b7f16ddc8a185e2b0b8cb5d635087cc2 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

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

    This module add the “Sales Team” field to the product template. Please diff --git a/setup/_metapackage/pyproject.toml b/setup/_metapackage/pyproject.toml index b1660b8a0e6..5561193bf83 100644 --- a/setup/_metapackage/pyproject.toml +++ b/setup/_metapackage/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "odoo-addons-oca-product-attribute" -version = "19.0.20260713.0" +version = "19.0.20260720.0" dependencies = [ "odoo-addon-product_attribute_archive==19.0.*", "odoo-addon-product_attribute_value_avoid_auto_fill==19.0.*", @@ -21,6 +21,7 @@ dependencies = [ "odoo-addon-product_pricelist_item_list_view==19.0.*", "odoo-addon-product_pricelist_revision==19.0.*", "odoo-addon-product_pricelist_supplierinfo==19.0.*", + "odoo-addon-product_sale_team==19.0.*", "odoo-addon-product_secondary_unit==19.0.*", "odoo-addon-product_set==19.0.*", "odoo-addon-product_state==19.0.*",