web/views/basecontrollers.py
changeset 10932 cb217b2b3463
parent 10907 9ae707db5265
child 10968 9c6c3e68422e
equal deleted inserted replaced
10931:6168a45f62df 10932:cb217b2b3463
   124     template = 'main-template'
   124     template = 'main-template'
   125 
   125 
   126     def publish(self, rset=None):
   126     def publish(self, rset=None):
   127         """publish a request, returning an encoded string"""
   127         """publish a request, returning an encoded string"""
   128         view, rset = self._select_view_and_rset(rset)
   128         view, rset = self._select_view_and_rset(rset)
   129         self.add_to_breadcrumbs(view)
       
   130         view.set_http_cache_headers()
   129         view.set_http_cache_headers()
   131         if self._cw.is_client_cache_valid():
   130         if self._cw.is_client_cache_valid():
   132             return ''
   131             return ''
   133         template = self.appli.main_template_id(self._cw)
   132         template = self.appli.main_template_id(self._cw)
   134         return self._cw.vreg['views'].main_template(self._cw, template,
   133         return self._cw.vreg['views'].main_template(self._cw, template,
   157                 req.set_message(req._("You have no access to this view or it can not "
   156                 req.set_message(req._("You have no access to this view or it can not "
   158                                       "be used to display the current data."))
   157                                       "be used to display the current data."))
   159             vid = req.form.get('fallbackvid') or vid_from_rset(req, rset, req.vreg.schema)
   158             vid = req.form.get('fallbackvid') or vid_from_rset(req, rset, req.vreg.schema)
   160             view = req.vreg['views'].select(vid, req, rset=rset)
   159             view = req.vreg['views'].select(vid, req, rset=rset)
   161         return view, rset
   160         return view, rset
   162 
       
   163     def add_to_breadcrumbs(self, view):
       
   164         # update breadcrumbs **before** validating cache, unless the view
       
   165         # specifies explicitly it should not be added to breadcrumb or the
       
   166         # view is a binary view
       
   167         if view.add_to_breadcrumbs and not view.binary:
       
   168             self._cw.update_breadcrumbs()
       
   169 
   161 
   170     def execute_linkto(self, eid=None):
   162     def execute_linkto(self, eid=None):
   171         """XXX __linkto parameter may cause security issue
   163         """XXX __linkto parameter may cause security issue
   172 
   164 
   173         defined here since custom application controller inheriting from this
   165         defined here since custom application controller inheriting from this
   305             self.redirect() # Will raise Redirect
   297             self.redirect() # Will raise Redirect
   306 
   298 
   307     def redirect(self, msg=None):
   299     def redirect(self, msg=None):
   308         req = self._cw
   300         req = self._cw
   309         msg = msg or req._("transaction undone")
   301         msg = msg or req._("transaction undone")
   310         self._return_to_lastpage( dict(_cwmsgid= req.set_redirect_message(msg)) )
   302         self._redirect({'_cwmsgid': req.set_redirect_message(msg)})