[gantt] fix multiple task updates (#2655)
This commit is contained in:
parent
5e4860b4e6
commit
562b37cd47
2 changed files with 44 additions and 6 deletions
16
frappe/desk/gantt.py
Normal file
16
frappe/desk/gantt.py
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
||||
# MIT License. See license.txt
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import frappe, json
|
||||
|
||||
@frappe.whitelist()
|
||||
def update_task(args, field_map):
|
||||
"""Updates Doc (called via gantt) based on passed `field_map`"""
|
||||
args = frappe._dict(json.loads(args))
|
||||
field_map = frappe._dict(json.loads(field_map))
|
||||
d = frappe.get_doc(args.doctype, args.name)
|
||||
d.set(field_map.start, args.start)
|
||||
d.set(field_map.end, args.end)
|
||||
d.save()
|
||||
|
|
@ -545,11 +545,7 @@ frappe.views.DocListView = frappe.ui.Listing.extend({
|
|||
frappe.set_route('Form', task.doctype, task.id);
|
||||
},
|
||||
on_date_change: function(task, start, end) {
|
||||
set_value(task.doctype, task.id, field_map.start, start.format('YYYY-MM-DD'))
|
||||
.then(function() {
|
||||
set_value(task.doctype, task.id, field_map.end, end.format('YYYY-MM-DD'))
|
||||
})
|
||||
.then(show_success);
|
||||
me.update_gantt_task(task, start, end);
|
||||
},
|
||||
on_progress_change: function(task, progress) {
|
||||
var progress_fieldname = 'progress';
|
||||
|
|
@ -558,7 +554,6 @@ frappe.views.DocListView = frappe.ui.Listing.extend({
|
|||
|
||||
if(progress_fieldname) {
|
||||
set_value(task.doctype, task.id, progress_fieldname, parseInt(progress))
|
||||
.then(show_success);
|
||||
}
|
||||
},
|
||||
on_view_change: function(mode) {
|
||||
|
|
@ -596,6 +591,33 @@ frappe.views.DocListView = frappe.ui.Listing.extend({
|
|||
});
|
||||
},
|
||||
|
||||
update_gantt_task: function(task, start, end) {
|
||||
var me = this;
|
||||
if(me.gantt.updating_task) {
|
||||
setTimeout(me.update_gantt_task.bind(me, task, start, end), 500)
|
||||
return;
|
||||
}
|
||||
me.gantt.updating_task = true;
|
||||
|
||||
var field_map = frappe.views.calendar[this.doctype].field_map;
|
||||
frappe.call({
|
||||
method: 'frappe.desk.gantt.update_task',
|
||||
args: {
|
||||
args: {
|
||||
doctype: task.doctype,
|
||||
name: task.id,
|
||||
start: start.format('YYYY-MM-DD'),
|
||||
end: end.format('YYYY-MM-DD')
|
||||
},
|
||||
field_map: field_map
|
||||
},
|
||||
callback: function() {
|
||||
me.gantt.updating_task = false;
|
||||
show_alert({message:__("Saved"), indicator:'green'}, 1);
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
render_rows_Kanban: function(values) {
|
||||
var me = this;
|
||||
frappe.require(
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue