diff -r 4a42d700c52d -r 11899d28337f web/views/editcontroller.py --- a/web/views/editcontroller.py Fri Mar 12 10:52:43 2010 +0100 +++ b/web/views/editcontroller.py Fri Mar 12 10:53:15 2010 +0100 @@ -250,6 +250,25 @@ for reid in seteids: self.relations_rql.append((rql, {'x': eid, 'y': reid}, ('x', 'y'))) + def delete_entities(self, eidtypes): + """delete entities from the repository""" + redirect_info = set() + eidtypes = tuple(eidtypes) + for eid, etype in eidtypes: + entity = self._cw.entity_from_eid(eid, etype) + path, params = entity.after_deletion_path() + redirect_info.add( (path, tuple(params.iteritems())) ) + entity.delete() + if len(redirect_info) > 1: + # In the face of ambiguity, refuse the temptation to guess. + self._after_deletion_path = 'view', () + else: + self._after_deletion_path = iter(redirect_info).next() + if len(eidtypes) > 1: + self._cw.set_message(self._cw._('entities deleted')) + else: + self._cw.set_message(self._cw._('entity deleted')) + def _action_apply(self): self._default_publish() self.reset()