diff --git a/projects_task_checklists/README.rst b/projects_task_checklists/README.rst new file mode 100644 index 000000000..0f4277d82 --- /dev/null +++ b/projects_task_checklists/README.rst @@ -0,0 +1,17 @@ +Projects Task Checklists V14 +============================ +Projects task checklist + +Installation +============ + - www.odoo.com/documentation/14.0/setup/install.html + - Install our custom addon + +Configuration +============= + + No additional configurations needed + +Credits +======= + Developer: Aswathi P.N @ cybrosys, odoo@cybrosys.com diff --git a/projects_task_checklists/__init__.py b/projects_task_checklists/__init__.py new file mode 100644 index 000000000..fb7b4fced --- /dev/null +++ b/projects_task_checklists/__init__.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2022-TODAY Cybrosys Technologies(). +# you can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# GENERAL PUBLIC LICENSE (LGPL v3) along with this program. +# If not, see . +# +############################################################################## +from . import models diff --git a/projects_task_checklists/__manifest__.py b/projects_task_checklists/__manifest__.py new file mode 100644 index 000000000..9a883f482 --- /dev/null +++ b/projects_task_checklists/__manifest__.py @@ -0,0 +1,42 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2022-TODAY Cybrosys Technologies(). +# you can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# GENERAL PUBLIC LICENSE (LGPL v3) along with this program. +# If not, see . +# +############################################################################## +{ + 'name': 'Project Task Checklist', + 'version': '14.0.1.0.0', + 'category': 'Project/Project', + 'summary': "To Manage the Task and Subtask Checklists", + 'description': "To Manage the Task and Subtask Checklists", + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': 'https://www.cybrosys.com', + 'depends': ['project'], + 'data': [ + 'security/ir.model.access.csv', + 'views/checklist_menu.xml', + 'views/checklist_add.xml', + 'views/template.xml', + ], + 'qweb': ['static/src/xml/progress.xml'], + 'license': 'LGPL-3', + 'installable': True, + 'application': False, + 'auto_install': False, +} diff --git a/projects_task_checklists/doc/RELEASE_NOTES.md b/projects_task_checklists/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..d188ca1b6 --- /dev/null +++ b/projects_task_checklists/doc/RELEASE_NOTES.md @@ -0,0 +1,7 @@ +## Module + +#### 06.10.2021 +#### Version 14.0.1.0.0 +#### ADD +- Initial commit for projects_task_checklists + diff --git a/projects_task_checklists/models/__init__.py b/projects_task_checklists/models/__init__.py new file mode 100644 index 000000000..ea9c59b45 --- /dev/null +++ b/projects_task_checklists/models/__init__.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2022-TODAY Cybrosys Technologies(). +# you can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# GENERAL PUBLIC LICENSE (LGPL v3) along with this program. +# If not, see . +# +############################################################################## +from . import stage +from . import checklist diff --git a/projects_task_checklists/models/checklist.py b/projects_task_checklists/models/checklist.py new file mode 100644 index 000000000..fa85dba3a --- /dev/null +++ b/projects_task_checklists/models/checklist.py @@ -0,0 +1,97 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2022-TODAY Cybrosys Technologies(). +# you can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# GENERAL PUBLIC LICENSE (LGPL v3) along with this program. +# If not, see . +# +############################################################################## + +from odoo import models, fields, api, _ + + +class TaskChecklist(models.Model): + _name = 'task.checklist' + + 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') + + checklist_ids = fields.One2many('checklist.item', 'checklist_id', string='CheckList Items', required=True) + + +class ChecklistItem(models.Model): + _name = 'checklist.item' + _description = 'Checklist Item' + + name = fields.Char(required=True) + sequence = fields.Integer(default=1) + 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=[ + ('todo', 'To Do'), + ('in_progress', 'In Progress'), + ('done', 'Done'), + ('cancel', 'Cancelled'), + ], default='todo',) + + def approve_and_next(self): + self.state = 'in_progress' + + def mark_completed(self): + self.state = 'done' + + def mark_canceled(self): + self.state = 'cancel' + + def reset_stage(self): + self.state = 'todo' + + +class ChecklistProgress(models.Model): + _inherit = 'project.task' + + start_date = fields.Datetime(string='Start Date') + end_date = fields.Datetime(string='End Date') + progress = fields.Float(compute='_compute_progress', string='Progress in %') + checklist_id = fields.Many2one('task.checklist') + checklists = fields.One2many('checklist.item', '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 + + 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/models/stage.py b/projects_task_checklists/models/stage.py new file mode 100644 index 000000000..0f25cf4f7 --- /dev/null +++ b/projects_task_checklists/models/stage.py @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2022-TODAY Cybrosys Technologies(). +# you can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# GENERAL PUBLIC LICENSE (LGPL v3) along with this program. +# If not, see . +# +############################################################################## + +from odoo import models, fields, api, _ + + +class ChecklistStage(models.Model): + _inherit = "project.task.type" + + is_checklist = fields.Boolean(string='Checklist Task') + + +class ChecklistActivityStages(models.Model): + _name = 'checklist.activity.stages' + + stage_name = fields.Char(string='Stage') + sequence = fields.Char(string='sequence') diff --git a/projects_task_checklists/security/ir.model.access.csv b/projects_task_checklists/security/ir.model.access.csv new file mode 100644 index 000000000..fc4c677d9 --- /dev/null +++ b/projects_task_checklists/security/ir.model.access.csv @@ -0,0 +1,5 @@ +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 diff --git a/projects_task_checklists/static/description/assets/icons/check.png b/projects_task_checklists/static/description/assets/icons/check.png new file mode 100644 index 000000000..c8e85f51d Binary files /dev/null and b/projects_task_checklists/static/description/assets/icons/check.png differ diff --git a/projects_task_checklists/static/description/assets/icons/chevron.png b/projects_task_checklists/static/description/assets/icons/chevron.png new file mode 100644 index 000000000..2089293d6 Binary files /dev/null and b/projects_task_checklists/static/description/assets/icons/chevron.png differ diff --git a/projects_task_checklists/static/description/assets/icons/cogs.png b/projects_task_checklists/static/description/assets/icons/cogs.png new file mode 100644 index 000000000..95d0bad62 Binary files /dev/null and b/projects_task_checklists/static/description/assets/icons/cogs.png differ diff --git a/projects_task_checklists/static/description/assets/icons/consultation.png b/projects_task_checklists/static/description/assets/icons/consultation.png new file mode 100644 index 000000000..8319d4baa Binary files /dev/null and b/projects_task_checklists/static/description/assets/icons/consultation.png differ diff --git a/projects_task_checklists/static/description/assets/icons/ecom-black.png b/projects_task_checklists/static/description/assets/icons/ecom-black.png new file mode 100644 index 000000000..a9385ff13 Binary files /dev/null and b/projects_task_checklists/static/description/assets/icons/ecom-black.png differ diff --git a/projects_task_checklists/static/description/assets/icons/education-black.png b/projects_task_checklists/static/description/assets/icons/education-black.png new file mode 100644 index 000000000..3eb09b27b Binary files /dev/null and b/projects_task_checklists/static/description/assets/icons/education-black.png differ diff --git a/projects_task_checklists/static/description/assets/icons/hotel-black.png b/projects_task_checklists/static/description/assets/icons/hotel-black.png new file mode 100644 index 000000000..130f613be Binary files /dev/null and b/projects_task_checklists/static/description/assets/icons/hotel-black.png differ diff --git a/projects_task_checklists/static/description/assets/icons/license.png b/projects_task_checklists/static/description/assets/icons/license.png new file mode 100644 index 000000000..a5869797e Binary files /dev/null and b/projects_task_checklists/static/description/assets/icons/license.png differ diff --git a/projects_task_checklists/static/description/assets/icons/lifebuoy.png b/projects_task_checklists/static/description/assets/icons/lifebuoy.png new file mode 100644 index 000000000..658d56ccc Binary files /dev/null and b/projects_task_checklists/static/description/assets/icons/lifebuoy.png differ diff --git a/projects_task_checklists/static/description/assets/icons/logo.png b/projects_task_checklists/static/description/assets/icons/logo.png new file mode 100644 index 000000000..478462d3e Binary files /dev/null and b/projects_task_checklists/static/description/assets/icons/logo.png differ diff --git a/projects_task_checklists/static/description/assets/icons/manufacturing-black.png b/projects_task_checklists/static/description/assets/icons/manufacturing-black.png new file mode 100644 index 000000000..697eb0e9f Binary files /dev/null and b/projects_task_checklists/static/description/assets/icons/manufacturing-black.png differ diff --git a/projects_task_checklists/static/description/assets/icons/pos-black.png b/projects_task_checklists/static/description/assets/icons/pos-black.png new file mode 100644 index 000000000..97c0f90c1 Binary files /dev/null and b/projects_task_checklists/static/description/assets/icons/pos-black.png differ diff --git a/projects_task_checklists/static/description/assets/icons/puzzle.png b/projects_task_checklists/static/description/assets/icons/puzzle.png new file mode 100644 index 000000000..65cf854e7 Binary files /dev/null and b/projects_task_checklists/static/description/assets/icons/puzzle.png differ diff --git a/projects_task_checklists/static/description/assets/icons/restaurant-black.png b/projects_task_checklists/static/description/assets/icons/restaurant-black.png new file mode 100644 index 000000000..4a35eb939 Binary files /dev/null and b/projects_task_checklists/static/description/assets/icons/restaurant-black.png differ diff --git a/projects_task_checklists/static/description/assets/icons/service-black.png b/projects_task_checklists/static/description/assets/icons/service-black.png new file mode 100644 index 000000000..301ab51cb Binary files /dev/null and b/projects_task_checklists/static/description/assets/icons/service-black.png differ diff --git a/projects_task_checklists/static/description/assets/icons/trading-black.png b/projects_task_checklists/static/description/assets/icons/trading-black.png new file mode 100644 index 000000000..9398ba2f1 Binary files /dev/null and b/projects_task_checklists/static/description/assets/icons/trading-black.png differ diff --git a/projects_task_checklists/static/description/assets/icons/training.png b/projects_task_checklists/static/description/assets/icons/training.png new file mode 100644 index 000000000..884ca024d Binary files /dev/null and b/projects_task_checklists/static/description/assets/icons/training.png differ diff --git a/projects_task_checklists/static/description/assets/icons/update.png b/projects_task_checklists/static/description/assets/icons/update.png new file mode 100644 index 000000000..ecbc5a01a Binary files /dev/null and b/projects_task_checklists/static/description/assets/icons/update.png differ diff --git a/projects_task_checklists/static/description/assets/icons/user.png b/projects_task_checklists/static/description/assets/icons/user.png new file mode 100644 index 000000000..6ffb23d9f Binary files /dev/null and b/projects_task_checklists/static/description/assets/icons/user.png differ diff --git a/projects_task_checklists/static/description/assets/icons/wrench.png b/projects_task_checklists/static/description/assets/icons/wrench.png new file mode 100644 index 000000000..6c04dea0f Binary files /dev/null and b/projects_task_checklists/static/description/assets/icons/wrench.png differ diff --git a/projects_task_checklists/static/description/assets/screenshots/hero.gif b/projects_task_checklists/static/description/assets/screenshots/hero.gif new file mode 100644 index 000000000..048e8a860 Binary files /dev/null and b/projects_task_checklists/static/description/assets/screenshots/hero.gif differ diff --git a/projects_task_checklists/static/description/assets/screenshots/project1.png b/projects_task_checklists/static/description/assets/screenshots/project1.png new file mode 100644 index 000000000..8e4ff500b Binary files /dev/null and b/projects_task_checklists/static/description/assets/screenshots/project1.png differ diff --git a/projects_task_checklists/static/description/assets/screenshots/project2.png b/projects_task_checklists/static/description/assets/screenshots/project2.png new file mode 100644 index 000000000..8dfe2c287 Binary files /dev/null and b/projects_task_checklists/static/description/assets/screenshots/project2.png differ diff --git a/projects_task_checklists/static/description/assets/screenshots/project3.png b/projects_task_checklists/static/description/assets/screenshots/project3.png new file mode 100644 index 000000000..8da24a603 Binary files /dev/null and b/projects_task_checklists/static/description/assets/screenshots/project3.png differ diff --git a/projects_task_checklists/static/description/assets/screenshots/project4.png b/projects_task_checklists/static/description/assets/screenshots/project4.png new file mode 100644 index 000000000..8818938ef Binary files /dev/null and b/projects_task_checklists/static/description/assets/screenshots/project4.png differ diff --git a/projects_task_checklists/static/description/assets/screenshots/project5.png b/projects_task_checklists/static/description/assets/screenshots/project5.png new file mode 100644 index 000000000..48ec5ea22 Binary files /dev/null and b/projects_task_checklists/static/description/assets/screenshots/project5.png differ diff --git a/projects_task_checklists/static/description/assets/screenshots/project6.png b/projects_task_checklists/static/description/assets/screenshots/project6.png new file mode 100644 index 000000000..78fd518d3 Binary files /dev/null and b/projects_task_checklists/static/description/assets/screenshots/project6.png differ diff --git a/projects_task_checklists/static/description/banner.png b/projects_task_checklists/static/description/banner.png new file mode 100644 index 000000000..49ca17cff Binary files /dev/null and b/projects_task_checklists/static/description/banner.png differ diff --git a/projects_task_checklists/static/description/icon.png b/projects_task_checklists/static/description/icon.png new file mode 100644 index 000000000..ee984f2ac Binary files /dev/null and b/projects_task_checklists/static/description/icon.png differ diff --git a/projects_task_checklists/static/description/index.html b/projects_task_checklists/static/description/index.html new file mode 100644 index 000000000..dd43ee7d6 --- /dev/null +++ b/projects_task_checklists/static/description/index.html @@ -0,0 +1,507 @@ +
+
+
+
+
+ Community +
+
+ Enterprise +
+ +
+
+
+
+ +
+
+
+

+ Projects Task Checklists

+

+ To Manage the Task and Subtask Checklists

. +

+ +
+
+ + + + +
+
+

+ Overview +

+
+ +
+

+ This application allows you to Manage tasks or subtasks checklists and also shows the progress percentage of checklists

+ +
+
+ + +
+
+

+ Features +

+
+ +
+
+ +
+
+

+ Manage checklists for tasks
+ Shows the tasks progress percentage
+ Configure Checklists +

+ +
+
+
+ +
+
+

+ Screenshots +

+
+ + +
+

+ Task Checklist

+

Click on the task checklist menu can see the list view of all checklists that are created +

+ +
+ +
+

+

+

click on the create button we can configure a new checklist +

+ +
+ +
+

+

+

can add name and also add checklists under the checklist item tab. can add any number of checklist items +

+ +
+ +
+

+

+

+ Need to select checklist to task. New Checklist page will visible. All checklist activities will auto populate. +

+ +
+ +
+

+ Checklist activity form view.

+

+

+ +
+ +
+

+ Checklist progress in task list view.

+

+

+ +
+ +
+ + +
+
+
+

Our Services

+
+
+ +
+
+ +
+
+ Odoo + Customization
+
+ +
+
+ +
+
+ Odoo + Implementation
+
+ +
+
+ +
+
+ Odoo + Support
+
+ + +
+
+ +
+
+ Hire + Odoo + Developer
+
+ +
+
+ +
+
+ Odoo + Integration
+
+ +
+
+ +
+
+ Odoo + Migration
+
+ + +
+
+ +
+
+ Odoo + Consultancy
+
+ +
+
+ +
+
+ Odoo + Implementation
+
+ +
+
+ +
+
+ Odoo + Licensing Consultancy
+
+
+
+ + + +
+
+
+

Our Industries

+
+
+ +
+
+ +
+ Trading +
+

+ Easily procure + and + sell your products

+
+
+ +
+
+ +
+ POS +
+

+ Easy + configuration + and convivial experience

+
+
+ +
+
+ +
+ Education +
+

+ A platform for + educational management

+
+
+ +
+
+ +
+ Manufacturing +
+

+ Plan, track and + schedule your operations

+
+
+ +
+
+ +
+ E-commerce & Website +
+

+ Mobile + friendly, + awe-inspiring product pages

+
+
+ +
+
+ +
+ Service Management +
+

+ Keep track of + services and invoice

+
+
+ +
+
+ +
+ Restaurant +
+

+ Run your bar or + restaurant methodically

+
+
+ +
+
+ +
+ Hotel Management +
+

+ An + all-inclusive + hotel management application

+
+
+ +
+
+ + + + + +
+
+
+

Need Help?

+
+
+
+ + +
+ +
+ +
+ +
+ WhatsApp +
+
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+
+
+ + +
\ No newline at end of file diff --git a/projects_task_checklists/static/src/js/progress.js b/projects_task_checklists/static/src/js/progress.js new file mode 100644 index 000000000..61809310d --- /dev/null +++ b/projects_task_checklists/static/src/js/progress.js @@ -0,0 +1,111 @@ +odoo.define('projects_task_checklists.ProgressBarNew',function(require){ +"use strict"; +var AbstractField = require('web.AbstractField'); +var field_registry = require('web.field_registry'); +var core = require('web.core'); +var _t = core._t; +var ProgressBarNew = AbstractField.extend({ + template: "NewProgressBar", + supportedFieldTypes: ['integer', 'float'], + + start: function(){ + this._super.apply(this, arguments); + + if(this.recordData[this.nodeOptions.currentValue]){ + this.value =this.recordData[this.nodeOptions.currentValue]; + } + + // The few next lines determine if the widget can write on the record or not + this.editable_readonly = !!this.nodeOptions.editable_readonly; + // "hard" readonly + this.readonly = this.nodeOptions.readonly || !this.nodeOptions.editable; + + this.canWrite = !this.readonly && (this.mode === 'edit' || (this.editable_readonly && this.mode === 'readonly') || (this.viewType === 'kanban')); + + // Boolean to toggle if we edit the numerator (value) or the denominator (max_value) + this.edit_max_value = !!this.nodeOptions.edit_max_value; + this.max_value = this.recordData[this.nodeOptions.max_value] || 100; + this.title = _t(this.attrs.title || this.nodeOptions.title) || ''; + this.write_mode = false; + }, + _render: function (){ + var self = this; + this._render_value(); + + if (this.canWrite) { + if (this.edit_on_click) { + this.$el.on('click','.o_progressbar', function (e) { + var $target = $(e.currentTarget); + var numValue =Math.floor((e.pageX - $target.offset().left) / $target.outerWidth() * self.max_value); + self.on_update(numValue); + self._render_value(); + }); + } else { + this.$el.on('click', function () { + if (!self.write_mode) { + var $input = $('', {type: 'text', class: 'o_progressbar_value o_input'}); + $input.on('blur', self.on_change_input.bind(self)); + self.$('.o_progressbar_value').replaceWith($input); + self.write_mode = true; + self._render_value(); + } + }); + } + } + return this._super(); + }, + on_update: function (value) { + if (this.edit_max_value) { + this.max_value = value; + this._isValid = true; + var changes = {}; + +changes[this.nodeOptions.max_value] = this.max_value; + +this.trigger_up('field_changed', { + dataPointID: this.dataPointID, + changes: changes, + }); + } else { + // _setValues accepts string and will parse it + var formattedValue = this._formatValue(value); + this._setValue(formattedValue); + } + }, + _render_value: function (v) { + var value = this.value; + var max_value = this.max_value; + + if (!isNaN(v)) { + if (this.edit_max_value) { + max_value = v; + } else { + value = v; + } + } + value = value || 0; + max_value = max_value || 0; + + var widthComplete; + if (value <= max_value) { + widthComplete = value/max_value * 100; + } else { + widthComplete = 100; + } +this.$('.o_progressbar').toggleClass('o_progress_overflow', value > max_value) .attr('aria-valuemin', '0').attr('aria-valuemax', max_value).attr('aria-valuenow', value); +this.$('.o_progressbar_complete').css('width', widthComplete + '%'); + + }, + + _reset: function () { + this._super.apply(this, arguments); + var new_max_value = this.recordData[this.nodeOptions.max_value]; + this.max_value = new_max_value !== undefined ? new_max_value : + this.max_value; + }, + isSet: function () { + return true; + }, +}); +field_registry.add('progress_bar_new', ProgressBarNew) +}); \ No newline at end of file diff --git a/projects_task_checklists/static/src/xml/progress.xml b/projects_task_checklists/static/src/xml/progress.xml new file mode 100644 index 000000000..a4f79eaac --- /dev/null +++ b/projects_task_checklists/static/src/xml/progress.xml @@ -0,0 +1,10 @@ + + + +
+
+
+
+
+ + \ No newline at end of file diff --git a/projects_task_checklists/views/checklist_add.xml b/projects_task_checklists/views/checklist_add.xml new file mode 100644 index 000000000..52fa11f9d --- /dev/null +++ b/projects_task_checklists/views/checklist_add.xml @@ -0,0 +1,69 @@ + + + + project.task.type.inherit + project.task.type + + + + + + + + + + project.task.notebook + project.task + + + + + + + + + + + + +