Browse Source

Dec 30 : [UPDT] Bug Fixed 'projects_task_checklists'

pull/298/merge
AjmalCybro 1 year ago
parent
commit
294d02329a
  1. 2
      projects_task_checklists/__manifest__.py
  2. 4
      projects_task_checklists/doc/RELEASE_NOTES.md
  3. 38
      projects_task_checklists/models/checklist.py
  4. 1
      projects_task_checklists/security/ir.model.access.csv
  5. 5
      projects_task_checklists/views/checklist_add.xml
  6. 24
      projects_task_checklists/views/checklist_menu.xml

2
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",

4
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

38
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=[
@ -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

1
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

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
3 access_task_checklist access.task.checklist model_task_checklist 1 1 1 1
4 access_checklist_item access.checklist.item model_checklist_item 1 1 1 1
5 access_checklist_item_line access.checklist.item.line model_checklist_item_line 1 1 1 1
6

5
projects_task_checklists/views/checklist_add.xml

@ -17,6 +17,7 @@
<field name="inherit_id" ref="project.view_task_form2"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='tag_ids']" position="after">
<field name="checklist_ids" invisible="1"/>
<field name="checklist_id"/>
</xpath>
@ -24,8 +25,8 @@
<page string="Checklist" attrs="{'invisible':[('checklist_id','=',False)]}">
<field name="checklists">
<tree decoration-danger="state=='cancel'" decoration-success="state=='done'"
decoration-info="state=='in_progress'" create="1" edit="1" delete="0">
<field name="name"/>
decoration-info="state=='in_progress'" editable="bottom">
<field name="check_list_item_id"/>
<field name="description"/>
<button type="object" name="approve_and_next" class="text-success" icon="fa-check"/>
<button type="object" name="mark_completed" icon="fa-check-circle" class="text-success"/>

24
projects_task_checklists/views/checklist_menu.xml

@ -25,6 +25,7 @@
</group>
<group>
<field name="project_id"/>
<field name="task_ids" invisible="1"/>
</group>
</group>
@ -47,16 +48,6 @@
<field name="model">checklist.item</field>
<field name="arch" type="xml">
<form string="Checklist Item">
<header>
<button type="object" name="approve_and_next" class="text-success"
string="Approve" icon="fa-check"/>
<button type="object" name="mark_completed" icon="fa-check-circle" class="text-success"
string="Completed"/>
<button type="object" name="mark_canceled" icon="fa-times" class="text-danger"
string="Canceled"/>
<button type="object" name="reset_stage" class="text-danger" string="Reset"/>
<field name="state" widget="statusbar"/>
</header>
<sheet>
<group>
<group>
@ -139,16 +130,5 @@
name="Task Checklist"
action="task_checklist_action"
sequence="1"/>
<!-- <menuitem-->
<!-- parent="product_warranty_root"-->
<!-- id="menu_product_warranty_type"-->
<!-- name="Product Warranty Type"-->
<!-- action="product_warranty_type_action"-->
<!-- sequence="2"/>-->
<!-- <menuitem-->
<!-- parent="product_warranty_root"-->
<!-- id="menu_product_warranty_use"-->
<!-- name="Product Warranty Use"-->
<!-- action="product_warranty_use_action"-->
<!-- sequence="3"/>-->
</odoo>
Loading…
Cancel
Save