[IMP] ir.model.data,res.log: allow marking res.log entries as read upon creation...
authorOlivier Dony <odo@openerp.com>
Tue, 23 Nov 2010 16:05:06 +0000 (17:05 +0100)
committerOlivier Dony <odo@openerp.com>
Tue, 23 Nov 2010 16:05:06 +0000 (17:05 +0100)
bzr revid: odo@openerp.com-20101123160506-qsxa7gm5j8scphdz

bin/addons/base/ir/ir_model.py
bin/addons/base/res/res_log.py
bin/osv/orm.py

index 86bb6cc..ff4fc9f 100644 (file)
@@ -429,6 +429,10 @@ class ir_model_data(osv.osv):
         model_obj = self.pool.get(model)
         if not context:
             context = {}
+
+        # records created during module install should result in res.log entries that are already read!
+        context = dict(context, res_log_read=True)
+
         if xml_id and ('.' in xml_id):
             assert len(xml_id.split('.'))==2, _("'%s' contains too many dots. XML ids should not contain dots ! These are used to refer to other modules data, as in module.reference_id") % (xml_id)
             module, xml_id = xml_id.split('.')
index 8ac53ac..0862a68 100644 (file)
@@ -50,6 +50,14 @@ class res_log(osv.osv):
             cr.execute('CREATE INDEX %s ON res_log (user_id, read)' %
                        self._index_name)
 
+    def create(self, cr, uid, vals, context=None):
+        create_context = context and dict(context) or {}
+        if 'res_log_read' in create_context:
+            vals['read'] = create_context.pop('res_log_read')
+        if create_context and not vals.get('context'):
+            vals['context'] = create_context
+        return super(res_log, self).create(cr, uid, vals, context=context)
+
     # TODO: do not return secondary log if same object than in the model (but unlink it)
     def get(self, cr, uid, context=None):
         unread_log_ids = self.search(cr, uid,
index 496d569..fb9381e 100644 (file)
@@ -394,7 +394,6 @@ class orm_template(object):
                     'res_model': self._name,
                     'secondary': secondary,
                     'res_id': id,
-                    'context': context,
                 },
                 context=context
         )