From ef504afc0b2c6fd0676988274bf1ed1696802620 Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Fri, 18 May 2012 10:05:17 +0200 Subject: [PATCH] replace setup manager (for package loops.knowledge) by import file --- knowledge/README.txt | 30 +++++++------ knowledge/configure.zcml | 3 -- knowledge/data/loops_knowledge_de.dmp | 32 ++++++++++++++ knowledge/setup.py | 61 --------------------------- knowledge/tests.py | 2 +- 5 files changed, 51 insertions(+), 77 deletions(-) create mode 100644 knowledge/data/loops_knowledge_de.dmp delete mode 100644 knowledge/setup.py diff --git a/knowledge/README.txt b/knowledge/README.txt index ed77023..9d6d649 100644 --- a/knowledge/README.txt +++ b/knowledge/README.txt @@ -2,33 +2,34 @@ loops - Linked Objects for Organization and Processing Services =============================================================== - ($Id$) - -Note: This package depends on cybertools.knowledge and cybertools.organize. +Note: This package depends on cybertools.knowledge and loops.organize. Let's do some basic set up + >>> from zope import component, interface + >>> from zope.app.testing.setup import placefulSetUp, placefulTearDown >>> site = placefulSetUp(True) - >>> from zope import component, interface - 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 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 >>> t = TestSite(site) >>> 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, -these have already been created during setup: +these have already been created during setup and .dmp import: >>> topic = concepts['topic'] >>> person = concepts['person'] @@ -40,6 +41,7 @@ Manage knowledge and knowledge requirements 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.interfaces import IPerson >>> 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) >>> prov = view.myKnowledgeProvidersForTask() + +Competence and Certification Management +======================================= + Glossaries ========== diff --git a/knowledge/configure.zcml b/knowledge/configure.zcml index 5b3a3c4..eb323e8 100644 --- a/knowledge/configure.zcml +++ b/knowledge/configure.zcml @@ -88,9 +88,6 @@ - - diff --git a/knowledge/data/loops_knowledge_de.dmp b/knowledge/data/loops_knowledge_de.dmp new file mode 100644 index 0000000..8fc9f58 --- /dev/null +++ b/knowledge/data/loops_knowledge_de.dmp @@ -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') diff --git a/knowledge/setup.py b/knowledge/setup.py deleted file mode 100644 index 3bbd5e0..0000000 --- a/knowledge/setup.py +++ /dev/null @@ -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) - - diff --git a/knowledge/tests.py b/knowledge/tests.py index 888ff78..a671bb3 100755 --- a/knowledge/tests.py +++ b/knowledge/tests.py @@ -1,4 +1,4 @@ -# $Id$ +# tests.py - loops.knowledge package import unittest, doctest from zope.testing.doctestunit import DocFileSuite