[IMP]:previous fix

bzr revid: nch@tinyerp.com-20111109102729-a6c1ru7byniz9ggu
This commit is contained in:
Naresh (OpenERP) 2011-11-09 15:57:29 +05:30
parent 87b823056f
commit c452e5ae0d
1 changed files with 9 additions and 12 deletions

View File

@ -206,21 +206,16 @@ class audittrail_objects_proxy(object_proxy):
model_pool = pool.get('ir.model')
field_pool = pool.get('ir.model.fields')
log_line_pool = pool.get('audittrail.log.line')
line_id = False
for line in lines:
field_obj = obj_pool._all_columns.get(line['name'])
assert field_obj, _("'%s' field does not exist in '%s' model" %(line['name'], model.model))
field_obj = field_obj.column
old_value = line.get('old_value', '')
new_value = line.get('new_value', '')
old_value_text = line.get('old_value_text', '')
new_value_text = line.get('new_value_text', '')
search_models = [model.id]
if obj_pool._inherits:
search_models += model_pool.search(cr, uid, [('model', 'in', obj_pool._inherits.keys())])
field_id = field_pool.search(cr, uid, [('name', '=', line['name']), ('model_id', 'in', search_models)])
if old_value_text == new_value_text:
continue
if field_obj._type == 'many2one':
old_value = old_value and old_value[0] or old_value
new_value = new_value and new_value[0] or new_value
@ -229,13 +224,11 @@ class audittrail_objects_proxy(object_proxy):
"field_id": field_id and field_id[0] or False,
"old_value": old_value,
"new_value": new_value,
"old_value_text": old_value_text,
"new_value_text": new_value_text,
"old_value_text": line.get('old_value_text', ''),
"new_value_text": line.get('new_value_text', ''),
"field_description": field_obj.string
}
line_id = log_line_pool.create(cr, uid, vals)
if not line_id:
pool.get('audittrail.log').unlink(cr, uid, log_id)
return True
def start_log_process(self, cr, user_id, model, method, resource_data, pool, resource_pool):
@ -358,7 +351,8 @@ class audittrail_objects_proxy(object_proxy):
for resource in resource_data:
resource_id = resource['id']
vals.update({'res_id': resource_id})
log_id = log_pool.create(cr, uid, vals)
if resource_id not in dict_to_use:
vals.update({'method': 'create'})
lines = []
for field in resource.keys():
if field in ('__last_update', 'id'):continue
@ -378,8 +372,11 @@ class audittrail_objects_proxy(object_proxy):
'new_value_text': ret_val and ret_val or resource[field],
'old_value_text': resource_id in dict_to_use and dict_to_use[resource_id]['text'].get(field)
}
lines.append(line)
self.create_log_line(cr, uid, log_id, model, lines)
if line.get('new_value_text') != line.get('old_value_text'):
lines.append(line)
if lines:
log_id = log_pool.create(cr, uid, vals)
self.create_log_line(cr, uid, log_id, model, lines)
return True
inline_process_new_data(res_ids, model, old_values)
return res