From c54b0e283c4b0264c3e882419fb1e678235229c7 Mon Sep 17 00:00:00 2001 From: helmutm Date: Mon, 20 Jul 2009 13:32:20 +0000 Subject: [PATCH] make sure order and relevance are stored on import of child and resourceRelation statements git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@3464 fd906abe-77d9-0310-91a1-e0d9ade77398 --- external/base.py | 4 ++-- external/element.py | 8 ++++++-- setup.py | 8 ++++---- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/external/base.py b/external/base.py index 302638f..1541562 100644 --- a/external/base.py +++ b/external/base.py @@ -142,7 +142,7 @@ class Extractor(Base): for r in c.getChildRelations(): if r.predicate != typePredicate: args = [getName(r.first), getName(r.second), getName(r.predicate)] - if r.order != 0: + if r.order != 0 or r.relevance != 1.0: args.append(r.order) if r.relevance != 1.0: args.append(r.relevance) @@ -155,7 +155,7 @@ class Extractor(Base): for r in c.getResourceRelations(): if r.predicate != typePredicate: args = [getName(r.first), getName(r.second), getName(r.predicate)] - if r.order != 0: + if r.order != 0 or r.relevance != 1.0: args.append(r.order) if r.relevance != 1.0: args.append(r.relevance) diff --git a/external/element.py b/external/element.py index c5877d3..3856b7d 100644 --- a/external/element.py +++ b/external/element.py @@ -136,7 +136,9 @@ class ChildElement(Element): self[self.posArgs[idx]] = arg def execute(self, loader): - loader.assignChild(self['first'], self['second'], self['predicate']) + loader.assignChild(self['first'], self['second'], self['predicate'], + order = self.get('order') or 0, + relevance = self.get('relevance') or 1.0) class ResourceElement(Element): @@ -181,7 +183,9 @@ class ResourceRelationElement(ChildElement): elementType = 'resourceRelation' def execute(self, loader): - loader.assignResource(self['first'], self['second'], self['predicate']) + loader.assignResource(self['first'], self['second'], self['predicate'], + order = self.get('order') or 0, + relevance = self.get('relevance') or 1.0) class NodeElement(Element): diff --git a/setup.py b/setup.py index fd043e9..cab5bf7 100644 --- a/setup.py +++ b/setup.py @@ -152,7 +152,7 @@ class SetupManager(object): self.log("Setting Attribute '%s' of '%s' to '%s'" % (attr, getName(concept), repr(value))) - def assignChild(self, conceptName, childName, predicate=None): + def assignChild(self, conceptName, childName, predicate=None, **kw): if predicate is None: predicate = self.concepts.getDefaultPredicate() if isinstance(predicate, basestring): @@ -163,7 +163,7 @@ class SetupManager(object): self.log("Concept '%s' is already a child of '%s' with predicate '%s'.'" % (childName, conceptName, getName(predicate))) else: - concept.assignChild(child, predicate) + concept.assignChild(child, predicate, **kw) self.log("Concept '%s' assigned to '%s with predicate '%s'.'" % (childName, conceptName, getName(predicate))) @@ -181,7 +181,7 @@ class SetupManager(object): self.log("Resource '%s' ('%s') created." % (name, title)) return c - def assignResource(self, conceptName, resourceName, predicate=None): + def assignResource(self, conceptName, resourceName, predicate=None, **kw): if predicate is None: predicate = self.concepts.getDefaultPredicate() if isinstance(predicate, basestring): @@ -192,7 +192,7 @@ class SetupManager(object): self.log("Resource '%s' is already assigned to '%s with predicate '%s'.'" % (resourceName, conceptName, getName(predicate))) else: - concept.assignResource(resource, predicate) + concept.assignResource(resource, predicate, **kw) self.log("Resource '%s' assigned to '%s with predicate '%s'.'" % (resourceName, conceptName, getName(predicate)))