replace setup manager (for package loops.knowledge) by import file
This commit is contained in:
parent
a2590958d0
commit
ef504afc0b
5 changed files with 51 additions and 77 deletions
|
@ -2,33 +2,34 @@
|
||||||
loops - Linked Objects for Organization and Processing Services
|
loops - Linked Objects for Organization and Processing Services
|
||||||
===============================================================
|
===============================================================
|
||||||
|
|
||||||
($Id$)
|
Note: This package depends on cybertools.knowledge and loops.organize.
|
||||||
|
|
||||||
Note: This package depends on cybertools.knowledge and cybertools.organize.
|
|
||||||
|
|
||||||
Let's do some basic set up
|
Let's do some basic set up
|
||||||
|
|
||||||
|
>>> from zope import component, interface
|
||||||
|
|
||||||
>>> from zope.app.testing.setup import placefulSetUp, placefulTearDown
|
>>> from zope.app.testing.setup import placefulSetUp, placefulTearDown
|
||||||
>>> site = placefulSetUp(True)
|
>>> site = placefulSetUp(True)
|
||||||
|
|
||||||
>>> from zope import component, interface
|
|
||||||
|
|
||||||
and setup a simple loops site with a concept manager and some concepts
|
and setup a simple loops site with a concept manager and some concepts
|
||||||
(with all the type machinery, what in real life is done via standard
|
(with all the type machinery, what in real life is done via standard
|
||||||
ZCML setup):
|
ZCML setup):
|
||||||
|
|
||||||
>>> from loops.interfaces import ILoops, IConcept
|
|
||||||
>>> from loops.setup import ISetupManager
|
|
||||||
>>> from loops.knowledge.setup import SetupManager
|
|
||||||
>>> component.provideAdapter(SetupManager, (ILoops,), ISetupManager,
|
|
||||||
... name='knowledge')
|
|
||||||
|
|
||||||
>>> from loops.tests.setup import TestSite
|
>>> from loops.tests.setup import TestSite
|
||||||
>>> t = TestSite(site)
|
>>> t = TestSite(site)
|
||||||
>>> concepts, resources, views = t.setup()
|
>>> concepts, resources, views = t.setup()
|
||||||
|
>>> loopsRoot = site['loops']
|
||||||
|
|
||||||
|
We then import a loops .dmp file containing all necessary types and
|
||||||
|
predicates.
|
||||||
|
|
||||||
|
>>> import os
|
||||||
|
>>> from loops.setup import importData
|
||||||
|
>>> importPath = os.path.join(os.path.dirname(__file__), 'data')
|
||||||
|
>>> importData(loopsRoot, importPath, 'loops_knowledge_de.dmp')
|
||||||
|
|
||||||
We need some type concepts for controlling the meaning of the concepts objects,
|
We need some type concepts for controlling the meaning of the concepts objects,
|
||||||
these have already been created during setup:
|
these have already been created during setup and .dmp import:
|
||||||
|
|
||||||
>>> topic = concepts['topic']
|
>>> topic = concepts['topic']
|
||||||
>>> person = concepts['person']
|
>>> person = concepts['person']
|
||||||
|
@ -40,6 +41,7 @@ Manage knowledge and knowledge requirements
|
||||||
|
|
||||||
The classes used in this package are just adapters to IConcept.
|
The classes used in this package are just adapters to IConcept.
|
||||||
|
|
||||||
|
>>> from loops.interfaces import IConcept
|
||||||
>>> from loops.knowledge.knowledge import Person, Topic, Task
|
>>> from loops.knowledge.knowledge import Person, Topic, Task
|
||||||
>>> from loops.knowledge.interfaces import IPerson
|
>>> from loops.knowledge.interfaces import IPerson
|
||||||
>>> from cybertools.knowledge.interfaces import IKnowledgeElement
|
>>> from cybertools.knowledge.interfaces import IKnowledgeElement
|
||||||
|
@ -166,6 +168,10 @@ For testing, we first have to provide the needed utilities and settings
|
||||||
>>> view = MyKnowledge(task01C, request)
|
>>> view = MyKnowledge(task01C, request)
|
||||||
>>> prov = view.myKnowledgeProvidersForTask()
|
>>> prov = view.myKnowledgeProvidersForTask()
|
||||||
|
|
||||||
|
|
||||||
|
Competence and Certification Management
|
||||||
|
=======================================
|
||||||
|
|
||||||
Glossaries
|
Glossaries
|
||||||
==========
|
==========
|
||||||
|
|
||||||
|
|
|
@ -88,9 +88,6 @@
|
||||||
|
|
||||||
<zope:adapter factory="loops.knowledge.schema.PersonSchemaFactory" />
|
<zope:adapter factory="loops.knowledge.schema.PersonSchemaFactory" />
|
||||||
|
|
||||||
<zope:adapter factory="loops.knowledge.setup.SetupManager"
|
|
||||||
name="knowledge" />
|
|
||||||
|
|
||||||
<!-- sub-packages -->
|
<!-- sub-packages -->
|
||||||
|
|
||||||
<include package=".glossary" />
|
<include package=".glossary" />
|
||||||
|
|
32
knowledge/data/loops_knowledge_de.dmp
Normal file
32
knowledge/data/loops_knowledge_de.dmp
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
type(u'person', u'Person', viewName=u'',
|
||||||
|
typeInterface=u'loops.knowledge.interfaces.IPerson',
|
||||||
|
options=u'action.portlet:editPerson')
|
||||||
|
type(u'task', u'Aufgabe', viewName=u'',
|
||||||
|
typeInterface=u'loops.knowledge.interfaces.ITask',
|
||||||
|
options=u'action.portlet:createTopic,editTopic')
|
||||||
|
type(u'topic', u'Thema', viewName=u'',
|
||||||
|
typeInterface=u'loops.knowledge.interfaces.ITopic',
|
||||||
|
options=u'action.portlet:createTopic,editTopic')
|
||||||
|
|
||||||
|
concept(u'general', u'Allgemein', u'domain')
|
||||||
|
concept(u'system', u'System', u'domain')
|
||||||
|
|
||||||
|
# predicates
|
||||||
|
concept(u'depends', u'depends', u'predicate')
|
||||||
|
concept(u'knows', u'knows', u'predicate')
|
||||||
|
concept(u'provides', u'provides', u'predicate')
|
||||||
|
concept(u'requires', u'requires', u'predicate')
|
||||||
|
|
||||||
|
concept(u'issubtype', u'is Subtype', u'predicate', options=u'hide_children',
|
||||||
|
predicateInterface='loops.interfaces.IIsSubtype')
|
||||||
|
|
||||||
|
# structure
|
||||||
|
child(u'depends', u'general', u'standard')
|
||||||
|
child(u'knows', u'general', u'standard')
|
||||||
|
child(u'person', u'general', u'standard')
|
||||||
|
child(u'provides', u'general', u'standard')
|
||||||
|
child(u'requires', u'general', u'standard')
|
||||||
|
child(u'task', u'general', u'standard')
|
||||||
|
child(u'topic', u'general', u'standard')
|
||||||
|
|
||||||
|
child(u'issubtype', u'system', u'standard')
|
|
@ -1,61 +0,0 @@
|
||||||
#
|
|
||||||
# Copyright (c) 2006 Helmut Merz helmutm@cy55.de
|
|
||||||
#
|
|
||||||
# This program is free software; you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation; either version 2 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with this program; if not, write to the Free Software
|
|
||||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
||||||
#
|
|
||||||
|
|
||||||
"""
|
|
||||||
Automatic setup of a loops site for the organize package.
|
|
||||||
|
|
||||||
$Id$
|
|
||||||
"""
|
|
||||||
|
|
||||||
from zope.component import adapts
|
|
||||||
from zope.interface import implements, Interface
|
|
||||||
|
|
||||||
from cybertools.knowledge.interfaces import IKnowledgeElement
|
|
||||||
from loops.concept import Concept
|
|
||||||
from loops.interfaces import ITypeConcept
|
|
||||||
from loops.knowledge.interfaces import IPerson, ITask, ITopic
|
|
||||||
from loops.setup import SetupManager as BaseSetupManager
|
|
||||||
|
|
||||||
|
|
||||||
class SetupManager(BaseSetupManager):
|
|
||||||
|
|
||||||
def setup(self):
|
|
||||||
concepts = self.context.getConceptManager()
|
|
||||||
type = concepts.getTypeConcept()
|
|
||||||
predicate = concepts['predicate']
|
|
||||||
# type concepts:
|
|
||||||
person = self.addObject(concepts, Concept, 'person', title=u'Person',
|
|
||||||
conceptType=type)
|
|
||||||
ITypeConcept(person).typeInterface = IPerson # this may override other packages!
|
|
||||||
topic = self.addObject(concepts, Concept, 'topic', title=u'Topic',
|
|
||||||
conceptType=type)
|
|
||||||
ITypeConcept(topic).typeInterface = ITopic
|
|
||||||
task = self.addObject(concepts, Concept, 'task', title=u'Task',
|
|
||||||
conceptType=type)
|
|
||||||
ITypeConcept(task).typeInterface = ITask
|
|
||||||
# predicates:
|
|
||||||
depends = self.addObject(concepts, Concept, 'depends', title=u'depends',
|
|
||||||
conceptType=predicate)
|
|
||||||
knows = self.addObject(concepts, Concept, 'knows', title=u'knows',
|
|
||||||
conceptType=predicate)
|
|
||||||
requires = self.addObject(concepts, Concept, 'requires', title=u'requires',
|
|
||||||
conceptType=predicate)
|
|
||||||
provides = self.addObject(concepts, Concept, 'provides', title=u'provides',
|
|
||||||
conceptType=predicate)
|
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# $Id$
|
# tests.py - loops.knowledge package
|
||||||
|
|
||||||
import unittest, doctest
|
import unittest, doctest
|
||||||
from zope.testing.doctestunit import DocFileSuite
|
from zope.testing.doctestunit import DocFileSuite
|
||||||
|
|
Loading…
Add table
Reference in a new issue