[PATCH] Upstream patch - 20102022

This commit is contained in:
Parthiv Patel committed 2022-10-20 08:34:45 +00:00
1 parent c72fddc652
commit bfc0294fb0
25 files changed
+291 -96

No files matched your search

+15 -3
View File
@@ -2,12 +2,12 @@
# Part of Odoo, Flectra. See LICENSE file for full copyright and licensing details.
import ast
from datetime import timedelta, datetime
from collections import defaultdict
from datetime import timedelta
from random import randint
from flectra import api, fields, models, tools, SUPERUSER_ID, _
from flectra.exceptions import UserError, AccessError, ValidationError, RedirectWarning
from flectra.tools.misc import format_date, get_lang
from flectra.exceptions import UserError, ValidationError
from flectra.osv.expression import OR
from .project_task_recurrence import DAYS, WEEKS
@@ -1096,6 +1096,18 @@ class Task(models.Model):
task._portal_ensure_token()
return tasks
def _load_records_create(self, values):
tasks = super()._load_records_create(values)
stage_ids_per_project = defaultdict(list)
for task in tasks:
if task.stage_id and task.stage_id not in task.project_id.type_ids and task.stage_id.id not in stage_ids_per_project[task.project_id]:
stage_ids_per_project[task.project_id].append(task.stage_id.id)
for project, stage_ids in stage_ids_per_project.items():
project.write({'type_ids': [(4, stage_id) for stage_id in stage_ids]})
return tasks
def write(self, vals):
now = fields.Datetime.now()
if 'parent_id' in vals and vals['parent_id'] in self.ids:
+20
View File
@@ -104,3 +104,23 @@ class TestProjectCommon(SavepointCase):
with self.assertRaises(UserError):
self.project_pigs.unlink()
def test_auto_assign_stages_when_importing_tasks(self):
self.assertFalse(self.project_pigs.type_ids)
self.assertEqual(len(self.project_goats.type_ids), 2)
first_stage = self.project_goats.type_ids[0]
self.env['project.task']._load_records_create({
'name': 'First Task',
'user_id': self.user_projectuser.id,
'project_id': self.project_pigs.id,
'stage_id': first_stage.id,
})
self.assertEqual(self.project_pigs.type_ids, first_stage)
self.env['project.task']._load_records_create([
{'name': 'task',
'user_id': self.user_projectuser.id,
'project_id': self.project_pigs.id,
'stage_id': stage.id,
} for stage in self.project_goats.type_ids
])
self.assertEqual(self.project_pigs.type_ids, self.project_goats.type_ids)