From bb67242a6e8c5e70ce33b97a593714340e630f72 Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Mon, 6 Apr 2015 17:27:14 +0530 Subject: [PATCH 1/6] [fix] update_routes_of_descendants --- frappe/website/website_generator.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/frappe/website/website_generator.py b/frappe/website/website_generator.py index d1388634b4..57c83fefdb 100644 --- a/frappe/website/website_generator.py +++ b/frappe/website/website_generator.py @@ -96,16 +96,15 @@ class WebsiteGenerator(Document): if old_route and old_route != self.get_route(): # clear cache of old routes - old_routes = frappe.get_all(self.doctype, fields=["parent_website_route", "page_name"], - filters={"parent_website_route": ("like", old_route + "%")}) + old_routes = frappe.get_all(self.doctype, filters={"parent_website_route": ("like", old_route + "%")}) if old_routes: - for old_route in old_routes: - clear_cache(make_route(old_route)) + for like_old_route in old_routes: + clear_cache(frappe.get_doc(self.doctype, like_old_route.name).get_route()) frappe.db.sql("""update `tab{0}` set parent_website_route = replace(parent_website_route, %s, %s), - modified = %s + modified = %s, modified_by = %s where parent_website_route like %s""".format(self.doctype), (old_route, self.get_route(), now(), frappe.session.user, old_route + "%")) From 095a92560a528b204f3d32464ce55dc14e8cae55 Mon Sep 17 00:00:00 2001 From: Pratik Vyas Date: Thu, 9 Apr 2015 12:29:00 +0600 Subject: [PATCH 2/6] bumped to version 4.13.6 --- frappe/__version__.py | 2 +- frappe/hooks.py | 2 +- setup.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/frappe/__version__.py b/frappe/__version__.py index 29c39694fb..3a520d65e8 100644 --- a/frappe/__version__.py +++ b/frappe/__version__.py @@ -1,2 +1,2 @@ from __future__ import unicode_literals -__version__ = "4.13.5" +__version__ = "4.13.6" diff --git a/frappe/hooks.py b/frappe/hooks.py index 8b6fafd18e..9c74b8cf7c 100644 --- a/frappe/hooks.py +++ b/frappe/hooks.py @@ -4,7 +4,7 @@ app_title = "Frappe Framework" app_publisher = "Web Notes Technologies Pvt. Ltd." app_description = "Full Stack Web Application Framework in Python" app_icon = "assets/frappe/images/frappe.svg" -app_version = "4.13.5" +app_version = "4.13.6" app_color = "#3498db" app_email = "support@frappe.io" diff --git a/setup.py b/setup.py index 166e103f80..9340dfe961 100644 --- a/setup.py +++ b/setup.py @@ -1,7 +1,7 @@ from setuptools import setup, find_packages import os -version = "4.13.5" +version = "4.13.6" with open("requirements.txt", "r") as f: install_requires = f.readlines() From d0db8f9c1721c06da87275720c383747e701b60a Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Mon, 13 Apr 2015 15:45:27 +0530 Subject: [PATCH 3/6] [fix] title (id) in standard_macros.html --- frappe/templates/print_formats/standard_macros.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frappe/templates/print_formats/standard_macros.html b/frappe/templates/print_formats/standard_macros.html index 007a89d182..5074ccaa07 100644 --- a/frappe/templates/print_formats/standard_macros.html +++ b/frappe/templates/print_formats/standard_macros.html @@ -105,7 +105,7 @@

{{ doc.select_print_heading or (doc.print_heading if doc.print_heading != None else _(doc.doctype)) }}

{{ doc.sub_heading if doc.sub_heading != None - else ("#" + doc[doc.meta.title_field or "name"]) }}

+ else doc.name }} {%- if doc.meta.is_submittable and doc.docstatus==0-%}
From d783fb9942a476f8185780bcc46081b2706e0640 Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Tue, 14 Apr 2015 12:32:52 -0400 Subject: [PATCH 4/6] fixed noto-sans errors and scrub_relative_urls --- .../public/css/font/noto_sans/noto_sans.css | 24 +++++++++---------- frappe/website/utils.py | 2 +- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/frappe/public/css/font/noto_sans/noto_sans.css b/frappe/public/css/font/noto_sans/noto_sans.css index 6f9cd09376..24f5e882ec 100644 --- a/frappe/public/css/font/noto_sans/noto_sans.css +++ b/frappe/public/css/font/noto_sans/noto_sans.css @@ -4,9 +4,9 @@ src: local('Noto Sans'), local('NotoSans'), url('{{ frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-Regular-webfont.eot?#iefix") }}') format('embedded-opentype'), - url('frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-Regular-webfont.woff") }}') format('woff'), - url('frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-Regular-webfont.ttf") }}') format('truetype'), - url('frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-Regular-webfont.svg#noto_sansregular") }}') format('svg'); + url('{{ frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-Regular-webfont.woff") }}') format('woff'), + url('{{ frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-Regular-webfont.ttf") }}') format('truetype'), + url('{{ frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-Regular-webfont.svg#noto_sansregular") }}') format('svg'); font-weight: normal; font-style: normal; } @@ -17,9 +17,9 @@ src: local('Noto Sans Bold'), local('NotoSans-Bold'), url('{{ frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-Bold-webfont.eot?#iefix") }}') format('embedded-opentype'), - url('frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-Bold-webfont.woff") }}') format('woff'), - url('frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-Bold-webfont.ttf") }}') format('truetype'), - url('frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-Bold-webfont.svg#noto_sansbold") }}') format('svg'); + url('{{ frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-Bold-webfont.woff") }}') format('woff'), + url('{{ frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-Bold-webfont.ttf") }}') format('truetype'), + url('{{ frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-Bold-webfont.svg#noto_sansbold") }}') format('svg'); font-weight: bold; font-style: normal; } @@ -30,9 +30,9 @@ src: local('Noto Sans Bold'), local('NotoSans-Bold'), url('{{ frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-Italic-webfont.eot?#iefix") }}') format('embedded-opentype'), - url('frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-Italic-webfont.woff") }}') format('woff'), - url('frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-Italic-webfont.ttf") }}') format('truetype'), - url('frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-Italic-webfont.svg#noto_sansitalic") }}') format('svg'); + url('{{ frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-Italic-webfont.woff") }}') format('woff'), + url('{{ frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-Italic-webfont.ttf") }}') format('truetype'), + url('{{ frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-Italic-webfont.svg#noto_sansitalic") }}') format('svg'); font-weight: normal; font-style: italic; } @@ -43,9 +43,9 @@ src: local('Noto Sans Bold'), local('NotoSans-Bold'), url('{{ frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-BoldItalic-webfont.eot?#iefix") }}') format('embedded-opentype'), - url('frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-BoldItalic-webfont.woff") }}') format('woff'), - url('frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-BoldItalic-webfont.ttf") }}') format('truetype'), - url('frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-BoldItalic-webfont.svg#noto_sansbold_italic") }}') format('svg'); + url('{{ frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-BoldItalic-webfont.woff") }}') format('woff'), + url('{{ frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-BoldItalic-webfont.ttf") }}') format('truetype'), + url('{{ frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-BoldItalic-webfont.svg#noto_sansbold_italic") }}') format('svg'); font-weight: bold; font-style: italic; } diff --git a/frappe/website/utils.py b/frappe/website/utils.py index cbfb46e184..394ad2106b 100644 --- a/frappe/website/utils.py +++ b/frappe/website/utils.py @@ -15,7 +15,7 @@ def delete_page_cache(path): def scrub_relative_urls(html): """prepend a slash before a relative url""" html = re.sub("""(src|href)[^\w'"]*['"](?!http|ftp|/|#|%|{)([^'" >]+)['"]""", '\g<1> = "/\g<2>"', html) - html = re.sub("""url\((?!http|ftp|/|#|%|{)([^\(\)]+)\)""", 'url(/\g<1>)', html) + html = re.sub("""url\((?!(['"]?)(http|ftp|/|#|%|{))(['"]?)([^\(\)]+)\)""", 'url(\g<3>/\g<4>)', html) return html def find_first_image(html): From 03985c02380932b5d7d7f22cfac5b729ab31e350 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Thu, 16 Apr 2015 15:53:04 +0530 Subject: [PATCH 5/6] Rounding for negative numbers in javascript --- frappe/public/js/frappe/misc/number_format.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/frappe/public/js/frappe/misc/number_format.js b/frappe/public/js/frappe/misc/number_format.js index 97241d5bb1..3bc8b6d2f4 100644 --- a/frappe/public/js/frappe/misc/number_format.js +++ b/frappe/public/js/frappe/misc/number_format.js @@ -174,12 +174,15 @@ function get_number_format_info(format) { } function _round(num, precision) { + var is_negative = num < 0 ? true : false; var d = cint(precision); var m = Math.pow(10, d); - var n = +(d ? num * m : num).toFixed(8); // Avoid rounding errors + var n = +(d ? Math.abs(num) * m : Math.abs(num)).toFixed(8); // Avoid rounding errors var i = Math.floor(n), f = n - i; - var r = (!precision && f == 0.5) ? ((i % 2 == 0) ? i : i + 1) : Math.round(n); - return d ? r / m : r; + var r = ((!precision && f == 0.5) ? ((i % 2 == 0) ? i : i + 1) : Math.round(n)); + r = d ? r / m : r; + return is_negative ? -r : r; + } function roundNumber(num, precision) { From 9fb8764dcb47d22c61c6ec420a7c39aa0061ac53 Mon Sep 17 00:00:00 2001 From: Pratik Vyas Date: Fri, 17 Apr 2015 16:31:22 +0600 Subject: [PATCH 6/6] bumped to version 4.14.0 --- frappe/__version__.py | 2 +- frappe/hooks.py | 2 +- setup.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/frappe/__version__.py b/frappe/__version__.py index 3a520d65e8..06b7f575ea 100644 --- a/frappe/__version__.py +++ b/frappe/__version__.py @@ -1,2 +1,2 @@ from __future__ import unicode_literals -__version__ = "4.13.6" +__version__ = "4.14.0" diff --git a/frappe/hooks.py b/frappe/hooks.py index 9c74b8cf7c..047cbcb6dd 100644 --- a/frappe/hooks.py +++ b/frappe/hooks.py @@ -4,7 +4,7 @@ app_title = "Frappe Framework" app_publisher = "Web Notes Technologies Pvt. Ltd." app_description = "Full Stack Web Application Framework in Python" app_icon = "assets/frappe/images/frappe.svg" -app_version = "4.13.6" +app_version = "4.14.0" app_color = "#3498db" app_email = "support@frappe.io" diff --git a/setup.py b/setup.py index 9340dfe961..b3c6dd7ff7 100644 --- a/setup.py +++ b/setup.py @@ -1,7 +1,7 @@ from setuptools import setup, find_packages import os -version = "4.13.6" +version = "4.14.0" with open("requirements.txt", "r") as f: install_requires = f.readlines()