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')