web/views/basecontrollers.py
changeset 3659 993997b4b41d
parent 3629 559cad62c786
child 3777 3ef8cdb5fb1c
equal deleted inserted replaced
3658:d8f2ec7e91fa 3659:993997b4b41d
   114             except Redirect: # propagate redirect that might occur in method()
   114             except Redirect: # propagate redirect that might occur in method()
   115                 raise
   115                 raise
   116             except Exception, ex:
   116             except Exception, ex:
   117                 self.exception('while handling __method')
   117                 self.exception('while handling __method')
   118                 req.set_message(req._("error while handling __method: %s") % req._(ex))
   118                 req.set_message(req._("error while handling __method: %s") % req._(ex))
   119         vid = req.form.get('vid') or vid_from_rset(req, rset, self._cw.schema)
   119         vid = req.form.get('vid') or vid_from_rset(req, rset, self._cw.vreg.schema)
   120         try:
   120         try:
   121             view = self._cw.vreg['views'].select(vid, req, rset=rset)
   121             view = self._cw.vreg['views'].select(vid, req, rset=rset)
   122         except ObjectNotFound:
   122         except ObjectNotFound:
   123             self.warning("the view %s could not be found", vid)
   123             self.warning("the view %s could not be found", vid)
   124             req.set_message(req._("The view %s could not be found") % vid)
   124             req.set_message(req._("The view %s could not be found") % vid)
   125             vid = vid_from_rset(req, rset, self._cw.schema)
   125             vid = vid_from_rset(req, rset, self._cw.vreg.schema)
   126             view = self._cw.vreg['views'].select(vid, req, rset=rset)
   126             view = self._cw.vreg['views'].select(vid, req, rset=rset)
   127         except NoSelectableObject:
   127         except NoSelectableObject:
   128             if rset:
   128             if rset:
   129                 req.set_message(req._("The view %s can not be applied to this query") % vid)
   129                 req.set_message(req._("The view %s can not be applied to this query") % vid)
   130             else:
   130             else:
   131                 req.set_message(req._("You have no access to this view or it can not "
   131                 req.set_message(req._("You have no access to this view or it can not "
   132                                       "be used to display the current data."))
   132                                       "be used to display the current data."))
   133             self.warning("the view %s can not be applied to this query", vid)
   133             self.warning("the view %s can not be applied to this query", vid)
   134             vid = vid_from_rset(req, rset, self._cw.schema)
   134             vid = vid_from_rset(req, rset, self._cw.vreg.schema)
   135             view = self._cw.vreg['views'].select(vid, req, rset=rset)
   135             view = self._cw.vreg['views'].select(vid, req, rset=rset)
   136         return view, rset
   136         return view, rset
   137 
   137 
   138     def add_to_breadcrumbs(self, view):
   138     def add_to_breadcrumbs(self, view):
   139         # update breadcrumps **before** validating cache, unless the view
   139         # update breadcrumps **before** validating cache, unless the view
   343         rql = req.form.get('rql')
   343         rql = req.form.get('rql')
   344         if rql:
   344         if rql:
   345             rset = self._exec(rql)
   345             rset = self._exec(rql)
   346         else:
   346         else:
   347             rset = None
   347             rset = None
   348         vid = req.form.get('vid') or vid_from_rset(req, rset, self._cw.schema)
   348         vid = req.form.get('vid') or vid_from_rset(req, rset, self._cw.vreg.schema)
   349         try:
   349         try:
   350             view = self._cw.vreg['views'].select(vid, req, rset=rset)
   350             view = self._cw.vreg['views'].select(vid, req, rset=rset)
   351         except NoSelectableObject:
   351         except NoSelectableObject:
   352             vid = req.form.get('fallbackvid', 'noresult')
   352             vid = req.form.get('fallbackvid', 'noresult')
   353             view = self._cw.vreg['views'].select(vid, req, rset=rset)
   353             view = self._cw.vreg['views'].select(vid, req, rset=rset)