diff --git a/frappe/desk/doctype/kanban_board/kanban_board.py b/frappe/desk/doctype/kanban_board/kanban_board.py index a1df694f6e..b63d446d6d 100644 --- a/frappe/desk/doctype/kanban_board/kanban_board.py +++ b/frappe/desk/doctype/kanban_board/kanban_board.py @@ -8,7 +8,6 @@ import json from frappe import _ from frappe.model.document import Document from six import iteritems -from frappe.custom.doctype.custom_field.custom_field import create_custom_field class KanbanBoard(Document): @@ -130,17 +129,8 @@ def update_order(board_name, order): @frappe.whitelist() def quick_kanban_board(doctype, board_name, field_name, project=None): '''Create new KanbanBoard quickly with default options''' + doc = frappe.new_doc('Kanban Board') - - if field_name == 'kanban_column': - create_custom_field(doctype, { - 'label': 'Kanban Column', - 'fieldname': 'kanban_column', - 'fieldtype': 'Select', - 'hidden': 1, - 'owner': 'Administrator' - }) - meta = frappe.get_meta(doctype) options = '' diff --git a/frappe/public/js/frappe/views/kanban/kanban_view.js b/frappe/public/js/frappe/views/kanban/kanban_view.js index 74dc283326..edf3061b43 100644 --- a/frappe/public/js/frappe/views/kanban/kanban_view.js +++ b/frappe/public/js/frappe/views/kanban/kanban_view.js @@ -225,21 +225,18 @@ frappe.views.KanbanView.setup_dropdown_in_sidebar = function(doctype, $dropdown) const fields = get_fields_for_dialog(); + let primary_action_label = fields.length > 1 ? __('Save') : ''; + let primary_action = fields.length > 1 ? + ({ board_name, field_name, project }) => { + make_kanban_board(board_name, field_name, project) + .then(() => dialog.hide(), (err) => frappe.msgprint(err)); + } : null; + dialog = new frappe.ui.Dialog({ title: __('New Kanban Board'), - fields: fields, - - primary_action_label: __('Save'), - primary_action(values) { - const custom_column = - values.custom_column !== undefined ? - values.custom_column : 1; - - let field_name = custom_column ? 'kanban_column' : values.field_name; - - make_kanban_board(values.board_name, field_name, values.project) - .then(() => dialog.hide(), (err) => frappe.msgprint(err)); - } + fields, + primary_action_label, + primary_action }); return dialog; } @@ -272,26 +269,28 @@ frappe.views.KanbanView.setup_dropdown_in_sidebar = function(doctype, $dropdown) }); if (select_fields.length > 0) { - fields = fields.concat([{ + fields.push({ fieldtype: 'Select', fieldname: 'field_name', label: __('Columns based on'), options: select_fields.map(df => ({label: df.label, value: df.fieldname})), default: select_fields[0], - depends_on: 'eval:doc.custom_column===0', - reqd: 1 - }, - - { - fieldtype: 'Check', - fieldname: 'custom_column', - label: __('Custom Column'), - default: 0, - onchange() { - const value = this.get_value(); - this.layout.set_df_property('field_name', 'reqd', !value); - } - }]); + reqd: 1, + }); + } else { + fields = [{ + fieldtype: 'HTML', + options: ` +
+

+ ${__('No fields found that can be used as a Kanban Column. Use the Customize Form to add a Custom Field of type "Select".')} +

+ + ${__('Customize Form')} + +
+ ` + }]; } return fields;