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', |