[IMP] report_py3o, report_py3o_fusion_server: black, isort

This commit is contained in:
Laurent Mignon (ACSONE)
2019-11-19 14:36:37 +01:00
committed by Elmeri Niemelä
parent 1370625b24
commit 0bf0160d2d
8 changed files with 346 additions and 328 deletions

View File

@@ -2,24 +2,27 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl)
import html
import time
import logging
import time
from base64 import b64decode
from odoo.tools import misc, mail
from odoo.tools import mail, misc
logger = logging.getLogger(__name__)
try:
from genshi.core import Markup
except ImportError:
logger.debug('Cannot import py3o.template')
logger.debug("Cannot import py3o.template")
def format_multiline_value(value):
if value:
return Markup(html.escape(value).replace('\n', '<text:line-break/>').
replace('\t', '<text:s/><text:s/><text:s/><text:s/>'))
return Markup(
html.escape(value)
.replace("\n", "<text:line-break/>")
.replace("\t", "<text:s/><text:s/><text:s/><text:s/>")
)
return ""
@@ -32,38 +35,52 @@ class Py3oParserContext(object):
self._env = env
self.localcontext = {
'user': self._env.user,
'lang': self._env.lang,
"user": self._env.user,
"lang": self._env.lang,
# Odoo default format methods
'o_format_lang': self._format_lang,
"o_format_lang": self._format_lang,
# prefixes with o_ to avoid nameclash with default method provided
# by py3o.template
'o_format_date': self._format_date,
"o_format_date": self._format_date,
# give access to the time lib
'time': time,
"time": time,
# keeps methods from report_sxw to ease migration
'display_address': display_address,
'formatLang': self._old_format_lang,
'format_multiline_value': format_multiline_value,
'html_sanitize': mail.html2plaintext,
'b64decode': b64decode,
"display_address": display_address,
"formatLang": self._old_format_lang,
"format_multiline_value": format_multiline_value,
"html_sanitize": mail.html2plaintext,
"b64decode": b64decode,
}
def _format_lang(self, value, lang_code=False, digits=None, grouping=True,
monetary=False, dp=False, currency_obj=False,
no_break_space=True):
def _format_lang(
self,
value,
lang_code=False,
digits=None,
grouping=True,
monetary=False,
dp=False,
currency_obj=False,
no_break_space=True,
):
env = self._env
if lang_code:
context = dict(env.context, lang=lang_code)
env = env(context=context)
formatted_value = misc.formatLang(
env, value, digits=digits, grouping=grouping,
monetary=monetary, dp=dp, currency_obj=currency_obj)
env,
value,
digits=digits,
grouping=grouping,
monetary=monetary,
dp=dp,
currency_obj=currency_obj,
)
if currency_obj and currency_obj.symbol and no_break_space:
parts = []
if currency_obj.position == 'after':
if currency_obj.position == "after":
parts = formatted_value.rsplit(" ", 1)
elif currency_obj and currency_obj.position == 'before':
elif currency_obj and currency_obj.position == "before":
parts = formatted_value.split(" ", 1)
if parts:
formatted_value = "\N{NO-BREAK SPACE}".join(parts)
@@ -71,11 +88,20 @@ class Py3oParserContext(object):
def _format_date(self, value, lang_code=False, date_format=False):
return misc.format_date(
self._env, value, lang_code=lang_code, date_format=date_format)
self._env, value, lang_code=lang_code, date_format=date_format
)
def _old_format_lang(self, value, digits=None, date=False, date_time=False,
grouping=True, monetary=False, dp=False,
currency_obj=False):
def _old_format_lang(
self,
value,
digits=None,
date=False,
date_time=False,
grouping=True,
monetary=False,
dp=False,
currency_obj=False,
):
"""
:param value: The value to format
:param digits: Number of digits to display by default
@@ -95,8 +121,13 @@ class Py3oParserContext(object):
"""
if not date and not date_time:
return self._format_lang(
value, digits=digits, grouping=grouping,
monetary=monetary, dp=dp, currency_obj=currency_obj,
no_break_space=True)
value,
digits=digits,
grouping=grouping,
monetary=monetary,
dp=dp,
currency_obj=currency_obj,
no_break_space=True,
)
return self._format_date(self._env, value)