work in progress: survey

This commit is contained in:
Helmut Merz 2013-02-11 09:40:47 +01:00
parent 0ec0cba1b9
commit 20c8d9778e
3 changed files with 59 additions and 2 deletions

View file

@ -11,4 +11,8 @@ type(u'resultelement', u'Feedback-Element', viewName=u'',
# subtypes
child(u'questionnaire', u'question', u'issubtype')
child(u'questionnaire', u'questionnaire', u'issubtype')
child(u'question', u'resultelement', u'issubtype')
# records
records(u'survey_responses', u'loops.knowledge.survey.response.Response')

View file

@ -31,7 +31,7 @@ class IQuestionnaire(IConceptSchema, interfaces.IQuestionnaire):
""" A collection of questions for setting up a survey.
"""
defaultOptions = Attribute('A sequence of answer options to select from. '
defaultAnswerOptions = Attribute('A sequence of answer options to select from. '
'Default value used for questions that do not '
'explicitly provide the values attribute.')
@ -41,7 +41,7 @@ class IQuestion(IConceptSchema, interfaces.IQuestion):
"""
text = Attribute('The question asked.')
options = Attribute('A sequence of answer options to select from.')
answerOptions = Attribute('A sequence of answer options to select from.')
class IResultElement(IConceptSchema, interfaces.IResultElement):
@ -57,3 +57,8 @@ class IResponse(interfaces.IResponse):
by a single person or party.
"""
class IResponses(Interface):
""" A container of manager of survey responses.
"""

View file

@ -0,0 +1,48 @@
#
# Copyright (c) 2013 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
#
"""
Handling survey responses.
"""
from zope.component import adapts
from zope.interface import implements
from cybertools.tracking.btree import Track
from cybertools.tracking.interfaces import ITrackingStorage
from loops.knowledge.survey.interfaces import IResponse, IResponses
from loops.organize.tracking.base import BaseRecordManager
class Response(Track):
""" A survey response.
"""
implements(IResponse)
typeName = 'Response'
typeInterface = IResponse
class Responses(BaseRecordManager):
""" A tracking storage adapter for survey responses.
"""
implements(IResponses)
adapts(ITrackingStorage)