From 355a494641c610fa30ca7509898232502eb8d8a9 Mon Sep 17 00:00:00 2001 From: Faris Ansari Date: Fri, 12 May 2017 15:25:02 +0530 Subject: [PATCH] Kanban fixes (#3278) - redirect back to list when board is not found - fix no default columns when custom field is used --- frappe/desk/doctype/kanban_board/kanban_board.py | 13 ++++++++----- frappe/public/js/frappe/list/list_renderer.js | 2 +- .../public/js/frappe/views/kanban/kanban_board.js | 9 +++++++++ 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/frappe/desk/doctype/kanban_board/kanban_board.py b/frappe/desk/doctype/kanban_board/kanban_board.py index 4d9072e9e4..062b72590c 100644 --- a/frappe/desk/doctype/kanban_board/kanban_board.py +++ b/frappe/desk/doctype/kanban_board/kanban_board.py @@ -118,10 +118,13 @@ def update_order(board_name, order): def quick_kanban_board(doctype, board_name, field_name): '''Create new KanbanBoard quickly with default options''' 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 = [] if options: @@ -198,4 +201,4 @@ def set_indicator(board_name, column_name, indicator): def save_filters(board_name, filters): '''Save filters silently''' frappe.db.set_value('Kanban Board', board_name, 'filters', - filters, update_modified=False) + filters, update_modified=False) diff --git a/frappe/public/js/frappe/list/list_renderer.js b/frappe/public/js/frappe/list/list_renderer.js index b2368bf5ec..1f0209f74b 100644 --- a/frappe/public/js/frappe/list/list_renderer.js +++ b/frappe/public/js/frappe/list/list_renderer.js @@ -144,7 +144,7 @@ frappe.views.ListRenderer = Class.extend({ } // 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 () { diff --git a/frappe/public/js/frappe/views/kanban/kanban_board.js b/frappe/public/js/frappe/views/kanban/kanban_board.js index 71b2221f87..fa3695baf9 100644 --- a/frappe/public/js/frappe/views/kanban/kanban_board.js +++ b/frappe/public/js/frappe/views/kanban/kanban_board.js @@ -41,6 +41,12 @@ frappe.provide("frappe.views"); columns: columns, 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) { @@ -1038,6 +1044,9 @@ frappe.provide("frappe.views"); function is_filters_modified(board, cur_list) { return new Promise(function(resolve, reject) { 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()); resolve(list_filters !== board.filters); }, 2000);