diff --git a/project_assignees/__manifest__.py b/project_assignees/__manifest__.py index 46066d1..bef0c1d 100644 --- a/project_assignees/__manifest__.py +++ b/project_assignees/__manifest__.py @@ -3,7 +3,7 @@ { "name": "project_assignees", - "version": "14.0.1.2.0", + "version": "14.0.1.3.0", "author": "Elabore", "website": "https://github.com/elabore-coop/project-tools", "maintainer": "Stéphan Sainléger", diff --git a/project_assignees/models/project_task.py b/project_assignees/models/project_task.py index 8140799..d81d6dc 100644 --- a/project_assignees/models/project_task.py +++ b/project_assignees/models/project_task.py @@ -1,5 +1,5 @@ -from odoo import models, fields +from odoo import models, fields, api class Task(models.Model): @@ -7,3 +7,17 @@ class Task(models.Model): assignee_ids = fields.Many2many('res.users', 'assignee_ids_rel', string='Assignees', tracking=True) + @api.model + def create(self, vals): + ''' + assigned project manager to the task if nobody else is assigned to + ''' + assignee_ids = vals.get('assignee_ids') + project_id = vals.get('project_id') + if project_id and self.env['project.project'].browse(project_id): + project = self.env['project.project'].browse(project_id) + if project.user_id: + default_assignee_id = project.user_id.id + if not assignee_ids or (assignee_ids and not assignee_ids[0][2]): #if assignee_ids doesnt existe or assignee_ids existe but is empty + vals['assignee_ids'] = [[6,0,[default_assignee_id]]] + return super().create(vals) \ No newline at end of file diff --git a/project_assignees/views/project_task.xml b/project_assignees/views/project_task.xml index 7a98110..f122345 100644 --- a/project_assignees/views/project_task.xml +++ b/project_assignees/views/project_task.xml @@ -26,4 +26,16 @@ + + + view.task.form2.allow.portal.users.as.assignee + project.task + + + + + [('share', '=', True)] + + + \ No newline at end of file