diff --git a/addons/fetchmail/fetchmail.py b/addons/fetchmail/fetchmail.py index ba20cda873a..d2e12604f02 100644 --- a/addons/fetchmail/fetchmail.py +++ b/addons/fetchmail/fetchmail.py @@ -41,6 +41,7 @@ from openerp.tools.translate import _ _logger = logging.getLogger(__name__) MAX_POP_MESSAGES = 50 +MAIL_TIMEOUT = 60 # Workaround for Python 2.7.8 bug https://bugs.python.org/issue23906 poplib._MAXLINE = 65536 @@ -154,6 +155,8 @@ openerp_mailgate: "|/path/to/openerp-mailgate.py --host=localhost -u %(uid)d -p #connection.user("recent:"+server.user) connection.user(server.user) connection.pass_(server.password) + # Add timeout on socket + connection.sock.settimeout(MAIL_TIMEOUT) return connection def button_confirm_login(self, cr, uid, ids, context=None): diff --git a/addons/sale/res_config.py b/addons/sale/res_config.py index e084d6494b2..4686f276b31 100644 --- a/addons/sale/res_config.py +++ b/addons/sale/res_config.py @@ -121,6 +121,8 @@ Example: 10% for retailers, promotion of 5 EUR on this product, etc."""), return {} def onchange_task_work(self, cr, uid, ids, task_work, context=None): + if not task_work: + return {'value': {}} return {'value': { 'module_project_timesheet': task_work, 'module_sale_service': task_work, diff --git a/openerp/models.py b/openerp/models.py index f6be7cc06db..4161f6a0ebc 100644 --- a/openerp/models.py +++ b/openerp/models.py @@ -75,7 +75,7 @@ from .tools.translate import _ _logger = logging.getLogger(__name__) _schema = logging.getLogger(__name__ + '.schema') -regex_order = re.compile('^( *([a-z0-9:_]+|"[a-z0-9:_]+")( *desc| *asc)?( *, *|))+$', re.I) +regex_order = re.compile('^(\s*([a-z0-9:_]+|"[a-z0-9:_]+")(\s+(desc|asc))?\s*(,|$))+(?