work in progress: survey
This commit is contained in:
parent
dada93479e
commit
0ec0cba1b9
8 changed files with 105 additions and 8 deletions
|
@ -208,7 +208,8 @@ Glossary items are topic-like concepts that may be edited by end users.
|
|||
Survey
|
||||
======
|
||||
|
||||
>>> from loops.knowledge.survey.base import Questionnaire
|
||||
>>> from loops.knowledge.tests import importSurvey
|
||||
>>> importSurvey(loopsRoot)
|
||||
|
||||
|
||||
Fin de partie
|
||||
|
|
14
knowledge/data/survey_de.dmp
Normal file
14
knowledge/data/survey_de.dmp
Normal file
|
@ -0,0 +1,14 @@
|
|||
# survey types
|
||||
type(u'questionnaire', u'Fragebogen', viewName=u'',
|
||||
typeInterface=u'loops.knowledge.survey.interfaces.IQuestionnaire',
|
||||
options=u'action.portlet:create_subtype,edit_concept')
|
||||
type(u'question', u'Frage', viewName=u'',
|
||||
typeInterface=u'loops.knowledge.survey.interfaces.IQuestion',
|
||||
options=u'action.portlet:create_subtype,edit_concept')
|
||||
type(u'resultelement', u'Feedback-Element', viewName=u'',
|
||||
typeInterface=u'loops.knowledge.survey.interfaces.IResultElement',
|
||||
options=u'action.portlet:edit_concept')
|
||||
|
||||
# subtypes
|
||||
child(u'questionnaire', u'question', u'issubtype')
|
||||
child(u'question', u'resultelement', u'issubtype')
|
|
@ -23,11 +23,33 @@ Surveys used in knowledge management.
|
|||
from zope.component import adapts
|
||||
from zope.interface import implementer, implements
|
||||
|
||||
from cybertools.knowledge.survey.questionnaire import Questionnaire \
|
||||
as BaseQuestionnaire
|
||||
from cybertools.knowledge.survey.questionnaire import Questionnaire, Question,\
|
||||
ResultElement
|
||||
from loops.common import AdapterBase
|
||||
from loops.knowledge.survey.interfaces import IQuestionnaire, IQuestion, IResultElement
|
||||
from loops.type import TypeInterfaceSourceList
|
||||
|
||||
|
||||
class Questionnaire(BaseQuestionnaire):
|
||||
TypeInterfaceSourceList.typeInterfaces += (IQuestionnaire, IQuestion, IResultElement)
|
||||
|
||||
pass
|
||||
|
||||
class Questionnaire(AdapterBase, Questionnaire):
|
||||
|
||||
implements(IQuestionnaire)
|
||||
|
||||
_contextAttributes = list(IQuestionnaire)
|
||||
|
||||
|
||||
class Question(AdapterBase, Question):
|
||||
|
||||
implements(IQuestion)
|
||||
|
||||
_contextAttributes = list(IQuestion)
|
||||
|
||||
|
||||
class ResultElement(AdapterBase, ResultElement):
|
||||
|
||||
implements(IResultElement)
|
||||
|
||||
_contextAttributes = list(IResultElement)
|
||||
|
||||
|
|
|
@ -3,4 +3,16 @@
|
|||
xmlns:browser="http://namespaces.zope.org/browser"
|
||||
i18n_domain="loops">
|
||||
|
||||
<zope:adapter
|
||||
factory="loops.knowledge.survey.base.Questionnaire"
|
||||
provides="loops.knowledge.survey.interfaces.IQuestionnaire" />
|
||||
|
||||
<zope:adapter
|
||||
factory="loops.knowledge.survey.base.Question"
|
||||
provides="loops.knowledge.survey.interfaces.IQuestion" />
|
||||
|
||||
<zope:adapter
|
||||
factory="loops.knowledge.survey.base.ResultElement"
|
||||
provides="loops.knowledge.survey.interfaces.IResultElement" />
|
||||
|
||||
</configure>
|
||||
|
|
|
@ -22,3 +22,38 @@ Interfaces for surveys used in knowledge management.
|
|||
|
||||
from zope.interface import Interface, Attribute
|
||||
from zope import interface, component, schema
|
||||
|
||||
from cybertools.knowledge.survey import interfaces
|
||||
from loops.interfaces import IConceptSchema
|
||||
|
||||
|
||||
class IQuestionnaire(IConceptSchema, interfaces.IQuestionnaire):
|
||||
""" A collection of questions for setting up a survey.
|
||||
"""
|
||||
|
||||
defaultOptions = Attribute('A sequence of answer options to select from. '
|
||||
'Default value used for questions that do not '
|
||||
'explicitly provide the values attribute.')
|
||||
|
||||
|
||||
class IQuestion(IConceptSchema, interfaces.IQuestion):
|
||||
""" A single question within a questionnaire.
|
||||
"""
|
||||
|
||||
text = Attribute('The question asked.')
|
||||
options = Attribute('A sequence of answer options to select from.')
|
||||
|
||||
|
||||
class IResultElement(IConceptSchema, interfaces.IResultElement):
|
||||
""" Some text (e.g. a recommendation) or some other kind of information
|
||||
that may be deduced from the res)ponses to a questionnaire.
|
||||
"""
|
||||
|
||||
text = Attribute('A text representing this result element.')
|
||||
|
||||
|
||||
class IResponse(interfaces.IResponse):
|
||||
""" A set of response values given to the questions of a questionnaire
|
||||
by a single person or party.
|
||||
"""
|
||||
|
||||
|
|
|
@ -2,16 +2,29 @@
|
|||
|
||||
import os
|
||||
import unittest, doctest
|
||||
from zope.testing.doctestunit import DocFileSuite
|
||||
from zope.app.testing import ztapi
|
||||
from zope import component
|
||||
from zope.interface.verify import verifyClass
|
||||
from zope.testing.doctestunit import DocFileSuite
|
||||
|
||||
from loops.knowledge.survey.base import Questionnaire, Question, ResultElement
|
||||
from loops.knowledge.survey.interfaces import IQuestionnaire, IQuestion, \
|
||||
IResultElement
|
||||
from loops.organize.party import Person
|
||||
from loops.setup import importData as baseImportData
|
||||
|
||||
|
||||
importPath = os.path.join(os.path.dirname(__file__), 'data')
|
||||
|
||||
|
||||
def importData(loopsRoot):
|
||||
importPath = os.path.join(os.path.dirname(__file__), 'data')
|
||||
baseImportData(loopsRoot, importPath, 'loops_knowledge_de.dmp')
|
||||
baseImportData(loopsRoot, importPath, 'knowledge_de.dmp')
|
||||
|
||||
def importSurvey(loopsRoot):
|
||||
component.provideAdapter(Questionnaire, provides=IQuestionnaire)
|
||||
component.provideAdapter(Question, provides=IQuestion)
|
||||
component.provideAdapter(ResultElement, provides=IResultElement)
|
||||
baseImportData(loopsRoot, importPath, 'survey_de.dmp')
|
||||
|
||||
|
||||
class Test(unittest.TestCase):
|
||||
|
|
Loading…
Add table
Reference in a new issue