From 4fbfd1a846169126ff6e71ca27c3e94a0614513d Mon Sep 17 00:00:00 2001 From: Faris Ansari Date: Thu, 30 Mar 2017 17:49:02 +0530 Subject: [PATCH 01/15] [fix] list view assign to area --- frappe/public/css/list.css | 10 ++++------ frappe/public/less/list.less | 11 ++++------- 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/frappe/public/css/list.css b/frappe/public/css/list.css index 098657ded5..c8866da49c 100644 --- a/frappe/public/css/list.css +++ b/frappe/public/css/list.css @@ -153,15 +153,13 @@ .filterable { cursor: pointer; display: inline-block; - overflow: hidden; text-overflow: ellipsis; - width: 100%; -} -.col-sm-2 .filterable { - max-width: 90px; } -.col-sm-3 .filterable { +.col-sm-2:not(.list-row-right) .filterable, +.col-sm-3:not(.list-row-right) .filterable { max-width: 145px; + overflow: hidden; + width: 100%; } .doclist-row .label { margin-right: 8px; diff --git a/frappe/public/less/list.less b/frappe/public/less/list.less index a0d2075f95..2131b718c9 100644 --- a/frappe/public/less/list.less +++ b/frappe/public/less/list.less @@ -190,17 +190,14 @@ .filterable { cursor: pointer; display: inline-block; - overflow: hidden; text-overflow: ellipsis; - width: 100%; -} - -.col-sm-2 .filterable { - max-width: 90px; } -.col-sm-3 .filterable { +.col-sm-2:not(.list-row-right) .filterable, +.col-sm-3:not(.list-row-right) .filterable { max-width: 145px; + overflow: hidden; + width: 100%; } From 4de21b8024cafc798522a17774671a3ee9507f27 Mon Sep 17 00:00:00 2001 From: mbauskar Date: Fri, 31 Mar 2017 08:49:15 +0530 Subject: [PATCH 02/15] [patch] Email inbox desktop icon fixes --- frappe/config/desktop.py | 3 ++- frappe/patches.txt | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/frappe/config/desktop.py b/frappe/config/desktop.py index 1d535e08ab..8acdd446ab 100644 --- a/frappe/config/desktop.py +++ b/frappe/config/desktop.py @@ -4,7 +4,8 @@ from frappe import _ def get_data(): return [ { - "module_name": 'Communication', + "module_name": 'Core', + "type": 'list', "label": _('Email Inbox'), "_label": _('Email Inbox'), "_id": 'Email Inbox', diff --git a/frappe/patches.txt b/frappe/patches.txt index f471e439f8..00f8005194 100644 --- a/frappe/patches.txt +++ b/frappe/patches.txt @@ -173,3 +173,4 @@ frappe.patches.v7_2.update_communications frappe.patches.v8_0.deprecate_integration_broker frappe.patches.v8_0.setup_email_inbox #2017-03-29 frappe.patches.v8_0.newsletter_childtable_migrate +execute:frappe.db.sql("delete from `tabDesktop Icon` where module_name='Communication'") \ No newline at end of file From 7e220d6d5e82d6006cac7ea08af3c39b57047594 Mon Sep 17 00:00:00 2001 From: Saurabh Date: Fri, 31 Mar 2017 10:58:37 +0530 Subject: [PATCH 03/15] [fix] show site wise background jobs (#2977) * [fix] show site wise background jobs * Update background_jobs.py * Update background_jobs.py --- frappe/core/page/background_jobs/background_jobs.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/frappe/core/page/background_jobs/background_jobs.py b/frappe/core/page/background_jobs/background_jobs.py index bd1abc73c0..368c6550e9 100644 --- a/frappe/core/page/background_jobs/background_jobs.py +++ b/frappe/core/page/background_jobs/background_jobs.py @@ -22,7 +22,7 @@ def get_info(show_failed=False): jobs = [] def add_job(j, name): - if j.kwargs.get('site')==frappe.local.site or True: + if j.kwargs.get('site')==frappe.local.site: jobs.append({ 'job_name': j.kwargs.get('kwargs', {}).get('playbook_method') \ or str(j.kwargs.get('job_name')), @@ -47,5 +47,4 @@ def get_info(show_failed=False): if q.name == 'failed': for j in q.get_jobs()[:10]: add_job(j, q.name) - - return jobs \ No newline at end of file + return jobs From ed601f51cccba310291bca7fe25c32140adccca5 Mon Sep 17 00:00:00 2001 From: Faris Ansari Date: Fri, 31 Mar 2017 11:46:13 +0530 Subject: [PATCH 04/15] Page length always 20, frappe/erpnext#8256 --- frappe/desk/reportview.py | 3 ++- frappe/public/js/frappe/list/list_renderer.js | 2 +- frappe/public/js/frappe/list/list_view.js | 9 +++++---- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/frappe/desk/reportview.py b/frappe/desk/reportview.py index 92ca203982..e2ab217c3d 100644 --- a/frappe/desk/reportview.py +++ b/frappe/desk/reportview.py @@ -36,7 +36,8 @@ def get_form_params(): data["save_user_settings"] = json.loads(data["save_user_settings"]) else: data["save_user_settings"] = True - + + doctype = data["doctype"] fields = data["fields"] for field in fields: diff --git a/frappe/public/js/frappe/list/list_renderer.js b/frappe/public/js/frappe/list/list_renderer.js index eec9ac3ea4..e1660cc891 100644 --- a/frappe/public/js/frappe/list/list_renderer.js +++ b/frappe/public/js/frappe/list/list_renderer.js @@ -50,7 +50,7 @@ frappe.views.ListRenderer = Class.extend({ this.order_by = this.user_settings.order_by || this.settings.order_by; this.filters = this.user_settings.filters || this.settings.filters; - this.page_length = this.user_settings.page_length || this.settings.page_length; + this.page_length = this.settings.page_length; // default filter for submittable doctype if(frappe.model.is_submittable(this.doctype) && (!this.filters || !this.filters.length)) { diff --git a/frappe/public/js/frappe/list/list_view.js b/frappe/public/js/frappe/list/list_view.js index 85a7cbcb15..219409fbd6 100644 --- a/frappe/public/js/frappe/list/list_view.js +++ b/frappe/public/js/frappe/list/list_view.js @@ -441,10 +441,11 @@ frappe.views.ListView = frappe.ui.BaseList.extend({ different = true; } - if (user_settings.page_length !== args.page_length) { - user_settings.page_length = args.page_length || 20 - different = true; - } + // never save page_length in user_settings + // if (user_settings.page_length !== args.page_length) { + // user_settings.page_length = args.page_length || 20 + // different = true; + // } // save fields in list settings if (args.save_user_settings_fields) { From 4e6d11c2b699e9f5f0cb726f654db1aaa883c30a Mon Sep 17 00:00:00 2001 From: Faris Ansari Date: Fri, 31 Mar 2017 12:00:34 +0530 Subject: [PATCH 05/15] [minor] Fix summernote drag drop event --- frappe/public/js/frappe/form/control.js | 1 + 1 file changed, 1 insertion(+) diff --git a/frappe/public/js/frappe/form/control.js b/frappe/public/js/frappe/form/control.js index d9fcfda072..22cd9c0cb5 100644 --- a/frappe/public/js/frappe/form/control.js +++ b/frappe/public/js/frappe/form/control.js @@ -1683,6 +1683,7 @@ frappe.ui.form.ControlTextEditor = frappe.ui.form.ControlCode.extend({ this.set_input('

'); }, setup_drag_drop: function() { + var me = this; this.note_editor.on('dragenter dragover', false) .on('drop', function(e) { var dataTransfer = e.originalEvent.dataTransfer; From 522da8e57bfe3c277678066f307b3bd1203e217d Mon Sep 17 00:00:00 2001 From: Faris Ansari Date: Fri, 31 Mar 2017 12:24:58 +0530 Subject: [PATCH 06/15] [fix] Query report refresh on filter change - frappe/frappe#2874 - frappe/frappe#2949 --- frappe/public/js/frappe/views/reports/query_report.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frappe/public/js/frappe/views/reports/query_report.js b/frappe/public/js/frappe/views/reports/query_report.js index 75e464c83f..f1a3ad45dd 100644 --- a/frappe/public/js/frappe/views/reports/query_report.js +++ b/frappe/public/js/frappe/views/reports/query_report.js @@ -300,7 +300,7 @@ frappe.views.QueryReport = Class.extend({ // run report on change f.$input.on("change", function() { - if(!me.flags.filter_set) { + if(!me.flags.filters_set) { // don't trigger change while setting filters return; } From a5e7b3483bb4f7fe714ca2c5cdb0224711e50252 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Fri, 31 Mar 2017 15:07:05 +0530 Subject: [PATCH 07/15] [fix] timepicker in modal blurs on scroll fixes frappe/erpnext#8002 --- frappe/public/js/frappe/desk.js | 4 ++++ frappe/public/js/frappe/provide.js | 6 ++++++ frappe/public/js/frappe/ui/dialog.js | 7 +++++++ 3 files changed, 17 insertions(+) diff --git a/frappe/public/js/frappe/desk.js b/frappe/public/js/frappe/desk.js index 57e21a04c2..7eca9a9972 100644 --- a/frappe/public/js/frappe/desk.js +++ b/frappe/public/js/frappe/desk.js @@ -52,6 +52,10 @@ frappe.Application = Class.extend({ $(document).trigger('app_ready'); + frappe.ready_events.forEach(function(fn) { + fn(); + }); + if (frappe.boot.messages) { frappe.msgprint(frappe.boot.messages); } diff --git a/frappe/public/js/frappe/provide.js b/frappe/public/js/frappe/provide.js index 0eede49cd2..25dd07e101 100644 --- a/frappe/public/js/frappe/provide.js +++ b/frappe/public/js/frappe/provide.js @@ -26,3 +26,9 @@ frappe.provide("frappe.utils"); frappe.provide("frappe.ui"); frappe.provide("frappe.modules"); frappe.provide("frappe.templates"); + +frappe.ready_events = []; +frappe.ready = function(fn) { + frappe.ready_events.push(fn); +} + diff --git a/frappe/public/js/frappe/ui/dialog.js b/frappe/public/js/frappe/ui/dialog.js index 0ef3046bf1..18ef247519 100644 --- a/frappe/public/js/frappe/ui/dialog.js +++ b/frappe/public/js/frappe/ui/dialog.js @@ -56,6 +56,13 @@ frappe.ui.Dialog = frappe.ui.FieldGroup.extend({ frappe.ui.open_dialogs.push(me); me.focus_on_first_input(); me.on_page_show && me.on_page_show(); + }) + .on('scroll', function() { + var $input = $('input:focus'); + if($input.length && ['Date', 'Datetime', + 'Time'].includes($input.attr('data-fieldtype'))) { + $input.blur(); + } }); }, From 6273cfc96a73077f3b461fbd4c38749c6bb37253 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Fri, 31 Mar 2017 16:00:16 +0530 Subject: [PATCH 08/15] [fix] datepicker should be selected on show, fixes frappe/erpnext#8102 --- frappe/public/css/desk.css | 3 ++ frappe/public/js/frappe/form/control.js | 53 ++++++++++++++++--------- frappe/public/less/desk.less | 4 ++ 3 files changed, 42 insertions(+), 18 deletions(-) diff --git a/frappe/public/css/desk.css b/frappe/public/css/desk.css index 0c3eda3276..15009748f7 100644 --- a/frappe/public/css/desk.css +++ b/frappe/public/css/desk.css @@ -386,6 +386,9 @@ fieldset[disabled] .form-control { .datepicker--cell.-selected-.-focus- { background: rgba(94, 100, 255, 0.9); } +.datepicker--button { + color: #5E64FF; +} .hidden-xs-inline, .hidden-xs-inline-block { display: none; diff --git a/frappe/public/js/frappe/form/control.js b/frappe/public/js/frappe/form/control.js index 22cd9c0cb5..9144ba9931 100644 --- a/frappe/public/js/frappe/form/control.js +++ b/frappe/public/js/frappe/form/control.js @@ -610,38 +610,40 @@ frappe.ui.form.ControlCurrency = frappe.ui.form.ControlFloat.extend({ frappe.ui.form.ControlPercent = frappe.ui.form.ControlFloat; frappe.ui.form.ControlDate = frappe.ui.form.ControlData.extend({ - set_input: function(value) { - this._super(value); - if(value && this.last_value && this.last_value !== this.value) { - this.datepicker.selectDate(new Date(value)); - } - }, make_input: function() { this._super(); this.set_date_options(); this.set_datepicker(); this.set_t_for_today(); }, + set_input: function(value) { + this._super(value); + if(value + && ((this.last_value && this.last_value !== this.value) + || (!this.datepicker.selectedDates.length))) { + this.datepicker.selectDate(new Date(value)); + } + }, set_date_options: function() { var me = this; var lang = frappe.boot.user.language; if(!$.fn.datepicker.language[lang]) { lang = 'en' - } + } this.datepicker_options = { language: lang, autoClose: true, - todayButton: new Date() + todayButton: new Date(), + dateFormat: (frappe.boot.sysdefaults.date_format || 'yyyy-mm-dd'), + onSelect: function(dateStr) { + if(me.setting_date_flag) return; + me.set_value(me.get_value()); + me.$input.trigger('change'); + }, + onShow: function() { + $('.datepicker--button:visible').text(__('Today')); + }, }; - - var date_format = - (frappe.boot.sysdefaults.date_format || 'yyyy-mm-dd'); - this.datepicker_options.dateFormat = date_format; - - this.datepicker_options.onSelect = function(dateStr) { - me.set_value(me.get_value()); - me.$input.trigger('change'); - } }, set_datepicker: function() { this.$input.datepicker(this.datepicker_options); @@ -689,11 +691,23 @@ frappe.ui.form.ControlTime = frappe.ui.form.ControlData.extend({ onSelect: function(dateObj) { me.set_value(dateObj); }, + onShow: function() { + $('.datepicker--button:visible').text(__('Now')); + }, todayButton: new Date() }); this.datepicker = this.$input.data('datepicker'); this.refresh(); - } + }, + set_input: function(value) { + this._super(value); + if(value + && ((this.last_value && this.last_value !== this.value) + || (!this.datepicker.selectedDates.length))) { + + this.datepicker.selectDate(moment(value, 'hh:mm:ss')._d); + } + }, }); frappe.ui.form.ControlDatetime = frappe.ui.form.ControlDate.extend({ @@ -701,6 +715,9 @@ frappe.ui.form.ControlDatetime = frappe.ui.form.ControlDate.extend({ this._super(); this.datepicker_options.timepicker = true; this.datepicker_options.timeFormat = "hh:ii:ss"; + this.datepicker_options.onShow = function() { + $('.datepicker--button:visible').text(__('Now')); + }; }, parse: function(value) { if(value) { diff --git a/frappe/public/less/desk.less b/frappe/public/less/desk.less index 2cd67217d1..3b25191c94 100644 --- a/frappe/public/less/desk.less +++ b/frappe/public/less/desk.less @@ -183,6 +183,10 @@ textarea.form-control { } } +.datepicker--button { + color: @brand-primary; +} + .hidden-xs-inline, .hidden-xs-inline-block { display: none; } From 3076b2cc7a6befec12dcd045db36cf93c1b99a48 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Fri, 31 Mar 2017 16:36:33 +0530 Subject: [PATCH 09/15] [fix] frappe.ready --- frappe/public/js/frappe/provide.js | 5 ----- frappe/sessions.py | 2 +- frappe/templates/base.html | 16 ++++++---------- frappe/website/js/website.js | 14 ++++---------- 4 files changed, 11 insertions(+), 26 deletions(-) diff --git a/frappe/public/js/frappe/provide.js b/frappe/public/js/frappe/provide.js index 25dd07e101..145cf9ede6 100644 --- a/frappe/public/js/frappe/provide.js +++ b/frappe/public/js/frappe/provide.js @@ -27,8 +27,3 @@ frappe.provide("frappe.ui"); frappe.provide("frappe.modules"); frappe.provide("frappe.templates"); -frappe.ready_events = []; -frappe.ready = function(fn) { - frappe.ready_events.push(fn); -} - diff --git a/frappe/sessions.py b/frappe/sessions.py index af72c3d36b..86ee1a6d12 100644 --- a/frappe/sessions.py +++ b/frappe/sessions.py @@ -42,7 +42,7 @@ def clear_cache(user=None): frappe.defaults.clear_cache(user) else: for name in groups: - cache.delete_key(name, user) + cache.delete_key(name) clear_global_cache() frappe.defaults.clear_cache() diff --git a/frappe/templates/base.html b/frappe/templates/base.html index 2395281233..9b7d48e1f8 100644 --- a/frappe/templates/base.html +++ b/frappe/templates/base.html @@ -33,16 +33,12 @@ {%- block style %}{%- endblock -%} {%- endblock -%} diff --git a/frappe/website/js/website.js b/frappe/website/js/website.js index adb53cbfd6..1f77caa72a 100644 --- a/frappe/website/js/website.js +++ b/frappe/website/js/website.js @@ -250,17 +250,11 @@ $.extend(frappe, { }, trigger_ready: function() { - var ready_functions = frappe.page_ready_events[location.pathname]; - if (ready_functions && ready_functions.length) { - for (var i=0, l=ready_functions.length; i < l; i++) { - var ready = ready_functions[i]; - ready && ready(); - } - } - - // remove them so that they aren't fired again and again! - delete frappe.page_ready_events[location.pathname]; + frappe.ready_events.forEach(function(fn) { + fn(); + }); }, + highlight_code_blocks: function() { if(hljs) { $('pre code').each(function(i, block) { From c52781952d48cc5b0b0984bf5edb684512a2098a Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Fri, 31 Mar 2017 16:41:57 +0530 Subject: [PATCH 10/15] [fix] no ready events in desk --- frappe/public/js/frappe/desk.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/frappe/public/js/frappe/desk.js b/frappe/public/js/frappe/desk.js index 7eca9a9972..57e21a04c2 100644 --- a/frappe/public/js/frappe/desk.js +++ b/frappe/public/js/frappe/desk.js @@ -52,10 +52,6 @@ frappe.Application = Class.extend({ $(document).trigger('app_ready'); - frappe.ready_events.forEach(function(fn) { - fn(); - }); - if (frappe.boot.messages) { frappe.msgprint(frappe.boot.messages); } From 2c8754a96e041df00c470ae623eefac2f294460c Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Fri, 31 Mar 2017 17:18:17 +0530 Subject: [PATCH 11/15] [fix] save un translated doctype names for desktop icons, fixes frappe/erpnext#8157 --- .../desk/doctype/desktop_icon/desktop_icon.py | 2 +- frappe/model/document.py | 3 ++- frappe/model/naming.py | 22 +++++-------------- frappe/public/js/frappe/desk.js | 4 ++-- .../js/frappe/views/reports/reportview.js | 2 +- 5 files changed, 12 insertions(+), 21 deletions(-) diff --git a/frappe/desk/doctype/desktop_icon/desktop_icon.py b/frappe/desk/doctype/desktop_icon/desktop_icon.py index 69673e945d..adbe45029b 100644 --- a/frappe/desk/doctype/desktop_icon/desktop_icon.py +++ b/frappe/desk/doctype/desktop_icon/desktop_icon.py @@ -94,7 +94,7 @@ def get_desktop_icons(user=None): def add_user_icon(_doctype, label=None, link=None, type='link', standard=0): '''Add a new user desktop icon to the desktop''' - if not label: label = frappe._(_doctype) + if not label: label = _doctype if not link: link = 'List/{0}'.format(_doctype) # find if a standard icon exists diff --git a/frappe/model/document.py b/frappe/model/document.py index a7d7a3a327..6494c459ed 100644 --- a/frappe/model/document.py +++ b/frappe/model/document.py @@ -804,7 +804,8 @@ class Document(BaseDocument): self.notify_update() try: - frappe.enqueue('frappe.utils.global_search.update_global_search', now=frappe.flags.in_test, doc=self) + frappe.enqueue('frappe.utils.global_search.update_global_search', + now=frappe.flags.in_test or frappe.flags.in_install, doc=self) except redis.exceptions.ConnectionError: update_global_search(self) diff --git a/frappe/model/naming.py b/frappe/model/naming.py index ce0ecb2a6b..8818572eb2 100644 --- a/frappe/model/naming.py +++ b/frappe/model/naming.py @@ -187,11 +187,13 @@ def _set_amended_name(doc): doc.name = am_prefix + '-' + str(am_id) return doc.name -def append_number_if_name_exists(doctype, name): +def append_number_if_name_exists(doctype, name, fieldname='name'): if frappe.db.exists(doctype, name): - last = frappe.db.sql("""select name from `tab{}` - where name regexp '^{}-[[:digit:]]+' - order by length(name) desc, name desc limit 1""".format(doctype, name)) + last = frappe.db.sql("""select name from `tab{doctype}` + where {fieldname} regexp '^{name}-[[:digit:]]+' + order by length({fieldname}) desc, + {fieldname} desc limit 1""".format(doctype=doctype, + name=name, fieldname=fieldname)) if last: count = str(cint(last[0][0].rsplit("-", 1)[1]) + 1) @@ -201,15 +203,3 @@ def append_number_if_name_exists(doctype, name): name = "{0}-{1}".format(name, count) return name - -def de_duplicate(doctype, name): - original_name = name - count = 0 - while True: - if frappe.db.exists(doctype, name): - count += 1 - name = "{0}-{1}".format(original_name, count) - else: - break - - return name diff --git a/frappe/public/js/frappe/desk.js b/frappe/public/js/frappe/desk.js index 57e21a04c2..f4703d3787 100644 --- a/frappe/public/js/frappe/desk.js +++ b/frappe/public/js/frappe/desk.js @@ -452,7 +452,7 @@ frappe.get_desktop_icons = function(show_hidden, show_global) { out.push(module); } - var show_module = function(module) { + var show_module = function(m) { var out = true; if(m.type==="page") { out = m.link in frappe.boot.page_info; @@ -469,7 +469,7 @@ frappe.get_desktop_icons = function(show_hidden, show_global) { out = frappe.boot.user.allow_modules.indexOf(m.module_name) !== -1 } } - if(m.hidden&& !show_hidden) { + if(m.hidden && !show_hidden) { out = false; } if(m.blocked && !show_global) { diff --git a/frappe/public/js/frappe/views/reports/reportview.js b/frappe/public/js/frappe/views/reports/reportview.js index 8cf6912fc8..517584db3b 100644 --- a/frappe/public/js/frappe/views/reports/reportview.js +++ b/frappe/public/js/frappe/views/reports/reportview.js @@ -107,7 +107,7 @@ frappe.views.ReportView = frappe.ui.BaseList.extend({ // add to desktop this.page.add_menu_item(__("Add to Desktop"), function() { - frappe.add_to_desktop(__('{0} Report', [me.doctype]), me.doctype); + frappe.add_to_desktop(me.docname || __('{0} Report', [me.doctype]), me.doctype); }, true); }, From e8af0b15b1c86e9088ac047c82445bc531b595af Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Fri, 31 Mar 2017 17:21:21 +0530 Subject: [PATCH 12/15] [minor] add a separator for append_number_if_name_exists --- frappe/model/naming.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/frappe/model/naming.py b/frappe/model/naming.py index 8818572eb2..f6a947cf4b 100644 --- a/frappe/model/naming.py +++ b/frappe/model/naming.py @@ -187,19 +187,19 @@ def _set_amended_name(doc): doc.name = am_prefix + '-' + str(am_id) return doc.name -def append_number_if_name_exists(doctype, name, fieldname='name'): +def append_number_if_name_exists(doctype, name, fieldname='name', separator='-'): if frappe.db.exists(doctype, name): last = frappe.db.sql("""select name from `tab{doctype}` - where {fieldname} regexp '^{name}-[[:digit:]]+' + where {fieldname} regexp '^{name}{separator}[[:digit:]]+' order by length({fieldname}) desc, {fieldname} desc limit 1""".format(doctype=doctype, - name=name, fieldname=fieldname)) + name=name, fieldname=fieldname, separator=separator)) if last: count = str(cint(last[0][0].rsplit("-", 1)[1]) + 1) else: count = "1" - name = "{0}-{1}".format(name, count) + name = "{0}{1}{2}".format(name, separator, count) return name From 49517479ccab764729d4514bcd79e3558b49d4f5 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Fri, 31 Mar 2017 17:32:51 +0530 Subject: [PATCH 13/15] [fix] update global search in the foreground process while migration, fixes frappe/erpnext#8233 --- frappe/model/document.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/frappe/model/document.py b/frappe/model/document.py index 6494c459ed..e78bcedc27 100644 --- a/frappe/model/document.py +++ b/frappe/model/document.py @@ -805,7 +805,8 @@ class Document(BaseDocument): try: frappe.enqueue('frappe.utils.global_search.update_global_search', - now=frappe.flags.in_test or frappe.flags.in_install, doc=self) + now=frappe.flags.in_test or frappe.flags.in_install or frappe.flags.in_migrate, + doc=self) except redis.exceptions.ConnectionError: update_global_search(self) From 53292122c287cb2b941cd517651df23e22227ff6 Mon Sep 17 00:00:00 2001 From: Faris Ansari Date: Fri, 31 Mar 2017 17:38:27 +0530 Subject: [PATCH 14/15] Fix empty state Kanban Board (#2991) - frappe/erpnext#8236 --- frappe/public/js/frappe/views/kanban/kanban_board.js | 1 + frappe/public/js/frappe/views/kanban/kanban_view.js | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/frappe/public/js/frappe/views/kanban/kanban_board.js b/frappe/public/js/frappe/views/kanban/kanban_board.js index e20e3f4ad4..4ea3c9b07e 100644 --- a/frappe/public/js/frappe/views/kanban/kanban_board.js +++ b/frappe/public/js/frappe/views/kanban/kanban_board.js @@ -235,6 +235,7 @@ frappe.provide("frappe.views"); var self = {}; self.wrapper = opts.wrapper; self.cur_list = opts.cur_list; + self.board_name = opts.board_name; self.update_cards = function(cards) { fluxify.doAction('update_cards', cards); diff --git a/frappe/public/js/frappe/views/kanban/kanban_view.js b/frappe/public/js/frappe/views/kanban/kanban_view.js index f873141f9e..724857fd67 100644 --- a/frappe/public/js/frappe/views/kanban/kanban_view.js +++ b/frappe/public/js/frappe/views/kanban/kanban_view.js @@ -3,12 +3,12 @@ frappe.provide('frappe.views'); frappe.views.KanbanView = frappe.views.ListRenderer.extend({ name: 'Kanban', render_view: function(values) { - if(this.kanban) { + var board_name = this.get_board_name(); + if(this.kanban && board_name === this.kanban.board_name) { this.kanban.update_cards(values); return; } - var board_name = this.get_board_name(); this.kanban = new frappe.views.KanbanBoard({ doctype: this.doctype, board_name: board_name, From fb36fca710e74161c2905230485718eb207d4ea0 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Fri, 31 Mar 2017 18:46:54 +0600 Subject: [PATCH 15/15] bumped to version 8.0.3 --- frappe/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frappe/__init__.py b/frappe/__init__.py index 88d5b29ce5..acd6f79992 100644 --- a/frappe/__init__.py +++ b/frappe/__init__.py @@ -13,7 +13,7 @@ import os, sys, importlib, inspect, json from .exceptions import * from .utils.jinja import get_jenv, get_template, render_template -__version__ = '8.0.2' +__version__ = '8.0.3' __title__ = "Frappe Framework" local = Local()