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) |