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
 | 
			
		||||
===============================================================
 | 
			
		||||
 | 
			
		||||
  ($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
 | 
			
		||||
==========
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -88,9 +88,6 @@
 | 
			
		|||
 | 
			
		||||
  <zope:adapter factory="loops.knowledge.schema.PersonSchemaFactory" />
 | 
			
		||||
 | 
			
		||||
  <zope:adapter factory="loops.knowledge.setup.SetupManager"
 | 
			
		||||
                name="knowledge" />
 | 
			
		||||
 | 
			
		||||
  <!-- sub-packages -->
 | 
			
		||||
 | 
			
		||||
  <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
 | 
			
		||||
from zope.testing.doctestunit import DocFileSuite
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue