[IMP] website: set viewid in frontend & save template for dispatch

This commit is related to enterprise commit adding crm_track option to routes.

Before this commit:
We could not get template's name after dispatch() had been called. Indeed,
it will remove the template name from the response (response.flatten()) to
make it not considered as 'qweb' anymore (is_qweb()).

In some case (e.g. website_crm_score), we still need the template's name later.
(Eg: to retrieve the route's view being rendered and check if trackable or not)

Add view-id in template, when main_object is not an ir_ui_view, it avoid to
make extra rpc to get the view_id.

this commit closes #20313
This commit is contained in:
rde
2017-10-23 14:31:07 +02:00
committed by Jeremy Kersten
parent 7ec5f093de
commit e19c6a5ead
3 changed files with 3 additions and 0 deletions
@@ -99,6 +99,7 @@
'data-translatable': '1' if translatable else None,
'data-edit_translations': '1' if edit_translations else None,
'data-view-xmlid': xmlid if editable or translatable else None,
'data-viewid': viewid if editable or translatable else None,
'data-main-object': repr(main_object) if editable or translatable else None,
'data-oe-company-name': res_company.name
}"/>
+1
View File
@@ -1078,6 +1078,7 @@ actual arch.
datetime=datetime,
relativedelta=relativedelta,
xmlid=self.key,
viewid=self.id,
)
return qcontext
+1
View File
@@ -1219,6 +1219,7 @@ class Response(werkzeug.wrappers.Response):
def set_default(self, template=None, qcontext=None, uid=None):
self.template = template
self.qcontext = qcontext or dict()
self.qcontext['response_template'] = self.template
self.uid = uid
# Support for Cross-Origin Resource Sharing
if request.endpoint and 'cors' in request.endpoint.routing: