diff --git a/cypress.json b/cypress.json index bd93405273..5348a69bc0 100644 --- a/cypress.json +++ b/cypress.json @@ -1,4 +1,3 @@ { - "baseUrl": "http://test_site_ui:8000", - "projectId": "92odwv" + "baseUrl": "http://test_site_ui:8000" } diff --git a/frappe/core/doctype/comment/test_comment.py b/frappe/core/doctype/comment/test_comment.py index 0f46f0b3b5..2f6583b7ba 100644 --- a/frappe/core/doctype/comment/test_comment.py +++ b/frappe/core/doctype/comment/test_comment.py @@ -35,7 +35,7 @@ class TestComment(unittest.TestCase): frappe.db.sql("delete from `tabComment` where reference_doctype = 'Blog Post'") from frappe.templates.includes.comments.comments import add_comment - add_comment('hello', 'test@test.com', 'Good Tester', + add_comment('Good comment with 10 chars', 'test@test.com', 'Good Tester', 'Blog Post', test_blog.name, test_blog.route) self.assertEqual(frappe.get_all('Comment', fields = ['*'], filters = dict( diff --git a/frappe/core/doctype/prepared_report/prepared_report.py b/frappe/core/doctype/prepared_report/prepared_report.py index 1cd106dabd..5217a6537d 100644 --- a/frappe/core/doctype/prepared_report/prepared_report.py +++ b/frappe/core/doctype/prepared_report/prepared_report.py @@ -37,6 +37,15 @@ class PreparedReport(Document): def run_background(instance): report = frappe.get_doc("Report", instance.ref_report_doctype) + + report.custom_columns = [] + + if report.report_type == 'Custom Report': + custom_report_doc = report + reference_report = custom_report_doc.reference_report + report = frappe.get_doc("Report", reference_report) + report.custom_columns = custom_report_doc.json + result = generate_report_result(report, filters=instance.filters, user=instance.owner) create_json_gz_file(result['result'], 'Prepared Report', instance.name) diff --git a/frappe/desk/doctype/dashboard_chart/dashboard_chart.py b/frappe/desk/doctype/dashboard_chart/dashboard_chart.py index a6c8288559..217b456349 100644 --- a/frappe/desk/doctype/dashboard_chart/dashboard_chart.py +++ b/frappe/desk/doctype/dashboard_chart/dashboard_chart.py @@ -156,22 +156,6 @@ def get_period_ending(date, timegrain): return getdate(date) -def get_period_beginning(date, timegrain): - if timegrain=='Daily': - return getdate(date) - - ending = get_period_ending(date, timegrain) - beginning = None - - if timegrain=='Weekly': - beginning = add_to_date(add_to_date(ending, weeks=-1), days = 1) - elif timegrain=='Monthly': - beginning = add_to_date(add_to_date(ending, months=-1), days = 1) - elif timegrain=='Quarterly': - beginning = add_to_date(add_to_date(ending, months=-3), days = 1) - - return getdate(beginning) - def get_week_ending(date): # fun fact: week ends on the day before 1st Jan of the year. # for 2019 it is Monday diff --git a/frappe/desk/doctype/dashboard_chart/test_dashboard_chart.py b/frappe/desk/doctype/dashboard_chart/test_dashboard_chart.py index d92c1a120c..ca55d9254a 100644 --- a/frappe/desk/doctype/dashboard_chart/test_dashboard_chart.py +++ b/frappe/desk/doctype/dashboard_chart/test_dashboard_chart.py @@ -6,7 +6,7 @@ from __future__ import unicode_literals import unittest, frappe from frappe.utils import getdate from frappe.desk.doctype.dashboard_chart.dashboard_chart import (get, - get_period_ending, get_period_beginning) + get_period_ending) class TestDashboardChart(unittest.TestCase): def test_period_ending(self): @@ -32,15 +32,6 @@ class TestDashboardChart(unittest.TestCase): self.assertEqual(get_period_ending('2019-10-01', 'Quarterly'), getdate('2019-12-31')) - def test_get_period_beginning(self): - self.assertEqual(get_period_beginning('2019-02-02', 'Monthly'), - getdate('2019-02-01')) - self.assertEqual(get_period_beginning('2019-02-02', 'Quarterly'), - getdate('2019-01-01')) - self.assertEqual(get_period_beginning('2019-01-29', 'Weekly'), - getdate('2019-02-01')) - - def test_dashboard_chart(self): if frappe.db.exists('Dashboard Chart', 'Test Dashboard Chart'): frappe.delete_doc('Dashboard Chart', 'Test Dashboard Chart') diff --git a/frappe/desk/search.py b/frappe/desk/search.py index 04caf36754..61b0cf2905 100644 --- a/frappe/desk/search.py +++ b/frappe/desk/search.py @@ -137,7 +137,7 @@ def search_widget(doctype, txt, query=None, searchfield=None, start=0, from frappe.model.db_query import get_order_by order_by_based_on_meta = get_order_by(doctype, meta) # 2 is the index of _relevance column - order_by = "2 , {0}, `tab{1}`.idx desc".format(order_by_based_on_meta, doctype) + order_by = "_relevance, {0}, `tab{1}`.idx desc".format(order_by_based_on_meta, doctype) ignore_permissions = True if doctype == "DocType" else (cint(ignore_user_permissions) and has_permission(doctype)) diff --git a/frappe/public/css/list.css b/frappe/public/css/list.css index 3befc646be..2d95b5c83f 100644 --- a/frappe/public/css/list.css +++ b/frappe/public/css/list.css @@ -297,7 +297,6 @@ input.list-row-checkbox { justify-content: center; position: relative; height: 200px; - padding: 15px; } .image-view-container .image-field img { max-height: 100%; diff --git a/frappe/public/js/frappe/request.js b/frappe/public/js/frappe/request.js index cd102117d7..dd92e4109c 100644 --- a/frappe/public/js/frappe/request.js +++ b/frappe/public/js/frappe/request.js @@ -30,7 +30,8 @@ frappe.call = function(opts) { indicator: 'orange', message: __('You are not connected to Internet. Retry after sometime.') }, 3); - return; + opts.always && opts.always(); + return $.ajax(); } if (typeof arguments[0]==='string') { opts = { diff --git a/frappe/public/js/frappe/views/image/image_view.js b/frappe/public/js/frappe/views/image/image_view.js index 3c2b5e7ce1..a82e5802f1 100644 --- a/frappe/public/js/frappe/views/image/image_view.js +++ b/frappe/public/js/frappe/views/image/image_view.js @@ -23,6 +23,7 @@ frappe.views.ImageView = class ImageView extends frappe.views.ListView { set_fields() { this.fields = [ 'name', + ...this.get_fields_in_list_view().map((el)=> el.fieldname), this.meta.title_field, this.meta.image_field ]; @@ -61,6 +62,19 @@ frappe.views.ImageView = class ImageView extends frappe.views.ListView { `); } + item_details_html(item) { + const info_fields = this.get_fields_in_list_view().map((el)=> el.fieldname) || []; + let info_html = `