diff --git a/knowledge/data/survey_de.dmp b/knowledge/data/survey_de.dmp
index 297738d..db077af 100644
--- a/knowledge/data/survey_de.dmp
+++ b/knowledge/data/survey_de.dmp
@@ -2,17 +2,23 @@
type(u'questionnaire', u'Fragebogen', viewName=u'',
typeInterface=u'loops.knowledge.survey.interfaces.IQuestionnaire',
options=u'action.portlet:create_subtype,edit_concept')
+type(u'questiongroup', u'Fragengruppe', viewName=u'',
+ typeInterface=u'loops.knowledge.survey.interfaces.IQuestionGroup',
+ 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',
+type(u'feedbackitem', u'Feedback-Element', viewName=u'',
+ typeInterface=u'loops.knowledge.survey.interfaces.IFeedbackItem',
options=u'action.portlet:edit_concept')
# subtypes
-child(u'questionnaire', u'question', u'issubtype')
-child(u'questionnaire', u'questionnaire', u'issubtype')
-child(u'question', u'resultelement', u'issubtype')
+#child(u'questionnaire', u'questionnaire', u'issubtype')
+#child(u'questionnaire', u'question', u'issubtype')
+child(u'questionnaire', u'questiongroup', u'issubtype')
+child(u'questiongroup', u'question', u'issubtype')
+child(u'questiongroup', u'feedbackitem', u'issubtype')
+#child(u'question', u'feedbackitem', u'issubtype')
# records
records(u'survey_responses', u'loops.knowledge.survey.response.Response')
diff --git a/knowledge/survey/base.py b/knowledge/survey/base.py
index 8b856ad..c67bd96 100644
--- a/knowledge/survey/base.py
+++ b/knowledge/survey/base.py
@@ -23,14 +23,16 @@ Surveys used in knowledge management.
from zope.component import adapts
from zope.interface import implementer, implements
-from cybertools.knowledge.survey.questionnaire import Questionnaire, Question,\
- ResultElement
+from cybertools.knowledge.survey.questionnaire import Questionnaire, \
+ QuestionGroup, Question, FeedbackItem
from loops.common import AdapterBase
-from loops.knowledge.survey.interfaces import IQuestionnaire, IQuestion, IResultElement
+from loops.knowledge.survey.interfaces import IQuestionnaire, \
+ IQuestionGroup, IQuestion, IFeedbackItem
from loops.type import TypeInterfaceSourceList
-TypeInterfaceSourceList.typeInterfaces += (IQuestionnaire, IQuestion, IResultElement)
+TypeInterfaceSourceList.typeInterfaces += (IQuestionnaire,
+ IQuestionGroup, IQuestion, IFeedbackItem)
class Questionnaire(AdapterBase, Questionnaire):
@@ -40,6 +42,13 @@ class Questionnaire(AdapterBase, Questionnaire):
_contextAttributes = list(IQuestionnaire)
+class QuestionGroup(AdapterBase, QuestionGroup):
+
+ implements(IQuestionGroup)
+
+ _contextAttributes = list(IQuestionGroup)
+
+
class Question(AdapterBase, Question):
implements(IQuestion)
@@ -47,9 +56,9 @@ class Question(AdapterBase, Question):
_contextAttributes = list(IQuestion)
-class ResultElement(AdapterBase, ResultElement):
+class FeedbackItem(AdapterBase, FeedbackItem):
- implements(IResultElement)
+ implements(IFeedbackItem)
- _contextAttributes = list(IResultElement)
+ _contextAttributes = list(IFeedbackItem)
diff --git a/knowledge/survey/configure.zcml b/knowledge/survey/configure.zcml
index 7f69f0d..d682b51 100644
--- a/knowledge/survey/configure.zcml
+++ b/knowledge/survey/configure.zcml
@@ -7,12 +7,16 @@
factory="loops.knowledge.survey.base.Questionnaire"
provides="loops.knowledge.survey.interfaces.IQuestionnaire" />
+
+
+ factory="loops.knowledge.survey.base.FeedbackItem"
+ provides="loops.knowledge.survey.interfaces.IFeedbackItem" />
diff --git a/knowledge/survey/interfaces.py b/knowledge/survey/interfaces.py
index 5061ffc..d32b2a4 100644
--- a/knowledge/survey/interfaces.py
+++ b/knowledge/survey/interfaces.py
@@ -36,6 +36,11 @@ class IQuestionnaire(IConceptSchema, interfaces.IQuestionnaire):
'explicitly provide the values attribute.')
+class IQuestionGroup(IConceptSchema, interfaces.IQuestionGroup):
+ """ A group of questions within a questionnaire.
+ """
+
+
class IQuestion(IConceptSchema, interfaces.IQuestion):
""" A single question within a questionnaire.
"""
@@ -44,7 +49,7 @@ class IQuestion(IConceptSchema, interfaces.IQuestion):
answerOptions = Attribute('A sequence of answer options to select from.')
-class IResultElement(IConceptSchema, interfaces.IResultElement):
+class IFeedbackItem(IConceptSchema, interfaces.IFeedbackItem):
""" Some text (e.g. a recommendation) or some other kind of information
that may be deduced from the res)ponses to a questionnaire.
"""
diff --git a/knowledge/tests.py b/knowledge/tests.py
index 098c5c8..c893edd 100755
--- a/knowledge/tests.py
+++ b/knowledge/tests.py
@@ -7,9 +7,9 @@ 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.base import Questionnaire, Question, FeedbackItem
from loops.knowledge.survey.interfaces import IQuestionnaire, IQuestion, \
- IResultElement
+ IFeedbackItem
from loops.organize.party import Person
from loops.setup import importData as baseImportData
@@ -23,7 +23,7 @@ def importData(loopsRoot):
def importSurvey(loopsRoot):
component.provideAdapter(Questionnaire, provides=IQuestionnaire)
component.provideAdapter(Question, provides=IQuestion)
- component.provideAdapter(ResultElement, provides=IResultElement)
+ component.provideAdapter(FeedbackItem, provides=IFeedbackItem)
baseImportData(loopsRoot, importPath, 'survey_de.dmp')