diff --git a/projects_task_checklists/__manifest__.py b/projects_task_checklists/__manifest__.py
index 587a2a2ff..13ce5bfe5 100644
--- a/projects_task_checklists/__manifest__.py
+++ b/projects_task_checklists/__manifest__.py
@@ -19,7 +19,7 @@
##############################################################################
{
'name': 'Project Task Checklist',
- 'version': '14.0.1.0.0',
+ 'version': '14.0.1.0.1',
'category': 'Project/Project',
'summary': "To Manage the Task and Subtask Checklists",
'description': "To Manage the Task and Subtask Checklists",
diff --git a/projects_task_checklists/doc/RELEASE_NOTES.md b/projects_task_checklists/doc/RELEASE_NOTES.md
index d188ca1b6..babddbdd6 100644
--- a/projects_task_checklists/doc/RELEASE_NOTES.md
+++ b/projects_task_checklists/doc/RELEASE_NOTES.md
@@ -5,3 +5,7 @@
#### ADD
- Initial commit for projects_task_checklists
+#### 21.12.2023
+#### Version 14.0.1.0.1
+#### FIX
+- Bug fix on checklist status
diff --git a/projects_task_checklists/models/checklist.py b/projects_task_checklists/models/checklist.py
index fa85dba3a..b36283726 100644
--- a/projects_task_checklists/models/checklist.py
+++ b/projects_task_checklists/models/checklist.py
@@ -26,19 +26,28 @@ class TaskChecklist(models.Model):
name = fields.Char(string='Name')
description = fields.Char(string='Description')
- project_id = fields.Many2one('project.project', string='Project')
task_ids = fields.Many2one('project.task', string='Task')
+ project_id = fields.Many2one('project.project', string='Project')
checklist_ids = fields.One2many('checklist.item', 'checklist_id', string='CheckList Items', required=True)
-class ChecklistItem(models.Model):
+class CheckListItem(models.Model):
_name = 'checklist.item'
- _description = 'Checklist Item'
+ _description = "Checklist Item"
name = fields.Char(required=True)
sequence = fields.Integer(default=1)
description = fields.Char()
+ checklist_id = fields.Many2one('task.checklist')
+
+
+class ChecklistItemLine(models.Model):
+ _name = 'checklist.item.line'
+ _description = 'Checklist Item Line'
+
+ check_list_item_id = fields.Many2one('checklist.item', required=True)
+ description = fields.Char()
projects_id = fields.Many2one('project.task')
checklist_id = fields.Many2one('task.checklist')
state = fields.Selection(string='Status', required=True, readonly=True, copy=False, tracking=True, selection=[
@@ -46,7 +55,7 @@ class ChecklistItem(models.Model):
('in_progress', 'In Progress'),
('done', 'Done'),
('cancel', 'Cancelled'),
- ], default='todo',)
+ ], default='todo', )
def approve_and_next(self):
self.state = 'in_progress'
@@ -67,31 +76,32 @@ class ChecklistProgress(models.Model):
start_date = fields.Datetime(string='Start Date')
end_date = fields.Datetime(string='End Date')
progress = fields.Float(compute='_compute_progress', string='Progress in %')
+ checklist_ids = fields.Many2many('task.checklist', compute='_compute_checklist_ids')
checklist_id = fields.Many2one('task.checklist')
- checklists = fields.One2many('checklist.item', 'projects_id', string='CheckList Items', required=True)
+ checklists = fields.One2many('checklist.item.line', 'projects_id', string='CheckList Items', required=True)
@api.onchange('checklist_id')
def _onchange_project_id(self):
- self.checklists = []
checklist = self.env['task.checklist'].search([('name', '=', self.checklist_id.name)])
- print('task', checklist)
- for rec in checklist:
- print('rec', rec.checklist_ids)
- self.checklists += rec.checklist_ids
+ self.checklists = False
+ self.checklists = [(0, 0, {
+ 'check_list_item_id': rec.id,
+ 'state': 'todo',
+ 'checklist_id': self.checklist_id.id,
+ }) for rec in checklist.checklist_ids]
+
+ def _compute_checklist_ids(self):
+ for rec in self:
+ self.checklist_ids = self.env['task.checklist'].search([('task_ids', '=', rec.id)])
def _compute_progress(self):
for rec in self:
- print('recccc', rec)
total_completed = 0
for activity in rec.checklists:
- print('activity', activity)
if activity.state in ['cancel', 'done', 'in_progress']:
- print('stage', activity.state)
total_completed += 1
if total_completed:
- print('completed', total_completed)
rec.progress = float(total_completed) / len(rec.checklists) * 100
else:
rec.progress = 0.0
-
diff --git a/projects_task_checklists/security/ir.model.access.csv b/projects_task_checklists/security/ir.model.access.csv
index fc4c677d9..90e9fb6ec 100644
--- a/projects_task_checklists/security/ir.model.access.csv
+++ b/projects_task_checklists/security/ir.model.access.csv
@@ -3,3 +3,4 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_checklist_activity_stages,access.checklist.activity.stages,model_checklist_activity_stages,,1,1,1,1
access_task_checklist,access.task.checklist,model_task_checklist,,1,1,1,1
access_checklist_item,access.checklist.item,model_checklist_item,,1,1,1,1
+access_checklist_item_line,access.checklist.item.line,model_checklist_item_line,,1,1,1,1
diff --git a/projects_task_checklists/views/checklist_add.xml b/projects_task_checklists/views/checklist_add.xml
index 52fa11f9d..61d769d3a 100644
--- a/projects_task_checklists/views/checklist_add.xml
+++ b/projects_task_checklists/views/checklist_add.xml
@@ -17,6 +17,7 @@
+
@@ -24,8 +25,8 @@
-
+ decoration-info="state=='in_progress'" editable="bottom">
+
diff --git a/projects_task_checklists/views/checklist_menu.xml b/projects_task_checklists/views/checklist_menu.xml
index d30833c86..57a064d87 100644
--- a/projects_task_checklists/views/checklist_menu.xml
+++ b/projects_task_checklists/views/checklist_menu.xml
@@ -25,6 +25,7 @@
+
@@ -47,16 +48,6 @@
checklist.item