コード例 #1
0
 def test_func(self):
     root = self.fixture()
     request = testing.DummyRequest()
     init_request_methods(request)
     request.root = root
     question_type = self._fut(request, root['questions']['q1'])
     self.assertTrue(IQuestionType.providedBy(question_type))
コード例 #2
0
def get_question_widget(request, context):
    """
    :param context: Question or QuestionType instance.
    :return: QuestionWidget instance specified by the QuestionType.
    """
    if IQuestion.providedBy(context):
        context = get_question_type(request, context)
    if not IQuestionType.providedBy(context):
        raise TypeError("context must be a Question or QuestionType object") #pragma: no coverage
    return request.registry.queryAdapter(context, IQuestionWidget, name = context.input_widget)
コード例 #3
0
def get_all_choices(question, request, only_from_type = False, locale_name = None, include_omitted = False):
    """
    :return: Choice objects
    :rtype: List
    """
    if locale_name == None:
        locale_name = request.locale_name
    question_type = None
    if IQuestion.providedBy(question):
        question_type = request.get_question_type(question)
    elif IQuestionType.providedBy(question):
        question_type = question
        question = None
    else:
        raise TypeError("question must be either a QuestionType or Question object.")
    #Get from type
    choices = list(question_type.get_choices(locale_name))
    if question and only_from_type == False:
        choices.extend(question.get_choices(locale_name))
    if include_omitted == False:
        choices = [x for x in choices if x.omit_from_score_count == False]
    return choices
コード例 #4
0
 def question_type(self):
     if IQuestionType.providedBy(self.context):
         return self.context
     return self.resolve_uid(self.context.question_type)