From ea56b58efa978e3b85b735b4c7e9d448bc85c061 Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Tue, 30 Oct 2018 08:29:47 -0700 Subject: [PATCH 1/7] Initial commit of `project_task_line` for 11.0 --- project_task_line/__init__.py | 1 + project_task_line/__manifest__.py | 20 +++++++++++ project_task_line/models/__init__.py | 1 + project_task_line/models/project.py | 39 +++++++++++++++++++++ project_task_line/views/project_views.xml | 42 +++++++++++++++++++++++ 5 files changed, 103 insertions(+) create mode 100644 project_task_line/__init__.py create mode 100644 project_task_line/__manifest__.py create mode 100644 project_task_line/models/__init__.py create mode 100644 project_task_line/models/project.py create mode 100644 project_task_line/views/project_views.xml diff --git a/project_task_line/__init__.py b/project_task_line/__init__.py new file mode 100644 index 00000000..0650744f --- /dev/null +++ b/project_task_line/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/project_task_line/__manifest__.py b/project_task_line/__manifest__.py new file mode 100644 index 00000000..4be1731a --- /dev/null +++ b/project_task_line/__manifest__.py @@ -0,0 +1,20 @@ +{ + 'name': 'Project Task Lines', + 'version': '11.0.1.0.0', + 'author': 'Hibou Corp. ', + 'website': 'https://hibou.io/', + 'license': 'AGPL-3', + 'category': 'Tools', + 'complexity': 'easy', + 'description': """ +Adds "todo" lines onto Project Tasks, and improves sub-tasks. + """, + 'depends': [ + 'project', + ], + 'data': [ + 'views/project_views.xml', + ], + 'installable': True, + 'auto_install': False, +} diff --git a/project_task_line/models/__init__.py b/project_task_line/models/__init__.py new file mode 100644 index 00000000..351a3ad3 --- /dev/null +++ b/project_task_line/models/__init__.py @@ -0,0 +1 @@ +from . import project diff --git a/project_task_line/models/project.py b/project_task_line/models/project.py new file mode 100644 index 00000000..a533fffb --- /dev/null +++ b/project_task_line/models/project.py @@ -0,0 +1,39 @@ +from odoo import api, fields, models + + +class ProjectTask(models.Model): + _inherit = 'project.task' + + line_ids = fields.One2many('project.task.line', 'task_id', string='Todo List') + subtask_count_done = fields.Integer(compute='_compute_subtask_count', string="Sub-task Done count") + + @api.multi + def _compute_subtask_count(self): + for task in self: + task.subtask_count = self.search_count([('id', 'child_of', task.id), ('id', '!=', task.id)]) + task.subtask_count_done = self.search_count([('id', 'child_of', task.id), ('id', '!=', task.id), ('stage_id.fold', '=', True)]) + + +class ProjectTaskLine(models.Model): + _name = 'project.task.line' + _description = 'Task Todos' + _order = 'sequence, id desc' + + task_id = fields.Many2one('project.task', required=True) + name = fields.Char(string='Name') + user_id = fields.Many2one('res.users', string='User') + sequence = fields.Integer(string='Sequence') + kanban_state = fields.Selection([ + ('normal', 'Grey'), + ('done', 'Green'), + ('blocked', 'Red')], string='Kanban State', + copy=False, default='normal', required=True, + help="A task's kanban state indicates special situations affecting it:\n" + " * Grey is the default situation\n" + " * Red indicates something is preventing the progress of this task\n" + " * Green indicates the task is complete") + + @api.onchange('kanban_state') + def _onchange_kanban_state(self): + if self.kanban_state == 'done': + self.user_id = self.env.user diff --git a/project_task_line/views/project_views.xml b/project_task_line/views/project_views.xml new file mode 100644 index 00000000..b47a5126 --- /dev/null +++ b/project_task_line/views/project_views.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + project.task.form.inherit + project.task + + + +
+ / + Sub-Tasks +
+
+ + + + + + + + + + + + +
+
+
\ No newline at end of file From 4577776851ffcd2e005d1fd41629947cbd1b5f9a Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Sat, 3 Nov 2018 16:26:49 -0700 Subject: [PATCH 2/7] ADD security to `project.task.line` and show on website. `website_project_task` module now includes optional template to display Todo List on the task view --- project_task_line/__manifest__.py | 1 + project_task_line/models/project.py | 6 +++++- project_task_line/security/ir.model.access.csv | 3 +++ 3 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 project_task_line/security/ir.model.access.csv diff --git a/project_task_line/__manifest__.py b/project_task_line/__manifest__.py index 4be1731a..db352855 100644 --- a/project_task_line/__manifest__.py +++ b/project_task_line/__manifest__.py @@ -13,6 +13,7 @@ Adds "todo" lines onto Project Tasks, and improves sub-tasks. 'project', ], 'data': [ + 'security/ir.model.access.csv', 'views/project_views.xml', ], 'installable': True, diff --git a/project_task_line/models/project.py b/project_task_line/models/project.py index a533fffb..9f980c03 100644 --- a/project_task_line/models/project.py +++ b/project_task_line/models/project.py @@ -11,7 +11,11 @@ class ProjectTask(models.Model): def _compute_subtask_count(self): for task in self: task.subtask_count = self.search_count([('id', 'child_of', task.id), ('id', '!=', task.id)]) - task.subtask_count_done = self.search_count([('id', 'child_of', task.id), ('id', '!=', task.id), ('stage_id.fold', '=', True)]) + if task.subtask_count: + task.subtask_count_done = self.search_count([('id', 'child_of', task.id), ('id', '!=', task.id), + ('stage_id.fold', '=', True)]) + else: + task.subtask_count_done = 0 class ProjectTaskLine(models.Model): diff --git a/project_task_line/security/ir.model.access.csv b/project_task_line/security/ir.model.access.csv new file mode 100644 index 00000000..a4846d4f --- /dev/null +++ b/project_task_line/security/ir.model.access.csv @@ -0,0 +1,3 @@ +"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" +"access_project_task_line","access_project_task_line","model_project_task_line","base.group_user",1,1,1,1 +"access_project_task_line_public","access_project_task_line public","model_project_task_line","base.group_public",1,0,0,0 \ No newline at end of file From 9f1550349eed14f76fa8f5cb9e8d8be8be9aee1a Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Sat, 10 Nov 2018 07:55:03 -0800 Subject: [PATCH 3/7] IMP `project_task_line` More natural ordering when adding many lines at once. --- project_task_line/models/project.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project_task_line/models/project.py b/project_task_line/models/project.py index 9f980c03..587e878b 100644 --- a/project_task_line/models/project.py +++ b/project_task_line/models/project.py @@ -21,7 +21,7 @@ class ProjectTask(models.Model): class ProjectTaskLine(models.Model): _name = 'project.task.line' _description = 'Task Todos' - _order = 'sequence, id desc' + _order = 'sequence, id asc' task_id = fields.Many2one('project.task', required=True) name = fields.Char(string='Name') From 917544cb2e160bc64d7f5bff970fc3649d559307 Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Wed, 13 Feb 2019 12:13:40 -0800 Subject: [PATCH 4/7] FIX Portal access for `project.task.line` --- project_task_line/views/project_views.xml | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/project_task_line/views/project_views.xml b/project_task_line/views/project_views.xml index b47a5126..4964eaa8 100644 --- a/project_task_line/views/project_views.xml +++ b/project_task_line/views/project_views.xml @@ -1,19 +1,5 @@ - - - - - - - - - - - - - - project.task.form.inherit project.task From 9c960135763fa70ad6435e6fc4a8a863c88c3661 Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Sat, 25 May 2019 16:47:51 -0600 Subject: [PATCH 5/7] MIG `project_task_line` to 12.0 --- project_task_line/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project_task_line/__manifest__.py b/project_task_line/__manifest__.py index db352855..315ab647 100644 --- a/project_task_line/__manifest__.py +++ b/project_task_line/__manifest__.py @@ -1,6 +1,6 @@ { 'name': 'Project Task Lines', - 'version': '11.0.1.0.0', + 'version': '12.0.1.0.0', 'author': 'Hibou Corp. ', 'website': 'https://hibou.io/', 'license': 'AGPL-3', From 233cad0441446e5c46e135faa0de0b5dd08501c0 Mon Sep 17 00:00:00 2001 From: Bhoomi Date: Wed, 11 Sep 2019 18:21:02 -0400 Subject: [PATCH 6/7] MIG `project_task_line` For Odoo 13.0 --- project_task_line/__manifest__.py | 2 +- project_task_line/models/project.py | 1 - project_task_line/views/project_views.xml | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/project_task_line/__manifest__.py b/project_task_line/__manifest__.py index 315ab647..17df456e 100644 --- a/project_task_line/__manifest__.py +++ b/project_task_line/__manifest__.py @@ -1,6 +1,6 @@ { 'name': 'Project Task Lines', - 'version': '12.0.1.0.0', + 'version': '13.0.1.0.0', 'author': 'Hibou Corp. ', 'website': 'https://hibou.io/', 'license': 'AGPL-3', diff --git a/project_task_line/models/project.py b/project_task_line/models/project.py index 587e878b..0d0f4ab7 100644 --- a/project_task_line/models/project.py +++ b/project_task_line/models/project.py @@ -7,7 +7,6 @@ class ProjectTask(models.Model): line_ids = fields.One2many('project.task.line', 'task_id', string='Todo List') subtask_count_done = fields.Integer(compute='_compute_subtask_count', string="Sub-task Done count") - @api.multi def _compute_subtask_count(self): for task in self: task.subtask_count = self.search_count([('id', 'child_of', task.id), ('id', '!=', task.id)]) diff --git a/project_task_line/views/project_views.xml b/project_task_line/views/project_views.xml index 4964eaa8..c027cabd 100644 --- a/project_task_line/views/project_views.xml +++ b/project_task_line/views/project_views.xml @@ -14,7 +14,7 @@ - + From 8e75aef7eb6e4329a7ad058fb83686d0af8cb572 Mon Sep 17 00:00:00 2001 From: Bhoomi Date: Wed, 11 Sep 2019 22:07:29 -0400 Subject: [PATCH 7/7] IMP `project_task_line` Set Default task on Todo lines. --- project_task_line/views/project_views.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project_task_line/views/project_views.xml b/project_task_line/views/project_views.xml index c027cabd..81bdf9a5 100644 --- a/project_task_line/views/project_views.xml +++ b/project_task_line/views/project_views.xml @@ -13,7 +13,7 @@ - +