Skip to content

Commit 54c8639

Browse files
committed
[MIG] sale_order_line_description: Migration to 18.0
1 parent c3e975d commit 54c8639

File tree

5 files changed

+40
-50
lines changed

5 files changed

+40
-50
lines changed

sale_order_line_description/__manifest__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
33
{
44
"name": "Sale order line description",
5-
"version": "15.0.1.0.0",
5+
"version": "18.0.1.0.0",
66
"category": "Sales Management",
77
"author": "Agile Business Group, " "Odoo Community Association (OCA)",
88
"website": "https://github.com/OCA/sale-workflow",

sale_order_line_description/i18n/sale_order_line_description.pot

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#
55
msgid ""
66
msgstr ""
7-
"Project-Id-Version: Odoo Server 15.0\n"
7+
"Project-Id-Version: Odoo Server 18.0\n"
88
"Report-Msgid-Bugs-To: \n"
99
"Last-Translator: \n"
1010
"Language-Team: \n"
Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,15 @@
11
# Copyright 2013-15 Agile Business Group sagl (<http://www.agilebg.com>)
22
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
33

4-
from odoo import api, models
4+
from odoo import models
55

66

77
class SaleOrderLine(models.Model):
88
_inherit = "sale.order.line"
99

10-
@api.onchange("product_id")
11-
def product_id_change(self):
12-
res = super().product_id_change()
13-
if not self.product_id: # pragma: no cover
14-
return res
10+
def _get_sale_order_line_multiline_description_sale(self):
1511
if (
16-
self.user_has_groups(
12+
self.env.user.has_group(
1713
"sale_order_line_description."
1814
"group_use_product_description_per_so_line"
1915
)
@@ -24,5 +20,5 @@ def product_id_change(self):
2420
product = product.with_context(
2521
lang=self.order_id.partner_id.lang,
2622
)
27-
self.name = product.description_sale
28-
return res
23+
return product.description_sale
24+
return super()._get_sale_order_line_multiline_description_sale()

sale_order_line_description/tests/test_sale.py

Lines changed: 26 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -7,35 +7,35 @@
77

88
@tagged("post_install", "-at_install")
99
class TestSaleOrderLineDescriptionChange(common.TransactionCase):
10-
def setUp(self):
11-
super().setUp()
10+
@classmethod
11+
def setUpClass(cls):
12+
super().setUpClass()
1213

1314
# Create models
14-
self.sale_order_model = self.env["sale.order"]
15-
self.sale_order_line_model = self.env["sale.order.line"]
16-
self.partner_model = self.env["res.partner"]
17-
self.product_model = self.env["product.product"]
18-
self.user_model = self.env["res.users"].with_context(
15+
cls.sale_order_model = cls.env["sale.order"]
16+
cls.sale_order_line_model = cls.env["sale.order.line"]
17+
cls.partner_model = cls.env["res.partner"]
18+
cls.product_model = cls.env["product.product"]
19+
cls.user_model = cls.env["res.users"].with_context(
1920
no_reset_password=True, mail_create_nosubscribe=True
2021
)
2122

22-
# Create two different users
23-
self.group_only_sale_description = self.env.ref(
23+
# Create user group
24+
cls.group_only_sale_description = cls.env.ref(
2425
"sale_order_line_description.group_use_product_description_per_so_line"
2526
)
26-
self.user_1 = self._create_user("TestUser1")
27-
self.user_2 = self._create_user("TestUser2", self.group_only_sale_description)
2827

2928
# Create the sale order
30-
self.partner = self.partner_model.create({"name": "Test partner"})
31-
self.sale_order = self.sale_order_model.create({"partner_id": self.partner.id})
29+
cls.partner = cls.partner_model.create({"name": "Test partner"})
30+
cls.sale_order = cls.sale_order_model.create({"partner_id": cls.partner.id})
3231

33-
self.product = self.product_model.create(
32+
cls.product = cls.product_model.create(
3433
{
3534
"name": "Test product",
3635
"description_sale": "Sale description for test product",
3736
}
3837
)
38+
cls.line_values = {"order_id": cls.sale_order.id, "product_id": cls.product.id}
3939

4040
def _create_user(self, name, group=None):
4141
groups_id = self.env.user.groups_id
@@ -50,24 +50,29 @@ def _create_user(self, name, group=None):
5050
}
5151
)
5252

53-
def test_check_sale_order_line_description(self):
54-
line_values = {"order_id": self.sale_order.id, "product_id": self.product.id}
55-
56-
# Create sale order line with TestUser1
53+
def test_01_check_sale_order_line_description_standard(self):
54+
# GIVEN
55+
self.user_1 = self._create_user("TestUser1")
56+
# WHEN
5757
sale_order_line = self.sale_order_line_model.with_user(self.user_1).create(
58-
line_values.copy()
58+
self.line_values.copy()
5959
)
60+
# THEN
6061
self.assertEqual(
6162
sale_order_line.name,
6263
"\n".join([self.product.name, self.product.description_sale]),
6364
"Standard behavior does not concatenate "
6465
"product description and product sale description",
6566
)
6667

67-
# Create sale order line with TestUser2
68+
def test_02_check_sale_order_line_description_with_group(self):
69+
# GIVEN
70+
self.user_2 = self._create_user("TestUser2", self.group_only_sale_description)
71+
# WHEN
6872
sale_order_line = self.sale_order_line_model.with_user(self.user_2).create(
69-
line_values.copy()
73+
self.line_values.copy()
7074
)
75+
# THEN
7176
self.assertEqual(
7277
sale_order_line.name,
7378
self.product.description_sale,

sale_order_line_description/views/res_config_settings_views.xml

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,13 @@
44
<field name="model">res.config.settings</field>
55
<field name="inherit_id" ref="sale.res_config_settings_view_form" />
66
<field name="arch" type="xml">
7-
<xpath
8-
expr="//field[@name='group_auto_done_setting']/../.."
9-
position="after"
10-
>
11-
<div class="col-xs-12 col-md-6 o_setting_box">
12-
<div class="o_setting_left_pane">
13-
<field name="group_use_product_description_per_so_line" />
14-
</div>
15-
<div class="o_setting_right_pane">
16-
<label
17-
for="group_use_product_description_per_so_line"
18-
string="Product sale description"
19-
/>
20-
<div class="text-muted">
21-
Allows you to use only product sale description on the sales order line
22-
</div>
23-
</div>
24-
</div>
7+
<xpath expr="//setting[@id='no_edit_order']" position="after">
8+
<setting
9+
string="Sales Order Line Description"
10+
help="Allows you to use only product sale description on the sales order line"
11+
>
12+
<field name="group_use_product_description_per_so_line" />
13+
</setting>
2514
</xpath>
2615
</field>
2716
</record>

0 commit comments

Comments
 (0)