From e037787c694a872dc98eb044a0558f09f0643675 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Wed, 16 Nov 2016 16:57:14 +0530 Subject: [PATCH 1/5] [fix] print format heading bug --- .../print_format_builder.js | 44 ++++++++++++----- .../print_format_builder_field.html | 3 +- .../print_format_builder_layout.html | 48 +++++++++---------- 3 files changed, 56 insertions(+), 39 deletions(-) diff --git a/frappe/print/page/print_format_builder/print_format_builder.js b/frappe/print/page/print_format_builder/print_format_builder.js index 0feb21bfac..fac5e38589 100644 --- a/frappe/print/page/print_format_builder/print_format_builder.js +++ b/frappe/print/page/print_format_builder/print_format_builder.js @@ -198,10 +198,12 @@ frappe.PrintFormatBuilder = Class.extend({ this.setup_add_section(); this.setup_edit_heading(); this.setup_field_settings(); + this.setup_html_data(); }, prepare_data: function() { this.print_heading_template = null; this.data = JSON.parse(this.print_format.format_data || "[]"); + this.fields_dict = {}; if(!this.data.length) { // new layout this.data = this.meta.fields; @@ -212,6 +214,15 @@ frappe.PrintFormatBuilder = Class.extend({ this.data = this.data.splice(1); } } + + if(!this.print_heading_template) { + // default print heading template + this.print_heading_template = ''; + } + this.layout_data = []; var section = null, column = null, me = this; @@ -234,6 +245,7 @@ frappe.PrintFormatBuilder = Class.extend({ // break the layout into sections and columns // so that it is easier to render in a template $.each(this.data, function(i, f) { + me.fields_dict[f.fieldname] = f; if(!f.name && f.fieldname) { // from format_data (designed format) // print_hide should always be false @@ -467,6 +479,14 @@ frappe.PrintFormatBuilder = Class.extend({ return false; }); }, + setup_html_data: function() { + // set `data` for Custom HTML fields + var me = this; + this.page.main.find('[data-fieldtype="Custom HTML"]').each(function() { + $(this).find('.html-content') + .data('content', me.fields_dict[$(this).attr('data-fieldname')].options); + }) + }, update_columns_in_section: function(section, no_of_columns, new_no_of_columns) { var col_size = 12 / new_no_of_columns, me = this, @@ -527,12 +547,12 @@ frappe.PrintFormatBuilder = Class.extend({ }, setup_edit_heading: function() { var me = this; - if (!me.print_heading_template) { - $(this.page.main.find(".print-heading")).html('

'+me.print_format.doc_type+'
{{ doc.name }}

') - } + var $heading = this.page.main.find(".print-format-builder-print-heading"); + + // set content property + $heading.data('content', this.print_heading_template); + this.page.main.find(".edit-heading").on("click", function() { - var $heading = $(this).parents(".print-format-builder-header:first") - .find(".print-format-builder-print-heading"); var d = me.get_edit_html_dialog(__("Edit Heading"), __("Heading"), $heading); }) }, @@ -657,12 +677,12 @@ frappe.PrintFormatBuilder = Class.extend({ }); // set existing content in input - content = $content.attr('data-html-content'); + content = $content.data('content') || ""; if(content.indexOf(me.get_no_content())!==-1) content = ""; d.set_input("content", content); d.set_primary_action(__("Update"), function() { - $content.attr('data-html-content', d.get_value("content")); + $content.data('content', d.get_value("content")); $content.html(d.get_value("content")); d.hide(); }); @@ -678,9 +698,11 @@ frappe.PrintFormatBuilder = Class.extend({ // add print heading as the first field // this will be removed and set as a doc property // before rendering - data.push({"fieldname": "print_heading_template", - fieldtype:"HTML", - options: this.page.main.find(".print-format-builder-print-heading").html()}); + data.push({ + fieldname: "print_heading_template", + fieldtype:"Custom HTML", + options: this.page.main.find(".print-format-builder-print-heading").data('content') + }); // add pages this.page.main.find(".print-format-builder-section").each(function() { @@ -722,7 +744,7 @@ frappe.PrintFormatBuilder = Class.extend({ if(fieldtype==="Custom HTML") { // custom html as HTML field df.fieldtype = "HTML"; - df.options = $this.find(".html-content").attr('data-html-content'); + df.options = $this.find(".html-content").data('content'); } data.push(df); }); diff --git a/frappe/print/page/print_format_builder/print_format_builder_field.html b/frappe/print/page/print_format_builder/print_format_builder_field.html index 89bc0b2d3a..33bfd0a9c6 100644 --- a/frappe/print/page/print_format_builder/print_format_builder_field.html +++ b/frappe/print/page/print_format_builder/print_format_builder_field.html @@ -20,8 +20,7 @@ {%= __("Edit HTML") %} -
+
{{ field.options || me.get_no_content() }}
{% } else { %} {{ field.label }} diff --git a/frappe/print/page/print_format_builder/print_format_builder_layout.html b/frappe/print/page/print_format_builder/print_format_builder_layout.html index 0d9c9293a7..6c6d567b56 100644 --- a/frappe/print/page/print_format_builder/print_format_builder_layout.html +++ b/frappe/print/page/print_format_builder/print_format_builder_layout.html @@ -1,28 +1,24 @@
-
- {%= __("Drag elements from the sidebar to add. Drag them back to trash.") %}

-
- - - +
+ {%= __("Drag elements from the sidebar to add. Drag them back to trash.") %}

+
+ + +
From 4ebbaac5867c7547ffa73147807c382a1d442fed Mon Sep 17 00:00:00 2001 From: shreyas Date: Wed, 16 Nov 2016 16:41:57 +0530 Subject: [PATCH 2/5] [Minor] Show only 'sql.gz' in Downloadable backups page --- frappe/desk/page/backups/backups.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/frappe/desk/page/backups/backups.py b/frappe/desk/page/backups/backups.py index a0a29f6b2f..145693972c 100644 --- a/frappe/desk/page/backups/backups.py +++ b/frappe/desk/page/backups/backups.py @@ -25,7 +25,7 @@ def get_context(context): files = [('/backups/' + _file, get_time(os.path.join(path, _file)), - get_size(os.path.join(path, _file))) for _file in files] + get_size(os.path.join(path, _file))) for _file in files if _file.endswith('sql.gz')] files.sort(key=lambda x: x[1], reverse=True) return {"files": files} @@ -37,8 +37,9 @@ def get_scheduled_backup_limit(): def cleanup_old_backups(site_path, files, limit): backup_paths = [] for f in files: - _path = os.path.abspath(os.path.join(site_path, f)) - backup_paths.append(_path) + if f.endswith('sql.gz'): + _path = os.path.abspath(os.path.join(site_path, f)) + backup_paths.append(_path) backup_paths = sorted(backup_paths, key=os.path.getctime) files_to_delete = len(backup_paths) - limit From 4d7f1c33cf6d24f17990c3319922dbeabe82d518 Mon Sep 17 00:00:00 2001 From: Saurabh Date: Thu, 17 Nov 2016 12:25:30 +0530 Subject: [PATCH 3/5] [minor][fix] typo fix --- .../integrations/doctype/dropbox_settings/dropbox_settings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frappe/integrations/doctype/dropbox_settings/dropbox_settings.py b/frappe/integrations/doctype/dropbox_settings/dropbox_settings.py index c02bbf4a8f..1def02b826 100644 --- a/frappe/integrations/doctype/dropbox_settings/dropbox_settings.py +++ b/frappe/integrations/doctype/dropbox_settings/dropbox_settings.py @@ -198,7 +198,7 @@ def send_email(success, service_name, error_status=None): if not frappe.db: frappe.connect() - recipients = split_emails(frappe.db.get_value("Dropbox Backup", None, "send_notifications_to")) + recipients = split_emails(frappe.db.get_value("Dropbox Settings", None, "send_notifications_to")) frappe.sendmail(recipients=recipients, subject=subject, message=message) def backup_to_dropbox(): From 743e157e03666a59589bf3283f470838cc09961d Mon Sep 17 00:00:00 2001 From: shreyas Date: Thu, 17 Nov 2016 15:39:24 +0530 Subject: [PATCH 4/5] [Fix] Setup wizard exception fix for unique_module_name_standard --- frappe/desk/doctype/desktop_icon/desktop_icon.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/frappe/desk/doctype/desktop_icon/desktop_icon.py b/frappe/desk/doctype/desktop_icon/desktop_icon.py index e8170074e6..69673e945d 100644 --- a/frappe/desk/doctype/desktop_icon/desktop_icon.py +++ b/frappe/desk/doctype/desktop_icon/desktop_icon.py @@ -193,6 +193,10 @@ def set_desktop_icons(visible_list, ignore_duplicate=True): except frappe.UniqueValidationError, e: if not ignore_duplicate: raise e + else: + visible_list.remove(module_name) + if frappe.message_log: + frappe.message_log.pop() # set the order set_order(visible_list) From 331ff47ed3b9f3ed966891d6773a88b959128fc1 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Thu, 17 Nov 2016 17:12:45 +0600 Subject: [PATCH 5/5] bumped to version 7.1.15 --- frappe/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frappe/__init__.py b/frappe/__init__.py index 18122677b8..fecde0e9c3 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__ = '7.1.14' +__version__ = '7.1.15' __title__ = "Frappe Framework" local = Local()