Browse Source

[FIX] Request id no longer exists after concurrency rollback

pull/701/head
Stefan Rijnhart 8 years ago
parent
commit
4504656f3f
  1. 10
      auditlog/models/http_request.py

10
auditlog/models/http_request.py

@ -2,6 +2,7 @@
# © 2015 ABF OSIELL <http://osiell.com> # © 2015 ABF OSIELL <http://osiell.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from psycopg2.extensions import AsIs
from openerp import models, fields, api from openerp import models, fields, api
from openerp.http import request from openerp.http import request
@ -47,7 +48,14 @@ class AuditlogHTTPRequest(models.Model):
httprequest = request.httprequest httprequest = request.httprequest
if httprequest: if httprequest:
if hasattr(httprequest, 'auditlog_http_request_id'): if hasattr(httprequest, 'auditlog_http_request_id'):
return httprequest.auditlog_http_request_id
# Verify existence. Could have been rolled back after a
# concurrency error
self.env.cr.execute(
"SELECT id FROM %s WHERE id = %s", (
AsIs(self._table),
httprequest.auditlog_http_request_id))
if self.env.cr.fetchone():
return httprequest.auditlog_http_request_id
vals = { vals = {
'name': httprequest.path, 'name': httprequest.path,
'root_url': httprequest.url_root, 'root_url': httprequest.url_root,

Loading…
Cancel
Save