diff --git a/xmlrpc/README.txt b/xmlrpc/README.txt index 0318600..2d88572 100755 --- a/xmlrpc/README.txt +++ b/xmlrpc/README.txt @@ -181,7 +181,13 @@ Updating the concept map Changing the attributes of a concept ------------------------------------ -Not implemented yet. + >>> xrf.editConcept(john['id'], 'firstName', u'John') + 'OK' + >>> john = xrf.getObjectById(john['id']) + >>> john['firstName'] + u'John' + >>> john['lastName'] + u'' Fin de partie diff --git a/xmlrpc/common.py b/xmlrpc/common.py index 76ce7c5..f04bf86 100644 --- a/xmlrpc/common.py +++ b/xmlrpc/common.py @@ -129,6 +129,15 @@ class LoopsMethods(MethodPublisher): notify(ObjectModifiedEvent(c)) return objectAsDict(c) + def editConcept(self, objId, attr, value): + obj = getObjectForUid(objId) + ti = IType(obj).typeInterface + if ti is not None: + obj = ti(obj) + setattr(obj, attr, toUnicode(value)) + notify(ObjectModifiedEvent(obj)) + return 'OK' + def objectAsDict(obj): objType = IType(obj) diff --git a/xmlrpc/configure.zcml b/xmlrpc/configure.zcml index ccf615d..3c2f12f 100644 --- a/xmlrpc/configure.zcml +++ b/xmlrpc/configure.zcml @@ -29,8 +29,8 @@ methods="getStartObject getObjectById getObjectByName getDefaultPredicate getTypePredicate getTypeConcept getConceptTypes getPredicates - getChildren getParents - assignChild deassignChild createConcept" + getChildren getParents getResources + assignChild deassignChild createConcept editConcept" permission="loops.xmlrpc.ManageConcepts" />