equal
deleted
inserted
replaced
18 """Set of base controllers, which are directly plugged into the application |
18 """Set of base controllers, which are directly plugged into the application |
19 object to handle publication. |
19 object to handle publication. |
20 """ |
20 """ |
21 |
21 |
22 __docformat__ = "restructuredtext en" |
22 __docformat__ = "restructuredtext en" |
|
23 _ = unicode |
23 |
24 |
24 from logilab.common.date import strptime |
25 from logilab.common.date import strptime |
25 |
26 |
26 from cubicweb import (NoSelectableObject, ObjectNotFound, ValidationError, |
27 from cubicweb import (NoSelectableObject, ObjectNotFound, ValidationError, |
27 AuthenticationError, typed_eid) |
28 AuthenticationError, typed_eid) |
117 view, rset = self._select_view_and_rset(rset) |
118 view, rset = self._select_view_and_rset(rset) |
118 self.add_to_breadcrumbs(view) |
119 self.add_to_breadcrumbs(view) |
119 self.validate_cache(view) |
120 self.validate_cache(view) |
120 template = self.appli.main_template_id(self._cw) |
121 template = self.appli.main_template_id(self._cw) |
121 return self._cw.vreg['views'].main_template(self._cw, template, |
122 return self._cw.vreg['views'].main_template(self._cw, template, |
122 rset=rset, view=view) |
123 rset=rset, view=view) |
123 |
124 |
124 def _select_view_and_rset(self, rset): |
125 def _select_view_and_rset(self, rset): |
125 req = self._cw |
126 req = self._cw |
126 if rset is None and not hasattr(req, '_rql_processed'): |
127 if rset is None and not hasattr(req, '_rql_processed'): |
127 req._rql_processed = True |
128 req._rql_processed = True |
582 __regid__ = 'reportbug' |
583 __regid__ = 'reportbug' |
583 __select__ = match_form_params('description') |
584 __select__ = match_form_params('description') |
584 |
585 |
585 def publish(self, rset=None): |
586 def publish(self, rset=None): |
586 body = self._cw.form['description'] |
587 body = self._cw.form['description'] |
587 self.sendmail(self._cw.config['submit-mail'], _('%s error report') % self._cw.config.appid, body) |
588 self.sendmail(self._cw.config['submit-mail'], |
|
589 self._cw._('%s error report') % self._cw.config.appid, |
|
590 body) |
588 url = self._cw.build_url(__message=self._cw._('bug report sent')) |
591 url = self._cw.build_url(__message=self._cw._('bug report sent')) |
589 raise Redirect(url) |
592 raise Redirect(url) |
590 |
593 |
591 |
594 |
592 class UndoController(Controller): |
595 class UndoController(Controller): |
594 __select__ = authenticated_user() & match_form_params('txuuid') |
597 __select__ = authenticated_user() & match_form_params('txuuid') |
595 |
598 |
596 def publish(self, rset=None): |
599 def publish(self, rset=None): |
597 txuuid = self._cw.form['txuuid'] |
600 txuuid = self._cw.form['txuuid'] |
598 errors = self._cw.cnx.undo_transaction(txuuid) |
601 errors = self._cw.cnx.undo_transaction(txuuid) |
599 if errors: |
602 if not errors: |
600 self.w(self._cw._('some errors occurred:')) |
|
601 self.wview('pyvalist', pyvalue=errors) |
|
602 else: |
|
603 self.redirect() |
603 self.redirect() |
|
604 return self._cw._('some errors occurred:') + self.view('pyvalist', |
|
605 pyvalue=errors) |
604 |
606 |
605 def redirect(self): |
607 def redirect(self): |
606 req = self._cw |
608 req = self._cw |
607 breadcrumbs = req.session.data.get('breadcrumbs', None) |
609 breadcrumbs = req.session.data.get('breadcrumbs', None) |
608 if breadcrumbs is not None and len(breadcrumbs) > 1: |
610 if breadcrumbs is not None and len(breadcrumbs) > 1: |