rearrange answer options; allow for unanswered questions; intermediate question group headings
This commit is contained in:
		
							parent
							
								
									ac144b99a3
								
							
						
					
					
						commit
						74988c1834
					
				
					 5 changed files with 86 additions and 42 deletions
				
			
		| 
						 | 
				
			
			@ -52,6 +52,7 @@ class SurveyView(ConceptView):
 | 
			
		|||
                if key.startswith('question_'):
 | 
			
		||||
                    uid = key[len('question_'):]
 | 
			
		||||
                    question = adapted(self.getObjectForUid(uid))
 | 
			
		||||
                    if value != 'none':
 | 
			
		||||
                        value = int(value)
 | 
			
		||||
                        self.data[uid] = value
 | 
			
		||||
                        response.values[question] = value
 | 
			
		||||
| 
						 | 
				
			
			@ -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))]
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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.'),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7,7 +7,7 @@
 | 
			
		|||
  <metal:title use-macro="item/conceptMacros/concepttitle" />
 | 
			
		||||
  <div tal:condition="feedback">
 | 
			
		||||
    <h3 i18n:translate="">Feedback</h3>
 | 
			
		||||
    <table>
 | 
			
		||||
    <table class="listing">
 | 
			
		||||
      <tr>
 | 
			
		||||
        <th i18n:translate="">Category</th>
 | 
			
		||||
        <th i18n:translate="">Response</th>
 | 
			
		||||
| 
						 | 
				
			
			@ -23,23 +23,22 @@
 | 
			
		|||
  </div>
 | 
			
		||||
  <h3 i18n:translate="">Questionnaire</h3>
 | 
			
		||||
  <form method="post">
 | 
			
		||||
    <table>
 | 
			
		||||
    <table class="listing">
 | 
			
		||||
      <tal:qugroup repeat="qugroup item/adapted/questionGroups">
 | 
			
		||||
        <tr>
 | 
			
		||||
        <th></th>
 | 
			
		||||
        <th>
 | 
			
		||||
          <table>
 | 
			
		||||
            <tr>
 | 
			
		||||
              <td i18n:translate="">Does not apply</td>
 | 
			
		||||
              <td style="text-align: right"
 | 
			
		||||
          <td><b tal:content="qugroup/title" /></td>
 | 
			
		||||
          <td style="text-align: center"
 | 
			
		||||
              i18n:translate="">No answer</td>
 | 
			
		||||
          <td colspan="2"
 | 
			
		||||
              i18n:translate="">Fully applies</td>
 | 
			
		||||
          <td colspan="2"
 | 
			
		||||
              style="text-align: right"
 | 
			
		||||
              i18n:translate="">Does not apply</td>
 | 
			
		||||
        </tr>
 | 
			
		||||
          </table>
 | 
			
		||||
        </th>
 | 
			
		||||
      </tr>
 | 
			
		||||
      <tr tal:repeat="question item/adapted/questions">
 | 
			
		||||
        <tr tal:repeat="question qugroup/questions">
 | 
			
		||||
          <td tal:content="question/text" />
 | 
			
		||||
        <td style="white-space: nowrap">
 | 
			
		||||
          <span tal:repeat="value python:item.getValues(question)"> 
 | 
			
		||||
          <td style="white-space: nowrap; text-align: center"
 | 
			
		||||
              tal:repeat="value python:item.getValues(question)">
 | 
			
		||||
              <input type="radio"
 | 
			
		||||
                     i18n:attributes="title"         
 | 
			
		||||
                     tal:attributes="
 | 
			
		||||
| 
						 | 
				
			
			@ -47,9 +46,9 @@
 | 
			
		|||
                          value value/value;
 | 
			
		||||
                          checked value/checked;
 | 
			
		||||
                          title string:survey_value_${value/value}" /> 
 | 
			
		||||
          </span>
 | 
			
		||||
          </td>
 | 
			
		||||
        </tr>
 | 
			
		||||
      </tal:qugroup>
 | 
			
		||||
    </table>
 | 
			
		||||
    <br />
 | 
			
		||||
    <input type="submit" name="submit" value="Evaluate Questionnaire"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -3,7 +3,7 @@ msgstr ""
 | 
			
		|||
 | 
			
		||||
"Project-Id-Version: 0.13.0\n"
 | 
			
		||||
"POT-Creation-Date: 2007-05-22 12:00 CET\n"
 | 
			
		||||
"PO-Revision-Date: 2013-03-07 12:00 CET\n"
 | 
			
		||||
"PO-Revision-Date: 2013-03-18 12:00 CET\n"
 | 
			
		||||
"Last-Translator: Helmut Merz <helmutm@cy55.de>\n"
 | 
			
		||||
"Language-Team: loops developers <helmutm@cy55.de>\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)"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue