Renamed *RelationsRegistry* to *RelationRegistry*
git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@1066 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
parent
48f580ca31
commit
ef597268ec
3 changed files with 13 additions and 11 deletions
|
@ -40,13 +40,13 @@ top-level loops container and a concept manager:
|
||||||
|
|
||||||
Now we want to relate the second concept to the first one.
|
Now we want to relate the second concept to the first one.
|
||||||
|
|
||||||
In order to do this we first have to provide a relations registry. For
|
In order to do this we first have to provide a relation registry. For
|
||||||
testing we use a simple dummy implementation.
|
testing we use a simple dummy implementation.
|
||||||
|
|
||||||
>>> from cybertools.relation.interfaces import IRelationsRegistry
|
>>> from cybertools.relation.interfaces import IRelationRegistry
|
||||||
>>> from cybertools.relation.registry import DummyRelationsRegistry
|
>>> from cybertools.relation.registry import DummyRelationRegistry
|
||||||
>>> from zope.app.testing import ztapi
|
>>> from zope.app.testing import ztapi
|
||||||
>>> ztapi.provideUtility(IRelationsRegistry, DummyRelationsRegistry())
|
>>> ztapi.provideUtility(IRelationRegistry, DummyRelationRegistry())
|
||||||
|
|
||||||
Now we can assign the concept c2 to c1 (using the standard ConceptRelation):
|
Now we can assign the concept c2 to c1 (using the standard ConceptRelation):
|
||||||
|
|
||||||
|
|
11
concept.py
11
concept.py
|
@ -29,7 +29,8 @@ from zope.interface import implements
|
||||||
from persistent import Persistent
|
from persistent import Persistent
|
||||||
|
|
||||||
from cybertools.relation import DyadicRelation
|
from cybertools.relation import DyadicRelation
|
||||||
from cybertools.relation.registry import IRelationsRegistry, getRelations
|
from cybertools.relation.registry import getRelations
|
||||||
|
from cybertools.relation.interfaces import IRelationRegistry
|
||||||
|
|
||||||
from interfaces import IConcept, IConceptView
|
from interfaces import IConcept, IConceptView
|
||||||
from interfaces import IConceptManager, IConceptManagerContained
|
from interfaces import IConceptManager, IConceptManagerContained
|
||||||
|
@ -83,7 +84,7 @@ class Concept(Contained, Persistent):
|
||||||
return [r.first for r in rels]
|
return [r.first for r in rels]
|
||||||
|
|
||||||
def assignConcept(self, concept, relationship=ConceptRelation):
|
def assignConcept(self, concept, relationship=ConceptRelation):
|
||||||
registry = zapi.getUtility(IRelationsRegistry)
|
registry = zapi.getUtility(IRelationRegistry)
|
||||||
rel = relationship(self, concept)
|
rel = relationship(self, concept)
|
||||||
registry.register(rel)
|
registry.register(rel)
|
||||||
# TODO (?): avoid duplicates
|
# TODO (?): avoid duplicates
|
||||||
|
@ -91,7 +92,7 @@ class Concept(Contained, Persistent):
|
||||||
def deassignConcept(self, concept, relationships=None):
|
def deassignConcept(self, concept, relationships=None):
|
||||||
if relationships is None:
|
if relationships is None:
|
||||||
relationships = [ConceptRelation]
|
relationships = [ConceptRelation]
|
||||||
registry = zapi.getUtility(IRelationsRegistry)
|
registry = zapi.getUtility(IRelationRegistry)
|
||||||
relations = registry.query(first=self, second=concept,
|
relations = registry.query(first=self, second=concept,
|
||||||
relationships=relationships)
|
relationships=relationships)
|
||||||
for rel in relations:
|
for rel in relations:
|
||||||
|
@ -107,14 +108,14 @@ class Concept(Contained, Persistent):
|
||||||
# TODO: sort...
|
# TODO: sort...
|
||||||
|
|
||||||
def assignResource(self, resource, relationship=ResourceRelation):
|
def assignResource(self, resource, relationship=ResourceRelation):
|
||||||
registry = zapi.getUtility(IRelationsRegistry)
|
registry = zapi.getUtility(IRelationRegistry)
|
||||||
registry.register(relationship(self, resource))
|
registry.register(relationship(self, resource))
|
||||||
# TODO (?): avoid duplicates
|
# TODO (?): avoid duplicates
|
||||||
|
|
||||||
def deassignResource(self, resource, relationships=None):
|
def deassignResource(self, resource, relationships=None):
|
||||||
if relationships is None:
|
if relationships is None:
|
||||||
relationships = [ResourceRelation]
|
relationships = [ResourceRelation]
|
||||||
registry = zapi.getUtility(IRelationsRegistry)
|
registry = zapi.getUtility(IRelationRegistry)
|
||||||
relations = registry.query(first=self, second=resource,
|
relations = registry.query(first=self, second=resource,
|
||||||
relationships=relationships)
|
relationships=relationships)
|
||||||
for rel in relations:
|
for rel in relations:
|
||||||
|
|
5
view.py
5
view.py
|
@ -35,7 +35,8 @@ from zope.interface import alsoProvides, directlyProvides, directlyProvidedBy
|
||||||
from zope.security.proxy import removeSecurityProxy
|
from zope.security.proxy import removeSecurityProxy
|
||||||
from persistent import Persistent
|
from persistent import Persistent
|
||||||
from cybertools.relation import DyadicRelation
|
from cybertools.relation import DyadicRelation
|
||||||
from cybertools.relation.registry import IRelationsRegistry, getRelations
|
from cybertools.relation.registry import getRelations
|
||||||
|
from cybertools.relation.interfaces import IRelationRegistry
|
||||||
|
|
||||||
from interfaces import IView, INode, INodeConfigSchema
|
from interfaces import IView, INode, INodeConfigSchema
|
||||||
from interfaces import IViewManager, INodeContained
|
from interfaces import IViewManager, INodeContained
|
||||||
|
@ -67,7 +68,7 @@ class View(object):
|
||||||
return list(rels)[0].second
|
return list(rels)[0].second
|
||||||
|
|
||||||
def setTarget(self, target):
|
def setTarget(self, target):
|
||||||
registry = zapi.getUtility(IRelationsRegistry)
|
registry = zapi.getUtility(IRelationRegistry)
|
||||||
rels = list(registry.query(first=self, relationship=TargetRelation))
|
rels = list(registry.query(first=self, relationship=TargetRelation))
|
||||||
if len(rels) > 0:
|
if len(rels) > 0:
|
||||||
oldRel = rels[0]
|
oldRel = rels[0]
|
||||||
|
|
Loading…
Add table
Reference in a new issue