- redirect back to list when board is not found - fix no default columns when custom field is usedversion-14
@@ -118,10 +118,13 @@ def update_order(board_name, order): | |||||
def quick_kanban_board(doctype, board_name, field_name): | def quick_kanban_board(doctype, board_name, field_name): | ||||
'''Create new KanbanBoard quickly with default options''' | '''Create new KanbanBoard quickly with default options''' | ||||
doc = frappe.new_doc('Kanban Board') | doc = frappe.new_doc('Kanban Board') | ||||
options = frappe.get_value('DocField', dict( | |||||
parent=doctype, | |||||
fieldname=field_name | |||||
), 'options') | |||||
meta = frappe.get_meta(doctype) | |||||
options = '' | |||||
for field in meta.fields: | |||||
if field.fieldname == field_name: | |||||
options = field.options | |||||
columns = [] | columns = [] | ||||
if options: | if options: | ||||
@@ -198,4 +201,4 @@ def set_indicator(board_name, column_name, indicator): | |||||
def save_filters(board_name, filters): | def save_filters(board_name, filters): | ||||
'''Save filters silently''' | '''Save filters silently''' | ||||
frappe.db.set_value('Kanban Board', board_name, 'filters', | frappe.db.set_value('Kanban Board', board_name, 'filters', | ||||
filters, update_modified=False) | |||||
filters, update_modified=False) |
@@ -144,7 +144,7 @@ frappe.views.ListRenderer = Class.extend({ | |||||
} | } | ||||
// kanban column fields | // kanban column fields | ||||
if (me.meta.__kanban_column_fields) { | if (me.meta.__kanban_column_fields) { | ||||
me.fields = me.fields.concat(me.meta.__kanban_column_fields); | |||||
me.meta.__kanban_column_fields.map(add_field); | |||||
} | } | ||||
}, | }, | ||||
set_columns: function () { | set_columns: function () { | ||||
@@ -41,6 +41,12 @@ frappe.provide("frappe.views"); | |||||
columns: columns, | columns: columns, | ||||
cur_list: opts.cur_list | cur_list: opts.cur_list | ||||
}); | }); | ||||
}) | |||||
.fail(function() { | |||||
// redirect back to List | |||||
setTimeout(() => { | |||||
frappe.set_route('List', opts.doctype, 'List'); | |||||
}, 2000); | |||||
}); | }); | ||||
}, | }, | ||||
update_cards: function (updater, cards) { | update_cards: function (updater, cards) { | ||||
@@ -1038,6 +1044,9 @@ frappe.provide("frappe.views"); | |||||
function is_filters_modified(board, cur_list) { | function is_filters_modified(board, cur_list) { | ||||
return new Promise(function(resolve, reject) { | return new Promise(function(resolve, reject) { | ||||
setTimeout(function() { | setTimeout(function() { | ||||
// sometimes the filter_list is not initiated, so early return | |||||
if(!cur_list.filter_list) resolve(false); | |||||
var list_filters = JSON.stringify(cur_list.filter_list.get_filters()); | var list_filters = JSON.stringify(cur_list.filter_list.get_filters()); | ||||
resolve(list_filters !== board.filters); | resolve(list_filters !== board.filters); | ||||
}, 2000); | }, 2000); | ||||