Skip to content

Commit

Permalink
[ADD][12.0] new module product_net_weight.
Browse files Browse the repository at this point in the history
- Add new net_weight field on product models;
- Rename weight field with 'Gross Weight' string;
  • Loading branch information
legalsylvain committed Aug 13, 2021
1 parent a7b66e9 commit d11e8dc
Show file tree
Hide file tree
Showing 15 changed files with 229 additions and 0 deletions.
8 changes: 8 additions & 0 deletions product_net_weight/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
=====================
Products - Net Weight
=====================

.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1 change: 1 addition & 0 deletions product_net_weight/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import models
25 changes: 25 additions & 0 deletions product_net_weight/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Copyright (C) 2021 - Today: GRAP (http://www.grap.coop)
# @author: Sylvain LE GAL (https://twitter.com/legalsylvain)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
{
"name": "Products - Net Weight",
"summary": "Add 'Net Weight' on product models",
"version": "12.0.1.0.1",
"category": "Product",
"author": "GRAP,Odoo Community Association (OCA)",
"maintainers": ["legalsylvain"],
"website": "https://github.com/OCA/product-attribute",
"license": "AGPL-3",
"depends": ["product"],
"data": [
"views/view_product_product.xml",
"views/view_product_template.xml",
],
"demo": [
"demo/product_product.xml",
],
"images": [
"static/description/product_product_form.png",
],
"installable": True,
}
19 changes: 19 additions & 0 deletions product_net_weight/demo/product_product.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2021 - Today: GRAP (http://www.grap.coop)
@author: Sylvain LE GAL (https://twitter.com/legalsylvain)
deLicense AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
-->
<odoo>

<record id="product_strawberry_jam" model="product.product">
<field name="name">Strawberry Jam (Jar of 250 grams)</field>
<field name="uom_id" ref="uom.product_uom_unit" />
<field name="uom_po_id" ref="uom.product_uom_unit" />
<field name="net_weight">0.250</field>
<field name="weight">0.410</field>
<field name="standard_price">1.97</field>
<field name="list_price">2.70</field>
</record>

</odoo>
73 changes: 73 additions & 0 deletions product_net_weight/i18n/fr.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * product_net_weight
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 12.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-08-13 18:38+0000\n"
"PO-Revision-Date: 2021-08-13 18:38+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_net_weight
#: model:ir.model.fields,field_description:product_net_weight.field_product_product__weight
#: model:ir.model.fields,field_description:product_net_weight.field_product_template__weight
msgid "Gross Weight"
msgstr "Poids brut"

#. module: product_net_weight
#: model:ir.model.fields,field_description:product_net_weight.field_product_product__net_weight
#: model:ir.model.fields,field_description:product_net_weight.field_product_template__net_weight
msgid "Net Weight"
msgstr "Poids net"

#. module: product_net_weight
#: model:ir.model.fields,help:product_net_weight.field_product_product__net_weight
#: model:ir.model.fields,help:product_net_weight.field_product_template__net_weight
msgid "Net Weight of the product, container excluded."
msgstr "Poids net du produit, contenant exclus."

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

#. module: product_net_weight
#: model:ir.model,name:product_net_weight.model_product_template
msgid "Product Template"
msgstr "Modèle d'article"

#. module: product_net_weight
#: model:product.product,name:product_net_weight.product_strawberry_jam
#: model:product.template,name:product_net_weight.product_strawberry_jam_product_template
msgid "Strawberry Jam (Jar of 250 grams)"
msgstr "Confiture de fraise (Pot de 250 grammes)"

#. module: product_net_weight
#: model:ir.model.fields,help:product_net_weight.field_product_template__weight
msgid "The weight of the contents in Kg, not including any packaging, etc."
msgstr "Le poids du contenu en kilogrammes, sans compter tout emballage, etc."

#. module: product_net_weight
#: model:product.product,uom_name:product_net_weight.product_strawberry_jam
#: model:product.template,uom_name:product_net_weight.product_strawberry_jam_product_template
msgid "Unit(s)"
msgstr "Unité(s)"

#. module: product_net_weight
#: model:ir.model.fields,help:product_net_weight.field_product_product__weight
msgid "Weight of the product, packaging not included. The unit of measure can be changed in the general settings"
msgstr "Poids du produit, sans le conditionnement. L'unité de mesure peut être changée dans les paramètres généraux."

#. module: product_net_weight
#: model:product.product,weight_uom_name:product_net_weight.product_strawberry_jam
#: model:product.template,weight_uom_name:product_net_weight.product_strawberry_jam_product_template
msgid "kg"
msgstr ""

2 changes: 2 additions & 0 deletions product_net_weight/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
from . import product_product
from . import product_template
19 changes: 19 additions & 0 deletions product_net_weight/models/product_product.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Copyright (C) 2021 - Today: GRAP (http://www.grap.coop)
# @author: Sylvain LE GAL (https://twitter.com/legalsylvain)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

from odoo import api, fields, models
from odoo.addons import decimal_precision as dp


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

net_weight = fields.Float(
string="Net Weight",
digits=dp.get_precision("Stock Weight"),
help="Net Weight of the product, container excluded.",
)

# Explicit field, renaming it
weight = fields.Float(string="Gross Weight")
21 changes: 21 additions & 0 deletions product_net_weight/models/product_template.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Copyright (C) 2021 - Today: GRAP (http://www.grap.coop)
# @author: Sylvain LE GAL (https://twitter.com/legalsylvain)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

from odoo import fields, models
from odoo.addons import decimal_precision as dp


class ProductTemplate(models.Model):
_inherit = "product.template"

net_weight = fields.Float(
string="Net Weight",
related="product_variant_ids.net_weight",
digits=dp.get_precision("Stock Weight"),
help="Net Weight of the product, container excluded.",
readonly=False,
)

# Explicit field, renaming it
weight = fields.Float(string="Gross Weight")
1 change: 1 addition & 0 deletions product_net_weight/readme/CONTRIBUTORS.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* Sylvain LE GAL (https://www.twitter.com/legalsylvain)
2 changes: 2 additions & 0 deletions product_net_weight/readme/DESCRIPTION.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
This module extends the functionality of stock module to support net weight. (container excluded)

5 changes: 5 additions & 0 deletions product_net_weight/readme/ROADMAP.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
In futur version (> 12.0), allow to compute Weight Price
(Net weight / Price).
For that purpose, refactor with ``product_logistics_uom``.

Ref : https://github.com/OCA/product-attribute/pull/894#issuecomment-895930887
7 changes: 7 additions & 0 deletions product_net_weight/readme/USAGE.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
* Go to 'Inventory > Master Data > Product' and edit items.

* Go to 'Inventory' tab, and fill the "Net Weight" value.

.. figure:: ../static/description/product_form.png

**Note**: The original weight field is renamed to "Gross Weight", to be more explicit.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
23 changes: 23 additions & 0 deletions product_net_weight/views/view_product_product.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2021 - Today: GRAP (http://www.grap.coop)
@author: Sylvain LE GAL (https://twitter.com/legalsylvain)
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
-->
<odoo>

<record id="view_product_product_form" model="ir.ui.view">
<field name="model">product.product</field>
<field name="inherit_id" ref="product.product_variant_easy_edit_view" />
<field name="arch" type="xml">
<xpath expr="//label[@for='weight']" position="before">
<label for="net_weight"/>
<div class="o_row">
<field name="net_weight"/>
<span><field name="weight_uom_name"/></span>
</div>
</xpath>
</field>
</record>

</odoo>
23 changes: 23 additions & 0 deletions product_net_weight/views/view_product_template.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2021 - Today: GRAP (http://www.grap.coop)
@author: Sylvain LE GAL (https://twitter.com/legalsylvain)
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
-->
<odoo>

<record id="view_product_template_form" model="ir.ui.view">
<field name="model">product.template</field>
<field name="inherit_id" ref="product.product_template_form_view" />
<field name="arch" type="xml">
<xpath expr="//label[@for='weight']" position="before">
<label for="net_weight" attrs="{'invisible':[('product_variant_count', '&gt;', 1), ('is_product_variant', '=', False)]}"/>
<div class="o_row" name="net_weight" attrs="{'invisible':[('product_variant_count', '&gt;', 1), ('is_product_variant', '=', False)]}">
<field name="net_weight"/>
<span><field name="weight_uom_name"/></span>
</div>
</xpath>
</field>
</record>

</odoo>

0 comments on commit d11e8dc

Please sign in to comment.