Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
6af39f3
[11.0] product_internal_reference_mandatory (#334)
agyamuta Jun 12, 2018
e2afa64
[UPD] Update product_code_mandatory.pot
oca-travis Jun 21, 2018
e5fd177
[MIG] Migrated product_code_mandatory to v12
sudhir-erpharbor Dec 4, 2018
23c8fa1
[UPD] Update product_code_mandatory.pot
oca-travis Feb 28, 2020
d581fad
[UPD] README.rst
OCA-git-bot Feb 28, 2020
59768d8
Added translation using Weblate (Portuguese)
pedrocs-exo Mar 23, 2020
aba23f8
Translated using Weblate (Portuguese)
pedrocs-exo Mar 23, 2020
7904091
[IMP] product_code_mandatory: black, isort, prettier
Jul 9, 2020
0305879
[13.0][MIG] product_code_mandatory
Jul 9, 2020
a0ead69
[UPD] Update product_code_mandatory.pot
oca-travis Jul 19, 2020
ed1130d
[UPD] README.rst
OCA-git-bot Jul 19, 2020
12b74b0
[MIG] product_code_mandatory: Migration to 14.0
watthanun Dec 4, 2020
9278657
[UPD] Update product_code_mandatory.pot
oca-travis Dec 11, 2020
6e7067c
[UPD] README.rst
OCA-git-bot Dec 11, 2020
c3c5d34
product_code_mandatory 14.0.1.0.1
OCA-git-bot Dec 11, 2020
bebef60
Added translation using Weblate (French)
Yvesldff Apr 10, 2021
cfa87ca
Translated using Weblate (French)
Yvesldff Apr 10, 2021
5e18fd2
Added translation using Weblate (French (France))
Yvesldff Apr 10, 2021
6ca8472
Translated using Weblate (French (France))
Yvesldff Apr 10, 2021
098f5ab
[MIG] product_code_mandatory: Migration to 15.0
Jan 19, 2022
7191f49
[UPD] Update product_code_mandatory.pot
Jan 26, 2022
7a2d995
[UPD] README.rst
OCA-git-bot Jan 26, 2022
641001a
Added translation using Weblate (Catalan)
pablontura Apr 22, 2022
f9f4fac
Translated using Weblate (Catalan)
pablontura Apr 22, 2022
599c4a6
[UPD] Update product_code_mandatory.pot
Jul 3, 2022
d048d66
Update translation files
oca-transbot Jul 3, 2022
6918801
[FIX] product_code_mandatory: align code with Odoo way to set default…
augusto-weiss Sep 15, 2022
be8617f
product_code_mandatory 15.0.1.0.1
OCA-git-bot Dec 19, 2022
dc34c60
[UPD] README.rst
OCA-git-bot Sep 3, 2023
c4e128e
Added translation using Weblate (Italian)
mymage Oct 31, 2023
ea454e7
Translated using Weblate (Italian)
mymage Nov 1, 2023
68333e3
[IMP] product_code_mandatory: pre-commit stuff
Apr 9, 2024
7064eb1
[MIG] poduct_code_mandatory: Migration to 16.0
Apr 9, 2024
0a9fbf1
[IMP] product_code_mandatory: Add review improvements
rov-adhoc Jul 26, 2024
13de979
[IMP] product_code_mandatory: pre-commit execution
ced-adhoc Jul 30, 2024
29b61df
[MIG] product_code_mandatory: Migration to 17.0
ced-adhoc Jul 30, 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
98 changes: 98 additions & 0 deletions product_code_mandatory/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
======================
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/17.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-17-0/product-attribute-17-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=17.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.

|Try me on Runbot|

.. |Try me on Runbot| image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
: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:%2017.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 <ayamuta@opensourceintegrators.com>
- Sudhir Arya <sudhir@erpharbor.com>
- Watthanun Khorchai <watthanun_t@hotmail.com>
- Nedas Žilinskas <nedas.zilinskas@web-veistamo.fi>
- `Binhex <https://binhex.cloud/>`__:

- Mario Luis Mora <m.luis@binhex.cloud>

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/17.0/product_code_mandatory>`_ project on GitHub.

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


def pre_init_product_code(env):
env.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 env.cr.fetchall()]
env.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": "17.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 <pablo.ruiz@qubiq.es>\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 <yld@alliasys.fr>\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 <yld@alliasys.fr>\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 <stefano.consolaro@mymage.it>\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 <pedrocs@exo.pt>\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=lambda self: self._get_default_code()
)
3 changes: 3 additions & 0 deletions product_code_mandatory/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[build-system]
requires = ["whool"]
build-backend = "whool.buildapi"
Loading