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