Ejemplo n.º 1
0
 def question_details(self, question_payload):
     new_question = question.Question()
     new_question.id = question_payload['QuestionID']
     new_question.name = question_payload['DataExportTag']
     new_question.prompt = self.strip_tags(question_payload['QuestionText'])
     new_question.type = question_payload['QuestionType']
     if question_payload.get('Selector') is not None:
         new_question.subtype = question_payload['Selector']
     return new_question
Ejemplo n.º 2
0
 def singleMulti_into_multiselect(self, multiselect_question, matching_MC):
     multiselect_question.question_order = matching_MC.response_order
     for response in matching_MC.responses:
         sub_question = question.Question()
         sub_question.name = '%s_x%s' % (multiselect_question.name, response.value)
         sub_question.id = '%s_%s' % (multiselect_question.id, response.value)
         sub_question.code = response.value
         sub_question.prompt = response.label
         sub_question.add_dynamic_response('1', 1)
         multiselect_question.add_question(sub_question)
Ejemplo n.º 3
0
 def matrix_into_multiselect(self, multiselect, matrix):
     multiselect.question_order = matrix.question_order
     for current_q in matrix.questions:
         sub_question = question.Question()
         sub_question.name = '%s_x%s' % (matrix.name, current_q.code)
         sub_question.id = '%s_%s' % (multiselect.id, current_q.code)
         sub_question.code = current_q.code
         sub_question.prompt = current_q.prompt
         sub_question.add_dynamic_response('1', 1)
         multiselect.add_question(sub_question)
Ejemplo n.º 4
0
 def multiselect_into_multiselect(self, dynamic_multi, matching_multi):
     dynamic_multi.question_order = matching_multi.question_order
     for sub_question in matching_multi.questions:
         current_q = question.Question()
         current_q.name = '%s_x%s' % (dynamic_multi.name, sub_question.code)
         current_q.id = '%s_%s' % (dynamic_multi.id, sub_question.code)
         current_q.code = sub_question.code
         current_q.prompt = sub_question.prompt
         for response in sub_question.responses:
             current_q.add_dynamic_response(response.label, response.value)
         dynamic_multi.add_question(current_q)
Ejemplo n.º 5
0
 def singleMulti_into_matrix(self, dynamic_matrix, matching_MC):
     dynamic_matrix.question_order = matching_MC.response_order
     for response in matching_MC.responses:
         sub_question = question.Question()
         sub_question.name = '%s_x%s' % (dynamic_matrix.name, response.value)
         sub_question.id = '%s_%s' % (dynamic_matrix.id, response.value)
         sub_question.code = response.value
         sub_question.prompt = response.label
         for sub_response in dynamic_matrix.temp_responses:
             sub_question.add_dynamic_response(sub_response.label, sub_response.value)
         dynamic_matrix.add_question(sub_question)
Ejemplo n.º 6
0
 def multiselect_into_matrix(self, dynamic_matrix, matching_multiselect):
     dynamic_matrix.question_order = matching_multiselect.question_order
     for current_q in matching_multiselect.questions:
         sub_question = question.Question()
         sub_question.name = '%s_x%s' % (dynamic_matrix.name, current_q.code)
         sub_question.id = '%s_%s' % (dynamic_matrix.id, current_q.code)
         sub_question.code = current_q.code
         sub_question.prompt = current_q.prompt
         for sub_responses in dynamic_matrix.temp_responses:
             sub_question.add_dynamic_response(sub_responses.label, sub_responses.value)
         dynamic_matrix.add_question(sub_question)
Ejemplo n.º 7
0
 def matrix_into_matrix(self, dynamic_matrix, matching_matrix):
     dynamic_matrix.question_order = matching_matrix.question_order
     for current_q in matching_matrix.questions:
         sub_question = question.Question()
         sub_question.name ='%s_x%s' % (dynamic_matrix.name, current_q.code)
         sub_question.id = '%s_%s' % (dynamic_matrix.name, current_q.code)
         sub_question.code = current_q.code
         sub_question.prompt = current_q.prompt
         for response in current_q.responses:
             sub_question.add_dynamic_response(response.label, response.value)
         dynamic_matrix.add_question(sub_question)
Ejemplo n.º 8
0
 def question_details(self, question_payload, constant_sum):
     for code, parent_question in question_payload['Choices'].items():
         sub_question = question.Question()
         sub_question.id = '%s_%s' % (constant_sum.id, code)
         sub_question.code = code
         sub_question.type = question_payload['QuestionType']
         sub_question.subtype = question_payload['Selector']
         sub_question.name = '%s_%s' % (constant_sum.name, code)
         sub_question.prompt = parent_question['Display']
         sub_question.add_response(sub_question.prompt, sub_question.code)
         constant_sum.add_question(sub_question)
Ejemplo n.º 9
0
 def question_details(self, question_payload, multiple_select):
     for code, parent_question in question_payload['Choices'].items():
         sub_question = question.Question()
         sub_question.id = '%s_%s' % (multiple_select.id, code)
         sub_question.code = code
         sub_question.type = question_payload['QuestionType']
         sub_question.subtype = question_payload['Selector']
         sub_question.name = '%s_%s' % (multiple_select.name, code)
         sub_question.prompt = self.convert_prompt_from_byte_str(parent_question['Display'].encode('ascii', 'ignore'))
         sub_question.add_response('1',1)
         multiple_select.add_question(sub_question)
Ejemplo n.º 10
0
 def question_details(self, hotspot, question_payload):
     for code, current_question in question_payload['Choices'].items():
         sub_question = question.Question()
         sub_question.id = '%s_%s' % (hotspot.id, code)
         sub_question.code = code
         sub_question.type = question_payload['QuestionType']
         sub_question.subtype = question_payload['Selector']
         sub_question.name = '%s_%s' % (hotspot.name, code)
         sub_question.prompt = current_question['Display']
         sub_question.add_response('0','1')
         sub_question.add_response('1','2')
         hotspot.add_question(sub_question)
Ejemplo n.º 11
0
 def constantsum_match(self, dynamic_question, questions):
     matching_question = next((question for question in questions \
                          if question.id == dynamic_question.carry_forward_question_id), None)
     if matching_question.type == "CompositeMultipleSelect":
         dynamic_question.question_order = matching_question.question_order
         for current_q in matching_question.questions:
             sub_question = question.Question()
             sub_question.name ='%s_x%s' % (dynamic_question.name, current_q.code)
             sub_question.id = '%s_%s' % (dynamic_question.name, current_q.code)
             sub_question.code = current_q.code
             sub_question.prompt = current_q.prompt
             for response in current_q.responses:
                 sub_question.add_dynamic_response(response.label, response.value)
             dynamic_question.add_question(sub_question)
Ejemplo n.º 12
0
    def question_details(self, code, prompt, question_payload, responses):
        new_question = question.Question()
        new_question.id = '%s_%s' % (str(question_payload['QuestionID']), code)
        new_question.code = code
        new_question.type = question_payload['QuestionType']
        if question_payload.get('SubSelector') is None:
            pass
        else:
            new_question.subtype = question_payload['SubSelector']
        if question_payload['ChoiceDataExportTags']:
            new_question.name = question_payload['ChoiceDataExportTags'][code]    
        else:
            new_question.name = '%s_%s' % (str(question_payload['DataExportTag']), code)
        new_question.prompt = self.strip_tags(prompt['Display'].encode('ascii', 'ignore'))
        new_question.response_order = question_payload['AnswerOrder']

        for code, response in responses.items():
            try:
                response_name = self.strip_tags(response['Display'].encode('ascii','ignore'))
                new_question.add_response(response_name, code)
            except:
                pass
        return new_question
Ejemplo n.º 13
0
 def create_questions(self, question_data):
     questions = question.Questions()
     for response_row in question_data:
         question_name = response_row['variable']
         question_prompt = response_row['prompt']
         matching_question = questions.find_by_name(question_name)
         if matching_question:
             if response_row.get('value'):
                 value = response_row['value']
             else:
                 value = '1'                    
             matching_question.add_response(response_row['label'], value)
         else:
             new_question = question.Question()
             new_question.name = question_name
             new_question.prompt = question_prompt
             if response_row.get('value'):
                 value = response_row['value']
             else:
                 value = '1'
             new_question.add_response(response_row['label'], value)
             questions.add(new_question)
     return questions