482 self._cw.cancel_edition(errorurl) |
482 self._cw.cancel_edition(errorurl) |
483 |
483 |
484 |
484 |
485 def _add_pending(req, eidfrom, rel, eidto, kind): |
485 def _add_pending(req, eidfrom, rel, eidto, kind): |
486 key = 'pending_%s' % kind |
486 key = 'pending_%s' % kind |
487 pendings = req.session.data.setdefault(key, set()) |
487 pendings = req.session.data.get(key, []) |
488 pendings.add( (int(eidfrom), rel, int(eidto)) ) |
488 value = (int(eidfrom), rel, int(eidto)) |
|
489 if value not in pendings: |
|
490 pendings.append(value) |
|
491 req.session.data[key] = pendings |
489 |
492 |
490 def _remove_pending(req, eidfrom, rel, eidto, kind): |
493 def _remove_pending(req, eidfrom, rel, eidto, kind): |
491 key = 'pending_%s' % kind |
494 key = 'pending_%s' % kind |
492 pendings = req.session.data[key] |
495 pendings = req.session.data[key] |
493 pendings.remove( (int(eidfrom), rel, int(eidto)) ) |
496 value = (int(eidfrom), rel, int(eidto)) |
|
497 if value in pendings: |
|
498 pendings.remove(value) |
|
499 req.session.data[key] = pendings |
494 |
500 |
495 @ajaxfunc(output_type='json') |
501 @ajaxfunc(output_type='json') |
496 def remove_pending_insert(self, args): |
502 def remove_pending_insert(self, args): |
497 eidfrom, rel, eidto = args |
503 eidfrom, rel, eidto = args |
498 _remove_pending(self._cw, eidfrom, rel, eidto, 'insert') |
504 _remove_pending(self._cw, eidfrom, rel, eidto, 'insert') |