diff --git a/addons/anonymization/anonymization.py b/addons/anonymization/anonymization.py index c4ef22f8a80..e38a2c4f8c4 100644 --- a/addons/anonymization/anonymization.py +++ b/addons/anonymization/anonymization.py @@ -4,14 +4,11 @@ from lxml import etree import os import base64 -try: - import cPickle as pickle -except ImportError: - import pickle import random import datetime from openerp.release import version_info from openerp.osv import fields, osv +from openerp.tools import pickle from openerp.tools.translate import _ from openerp.tools.safe_eval import safe_eval as eval @@ -447,7 +444,7 @@ class ir_model_fields_anonymize_wizard(osv.osv_memory): # save pickle: fn = open(abs_filepath, 'w') - pickle.dump(data, fn, pickle.HIGHEST_PROTOCOL) + pickle.dump(data, fn, -1) # update the anonymization fields: values = { diff --git a/addons/auth_oauth/res_users.py b/addons/auth_oauth/res_users.py index f277a6c5fc0..86328a56da2 100644 --- a/addons/auth_oauth/res_users.py +++ b/addons/auth_oauth/res_users.py @@ -10,6 +10,9 @@ from openerp.addons.auth_signup.models.res_partner import SignupError from openerp.osv import osv, fields from openerp import SUPERUSER_ID +from openerp.addons.base.res import res_users +res_users.USER_PRIVATE_FIELDS.append('oauth_access_token') + _logger = logging.getLogger(__name__) class res_users(osv.Model): diff --git a/addons/l10n_fr_certification/models/account.py b/addons/l10n_fr_certification/models/account.py index 8d1a26d0ad6..ecb0f5aff8b 100644 --- a/addons/l10n_fr_certification/models/account.py +++ b/addons/l10n_fr_certification/models/account.py @@ -16,8 +16,8 @@ LINE_FIELDS = ['debit', 'credit', 'account_id', 'move_id', 'partner_id'] class AccountMove(models.Model): _inherit = "account.move" - l10n_fr_secure_sequence_number = fields.Integer(readonly=True) - l10n_fr_hash = fields.Char(readonly=True) + l10n_fr_secure_sequence_number = fields.Integer(readonly=True, copy=False) + l10n_fr_hash = fields.Char(readonly=True, copy=False) l10n_fr_string_to_hash = fields.Char(compute='_compute_string_to_hash', readonly=True, store=False) def _get_new_hash(self, secure_seq_number): diff --git a/addons/point_of_sale/tools/posbox/overwrite_after_init/etc/xdg/openbox/autostart b/addons/point_of_sale/tools/posbox/overwrite_after_init/etc/xdg/openbox/autostart index e2b61e2f591..15908b4c5aa 100755 --- a/addons/point_of_sale/tools/posbox/overwrite_after_init/etc/xdg/openbox/autostart +++ b/addons/point_of_sale/tools/posbox/overwrite_after_init/etc/xdg/openbox/autostart @@ -3,4 +3,11 @@ xset s off xset -dpms export HOME=/tmp -/usr/bin/firefox http://localhost:8069/point_of_sale/display & + +DISPLAY_URL='http://localhost:8069/point_of_sale/display' + +# wait until odoo is ready, otherwise you will have to plug a +# keyboard into the posbox just to refresh firefox +until wget -q "${DISPLAY_URL}" -O /dev/null ; do sleep 1 ; done + +/usr/bin/firefox "${DISPLAY_URL}" & diff --git a/addons/point_of_sale/views/pos_order_view.xml b/addons/point_of_sale/views/pos_order_view.xml index 560b31b3100..3a64d07ee4e 100644 --- a/addons/point_of_sale/views/pos_order_view.xml +++ b/addons/point_of_sale/views/pos_order_view.xml @@ -29,7 +29,7 @@ - + @@ -42,7 +42,7 @@ - + diff --git a/openerp/http.py b/openerp/http.py index d0ebc461a4d..d9fba859b6d 100644 --- a/openerp/http.py +++ b/openerp/http.py @@ -160,6 +160,8 @@ def redirect_with_hash(url, code=303): # See extensive test page at http://greenbytes.de/tech/tc/httpredirects/ if request.httprequest.user_agent.browser in ('firefox',): return werkzeug.utils.redirect(url, code) + if urlparse.urlparse(url, scheme='http').scheme not in ('http', 'https'): + url = 'http://' + url url = url.replace("'", "%27").replace("<", "%3C") return "" % url diff --git a/openerp/sql_db.py b/openerp/sql_db.py index bd53e4ea693..db6f37adbb7 100644 --- a/openerp/sql_db.py +++ b/openerp/sql_db.py @@ -47,6 +47,19 @@ psycopg2.extensions.register_type(psycopg2.extensions.new_type((700, 701, 1700,) import tools + +from tools import parse_version as pv +if pv(psycopg2.__version__) < pv('2.7'): + from psycopg2._psycopg import QuotedString + def adapt_string(adapted): + """Python implementation of psycopg/psycopg2#459 from v2.7""" + if '\x00' in adapted: + raise ValueError("A string literal cannot contain NUL (0x00) characters.") + return QuotedString(adapted) + + psycopg2.extensions.register_adapter(str, adapt_string) + psycopg2.extensions.register_adapter(unicode, adapt_string) + from tools.func import frame_codeinfo from datetime import timedelta import threading