work in progress: CCM Competence and Certification Management: starting with concepts types and records
This commit is contained in:
parent
53a33964d0
commit
a4968e76d6
5 changed files with 113 additions and 3 deletions
|
@ -172,6 +172,16 @@ For testing, we first have to provide the needed utilities and settings
|
|||
Competence and Certification Management
|
||||
=======================================
|
||||
|
||||
>>> from cybertools.stateful.interfaces import IStatesDefinition
|
||||
>>> from loops.knowledge.qualification import qualificationStates
|
||||
>>> from loops.knowledge.interfaces import IQualificationRecords
|
||||
>>> from loops.knowledge.qualification import QualificationRecords
|
||||
>>> component.provideUtility(qualificationStates,
|
||||
... provides=IStatesDefinition)
|
||||
>>> component.provideAdapter(QualificationRecords,
|
||||
... provides=IQualificationRecords)
|
||||
|
||||
|
||||
Glossaries
|
||||
==========
|
||||
|
||||
|
|
|
@ -66,6 +66,22 @@
|
|||
interface="cybertools.knowledge.interfaces.IKnowledgeProvider" />
|
||||
</zope:class>
|
||||
|
||||
<!-- records -->
|
||||
|
||||
<zope:class class="loops.knowledge.qualification.QualificationRecord">
|
||||
<require permission="zope.View"
|
||||
interface="loops.knowledge.interfaces.IQualificationRecord" />
|
||||
<require permission="zope.ManageContent"
|
||||
set_schema="loops.knowledge.interfaces.IQualificationRecord" />
|
||||
</zope:class>
|
||||
|
||||
<zope:adapter factory="loops.knowledge.qualification.QualificationRecords"
|
||||
provides="loops.knowledge.interfaces.IQualificationRecords" />
|
||||
|
||||
<zope:utility factory="loops.knowledge.qualification.qualificationStates"
|
||||
provides="cybertools.stateful.interfaces.IStatesDefinition"
|
||||
name="knowledge.qualification" />
|
||||
|
||||
<!-- views -->
|
||||
|
||||
<zope:adapter
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
type(u'competence', u'Competence', viewName=u'',
|
||||
typeInterface=u'', options=u'action.portlet:edit_concept')
|
||||
type(u'person', u'Person', viewName=u'',
|
||||
typeInterface=u'loops.knowledge.interfaces.IPerson',
|
||||
options=u'action.portlet:editPerson')
|
||||
|
@ -7,6 +9,11 @@ type(u'task', u'Aufgabe', viewName=u'',
|
|||
type(u'topic', u'Thema', viewName=u'',
|
||||
typeInterface=u'loops.knowledge.interfaces.ITopic',
|
||||
options=u'action.portlet:createTopic,editTopic')
|
||||
type(u'training_event', u'Schulung', viewName=u'',
|
||||
typeInterface=u'loops.organize.interfaces.ITask',
|
||||
options=u'action.portlet:edit_concept')
|
||||
type(u'training_offer', u'Schulungsangebot', viewName=u'',
|
||||
typeInterface=u'', options=u'action.portlet:create_subtype,edit_concept')
|
||||
|
||||
concept(u'general', u'Allgemein', u'domain')
|
||||
concept(u'system', u'System', u'domain')
|
||||
|
@ -21,6 +28,7 @@ concept(u'issubtype', u'is Subtype', u'predicate', options=u'hide_children',
|
|||
predicateInterface='loops.interfaces.IIsSubtype')
|
||||
|
||||
# structure
|
||||
child(u'competence', u'general', u'standard')
|
||||
child(u'depends', u'general', u'standard')
|
||||
child(u'knows', u'general', u'standard')
|
||||
child(u'person', u'general', u'standard')
|
||||
|
@ -28,8 +36,15 @@ 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'training_event', u'general', u'standard')
|
||||
child(u'training_offer', u'general', u'standard')
|
||||
|
||||
child(u'issubtype', u'system', u'standard')
|
||||
|
||||
child(u'training_event', u'competence', u'issubtype',
|
||||
usePredicate=u'provides')
|
||||
child(u'training_offer', u'competence', u'issubtype',
|
||||
usePredicate=u'provides')
|
||||
|
||||
# records
|
||||
records(u'qualification', u'loops.knowledge.qualification.QualificationRecord')
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# Copyright (c) 2011 Helmut Merz helmutm@cy55.de
|
||||
# Copyright (c) 2012 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
|
||||
|
@ -18,8 +18,6 @@
|
|||
|
||||
"""
|
||||
Interfaces for knowledge management and elearning with loops.
|
||||
|
||||
$Id$
|
||||
"""
|
||||
|
||||
from zope.interface import Interface, Attribute
|
||||
|
@ -29,6 +27,7 @@ from zope.security.proxy import removeSecurityProxy
|
|||
|
||||
from cybertools.knowledge.interfaces import IKnowing, IRequirementProfile
|
||||
from cybertools.knowledge.interfaces import IKnowledgeElement
|
||||
from cybertools.organize.interfaces import IWorkItem, IWorkItems
|
||||
from loops.interfaces import IConceptSchema, ILoopsAdapter
|
||||
from loops.organize.interfaces import IPerson as IBasePerson
|
||||
from loops.organize.interfaces import ITask as IBaseTask
|
||||
|
@ -63,3 +62,13 @@ class ITopic(IConceptSchema, IKnowledgeElement, ILoopsAdapter):
|
|||
""" Just a topic, some general classification concept.
|
||||
"""
|
||||
|
||||
|
||||
class IQualificationRecord(IWorkItem):
|
||||
""" Records needs for qualification (acqusition of competence)
|
||||
and corresponding participations in training events etc.
|
||||
"""
|
||||
|
||||
|
||||
class IQualificationRecords(IWorkItems):
|
||||
""" Container for qualification records.
|
||||
"""
|
||||
|
|
60
knowledge/qualification.py
Normal file
60
knowledge/qualification.py
Normal file
|
@ -0,0 +1,60 @@
|
|||
#
|
||||
# Copyright (c) 2012 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
|
||||
#
|
||||
|
||||
"""
|
||||
Controlling qualification activities of persons.
|
||||
|
||||
Central part of CCM competence and certification management framework.
|
||||
"""
|
||||
|
||||
from zope.component import adapts
|
||||
from zope.interface import implementer, implements
|
||||
|
||||
from cybertools.stateful.base import Stateful
|
||||
from cybertools.stateful.definition import StatesDefinition
|
||||
from cybertools.stateful.definition import State, Transition
|
||||
from cybertools.stateful.interfaces import IStatesDefinition
|
||||
from cybertools.tracking.interfaces import ITrackingStorage
|
||||
from loops.knowledge.interfaces import IQualificationRecord, \
|
||||
IQualificationRecords
|
||||
from loops.organize.work.base import WorkItem, WorkItems
|
||||
|
||||
|
||||
@implementer(IStatesDefinition)
|
||||
def qualificationStates():
|
||||
return StatesDefinition('qualification',
|
||||
State('new', 'new',
|
||||
('plan', 'accept', 'start', 'work', 'finish', 'delegate', 'cancel'),
|
||||
color='red'),)
|
||||
|
||||
|
||||
class QualificationRecord(WorkItem):
|
||||
|
||||
implements(IQualificationRecord)
|
||||
|
||||
typeName = 'QualificationRecord'
|
||||
statesDefinition = 'knowledge.qualification'
|
||||
|
||||
|
||||
class QualificationRecords(WorkItems):
|
||||
""" A tracking storage adapter managing qualification records.
|
||||
"""
|
||||
|
||||
implements(IQualificationRecords)
|
||||
adapts(ITrackingStorage)
|
||||
|
Loading…
Add table
Reference in a new issue