[IMP] ir.model.data,res.log: allow marking res.log entries as read upon creation via context + do it during module install to avoid useless log spam

bzr revid: odo@openerp.com-20101123160506-qsxa7gm5j8scphdz
This commit is contained in:
Olivier Dony 2010-11-23 17:05:06 +01:00
parent b6cf4dfb75
commit 6ff627d275
3 changed files with 12 additions and 1 deletions

View 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('.')

View 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,

View File

@ -394,7 +394,6 @@ class orm_template(object):
'res_model': self._name,
'secondary': secondary,
'res_id': id,
'context': context,
},
context=context
)