diff --git a/frappe/__init__.py b/frappe/__init__.py index 7a68e56f6d..0134829874 100644 --- a/frappe/__init__.py +++ b/frappe/__init__.py @@ -14,7 +14,7 @@ import os, sys, importlib, inspect, json from .exceptions import * from .utils.jinja import get_jenv, get_template, render_template, get_email_from_template -__version__ = '9.2.6' +__version__ = '9.2.7' __title__ = "Frappe Framework" local = Local() @@ -1220,7 +1220,7 @@ def format(*args, **kwargs): import frappe.utils.formatters return frappe.utils.formatters.format_value(*args, **kwargs) -def get_print(doctype=None, name=None, print_format=None, style=None, html=None, as_pdf=False, doc=None, output = None): +def get_print(doctype=None, name=None, print_format=None, style=None, html=None, as_pdf=False, doc=None, output = None, no_letterhead = 0): """Get Print Format for given document. :param doctype: DocType of document. @@ -1236,6 +1236,7 @@ def get_print(doctype=None, name=None, print_format=None, style=None, html=None, local.form_dict.format = print_format local.form_dict.style = style local.form_dict.doc = doc + local.form_dict.no_letterhead = no_letterhead if not html: html = build_page("printview") diff --git a/frappe/core/page/data_import_tool/importer.py b/frappe/core/page/data_import_tool/importer.py index 083715b24d..a49110691b 100644 --- a/frappe/core/page/data_import_tool/importer.py +++ b/frappe/core/page/data_import_tool/importer.py @@ -41,6 +41,8 @@ def upload(rows = None, submit_after_import=None, ignore_encoding_errors=False, update_only = True if params.get('from_data_import'): from_data_import = params.get('from_data_import') + if not params.get('skip_errors'): + skip_errors = params.get('skip_errors') frappe.flags.mute_emails = no_email diff --git a/frappe/desk/page/setup_wizard/setup_wizard.js b/frappe/desk/page/setup_wizard/setup_wizard.js index bc4ce4f043..12ccc69cc3 100644 --- a/frappe/desk/page/setup_wizard/setup_wizard.js +++ b/frappe/desk/page/setup_wizard/setup_wizard.js @@ -237,7 +237,6 @@ frappe.setup.SetupWizard = class SetupWizard extends frappe.ui.Slides { this.working_state_message = this.get_message( __("Setting Up"), __("Sit tight while your system is being setup. This may take a few moments."), - 'orange', true ).appendTo(this.parent); @@ -245,8 +244,7 @@ frappe.setup.SetupWizard = class SetupWizard extends frappe.ui.Slides { this.current_slide = null; this.completed_state_message = this.get_message( __("Setup Complete"), - __("You're all set!"), - 'green' + __("You're all set!") ); } @@ -259,7 +257,7 @@ frappe.setup.SetupWizard = class SetupWizard extends frappe.ui.Slides { const loading_html = loading ? '
' : `
-
`; diff --git a/frappe/public/css/page.css b/frappe/public/css/page.css index d856222fbc..3fae923d04 100644 --- a/frappe/public/css/page.css +++ b/frappe/public/css/page.css @@ -277,13 +277,6 @@ select.input-sm { opacity: 1; cursor: pointer; } -.page-card-container, -.setup-state { - background-color: #f5f7fa; -} -.page-container .page-card-container { - background-color: #fff; -} .page-card-container { padding: 70px; } diff --git a/frappe/public/less/page.less b/frappe/public/less/page.less index b9222ec835..0026d64fd2 100644 --- a/frappe/public/less/page.less +++ b/frappe/public/less/page.less @@ -335,14 +335,6 @@ select.input-sm { } } -.page-card-container, .setup-state { - background-color: #f5f7fa; -} - -.page-container .page-card-container { - background-color: #fff; -} - .page-card-container { padding: 70px; } diff --git a/frappe/utils/xlsxutils.py b/frappe/utils/xlsxutils.py index 462810e081..e74ecc9407 100644 --- a/frappe/utils/xlsxutils.py +++ b/frappe/utils/xlsxutils.py @@ -6,11 +6,12 @@ import frappe from frappe.utils import encode, cstr, cint, flt, comma_or import openpyxl +import re from openpyxl.styles import Font from openpyxl import load_workbook from six import StringIO, string_types - +ILLEGAL_CHARACTERS_RE = re.compile(r'[\000-\010]|[\013-\014]|[\016-\037]') # return xlsx file object def make_xlsx(data, sheet_name, wb=None): @@ -30,6 +31,10 @@ def make_xlsx(data, sheet_name, wb=None): else: value = item + if isinstance(item, string_types) and next(ILLEGAL_CHARACTERS_RE.finditer(value), None): + # Remove illegal characters from the string + value = re.sub(ILLEGAL_CHARACTERS_RE, '', value) + clean_row.append(value) ws.append(clean_row)