Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[16.0][MIG] product_code_mandatory #1575

Closed
wants to merge 34 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
bd0026d
[11.0] product_internal_reference_mandatory (#334)
agyamuta Jun 12, 2018
594466d
[UPD] Update product_code_mandatory.pot
oca-travis Jun 21, 2018
f916439
[MIG] Migrated product_code_mandatory to v12
sudhir-erpharbor Dec 4, 2018
d7470d3
[UPD] Update product_code_mandatory.pot
oca-travis Feb 28, 2020
5e1a90d
[UPD] README.rst
OCA-git-bot Feb 28, 2020
0733567
Added translation using Weblate (Portuguese)
pedrocs-exo Mar 23, 2020
e0be45b
Translated using Weblate (Portuguese)
pedrocs-exo Mar 23, 2020
19db447
[IMP] product_code_mandatory: black, isort, prettier
Jul 9, 2020
b335c91
[13.0][MIG] product_code_mandatory
Jul 9, 2020
b39570f
[UPD] Update product_code_mandatory.pot
oca-travis Jul 19, 2020
6d350b2
[UPD] README.rst
OCA-git-bot Jul 19, 2020
fc999cf
[MIG] product_code_mandatory: Migration to 14.0
watthanun Dec 4, 2020
ca1656e
[UPD] Update product_code_mandatory.pot
oca-travis Dec 11, 2020
6cbe03b
[UPD] README.rst
OCA-git-bot Dec 11, 2020
b97e82c
product_code_mandatory 14.0.1.0.1
OCA-git-bot Dec 11, 2020
a9b80a1
Added translation using Weblate (French)
Yvesldff Apr 10, 2021
5735f9d
Translated using Weblate (French)
Yvesldff Apr 10, 2021
8444765
Added translation using Weblate (French (France))
Yvesldff Apr 10, 2021
1483d14
Translated using Weblate (French (France))
Yvesldff Apr 10, 2021
8a8d45a
[MIG] product_code_mandatory: Migration to 15.0
Jan 19, 2022
7536533
[UPD] Update product_code_mandatory.pot
Jan 26, 2022
004964e
[UPD] README.rst
OCA-git-bot Jan 26, 2022
9a2faa9
Added translation using Weblate (Catalan)
pablontura Apr 22, 2022
cf3b466
Translated using Weblate (Catalan)
pablontura Apr 22, 2022
705e0e6
[UPD] Update product_code_mandatory.pot
Jul 3, 2022
2155f0a
Update translation files
oca-transbot Jul 3, 2022
102b2d7
[FIX] product_code_mandatory: align code with Odoo way to set default…
augusto-weiss Sep 15, 2022
ea1f170
product_code_mandatory 15.0.1.0.1
OCA-git-bot Dec 19, 2022
31a43d2
[UPD] README.rst
OCA-git-bot Sep 3, 2023
e953681
Added translation using Weblate (Italian)
mymage Oct 31, 2023
a58bdb8
Translated using Weblate (Italian)
mymage Nov 1, 2023
be3f773
[IMP] product_code_mandatory: pre-commit stuff
Apr 9, 2024
e0aa2d2
[MIG] poduct_code_mandatory: Migration to 16.0
Apr 9, 2024
46bce09
Merge branch '16.0' into 16.0-mig-product_code_mandatory
MarioLM-23 May 2, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
96 changes: 96 additions & 0 deletions product_code_mandatory/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
======================
Product Code Mandatory
======================

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:8897572a4299897859406955a16af1e98a44c18ef495008346d34d6eb57ab5b1
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |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/16.0/product_code_mandatory
: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-16-0/product-attribute-16-0-product_code_mandatory
: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=16.0
:alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

This module sets the field internal reference (default_code) of the product
as required.

**Table of contents**

.. contents::
:local:

Usage
=====

* Unable to save a product with an empty or blank internal reference.
* When creating more than one product variant from the template, a variant will be created
with a default value for default_code field.
* A pre_init_hook process is initiated when there exist records without an internal reference(default_code).
A default value is generated to populate empty field as a temporary value.

.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot
:target: https://runbot.odoo-community.org/runbot/135/12.0

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/product-attribute/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 <https://github.com/OCA/product-attribute/issues/new?body=module:%20product_code_mandatory%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

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

Credits
=======

Authors
~~~~~~~

* Open Source Integrators

Contributors
~~~~~~~~~~~~

* Antonio Yamuta <[email protected]>
* Sudhir Arya <[email protected]>
* Watthanun Khorchai <[email protected]>
* Nedas Žilinskas <[email protected]>
* `Binhex <https://binhex.cloud/>`_:

* Mario Luis Mora <[email protected]>

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 <https://github.com/OCA/product-attribute/tree/16.0/product_code_mandatory>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
27 changes: 27 additions & 0 deletions product_code_mandatory/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
from . import models

from odoo import api, SUPERUSER_ID


def pre_init_product_code(cr):
env = api.Environment(cr, SUPERUSER_ID, {})

cr.execute(
"""
SELECT product_tmpl_id from product_product
WHERE default_code is NULL
OR LENGTH(default_code) = 0
GROUP BY product_tmpl_id
HAVING COUNT(product_tmpl_id) = 1"""
)
product_template_ids = [x[0] for x in cr.fetchall()]
cr.execute(
"""UPDATE product_product
SET default_code = 'DEFAULT' || nextval('ir_default_id_seq')
WHERE default_code is NULL
OR LENGTH(default_code) = 0"""
)

env["product.template"].browse(product_template_ids)._compute_default_code()

return True
16 changes: 16 additions & 0 deletions product_code_mandatory/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Copyright (C) 2018 - TODAY, Open Source Integrators
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

{
"name": "Product Code Mandatory",
"summary": "Set Product Internal Reference as a required field",
"version": "16.0.1.0.0",
"license": "AGPL-3",
"author": "Open Source Integrators, Odoo Community Association (OCA)",
"category": "Product",
"website": "https://github.com/OCA/product-attribute",
"depends": ["product"],
"data": ["data/product_code_seq.xml", "views/product_view.xml"],
"pre_init_hook": "pre_init_product_code",
"installable": True,
}
10 changes: 10 additions & 0 deletions product_code_mandatory/data/product_code_seq.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?xml version="1.0" ?>
<odoo noupdate="1">
<record id="product_default_code_seq" model="ir.sequence">
<field name="name">Product Default Code Mandatory</field>
<field name="code">product.default.code</field>
<field name="prefix">DEFAULT-</field>
<field name="padding">4</field>
<field name="company_id" eval="False" />
</record>
</odoo>
33 changes: 33 additions & 0 deletions product_code_mandatory/i18n/ca.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * product_code_mandatory
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 15.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2022-04-22 10:05+0000\n"
"Last-Translator: pablontura <[email protected]>\n"
"Language-Team: none\n"
"Language: ca\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.3.2\n"

#. module: product_code_mandatory
#: model:ir.model.fields,field_description:product_code_mandatory.field_product_product__default_code
msgid "Internal Reference"
msgstr "Referència interna"

#. module: product_code_mandatory
#: model:ir.model,name:product_code_mandatory.model_product_product
msgid "Product"
msgstr "Producte"

#. module: product_code_mandatory
#: model:ir.model.fields,help:product_code_mandatory.field_product_product__default_code
msgid ""
"Set to '/' and save if you want a new internal reference to be proposed."
msgstr ""
41 changes: 41 additions & 0 deletions product_code_mandatory/i18n/fr.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * product_code_mandatory
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 14.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2021-04-10 11:46+0000\n"
"Last-Translator: Yves Le Doeuff <[email protected]>\n"
"Language-Team: none\n"
"Language: fr\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.3.2\n"

#. module: product_code_mandatory
#: model:ir.model.fields,field_description:product_code_mandatory.field_product_product__default_code
msgid "Internal Reference"
msgstr "Référence interne"

#. module: product_code_mandatory
#: model:ir.model,name:product_code_mandatory.model_product_product
msgid "Product"
msgstr "Article"

#. module: product_code_mandatory
#: model:ir.model.fields,help:product_code_mandatory.field_product_product__default_code
msgid ""
"Set to '/' and save if you want a new internal reference to be proposed."
msgstr ""
"Mettez '/' et sauvegardez si vous voulez qu'une nouvelle référence vous soit "
"proposée."

#~ msgid "Display Name"
#~ msgstr "Nom affiché"

#~ msgid "Last Modified on"
#~ msgstr "Dernière modification"
41 changes: 41 additions & 0 deletions product_code_mandatory/i18n/fr_FR.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * product_code_mandatory
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 14.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2021-04-10 15:46+0000\n"
"Last-Translator: Yves Le Doeuff <[email protected]>\n"
"Language-Team: none\n"
"Language: fr_FR\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.3.2\n"

#. module: product_code_mandatory
#: model:ir.model.fields,field_description:product_code_mandatory.field_product_product__default_code
msgid "Internal Reference"
msgstr "Référence interne"

#. module: product_code_mandatory
#: model:ir.model,name:product_code_mandatory.model_product_product
msgid "Product"
msgstr "Article"

#. module: product_code_mandatory
#: model:ir.model.fields,help:product_code_mandatory.field_product_product__default_code
msgid ""
"Set to '/' and save if you want a new internal reference to be proposed."
msgstr ""
"Mettez '/' et sauvegardez si vous voulez qu'une nouvelle référence vous soit "
"proposée."

#~ msgid "Display Name"
#~ msgstr "Nom affiché"

#~ msgid "Last Modified on"
#~ msgstr "Dernière modification"
35 changes: 35 additions & 0 deletions product_code_mandatory/i18n/it.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * product_code_mandatory
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 15.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2023-11-01 14:37+0000\n"
"Last-Translator: mymage <[email protected]>\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_code_mandatory
#: model:ir.model.fields,field_description:product_code_mandatory.field_product_product__default_code
msgid "Internal Reference"
msgstr "Riferimento interno"

#. module: product_code_mandatory
#: model:ir.model,name:product_code_mandatory.model_product_product
msgid "Product"
msgstr "Prodotto"

#. module: product_code_mandatory
#: model:ir.model.fields,help:product_code_mandatory.field_product_product__default_code
msgid ""
"Set to '/' and save if you want a new internal reference to be proposed."
msgstr ""
"Impostare a '/' e salvare se si vuole venga proposto un nuovo riferimento "
"interno."
30 changes: 30 additions & 0 deletions product_code_mandatory/i18n/product_code_mandatory.pot
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * product_code_mandatory
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 15.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_code_mandatory
#: model:ir.model.fields,field_description:product_code_mandatory.field_product_product__default_code
msgid "Internal Reference"
msgstr ""

#. module: product_code_mandatory
#: model:ir.model,name:product_code_mandatory.model_product_product
msgid "Product"
msgstr ""

#. module: product_code_mandatory
#: model:ir.model.fields,help:product_code_mandatory.field_product_product__default_code
msgid ""
"Set to '/' and save if you want a new internal reference to be proposed."
msgstr ""
35 changes: 35 additions & 0 deletions product_code_mandatory/i18n/pt.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * product_code_mandatory
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 12.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2020-03-23 14:13+0000\n"
"Last-Translator: Pedro Castro Silva <[email protected]>\n"
"Language-Team: none\n"
"Language: pt\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 3.10\n"

#. module: product_code_mandatory
#: model:ir.model.fields,field_description:product_code_mandatory.field_product_product__default_code
msgid "Internal Reference"
msgstr "Referência Interna"

#. module: product_code_mandatory
#: model:ir.model,name:product_code_mandatory.model_product_product
msgid "Product"
msgstr "Produto"

#. module: product_code_mandatory
#: model:ir.model.fields,help:product_code_mandatory.field_product_product__default_code
msgid ""
"Set to '/' and save if you want a new internal reference to be proposed."
msgstr ""
"Defina como '/' e guarde caso pretenda que uma nova referência interna seja "
"proposta."
1 change: 1 addition & 0 deletions product_code_mandatory/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import product
15 changes: 15 additions & 0 deletions product_code_mandatory/models/product.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Copyright (C) 2018 - TODAY, Open Source Integrators License AGPL-3.0
# or later (https://www.gnu.org/licenses/agpl).

from odoo import fields, models


class ProductProduct(models.Model):
_inherit = "product.product"

def _get_default_code(self):
return self.env["ir.sequence"].next_by_code("product.default.code")

default_code = fields.Char(
"Internal Reference", index=True, default=_get_default_code
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"Internal Reference", index=True, default=_get_default_code
"Internal Reference", index=True, default=lambda self: self._get_default_code()

To be done in a separated commit that can be back/fwd ported

)
Loading
Loading