diff --git a/knowledge/survey/browser.py b/knowledge/survey/browser.py index 657c3e9..30c7cdd 100644 --- a/knowledge/survey/browser.py +++ b/knowledge/survey/browser.py @@ -52,9 +52,10 @@ class SurveyView(ConceptView): if key.startswith('question_'): uid = key[len('question_'):] question = adapted(self.getObjectForUid(uid)) - value = int(value) - self.data[uid] = value - response.values[question] = value + if value != 'none': + value = int(value) + self.data[uid] = value + response.values[question] = value # TODO: store self.data in track # else: # get response from track @@ -65,9 +66,10 @@ class SurveyView(ConceptView): for r in result] def getValues(self, question): - setting = 0 + setting = None if self.data is not None: - setting = self.data.get(question.uid) or 0 - return [dict(value=i, checked=(i == setting)) - for i in range(question.answerRange)] + setting = self.data.get(question.uid) + noAnswer = [dict(value='none', checked=(setting == None))] + return noAnswer + [dict(value=i, checked=(setting == i)) + for i in reversed(range(question.answerRange))] diff --git a/knowledge/survey/interfaces.py b/knowledge/survey/interfaces.py index ea15928..1e23003 100644 --- a/knowledge/survey/interfaces.py +++ b/knowledge/survey/interfaces.py @@ -43,11 +43,24 @@ class IQuestionGroup(IConceptSchema, interfaces.IQuestionGroup): """ A group of questions within a questionnaire. """ + minAnswers = schema.Int( + title=_(u'Minimum Number of Answers'), + description=_(u'Minumum number of questions that have to be answered. ' + 'Empty means all questions have to be answered.'), + default=4, + required=False) + class IQuestion(IConceptSchema, interfaces.IQuestion): """ A single question within a questionnaire. """ + required = schema.Bool( + title=_(u'Required'), + description=_(u'Question must be answered.'), + default=False, + required=False) + revertAnswerOptions = schema.Bool( title=_(u'Negative'), description=_(u'Value inversion: High selection means low value.'), diff --git a/knowledge/survey/view_macros.pt b/knowledge/survey/view_macros.pt index 3956120..d225219 100644 --- a/knowledge/survey/view_macros.pt +++ b/knowledge/survey/view_macros.pt @@ -7,7 +7,7 @@

Feedback

- +
@@ -23,33 +23,32 @@

Questionnaire

-
Category Response
- - - - - - - +
- - - - - -
Does not applyFully applies
-
- -   -   - -
+ + + + + + + + + + +
No answerFully appliesDoes not apply
+ +   +

\n" "Language-Team: loops developers \n" "MIME-Version: 1.0\n" @@ -178,8 +178,20 @@ msgstr "Abstufung Bewertungen" msgid "Number of items (answer options) to select from." msgstr "Anzahl der Abstufungen, aus denen bei der Antwort gewählt werden kann." -msgid "Negativ" -msgstr "Negativbewertung" +msgid "Minimum Number of Answers" +msgstr "Mindestanzahl an Antworten" + +msgid "Minumum number of questions that have to be answered. Empty means all questions have to be answered." +msgstr "Anzahl der Fragen, die mindestens beantwortet werden müssen. Keine Angabe: Es müssen alle Fragen beantwortet werden." + +msgid "Required" +msgstr "Erforderlich" + +msgid "Question must be answered." +msgstr "Frage muss unbedingt beantwortet werden." + +msgid "Negative" +msgstr "Negative Polarität" msgid "Value inversion: High selection means low value." msgstr "Invertierung der Bewertung: Hohe gewählte Stufe bedeutet niedriger Wert." @@ -196,27 +208,45 @@ msgstr "Kategorie" msgid "Response" msgstr "Beurteilung" +msgid "No answer" +msgstr "Keine Antwort" + msgid "Does not apply" msgstr "Trifft nicht zu" msgid "Fully applies" msgstr "Trifft voll zu" +msgid "survey_value_none" +msgstr "Keine Antwort" + msgid "survey_value_0" -msgstr "trifft für unser Unternehmen überhaupt nicht zu" +msgstr "Trifft für unser Unternehmen überhaupt nicht zu" msgid "survey_value_1" -msgstr "trifft eher nicht zu" +msgstr "Trifft eher nicht zu" msgid "survey_value_2" -msgstr "trifft eher zu" +msgstr "Trifft eher zu" msgid "survey_value_3" -msgstr "trifft für unser Unternehmen voll und ganz zu" +msgstr "Trifft für unser Unternehmen voll und ganz zu" msgid "Evaluate Questionnaire" msgstr "Fragebogen auswerten" +msgid "Please answer at least $minAnswers questions." +msgstr "Bitte beantworten Sie mindestens $minAnswers Fragen." + +msgid "Please answer all questions." +msgstr "Bitte beantworten Sie alle Fragen." + +msgid "Please answer the obligatory questions marked with an asterisk." +msgstr "Bitte beantworten Sie die mit einem Stern markierten Pflichtfragen." + +msgid "Obligatory question, must be answered" +msgstr "Pflichtfrage, muss beantwortet werden" + # competence (qualification) msgid "Validity Period (Months)"