Skip to content

Commit e3c1482

Browse files
committed
[MIG] base_comment_template: Migration to 19.0
1 parent a87e3a4 commit e3c1482

7 files changed

Lines changed: 86 additions & 79 deletions

File tree

base_comment_template/README.rst

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,13 @@ Base Comments Templates
2121
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
2222
:alt: License: AGPL-3
2323
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Freporting--engine-lightgray.png?logo=github
24-
:target: https://github.com/OCA/reporting-engine/tree/18.0/base_comment_template
24+
:target: https://github.com/OCA/reporting-engine/tree/19.0/base_comment_template
2525
:alt: OCA/reporting-engine
2626
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
27-
:target: https://translation.odoo-community.org/projects/reporting-engine-18-0/reporting-engine-18-0-base_comment_template
27+
:target: https://translation.odoo-community.org/projects/reporting-engine-19-0/reporting-engine-19-0-base_comment_template
2828
:alt: Translate me on Weblate
2929
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
30-
:target: https://runboat.odoo-community.org/builds?repo=OCA/reporting-engine&target_branch=18.0
30+
:target: https://runboat.odoo-community.org/builds?repo=OCA/reporting-engine&target_branch=19.0
3131
:alt: Try me on Runboat
3232

3333
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -144,7 +144,7 @@ Bug Tracker
144144
Bugs are tracked on `GitHub Issues <https://github.com/OCA/reporting-engine/issues>`_.
145145
In case of trouble, please check there if your issue has already been reported.
146146
If you spotted it first, help us to smash it by providing a detailed and welcomed
147-
`feedback <https://github.com/OCA/reporting-engine/issues/new?body=module:%20base_comment_template%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
147+
`feedback <https://github.com/OCA/reporting-engine/issues/new?body=module:%20base_comment_template%0Aversion:%2019.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
148148

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

@@ -203,6 +203,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose
203203
mission is to support the collaborative development of Odoo features and
204204
promote its widespread use.
205205

206-
This module is part of the `OCA/reporting-engine <https://github.com/OCA/reporting-engine/tree/18.0/base_comment_template>`_ project on GitHub.
206+
This module is part of the `OCA/reporting-engine <https://github.com/OCA/reporting-engine/tree/19.0/base_comment_template>`_ project on GitHub.
207207

208208
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

base_comment_template/__manifest__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"name": "Base Comments Templates",
66
"summary": "Add conditional mako template to any report"
77
"on models that inherits comment.template.",
8-
"version": "18.0.1.1.0",
8+
"version": "19.0.0.0.0",
99
"category": "Reporting",
1010
"website": "https://github.com/OCA/reporting-engine",
1111
"author": "Camptocamp, Odoo Community Association (OCA)",

base_comment_template/models/base_comment_template.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,10 @@ def check_models(self):
114114
res = self._get_ir_model_items(item.models.split(","))
115115
if not res or len(res) != len(models):
116116
raise ValidationError(
117-
self.env._(f"Some model ({item.models}) not found")
117+
self.env._(
118+
"Some model (%(item_models)s) not found",
119+
{"item_models": item.models},
120+
)
118121
)
119122

120123
@api.depends("position", "model_ids")

base_comment_template/models/comment_template.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import markupsafe
77

88
from odoo import Command, api, fields, models
9-
from odoo.osv import expression
9+
from odoo.fields import Domain
1010
from odoo.tools.safe_eval import safe_eval
1111

1212

@@ -39,7 +39,7 @@ def _compute_comment_template_ids(self):
3939
partner = record[self._comment_template_partner_field_name]
4040
record.comment_template_ids = [(5,)]
4141
templates = template_model.search(
42-
expression.AND(
42+
Domain.AND(
4343
[
4444
[
4545
"|",

base_comment_template/static/description/index.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -374,7 +374,7 @@ <h1>Base Comments Templates</h1>
374374
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
375375
!! source digest: sha256:fceb79cbad33f077c558feebc3fe3feb103dbb2f6d8d51c6548c301ebf07b4a9
376376
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
377-
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/license-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/reporting-engine/tree/18.0/base_comment_template"><img alt="OCA/reporting-engine" src="https://img.shields.io/badge/github-OCA%2Freporting--engine-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/reporting-engine-18-0/reporting-engine-18-0-base_comment_template"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/reporting-engine&amp;target_branch=18.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
377+
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/license-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/reporting-engine/tree/19.0/base_comment_template"><img alt="OCA/reporting-engine" src="https://img.shields.io/badge/github-OCA%2Freporting--engine-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/reporting-engine-19-0/reporting-engine-19-0-base_comment_template"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/reporting-engine&amp;target_branch=19.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
378378
<p>Add a new mixin class to define templates of comments to print on
379379
documents. The comment templates can be defined like make templates, so
380380
you can use variables from linked models.</p>
@@ -489,7 +489,7 @@ <h2><a class="toc-backref" href="#toc-entry-3">Bug Tracker</a></h2>
489489
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/reporting-engine/issues">GitHub Issues</a>.
490490
In case of trouble, please check there if your issue has already been reported.
491491
If you spotted it first, help us to smash it by providing a detailed and welcomed
492-
<a class="reference external" href="https://github.com/OCA/reporting-engine/issues/new?body=module:%20base_comment_template%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
492+
<a class="reference external" href="https://github.com/OCA/reporting-engine/issues/new?body=module:%20base_comment_template%0Aversion:%2019.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
493493
<p>Do not contact contributors directly about support or help with technical issues.</p>
494494
</div>
495495
<div class="section" id="credits">
@@ -545,7 +545,7 @@ <h3><a class="toc-backref" href="#toc-entry-7">Maintainers</a></h3>
545545
<p>OCA, or the Odoo Community Association, is a nonprofit organization whose
546546
mission is to support the collaborative development of Odoo features and
547547
promote its widespread use.</p>
548-
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/reporting-engine/tree/18.0/base_comment_template">OCA/reporting-engine</a> project on GitHub.</p>
548+
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/reporting-engine/tree/19.0/base_comment_template">OCA/reporting-engine</a> project on GitHub.</p>
549549
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
550550
</div>
551551
</div>

base_comment_template/tests/fake_models.py

Lines changed: 18 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -3,32 +3,22 @@
33
# Copyright 2018 Camptocamp
44
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html).
55

6-
from odoo import models
7-
8-
9-
def setup_test_model(env, model_cls):
10-
"""Pass a test model class and initialize it.
11-
12-
Courtesy of SBidoul from https://github.com/OCA/mis-builder :)
13-
"""
14-
model_cls._build_model(env.registry, env.cr)
15-
env.registry.setup_models(env.cr)
16-
env.registry.init_models(
17-
env.cr, [model_cls._name], dict(env.context, update_custom_fields=True)
6+
from odoo import fields, models
7+
8+
9+
class TestResUsers(models.Model):
10+
_name = "test.res.users"
11+
_description = "Test User"
12+
_inherits = {"res.partner": "partner_id"}
13+
_inherit = ["comment.template"]
14+
15+
partner_id = fields.Many2one(
16+
"res.partner",
17+
required=True,
18+
ondelete="restrict",
19+
bypass_search_access=True,
20+
index=True,
21+
string="Related Partner",
22+
help="Partner-related data of the user",
1823
)
19-
20-
21-
def teardown_test_model(env, model_cls):
22-
"""Pass a test model class and deinitialize it.
23-
24-
Courtesy of SBidoul from https://github.com/OCA/mis-builder :)
25-
"""
26-
if not getattr(model_cls, "_teardown_no_delete", False):
27-
del env.registry.models[model_cls._name]
28-
env.registry.setup_models(env.cr)
29-
30-
31-
class ResUsers(models.Model):
32-
_name = "res.users"
33-
_inherit = ["res.users", "comment.template"]
34-
_teardown_no_delete = True
24+
login = fields.Char(required=True, help="Used to log into the system")

base_comment_template/tests/test_base_comment_template.py

Lines changed: 53 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,57 @@
11
# Copyright 2020 NextERP Romania SRL
22
# Copyright 2021 Tecnativa - Víctor Martínez
33
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
4+
45
from odoo import Command
56
from odoo.exceptions import ValidationError
7+
from odoo.orm.model_classes import add_to_registry
68
from odoo.tests import common
79
from odoo.tools.misc import mute_logger
810

9-
from .fake_models import ResUsers, setup_test_model, teardown_test_model
10-
1111

1212
class TestCommentTemplate(common.TransactionCase):
1313
@classmethod
1414
def setUpClass(cls):
1515
super().setUpClass()
16-
setup_test_model(cls.env, ResUsers)
17-
cls.user_obj = cls.env.ref("base.model_res_users")
18-
cls.user = cls.env.ref("base.user_demo")
19-
cls.user2 = cls.env.ref("base.demo_user0")
20-
cls.partner_id = cls.env.ref("base.res_partner_12")
21-
cls.partner2_id = cls.env.ref("base.res_partner_10")
22-
cls.ResPartnerTitle = cls.env["res.partner.title"]
16+
17+
from .fake_models import TestResUsers
18+
19+
add_to_registry(cls.registry, TestResUsers)
20+
cls.registry._setup_models__(cls.env.cr, ["test.res.users"])
21+
cls.registry.init_models(
22+
cls.env.cr,
23+
["test.res.users"],
24+
{"models_to_check": True},
25+
)
26+
cls.addClassCleanup(cls.registry.__delitem__, "test.res.users")
27+
28+
cls.test_user_obj = cls.env["ir.model"].search(
29+
[("model", "=", "test.res.users")], limit=1
30+
)
31+
cls.user = cls.env["test.res.users"].create(
32+
{
33+
"name": "Test User",
34+
"login": "test_user",
35+
"email": "[email protected]",
36+
}
37+
)
38+
cls.user2 = cls.env["test.res.users"].create(
39+
{
40+
"name": "Test User 2",
41+
"login": "test_user_2",
42+
"email": "[email protected]",
43+
}
44+
)
45+
cls.partner_id = cls.env["res.partner"].create({"name": "Test Partner"})
46+
cls.partner2_id = cls.env["res.partner"].create({"name": "Test Partner 2"})
47+
cls.ResPartnerCategory = cls.env["res.partner.category"]
2348
cls.main_company = cls.env.ref("base.main_company")
2449
cls.company = cls.env["res.company"].create({"name": "Test company"})
2550
cls.before_template_id = cls.env["base.comment.template"].create(
2651
{
2752
"name": "Top template",
2853
"text": "Text before lines",
29-
"models": cls.user_obj.model,
54+
"models": cls.test_user_obj.model,
3055
"company_id": cls.company.id,
3156
}
3257
)
@@ -35,7 +60,7 @@ def setUpClass(cls):
3560
"name": "Bottom template",
3661
"position": "after_lines",
3762
"text": "Text after lines",
38-
"models": cls.user_obj.model,
63+
"models": cls.test_user_obj.model,
3964
"company_id": cls.company.id,
4065
}
4166
)
@@ -44,18 +69,13 @@ def setUpClass(cls):
4469
(4, cls.after_template_id.id),
4570
]
4671

47-
@classmethod
48-
def tearDownClass(cls):
49-
teardown_test_model(cls.env, ResUsers)
50-
return super().tearDownClass()
51-
5272
def test_template_model_ids(self):
5373
self.assertIn(
54-
self.user_obj.model, self.before_template_id.mapped("model_ids.model")
74+
self.test_user_obj.model, self.before_template_id.mapped("model_ids.model")
5575
)
5676
self.assertEqual(len(self.before_template_id.model_ids), 1)
5777
self.assertIn(
58-
self.user_obj.model, self.after_template_id.mapped("model_ids.model")
78+
self.test_user_obj.model, self.after_template_id.mapped("model_ids.model")
5979
)
6080
self.assertEqual(len(self.after_template_id.model_ids), 1)
6181

@@ -93,7 +113,7 @@ def test_global_template(self):
93113
{
94114
"name": "Top template",
95115
"text": "Text before lines",
96-
"models": self.user_obj.model,
116+
"models": self.test_user_obj.model,
97117
"company_id": self.company.id,
98118
}
99119
)
@@ -133,10 +153,9 @@ def test_partner_template_domain(self):
133153
def test_render_comment_text(self):
134154
expected_text = f"Test comment render {self.user.name}"
135155
self.before_template_id.text = "Test comment render {{object.name}}"
136-
with self.with_user(self.user.login):
137-
self.assertEqual(
138-
self.user.render_comment(self.before_template_id), expected_text
139-
)
156+
self.assertEqual(
157+
self.user.render_comment(self.before_template_id), expected_text
158+
)
140159

141160
def test_render_comment_text_(self):
142161
ro_RO_lang = (
@@ -157,27 +176,22 @@ def test_render_comment_text_(self):
157176
po_file = export.data
158177
self.assertIsNotNone(po_file)
159178

160-
partner_title = self.ResPartnerTitle.create(
161-
{"name": "Ambassador", "shortcut": "Amb."}
162-
)
179+
partner_category = self.ResPartnerCategory.create({"name": "Ambassador"})
163180
# Adding translated terms
164181
ctx = dict(lang="ro_RO")
165-
partner_title.with_context(**ctx).write(
166-
{"name": "Ambasador", "shortcut": "Amb."}
167-
)
168-
self.user.partner_id.title = partner_title
169-
self.before_template_id.text = "Test comment render {{object.title.name}}"
182+
partner_category.with_context(**ctx).write({"name": "Ambasador"})
183+
self.user.partner_id.category_id = partner_category
184+
self.before_template_id.text = "Test comment render {{object.category_id.name}}"
170185

171186
expected_en_text = "Test comment render Ambassador"
172187
expected_ro_text = "Test comment render Ambasador"
173-
with self.with_user(self.user.login):
174-
self.assertEqual(
175-
self.user.render_comment(self.before_template_id), expected_en_text
176-
)
177-
self.assertEqual(
178-
self.user.with_context(**ctx).render_comment(self.before_template_id),
179-
expected_ro_text,
180-
)
188+
self.assertEqual(
189+
self.user.render_comment(self.before_template_id), expected_en_text
190+
)
191+
self.assertEqual(
192+
self.user.with_context(**ctx).render_comment(self.before_template_id),
193+
expected_ro_text,
194+
)
181195

182196
def test_partner_template_wizaard(self):
183197
partner_preview = (

0 commit comments

Comments
 (0)