From 611a74445e6d53165573b1c90b45b56efb4b2c76 Mon Sep 17 00:00:00 2001 From: Achilles Rasquinha Date: Tue, 20 Mar 2018 01:07:17 +0530 Subject: [PATCH] fixed bytesio object generation for python 2 and 3 for excel, wtf email --- frappe/public/css/email.css | 170 ------------------------------------ frappe/utils/xlsxutils.py | 4 +- 2 files changed, 2 insertions(+), 172 deletions(-) diff --git a/frappe/public/css/email.css b/frappe/public/css/email.css index e2f9881684..6dc32f3643 100644 --- a/frappe/public/css/email.css +++ b/frappe/public/css/email.css @@ -168,173 +168,3 @@ hr { margin-bottom: 20px; } /* csslint ignore:end */ -/* csslint ignore:start */ -body { - line-height: 1.5; - color: #36414C; -} -p { - margin: 1em 0 !important; -} -hr { - border-top: 1px solid #d1d8dd; -} -.body-table { - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; -} -.body-table td { - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; -} -.email-header, -.email-body, -.email-footer { - width: 100% !important; - min-width: 100% !important; -} -.email-body { - font-size: 14px; -} -.email-footer { - border-top: 1px solid #d1d8dd; - font-size: 12px; -} -.email-header { - border: 1px solid #d1d8dd; - border-radius: 4px 4px 0 0; -} -.email-header .brand-image { - width: 24px; - height: 24px; - display: block; -} -.email-header-title { - font-weight: bold; -} -.body-table.has-header .email-body { - border: 1px solid #d1d8dd; - border-radius: 0 0 4px 4px; - border-top: none; -} -.body-table.has-header .email-footer { - border-top: none; -} -.email-footer-container { - margin-top: 30px; -} -.email-footer-container > div:not(:last-child) { - margin-bottom: 5px; -} -.email-unsubscribe a { - color: #8D99A6; - text-decoration: underline; -} -.btn { - text-decoration: none; - padding: 7px 10px; - font-size: 12px; - border: 1px solid; - border-radius: 3px; -} -.btn.btn-default { - color: #fff; - background-color: #f0f4f7; - border-color: transparent; -} -.btn.btn-primary { - color: #fff; - background-color: #5E64FF; - border-color: #444bff; -} -.table { - width: 100%; - border-collapse: collapse; -} -.table td, -.table th { - padding: 8px; - line-height: 1.42857143; - vertical-align: top; - border-top: 1px solid #d1d8dd; - text-align: left; -} -.table th { - font-weight: bold; -} -.table > thead > tr > th { - vertical-align: middle; - border-bottom: 2px solid #d1d8dd; -} -.table > thead:first-child > tr:first-child > th { - border-top: none; -} -.table.table-bordered { - border: 1px solid #d1d8dd; -} -.table.table-bordered td, -.table.table-bordered th { - border: 1px solid #d1d8dd; -} -.more-info { - font-size: 80% !important; - color: #8D99A6 !important; - border-top: 1px solid #EBEFF2; - padding-top: 10px; -} -.text-right { - text-align: right !important; -} -.text-center { - text-align: center !important; -} -.text-muted { - color: #8D99A6 !important; -} -.text-extra-muted { - color: #d1d8dd !important; -} -.text-regular { - font-size: 14px; -} -.text-medium { - font-size: 12px; -} -.text-small { - font-size: 10px; -} -.text-bold { - font-weight: bold; -} -.indicator { - width: 8px; - height: 8px; - border-radius: 8px; - background-color: #b8c2cc; - display: inline-block; - margin-right: 5px; -} -.indicator.indicator-blue { - background-color: #5e64ff; -} -.indicator.indicator-green { - background-color: #98d85b; -} -.indicator.indicator-orange { - background-color: #ffa00a; -} -.indicator.indicator-red { - background-color: #ff5858; -} -.indicator.indicator-yellow { - background-color: #FEEF72; -} -.screenshot { - box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.1); - border: 1px solid #d1d8dd; - margin: 8px 0; - max-width: 100%; -} -/* auto email report */ -.report-title { - margin-bottom: 20px; -} -/* csslint ignore:end */ diff --git a/frappe/utils/xlsxutils.py b/frappe/utils/xlsxutils.py index 3b17378126..97581c0069 100644 --- a/frappe/utils/xlsxutils.py +++ b/frappe/utils/xlsxutils.py @@ -9,7 +9,7 @@ import openpyxl import re from openpyxl.styles import Font from openpyxl import load_workbook -from six import StringIO, string_types +from six import StringIO, BytesIO, string_types ILLEGAL_CHARACTERS_RE = re.compile(r'[\000-\010]|[\013-\014]|[\016-\037]') # return xlsx file object @@ -39,7 +39,7 @@ def make_xlsx(data, sheet_name, wb=None): ws.append(clean_row) - xlsx_file = StringIO() + xlsx_file = BytesIO() wb.save(xlsx_file) return xlsx_file