Merge pull request #5140 from achillesrasquinha/py3
Safe Encoding Decoding helpers to fix bytes to str.
This commit is contained in:
commit
c977c0105d
3 changed files with 13 additions and 4 deletions
|
|
@ -1470,6 +1470,15 @@ def get_version(doctype, name, limit = None, head = False, raise_err = True):
|
|||
def ping():
|
||||
return "pong"
|
||||
|
||||
|
||||
def safe_encode(param, encoding = 'utf-8'):
|
||||
try:
|
||||
param = param.encode(encoding)
|
||||
except Exception:
|
||||
pass
|
||||
return param
|
||||
|
||||
|
||||
def safe_decode(param, encoding = 'utf-8'):
|
||||
try:
|
||||
param = param.decode(encoding)
|
||||
|
|
@ -1479,4 +1488,4 @@ def safe_decode(param, encoding = 'utf-8'):
|
|||
|
||||
def parse_json(val):
|
||||
from frappe.utils import parse_json
|
||||
return parse_json(val)
|
||||
return parse_json(val)
|
||||
|
|
@ -6,7 +6,7 @@ from six.moves import range
|
|||
import frappe
|
||||
from six.moves import html_parser as HTMLParser
|
||||
import smtplib, quopri, json
|
||||
from frappe import msgprint, throw, _
|
||||
from frappe import msgprint, throw, _, safe_decode
|
||||
from frappe.email.smtp import SMTPServer, get_outgoing_email_account
|
||||
from frappe.email.email_body import get_email, get_formatted_html, add_attachment
|
||||
from frappe.utils.verified_command import get_signed_params, verify_request
|
||||
|
|
@ -510,7 +510,7 @@ def prepare_message(email, recipient, recipients_list):
|
|||
message = message.replace("<!--recipient-->", recipient)
|
||||
|
||||
message = (message and message.encode('utf8')) or ''
|
||||
message = frappe.safe_decode(message)
|
||||
message = safe_decode(message)
|
||||
if not email.attachments:
|
||||
return message
|
||||
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ def update_user_settings(doctype, user_settings, for_update=False):
|
|||
def sync_user_settings():
|
||||
'''Sync from cache to database (called asynchronously via the browser)'''
|
||||
for key, data in iteritems(frappe.cache().hgetall('_user_settings')):
|
||||
doctype, user = key.split('::')
|
||||
doctype, user = frappe.safe_encode(key).split('::') # WTF?
|
||||
frappe.db.sql('''insert into __UserSettings (user, doctype, data) values (%s, %s, %s)
|
||||
on duplicate key update data=%s''', (user, doctype, data, data))
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue