From 9503ae655b26c1aa12a82c516a51a42d41d5fdfb Mon Sep 17 00:00:00 2001 From: Makarand Bauskar Date: Tue, 30 May 2017 15:21:15 +0530 Subject: [PATCH 1/6] [minor] changed the yahoo smtp port from 465 to 587 (#3402) --- frappe/email/doctype/email_account/email_account.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frappe/email/doctype/email_account/email_account.js b/frappe/email/doctype/email_account/email_account.js index e197e9c304..552f5108ad 100644 --- a/frappe/email/doctype/email_account/email_account.js +++ b/frappe/email/doctype/email_account/email_account.js @@ -36,7 +36,7 @@ frappe.email_defaults = { "use_ssl": 1, "enable_outgoing": 1, "smtp_server": "smtp.mail.yahoo.com", - "smtp_port": 465, + "smtp_port": 587, "use_tls": 1, "use_imap": 1 }, From 4f80f7633f11432f6a2f2629a317eea3e02bdf99 Mon Sep 17 00:00:00 2001 From: Faris Ansari Date: Tue, 30 May 2017 15:21:29 +0530 Subject: [PATCH 2/6] Fix wrong precision shown in form (#3400) --- frappe/public/js/frappe/form/formatters.js | 2 +- frappe/public/js/frappe/misc/number_format.js | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/frappe/public/js/frappe/form/formatters.js b/frappe/public/js/frappe/form/formatters.js index 5a015dc6e9..d25faa21e7 100644 --- a/frappe/public/js/frappe/form/formatters.js +++ b/frappe/public/js/frappe/form/formatters.js @@ -54,7 +54,7 @@ frappe.form.formatters = { var currency = frappe.meta.get_field_currency(docfield, doc); var precision = docfield.precision || cint(frappe.boot.sysdefaults.currency_precision) || 2; return frappe.form.formatters._right((value==null || value==="") - ? "" : format_currency(value, currency, docfield.precision), options); + ? "" : format_currency(value, currency, precision), options); }, Check: function(value) { if(value) { diff --git a/frappe/public/js/frappe/misc/number_format.js b/frappe/public/js/frappe/misc/number_format.js index 873a78f82d..fa77b3bbfc 100644 --- a/frappe/public/js/frappe/misc/number_format.js +++ b/frappe/public/js/frappe/misc/number_format.js @@ -127,7 +127,9 @@ window.format_number = function(v, format, decimals){ function format_currency(v, currency, decimals) { var format = get_number_format(currency); var symbol = get_currency_symbol(currency); - var decimals = frappe.boot.sysdefaults.currency_precision || null; + if(decimals === undefined) { + decimals = frappe.boot.sysdefaults.currency_precision || null; + } if(symbol) return symbol + " " + format_number(v, format, decimals); From ecfd1900446d5e95f4542b2674117c5cca40b80a Mon Sep 17 00:00:00 2001 From: Manas Solanki Date: Tue, 30 May 2017 15:21:50 +0530 Subject: [PATCH 3/6] Error handling if visible_index not found in query report (#3399) --- frappe/desk/query_report.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/frappe/desk/query_report.py b/frappe/desk/query_report.py index e1c570e341..bf38eea6a8 100644 --- a/frappe/desk/query_report.py +++ b/frappe/desk/query_report.py @@ -129,6 +129,8 @@ def export_query(): file_format_type = data["file_format_type"] if isinstance(data.get("visible_idx"), basestring): visible_idx = json.loads(data.get("visible_idx")) + else: + visible_idx = None if file_format_type == "Excel": @@ -154,7 +156,8 @@ def export_query(): result = result + data.result # filter rows by slickgrid's inline filter - result = [x for idx, x in enumerate(result) if idx == 0 or idx in visible_idx] + if visible_idx: + result = [x for idx, x in enumerate(result) if idx == 0 or idx in visible_idx] from frappe.utils.xlsxutils import make_xlsx xlsx_file = make_xlsx(result, "Query Report") From 8890165fa33d4e08ebaeede707492def343ec2d0 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Tue, 30 May 2017 15:22:25 +0530 Subject: [PATCH 4/6] Multiple issues fixed in auto email report (#3394) --- frappe/core/doctype/report/report.py | 17 +++++++++++------ frappe/desk/query_report.py | 13 ++++++++----- .../auto_email_report/auto_email_report.py | 6 +++--- frappe/email/queue.py | 3 ++- 4 files changed, 24 insertions(+), 15 deletions(-) diff --git a/frappe/core/doctype/report/report.py b/frappe/core/doctype/report/report.py index 3757f581e9..8c3e61d55f 100644 --- a/frappe/core/doctype/report/report.py +++ b/frappe/core/doctype/report/report.py @@ -100,12 +100,18 @@ class Report(Document): data = frappe.desk.query_report.run(self.name, filters=filters, user=user) for d in data.get('columns'): if isinstance(d, dict): - columns.append(frappe._dict(d)) + col = frappe._dict(d) + if not col.fieldname: + col.fieldname = col.label + columns.append(col) else: + fieldtype, options = "Data", None parts = d.split(':') - fieldtype, options = parts[1], None - if fieldtype and '/' in fieldtype: - fieldtype, options = fieldtype.split('/') + if len(parts) > 1: + if parts[1]: + fieldtype, options = parts[1], None + if fieldtype and '/' in fieldtype: + fieldtype, options = fieldtype.split('/') columns.append(frappe._dict(label=parts[0], fieldtype=fieldtype, fieldname=parts[0])) @@ -145,7 +151,7 @@ class Report(Document): for c in columns] out = out + [list(d) for d in result] - + if as_dict: data = [] for row in out: @@ -155,7 +161,6 @@ class Report(Document): _row[columns[i].get('fieldname')] = val else: data = out - return columns, data diff --git a/frappe/desk/query_report.py b/frappe/desk/query_report.py index bf38eea6a8..096467f9f8 100644 --- a/frappe/desk/query_report.py +++ b/frappe/desk/query_report.py @@ -104,7 +104,7 @@ def run(report_name, filters=None, user=None): if cint(report.add_total_row) and result: result = add_total_row(result, columns) - + return { "result": result, "columns": columns, @@ -185,9 +185,12 @@ def add_total_row(result, columns, meta = None): else: col = col.split(":") if len(col) > 1: - fieldtype = col[1] - if "/" in fieldtype: - fieldtype, options = fieldtype.split("/") + if col[1]: + fieldtype = col[1] + if "/" in fieldtype: + fieldtype, options = fieldtype.split("/") + else: + fieldtype = "Data" else: fieldtype = col.get("fieldtype") options = col.get("options") @@ -213,7 +216,7 @@ def add_total_row(result, columns, meta = None): else: first_col_fieldtype = columns[0].get("fieldtype") - if first_col_fieldtype not in ["Currency", "Int", "Float", "Percent"]: + if first_col_fieldtype not in ["Currency", "Int", "Float", "Percent", "Date"]: if first_col_fieldtype == "Link": total_row[0] = "'" + _("Total") + "'" else: diff --git a/frappe/email/doctype/auto_email_report/auto_email_report.py b/frappe/email/doctype/auto_email_report/auto_email_report.py index a6238865ff..3b752b4c2b 100644 --- a/frappe/email/doctype/auto_email_report/auto_email_report.py +++ b/frappe/email/doctype/auto_email_report/auto_email_report.py @@ -124,9 +124,9 @@ class AutoEmailReport(Document): report_doctype = frappe.db.get_value('Report', self.report, 'ref_doctype') report_footer = frappe.render_template(self.get_report_footer(), - dict(report_url = frappe.utils.get_url_to_report(self.report, self.report_type, report_doctype), - report_name = self.report, - edit_report_settings = frappe.utils.get_link_to_form('Auto Email Report', self.name))) + dict(report_url = frappe.utils.get_url_to_report(self.report, self.report_type, report_doctype), + report_name = self.report, + edit_report_settings = frappe.utils.get_link_to_form('Auto Email Report', self.name))) message += report_footer diff --git a/frappe/email/queue.py b/frappe/email/queue.py index 1ae2af56bd..c153a3cec6 100755 --- a/frappe/email/queue.py +++ b/frappe/email/queue.py @@ -432,7 +432,8 @@ def prepare_message(email, recipient, recipients_list): if email.add_unsubscribe_link and email.reference_doctype: # is missing the check for unsubscribe message but will not add as there will be no unsubscribe url unsubscribe_url = get_unsubcribed_url(email.reference_doctype, email.reference_name, recipient, email.unsubscribe_method, email.unsubscribe_params) - message = message.replace("", quopri.encodestring(unsubscribe_url)) + if message: + message = message.replace("", quopri.encodestring(unsubscribe_url)) if email.expose_recipients == "header": pass From 36d45fb70943c693bb6076276052ad025c089cec Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Tue, 30 May 2017 15:23:49 +0530 Subject: [PATCH 5/6] Report and Page is editable for Admin (#3410) --- frappe/core/doctype/page/page.js | 2 +- frappe/core/doctype/report/report.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/frappe/core/doctype/page/page.js b/frappe/core/doctype/page/page.js index 4c382ad810..86fbbedaf3 100644 --- a/frappe/core/doctype/page/page.js +++ b/frappe/core/doctype/page/page.js @@ -3,7 +3,7 @@ frappe.ui.form.on('Page', { refresh: function(frm) { - if(!frappe.boot.developer_mode) { + if(!frappe.boot.developer_mode && user != 'Administrator') { // make the document read-only frm.set_read_only(); } diff --git a/frappe/core/doctype/report/report.js b/frappe/core/doctype/report/report.js index fec2b4346d..bd8a58cf30 100644 --- a/frappe/core/doctype/report/report.js +++ b/frappe/core/doctype/report/report.js @@ -54,7 +54,7 @@ cur_frm.cscript.refresh = function(doc) { frappe.ui.form.on('Report', { refresh: function(frm) { - if(!frappe.boot.developer_mode) { + if(!frappe.boot.developer_mode && user != 'Administrator') { // make the document read-only frm.set_read_only(); } From b0f2da7e2670f736c8b2452721426205ee8fed8b Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Tue, 30 May 2017 16:28:59 +0600 Subject: [PATCH 6/6] bumped to version 8.0.61 --- frappe/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frappe/__init__.py b/frappe/__init__.py index 32de5c580d..25952cfa6a 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.60' +__version__ = '8.0.61' __title__ = "Frappe Framework" local = Local()