web/views/autoform.py
changeset 11339 67373614e125
parent 11145 d3edefdeddb4
equal deleted inserted replaced
11338:dde85a5d47fc 11339:67373614e125
   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')