From 2dcd73f56f00035c37a28683443672f1d77f7b26 Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Sun, 24 Feb 2013 16:22:54 +0100 Subject: [PATCH] avoid leaking of attributes to subclasses: put in constructor instead of class --- knowledge/survey/interfaces.py | 2 +- knowledge/survey/questionnaire.py | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/knowledge/survey/interfaces.py b/knowledge/survey/interfaces.py index 650a1bf..6bc8c0b 100644 --- a/knowledge/survey/interfaces.py +++ b/knowledge/survey/interfaces.py @@ -31,8 +31,8 @@ class IQuestionnaire(Interface): """ A collection of questions for setting up a survey. """ - questions = Attribute('An ordered collection of questions.') questionGroups = Attribute('An ordered collection of question groups (optional).') + questions = Attribute('An ordered collection of questions.') responses = Attribute('A set of responses.') defaultAnswerRange = Attribute('The number of answer options to select from. ' 'Default value used for questions that do not ' diff --git a/knowledge/survey/questionnaire.py b/knowledge/survey/questionnaire.py index fbfbd90..8d33c0f 100644 --- a/knowledge/survey/questionnaire.py +++ b/knowledge/survey/questionnaire.py @@ -29,13 +29,12 @@ from cybertools.knowledge.survey.interfaces import IFeedbackItem, IResponse class Questionnaire(object): implements(IQuestionnaire) - - defaultAnswerRange = 5 def __init__(self): self.questionGroups = [] self.questions = [] self.responses = [] + self.defaultAnswerRange = 5 class QuestionGroup(object): @@ -53,12 +52,12 @@ class Question(object): implements(IQuestion) _answerRange = None - revertAnswerOptions = False def __init__(self, questionnaire, text=u''): self.questionnaire = questionnaire self.feedbackItems = {} self.text = text + self.revertAnswerOptions = False def getAnswerRange(self): return self._answerRange or self.questionnaire.defaultAnswerRange