web/views/autoform.py
changeset 8748 f5027f8d2478
parent 8696 0bb18407c053
child 8900 010a59e12d89
equal deleted inserted replaced
8747:c0d4244e5abc 8748:f5027f8d2478
   125 
   125 
   126 from logilab.mtconverter import xml_escape
   126 from logilab.mtconverter import xml_escape
   127 from logilab.common.decorators import iclassmethod, cached
   127 from logilab.common.decorators import iclassmethod, cached
   128 from logilab.common.deprecation import deprecated
   128 from logilab.common.deprecation import deprecated
   129 
   129 
   130 from cubicweb import typed_eid, neg_role, uilib
   130 from cubicweb import neg_role, uilib
   131 from cubicweb.schema import display_name
   131 from cubicweb.schema import display_name
   132 from cubicweb.view import EntityView
   132 from cubicweb.view import EntityView
   133 from cubicweb.predicates import (
   133 from cubicweb.predicates import (
   134     match_kwargs, match_form_params, non_final_entity,
   134     match_kwargs, match_form_params, non_final_entity,
   135     specified_etype_implements)
   135     specified_etype_implements)
   413     """
   413     """
   414     for rstr in rdescr:
   414     for rstr in rdescr:
   415         subjs, rtype, objs = rstr.split(':')
   415         subjs, rtype, objs = rstr.split(':')
   416         for subj in subjs.split('_'):
   416         for subj in subjs.split('_'):
   417             for obj in objs.split('_'):
   417             for obj in objs.split('_'):
   418                 yield typed_eid(subj), rtype, typed_eid(obj)
   418                 yield int(subj), rtype, int(obj)
   419 
   419 
   420 def delete_relations(req, rdefs):
   420 def delete_relations(req, rdefs):
   421     """delete relations from the repository"""
   421     """delete relations from the repository"""
   422     # FIXME convert to using the syntax subject:relation:eids
   422     # FIXME convert to using the syntax subject:relation:eids
   423     execute = req.execute
   423     execute = req.execute
   458 
   458 
   459 
   459 
   460 def _add_pending(req, eidfrom, rel, eidto, kind):
   460 def _add_pending(req, eidfrom, rel, eidto, kind):
   461     key = 'pending_%s' % kind
   461     key = 'pending_%s' % kind
   462     pendings = req.session.data.setdefault(key, set())
   462     pendings = req.session.data.setdefault(key, set())
   463     pendings.add( (typed_eid(eidfrom), rel, typed_eid(eidto)) )
   463     pendings.add( (int(eidfrom), rel, int(eidto)) )
   464 
   464 
   465 def _remove_pending(req, eidfrom, rel, eidto, kind):
   465 def _remove_pending(req, eidfrom, rel, eidto, kind):
   466     key = 'pending_%s' % kind
   466     key = 'pending_%s' % kind
   467     pendings = req.session.data[key]
   467     pendings = req.session.data[key]
   468     pendings.remove( (typed_eid(eidfrom), rel, typed_eid(eidto)) )
   468     pendings.remove( (int(eidfrom), rel, int(eidto)) )
   469 
   469 
   470 @ajaxfunc(output_type='json')
   470 @ajaxfunc(output_type='json')
   471 def remove_pending_insert(self, (eidfrom, rel, eidto)):
   471 def remove_pending_insert(self, (eidfrom, rel, eidto)):
   472     _remove_pending(self._cw, eidfrom, rel, eidto, 'insert')
   472     _remove_pending(self._cw, eidfrom, rel, eidto, 'insert')
   473 
   473 
   604         entity = form.edited_entity
   604         entity = form.edited_entity
   605         pending_inserts = set(get_pending_inserts(form._cw, form.edited_entity.eid))
   605         pending_inserts = set(get_pending_inserts(form._cw, form.edited_entity.eid))
   606         for pendingid in pending_inserts:
   606         for pendingid in pending_inserts:
   607             eidfrom, rtype, eidto = pendingid.split(':')
   607             eidfrom, rtype, eidto = pendingid.split(':')
   608             pendingid = 'id' + pendingid
   608             pendingid = 'id' + pendingid
   609             if typed_eid(eidfrom) == entity.eid: # subject
   609             if int(eidfrom) == entity.eid: # subject
   610                 label = display_name(form._cw, rtype, 'subject',
   610                 label = display_name(form._cw, rtype, 'subject',
   611                                      entity.__regid__)
   611                                      entity.__regid__)
   612                 reid = eidto
   612                 reid = eidto
   613             else:
   613             else:
   614                 label = display_name(form._cw, rtype, 'object',
   614                 label = display_name(form._cw, rtype, 'object',