Skip to content

Commit 3a7e154

Browse files
[MIG] project_template: Migration to 18.0
* Change the way to copy end dates to tasks due to api change to _map_tasks_default_values which now longer gets passed the task * Refactor tests to use setUpClass (finally) * Update overwritten action context with upstream changes * Remove originally unmodified (but now outdated) fields from overwritten action * Update kanban element selector
1 parent 6a6e14f commit 3a7e154

File tree

5 files changed

+25
-31
lines changed

5 files changed

+25
-31
lines changed

project_template/__manifest__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"author": "Patrick Wilson, Odoo Community Association (OCA)",
88
"website": "https://github.com/OCA/project",
99
"category": "Project Management",
10-
"version": "17.0.1.0.0",
10+
"version": "18.0.1.0.0",
1111
"license": "AGPL-3",
1212
"depends": ["project"],
1313
"data": ["views/project.xml"],

project_template/models/project.py

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,6 @@ def create_project_from_template(self):
3030
"type": "ir.actions.act_window",
3131
}
3232

33-
@api.model
34-
def _map_tasks_default_valeus(self, task, project):
35-
defaults = super()._map_tasks_default_valeus(task, project)
36-
if self.env.context.get(TASK_DEFAULT_COPY_CONTEXT_KEY):
37-
# date_end normally is not copied on tasks when a project is
38-
# copied, but we want it when generating from template
39-
defaults["date_end"] = task.date_end
40-
return defaults
41-
4233
# ADD "(TEMPLATE)" TO THE NAME WHEN PROJECT IS MARKED AS A TEMPLATE
4334
@api.onchange("is_template")
4435
def on_change_is_template(self):

project_template/models/project_task.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,14 @@
77
class ProjectTask(models.Model):
88
_inherit = "project.task"
99

10+
def copy_data(self, default=None):
11+
# Propagate task end dates when creating a project from a template
12+
vals_list = super().copy_data(default=default)
13+
if self.env.context.get(TASK_DEFAULT_COPY_CONTEXT_KEY):
14+
for task, vals in zip(self, vals_list, strict=True):
15+
vals["date_end"] = task.date_end
16+
return vals_list
17+
1018
def update_date_end(self, stage_id):
1119
# Refuse to overwrite date_end when we are copying a template
1220
if self.env.context.get(TASK_DEFAULT_COPY_CONTEXT_KEY):

project_template/tests/test_project_template.py

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,27 @@
22
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
33
from datetime import datetime, timedelta
44

5-
from odoo.tests import common
5+
from odoo.addons.base.tests.common import BaseCommon
66

77

8-
class TestProjectTemplate(common.TransactionCase):
9-
def setUp(self):
10-
super().setUp()
11-
self.test_customer = self.env["res.partner"].create({"name": "TestCustomer"})
12-
self.test_project = self.env["project.project"].create(
8+
class TestProjectTemplate(BaseCommon):
9+
@classmethod
10+
def setUpClass(cls):
11+
super().setUpClass()
12+
cls.test_customer = cls.env["res.partner"].create({"name": "TestCustomer"})
13+
cls.test_project = cls.env["project.project"].create(
1314
{
1415
"name": "TestProject",
1516
"alias_name": "test_alias",
16-
"partner_id": self.test_customer.id,
17+
"partner_id": cls.test_customer.id,
1718
}
1819
)
19-
self.tasks = [
20-
self.env["project.task"].create(
21-
{"name": "TestTask", "project_id": self.test_project.id}
20+
cls.tasks = [
21+
cls.env["project.task"].create(
22+
{"name": "TestTask", "project_id": cls.test_project.id}
2223
),
23-
self.env["project.task"].create(
24-
{"name": "TestTask2", "project_id": self.test_project.id}
24+
cls.env["project.task"].create(
25+
{"name": "TestTask2", "project_id": cls.test_project.id}
2526
),
2627
]
2728

project_template/views/project.xml

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,7 @@
2626
<field name="model">project.project</field>
2727
<field name="inherit_id" ref="project.view_project_kanban" />
2828
<field name="arch" type="xml">
29-
<xpath
30-
expr="//div[hasclass('o_kanban_card_manage_section')]"
31-
position="inside"
32-
>
29+
<xpath expr="//div[@name='card_menu_view']" position="inside">
3330
<field name="is_template" invisible="1" />
3431
<div t-if="record.is_template.raw_value" role="menuitem">
3532
<a
@@ -61,13 +58,10 @@
6158
</filter>
6259
</field>
6360
</record>
61+
<!-- Add default filter on non-templates -->
6462
<record model="ir.actions.act_window" id="project.open_view_project_all">
65-
<field name="name">Projects</field>
66-
<field name="res_model">project.project</field>
67-
<field name="view_id" ref="project.view_project_kanban" />
68-
<field name="view_mode">kanban,form,tree</field>
6963
<field
7064
name="context"
71-
>{"search_default_projects":1, "search_default_not_closed":1}</field>
65+
>{"display_milestone_deadline": True, "search_default_projects": True}</field>
7266
</record>
7367
</odoo>

0 commit comments

Comments
 (0)