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

[18.0][MIG] product_secondary_unit: Migration to 18.0 #1767

Closed
wants to merge 42 commits into from
Closed
Changes from 1 commit
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
c83e105
[11.0][NEW] product_secondary_unit: New module for setting a secondar…
sergio-teruel Oct 11, 2018
3f40732
[11.0][ADD] product_secondary_unit: Add default secondary unit for pu…
sergio-teruel Oct 25, 2018
a031404
Added translation using Weblate (French)
Billolha Nov 5, 2018
bbaec6f
Translated using Weblate (Spanish)
mvrodriguez Feb 8, 2019
a2bb374
[11.0][IMP] product_secondary_unit: Make secondary unit name translat…
sergio-teruel Mar 13, 2019
c0ae1e0
[12.0][MIG] product_secondary_unit
kittiu Apr 4, 2019
3160a3e
Added translation using Weblate (Chinese (Simplified))
digitalsatori Oct 21, 2019
290a3a3
[IMP] product_secondary_unit: black, isort
ps-tubtim Dec 18, 2019
2ebb0f0
[MIG] product_secondary_unit: Migration to 13.0
ps-tubtim Dec 18, 2019
66409a0
[IMP] product_secondary_unit: Remove product secondary units if a pro…
sergio-teruel Mar 11, 2020
e96c6cf
Added translation using Weblate (Spanish (Mexico))
alan196 Mar 11, 2020
b7e67cc
Translated using Weblate (French)
didierdonze Jul 22, 2020
73663bf
[MIG] product_secondary_unit: Migration to 14.0
alan196 Nov 12, 2020
78a429b
[IMP] product_secondary_unit: Add mixin model to be inherited from ot…
sergio-teruel Jan 11, 2021
cb0b8bd
[FIX] product_secondary_unit: Avoid to recompute secondary_uom_qty wh…
sergio-teruel Jan 16, 2021
b910f87
[IMP] add dependency type for product_secondary_unit_mixin
mourad-ehm Apr 14, 2021
b34b28d
Apply suggestions from code review
mourad-ehm Jun 8, 2021
5f12322
[FIX] refactor code
mourad-ehm Jun 25, 2021
42fae04
[FIX] formatting and minor changes
Kev-Roche Jul 19, 2021
020246c
rework and test dependency_type
Kev-Roche Jul 22, 2021
56eac01
[14.0][FIX] secondary_uom: independent behavior
Kev-Roche Sep 7, 2021
7b49a44
[MIG] product_secondary_unit: Migration to 15.0
remihb Dec 28, 2021
a766ff9
[FIX] product_secondary_unit: Change SavepointCase to TransactionCase
victoralmau Nov 21, 2022
3364844
[IMP] product_secondary_unit: Compatibility with product variants
sergio-teruel Jan 11, 2023
ddc0919
[FIX] product_secondary_unit: Fix rounding secondary uom
sergio-teruel Mar 9, 2023
5501f81
[FIX] product_secondary_unit: Apply the default value defined in sour…
sergio-teruel Mar 14, 2023
b55e4e9
[IMP] product_secondary_unit: Access to template secondary_uom_ids fr…
sergio-teruel Mar 15, 2023
3e5ac8b
Update translation files
weblate Mar 28, 2023
e885fa9
[MIG] product_secondary_unit: Migration to 16.0
remihb Apr 18, 2023
86c7ec2
Update translation files
weblate Jun 7, 2023
0390bab
Added translation using Weblate (Portuguese (Brazil))
adrianojprado Jun 10, 2023
1a50cf1
Translated using Weblate (Spanish)
Ivorra78 Aug 23, 2023
35e4401
[FIX] product_secondary_unit: wrong factor computation for uom's equa…
sergio-teruel Sep 13, 2023
0461b91
[16.0][FIX] product_secondary_unit: precompute secondary_uom_qty
BT-cserra Sep 28, 2023
606af64
Update translation files
weblate Oct 9, 2023
a86008c
Added translation using Weblate (Italian)
mymage Oct 29, 2023
c57d352
[FIX] product_secondary_unit: use existing value
alexey-pelykh Mar 17, 2024
9fe1dd0
[IMP] product_secondary_unit: pre-commit auto fixes
alexey-pelykh Mar 20, 2024
3890956
[MIG] product_secondary_unit: Migration to 17.0
achulii Mar 1, 2024
19999bf
Update translation files
weblate Jul 29, 2024
257634d
[IMP] product_secondary_unit: pre-commit auto fixes
pfranck Nov 12, 2024
fd18c54
[MIG] product_secondary_unit: Migration to 18.0
pfranck Jan 15, 2025
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
Prev Previous commit
Next Next commit
[IMP] product_secondary_unit: black, isort
ps-tubtim authored and pfranck committed Jan 16, 2025
commit 290a3a321118f641fc67922b3842acc669126120
29 changes: 12 additions & 17 deletions product_secondary_unit/__manifest__.py
Original file line number Diff line number Diff line change
@@ -1,21 +1,16 @@
# Copyright 2018 Tecnativa - Sergio Teruel
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
{
'name': 'Product Secondary Unit',
'summary': 'Set a secondary unit per product',
'version': '12.0.1.0.0',
'development_status': 'Beta',
'category': 'Product',
'website': 'https://github.com/OCA/product-attribute',
'author': 'Tecnativa, Odoo Community Association (OCA)',
'license': 'AGPL-3',
'application': False,
'installable': True,
'depends': [
'product',
],
'data': [
'security/ir.model.access.csv',
'views/product_views.xml',
],
"name": "Product Secondary Unit",
"summary": "Set a secondary unit per product",
"version": "13.0.1.0.0",
"development_status": "Beta",
"category": "Product",
"website": "https://github.com/OCA/product-attribute",
"author": "Tecnativa, Odoo Community Association (OCA)",
"license": "AGPL-3",
"application": False,
"installable": True,
"depends": ["product"],
"data": ["security/ir.model.access.csv", "views/product_views.xml"],
}
39 changes: 18 additions & 21 deletions product_secondary_unit/models/product_second_unit.py
100755 → 100644
Original file line number Diff line number Diff line change
@@ -4,48 +4,45 @@


class ProductSecondaryUnit(models.Model):
_name = 'product.secondary.unit'
_description = 'Product Secondary Unit'
_name = "product.secondary.unit"
_description = "Product Secondary Unit"

name = fields.Char(
required=True,
translate=True,
)
name = fields.Char(required=True, translate=True)
code = fields.Char()
product_tmpl_id = fields.Many2one(
comodel_name='product.template',
string='Product Template',
required=True,
comodel_name="product.template", string="Product Template", required=True
)
uom_id = fields.Many2one(
comodel_name='uom.uom',
string='Secondary Unit of Measure',
comodel_name="uom.uom",
string="Secondary Unit of Measure",
required=True,
help="Default Secondary Unit of Measure.",
)
factor = fields.Float(
string='Secondary Unit Factor',
default=1.0,
digits=0,
required=True,
string="Secondary Unit Factor", default=1.0, digits=0, required=True
)

@api.multi
def name_get(self):
result = []
for unit in self:
result.append((unit.id, "{unit_name}-{factor}".format(
unit_name=unit.name,
factor=unit.factor))
result.append(
(
unit.id,
"{unit_name}-{factor}".format(
unit_name=unit.name, factor=unit.factor
),
)
)
return result

@api.model
def name_search(self, name='', args=None, operator='ilike', limit=100):
def name_search(self, name="", args=None, operator="ilike", limit=100):
if args is None:
args = []
units = self.search([('code', '=', name)] + args, limit=1)
units = self.search([("code", "=", name)] + args, limit=1)
if not units:
return super(ProductSecondaryUnit, self).name_search(
name=name, args=args, operator=operator, limit=limit)
name=name, args=args, operator=operator, limit=limit
)
return units.name_get()
10 changes: 5 additions & 5 deletions product_secondary_unit/models/product_template.py
100755 → 100644
Original file line number Diff line number Diff line change
@@ -4,11 +4,11 @@


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

secondary_uom_ids = fields.One2many(
comodel_name='product.secondary.unit',
inverse_name='product_tmpl_id',
string='Secondary Unit of Measure',
help='Default Secondary Unit of Measure.',
comodel_name="product.secondary.unit",
inverse_name="product_tmpl_id",
string="Secondary Unit of Measure",
help="Default Secondary Unit of Measure.",
)
75 changes: 44 additions & 31 deletions product_secondary_unit/tests/test_product_second_unit.py
Original file line number Diff line number Diff line change
@@ -10,40 +10,53 @@ class TestProductSecondaryUnit(SavepointCase):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.product_uom_kg = cls.env.ref('uom.product_uom_kgm')
cls.product_uom_unit = cls.env.ref('uom.product_uom_unit')
cls.product = cls.env['product.template'].create({
'name': 'test',
'uom_id': cls.product_uom_kg.id,
'uom_po_id': cls.product_uom_kg.id,
'secondary_uom_ids': [
(0, 0, {
'code': 'A',
'name': 'unit-700',
'uom_id': cls.product_uom_unit.id,
'factor': 0.7,
}),
(0, 0, {
'code': 'B',
'name': 'unit-900',
'uom_id': cls.product_uom_unit.id,
'factor': 0.9,
}),
],
})
cls.secondary_unit = cls.env['product.secondary.unit'].search([
('product_tmpl_id', '=', cls.product.id),
], limit=1)
cls.product_uom_kg = cls.env.ref("uom.product_uom_kgm")
cls.product_uom_unit = cls.env.ref("uom.product_uom_unit")
cls.product = cls.env["product.template"].create(
{
"name": "test",
"uom_id": cls.product_uom_kg.id,
"uom_po_id": cls.product_uom_kg.id,
"secondary_uom_ids": [
(
0,
0,
{
"code": "A",
"name": "unit-700",
"uom_id": cls.product_uom_unit.id,
"factor": 0.7,
},
),
(
0,
0,
{
"code": "B",
"name": "unit-900",
"uom_id": cls.product_uom_unit.id,
"factor": 0.9,
},
),
],
}
)
cls.secondary_unit = cls.env["product.secondary.unit"].search(
[("product_tmpl_id", "=", cls.product.id)], limit=1
)

def test_product_secondary_unit_name(self):
self.assertEqual(self.secondary_unit.name_get()[0][1], 'unit-700-0.7')
self.assertEqual(self.secondary_unit.name_get()[0][1], "unit-700-0.7")

def test_product_secondary_unit_search(self):
args = [('product_tmpl_id.product_variant_ids', 'in',
self.product.product_variant_ids.ids)]
name_get = self.env['product.secondary.unit'].name_search(
name='A', args=args)
args = [
(
"product_tmpl_id.product_variant_ids",
"in",
self.product.product_variant_ids.ids,
)
]
name_get = self.env["product.secondary.unit"].name_search(name="A", args=args)
self.assertEqual(len(name_get), 1)
name_get = self.env['product.secondary.unit'].name_search(
name='X', args=args)
name_get = self.env["product.secondary.unit"].name_search(name="X", args=args)
self.assertEqual(len(name_get), 0)
Empty file modified product_secondary_unit/views/product_views.xml
100755 → 100644
Empty file.