diff --git a/addons/fetchmail/fetchmail.py b/addons/fetchmail/fetchmail.py index 2b652cd8a6b..65e395ae58c 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 @@ -153,6 +154,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 f30407223bf..61b95974b32 100644 --- a/addons/sale/res_config.py +++ b/addons/sale/res_config.py @@ -151,6 +151,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_project_mrp': task_work, diff --git a/openerp/osv/orm.py b/openerp/osv/orm.py index 786df44a5c9..36e1150c521 100644 --- a/openerp/osv/orm.py +++ b/openerp/osv/orm.py @@ -76,7 +76,7 @@ _schema = logging.getLogger(__name__ + '.schema') # List of etree._Element subclasses that we choose to ignore when parsing XML. from openerp.tools import SKIPPED_ELEMENT_TYPES -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*(,|$))+(?