From fb25fdb6092cb7eac5e007c65bce74bb6ce58ead Mon Sep 17 00:00:00 2001 From: Suraj Shetty Date: Tue, 10 Apr 2018 10:53:05 +0530 Subject: [PATCH] Auto email report fixes (#5410) * fixes https://github.com/frappe/erpnext/issues/13319 * fixes https://github.com/frappe/erpnext/issues/13422 * change auto email report template * change auto email report template * Update data.py * Update data.py --- frappe/desk/query_report.py | 6 +++--- frappe/desk/reportview.py | 4 ++-- frappe/model/db_query.py | 4 ++-- .../public/js/frappe/views/reports/query_report.js | 2 +- frappe/templates/emails/auto_email_report.html | 14 +++++++++----- frappe/utils/data.py | 2 +- 6 files changed, 18 insertions(+), 14 deletions(-) diff --git a/frappe/desk/query_report.py b/frappe/desk/query_report.py index a154c11d25..855cfb644e 100644 --- a/frappe/desk/query_report.py +++ b/frappe/desk/query_report.py @@ -235,7 +235,7 @@ def add_total_row(result, columns, meta = None): def get_filtered_data(ref_doctype, columns, data, user): result = [] linked_doctypes = get_linked_doctypes(columns, data) - match_filters_per_doctype = get_user_match_filters(linked_doctypes, ref_doctype) + match_filters_per_doctype = get_user_match_filters(linked_doctypes, user=user) shared = frappe.share.get_shared(ref_doctype, user) columns_dict = get_columns_dict(columns) @@ -380,11 +380,11 @@ def get_columns_dict(columns): return columns_dict -def get_user_match_filters(doctypes, ref_doctype): +def get_user_match_filters(doctypes, user): match_filters = {} for dt in doctypes: - filter_list = frappe.desk.reportview.build_match_conditions(dt, False) + filter_list = frappe.desk.reportview.build_match_conditions(dt, user, False) if filter_list: match_filters[dt] = filter_list diff --git a/frappe/desk/reportview.py b/frappe/desk/reportview.py index 71b31bf716..c3b2d0a417 100644 --- a/frappe/desk/reportview.py +++ b/frappe/desk/reportview.py @@ -341,8 +341,8 @@ def get_match_cond(doctype): cond = DatabaseQuery(doctype).build_match_conditions() return ((' and ' + cond) if cond else "").replace("%", "%%") -def build_match_conditions(doctype, as_condition=True): - match_conditions = DatabaseQuery(doctype).build_match_conditions(as_condition=as_condition) +def build_match_conditions(doctype, user, as_condition=True): + match_conditions = DatabaseQuery(doctype, user=user).build_match_conditions(as_condition=as_condition) if as_condition: return match_conditions.replace("%", "%%") else: diff --git a/frappe/model/db_query.py b/frappe/model/db_query.py index 30daf3ed55..329f856a7c 100644 --- a/frappe/model/db_query.py +++ b/frappe/model/db_query.py @@ -18,13 +18,13 @@ from frappe.model.utils.user_settings import get_user_settings, update_user_sett from datetime import datetime class DatabaseQuery(object): - def __init__(self, doctype): + def __init__(self, doctype, user=None): self.doctype = doctype self.tables = [] self.conditions = [] self.or_conditions = [] self.fields = None - self.user = None + self.user = user or frappe.session.user self.ignore_ifnull = False self.flags = frappe._dict() diff --git a/frappe/public/js/frappe/views/reports/query_report.js b/frappe/public/js/frappe/views/reports/query_report.js index 626de0c5e1..6315fea77e 100644 --- a/frappe/public/js/frappe/views/reports/query_report.js +++ b/frappe/public/js/frappe/views/reports/query_report.js @@ -109,7 +109,7 @@ frappe.views.QueryReport = class QueryReport extends frappe.views.BaseList { .then(doc => { this.report_doc = doc; }) - .then(() => frappe.model.with_doc('DocType', this.report_doc.ref_doctype)); + .then(() => frappe.model.with_doctype(this.report_doc.ref_doctype)); } get_report_settings() { diff --git a/frappe/templates/emails/auto_email_report.html b/frappe/templates/emails/auto_email_report.html index 707220ebf4..e658dd303e 100644 --- a/frappe/templates/emails/auto_email_report.html +++ b/frappe/templates/emails/auto_email_report.html @@ -1,11 +1,11 @@ {% macro get_alignment(col) %} {%- if col.fieldtype in ('Int', 'Float', 'Currency', 'Check') %} class="text-right" {% endif -%} {% endmacro %} - - +{% set max_width = '100%' if columns|length > 3 else '600px' %} +
{% if description %} @@ -15,7 +15,7 @@ {% endif %}
- {{ title }} {{ date_time }} + {{ title }}
{% if data %} - +
{% for col in columns %} @@ -38,10 +38,14 @@
{% endif %} + {% if not frappe.db.get_value("System Settings", "System Settings", "hide_footer_in_auto_email_reports")|int %} - +
+

+ {{ _("This report was generated on {0}".format(date_time)) }} +

{{ _("View report in your browser") }}: {{report_name}} diff --git a/frappe/utils/data.py b/frappe/utils/data.py index 2f73c37ec5..e01402a3f5 100644 --- a/frappe/utils/data.py +++ b/frappe/utils/data.py @@ -388,7 +388,7 @@ def fmt_money(amount, precision=None, currency=None): precision = len(decimals) amount = '%.*f' % (precision, round(flt(amount), precision)) - + if amount.find('.') == -1: decimals = '' else: