diff --git a/openerp/addons/base/ir/ir_mail_server.py b/openerp/addons/base/ir/ir_mail_server.py index 1b5f5d5d6a4..4af52bdea41 100644 --- a/openerp/addons/base/ir/ir_mail_server.py +++ b/openerp/addons/base/ir/ir_mail_server.py @@ -411,6 +411,7 @@ class ir_mail_server(osv.osv): email_to = message['To'] email_cc = message['Cc'] email_bcc = message['Bcc'] + smtp_to_list = filter(None, tools.flatten(map(extract_rfc2822_addresses,[email_to, email_cc, email_bcc]))) assert smtp_to_list, "At least one valid recipient address should be specified for outgoing emails (To/Cc/Bcc)" diff --git a/openerp/addons/base/rng/view.rng b/openerp/addons/base/rng/view.rng index 5febbf2948c..0f161a91f51 100644 --- a/openerp/addons/base/rng/view.rng +++ b/openerp/addons/base/rng/view.rng @@ -647,6 +647,15 @@ + + + + + + + + + diff --git a/openerp/modules/loading.py b/openerp/modules/loading.py index 9a5533f5caa..48c5c5adab5 100644 --- a/openerp/modules/loading.py +++ b/openerp/modules/loading.py @@ -59,7 +59,6 @@ def load_module_graph(cr, graph, status=None, perform_checks=True, skip_modules= def load_test(module_name, idref, mode): cr.commit() try: - threading.currentThread().testing = True _load_data(cr, module_name, idref, mode, 'test') return True except Exception: @@ -67,7 +66,6 @@ def load_module_graph(cr, graph, status=None, perform_checks=True, skip_modules= 'module %s: an exception occurred in a test', module_name) return False finally: - threading.currentThread().testing = False if tools.config.options['test_commit']: cr.commit() else: @@ -104,12 +102,18 @@ def load_module_graph(cr, graph, status=None, perform_checks=True, skip_modules= init mode. """ - for filename in _get_files_of_kind(kind): - _logger.info("module %s: loading %s", module_name, filename) - noupdate = False - if kind in ('demo', 'demo_xml') or (filename.endswith('.csv') and kind in ('init', 'init_xml')): - noupdate = True - tools.convert_file(cr, module_name, filename, idref, mode, noupdate, kind, report) + try: + if kind in ('demo', 'test'): + threading.currentThread().testing = True + for filename in _get_files_of_kind(kind): + _logger.info("module %s: loading %s", module_name, filename) + noupdate = False + if kind in ('demo', 'demo_xml') or (filename.endswith('.csv') and kind in ('init', 'init_xml')): + noupdate = True + tools.convert_file(cr, module_name, filename, idref, mode, noupdate, kind, report) + finally: + if kind in ('demo', 'test'): + threading.currentThread().testing = False if status is None: status = {} diff --git a/openerp/osv/orm.py b/openerp/osv/orm.py index c5339ebd62f..4afbe5b6aa8 100644 --- a/openerp/osv/orm.py +++ b/openerp/osv/orm.py @@ -1009,7 +1009,7 @@ class BaseModel(object): continue sm = f.store if sm is True: - sm = {self._name: (lambda self, cr, uid, ids, c={}: ids, None, 10, None)} + sm = {self._name: (lambda self, cr, uid, ids, c={}: ids, None, f.priority, None)} for object, aa in sm.items(): if len(aa) == 4: (fnct, fields2, order, length) = aa @@ -1785,7 +1785,7 @@ class BaseModel(object): children = False views = {} for f in node: - if f.tag in ('form', 'tree', 'graph', 'kanban'): + if f.tag in ('form', 'tree', 'graph', 'kanban', 'calendar'): node.remove(f) ctx = context.copy() ctx['base_model_name'] = self._name @@ -1829,7 +1829,7 @@ class BaseModel(object): in_tree_view = node.tag == 'tree' elif node.tag == 'calendar': - for additional_field in ('date_start', 'date_delay', 'date_stop', 'color'): + for additional_field in ('date_start', 'date_delay', 'date_stop', 'color', 'all_day','attendee'): if node.get(additional_field): fields[node.get(additional_field)] = {} @@ -2023,7 +2023,7 @@ class BaseModel(object): return False view = etree.Element('calendar', string=self._description) - etree.SubElement(view, 'field', self._rec_name_fallback(cr, user, context)) + etree.SubElement(view, 'field', name=self._rec_name_fallback(cr, user, context)) if self._date_name not in self._columns: date_found = False