xowf::test_item::Question_manager method get_pool_questions (public)
<instance of xowf::test_item::Question_manager> get_pool_questions \ [ -allowed_forms allowed_forms ] [ -field_name field_name ] \ pool_question_obj exam_question_names
Defined in packages/xowf/tcl/test-item-procs.tcl
Obtain for the specs in the pool_question_obj potential replacement items in form of a replacement dict. For raw forms (i.e., not obtained via the renaming form-loader), we have just the plain "answer", which can be provided via the "field_name" attribute.
- Switches:
- -allowed_forms (optional, defaults to
"en:edit-interaction.wf"
)- -field_name (optional)
- Parameters:
- pool_question_obj (required)
- exam_question_names (required)
- Testcases:
- No testcase defined.
Source code: set query_dict [:fc_to_dict [$pool_question_obj property form_constraints]] if {$field_name eq ""} { # # No field name was provided, so get the field name from the # question obj. # set field_name [:FL form_name_based_attribute_stem [$pool_question_obj name]] if {![dict exists $query_dict $field_name]} { # # Fall back to field_name "answer". This will be necessary, # when called with question_objs not adapted by the renaming # form-loader. # if {[dict exists $query_dict answer]} { ns_log notice "get_pool_questions: fallback from field_name '$field_name' to 'answer'" set field_name answer } } } elseif {![dict exists $query_dict $field_name]} { ns_log warning "QM get_pool_questions: the provided field name '$field_name'" "is not defined in the form_constraints, fall back to '[lindex [dict keys $query_dict] 0]'" set field_name [lindex [dict keys $query_dict] 0] } set question_attributes [dict get [$pool_question_obj instance_attributes] question] set minutes [dict get $question_attributes question.minutes] set points [dict get $question_attributes question.points] set fc_dict [dict get $query_dict $field_name] set lang [string range [$pool_question_obj nls_language] 0 1] append key test-item-replacement-cands - $minutes - $points - $lang - $fc_dict - [$pool_question_obj revision_id] ns_log notice "get_pool_questions fetch via key: '$key'" return [ns_cache_eval -expires 1m -- ns:memoize $key { :get_pool_replacement_candidates -minutes $minutes -points $points -fc_dict $fc_dict -lang $lang $pool_question_obj }]XQL Not present: Generic, PostgreSQL, Oracle