Index: openacs-4/packages/xowf/lib/inclass-exam.wf =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowf/lib/Attic/inclass-exam.wf,v diff -u -N -r1.1.2.69 -r1.1.2.70 --- openacs-4/packages/xowf/lib/inclass-exam.wf 2 May 2021 11:54:48 -0000 1.1.2.69 +++ openacs-4/packages/xowf/lib/inclass-exam.wf 5 May 2021 12:26:10 -0000 1.1.2.70 @@ -493,336 +493,31 @@ # Print the answers in a somewhat printer friendly way. # :proc www-print-answers {} { - set as_student [:query_parameter as_student:boolean 0] - set filter_id [:query_parameter id:integer ""] - set creation_user [:query_parameter creation_user:integer ""] - set revision_id [:query_parameter rid:integer ""] - set form_objs [:query_parameter fos:integer ""] - set export [:query_parameter export:boolean 0] - set grading [:query_parameter grading:alnum ""] + template::head::add_link -rel stylesheet -href /resources/xowf/test-item.css + + set as_student [:query_parameter as_student:boolean false] + set d [xowf::test_item::answer_manager render_answers \ + -as_student $as_student \ + -filter_id [:query_parameter id:integer ""] \ + -creation_user [:query_parameter creation_user:integer ""] \ + -revision_id [:query_parameter rid:integer ""] \ + -form_objs [:query_parameter fos:integer ""] \ + -export [:query_parameter export:boolean 0] \ + -grading [:query_parameter grading:alnum ""] \ + -with_grading_table [expr {!$as_student}] \ + [self]] - set combined_form_info [::xowf::test_item::question_manager combined_question_form [self]] - set autograde [dict get $combined_form_info autograde] - set totalPoints [::xowf::test_item::question_manager total_points \ - -max_items [:property max_items ""] \ - $combined_form_info] - if {$form_objs ne "" && $form_objs ni [dict get $combined_form_info question_objs]} { - ns_log warning "inclass-exam: ignore invalid form_obj '$form_objs';" \ - "valid [dict get $combined_form_info question_objs]" + set do_stream [dict get $d do_stream] + set HTML [dict get $d HTML] + + if {$do_stream == 0 && $HTML eq ""} { + set HTML "#xowiki.no_data#" } - # - # The management of the grading scheme has to be extended. For the - # time being, we have a single grading scheme with the option to - # round to full points or not. When an exam has less than 40 - # points, we do not round per default, since this rounding could - # provide more than 1 percent of the result. This should be made - # configurable (also in www-print-answer-table, which is not used - # right now). - # - if {$grading eq ""} { - set grading [expr {$totalPoints < 40 ? "wi1_noround" : "wi1"}] - } - - set grading_scheme ::xowf::test_item::grading::$grading - if {[info commands $grading_scheme] eq ""} { - set grading_scheme ::xowf::test_item::grading::wi1 - } - #ns_log notice "USE grading_scheme $grading_scheme" - - set grade_dict {} - set grade_csv "" - - # - # Provide quick mapping from the mangled attribute name to the question obj. - # - set nameToQuestionObj [xowf::test_item::renaming_form_loader \ - name_to_question_obj_dict \ - [dict get $combined_form_info question_objs]] - - set ctx [::xowf::Context require [self]] - set wf [xowf::test_item::answer_manager get_answer_wf [self]] - - if {$wf ne ""} { - - set items [xowf::test_item::answer_manager get_wf_instances \ - {*}[expr {$creation_user ne "" ? "-creation_user $creation_user" : ""}] \ - {*}[expr {$filter_id ne "" ? "-item_id $filter_id" : ""}] \ - $wf] - set withSignature [expr {[dict exists ${:instance_attributes} signature] - ? [dict get ${:instance_attributes} signature] - : 0 }] - set examTitle ${:title} - set do_stream [expr {[llength [$items children]] > 100}] - - # - # Add a simple print button for the unaware that makes it easy - # to print the exam protocol to PDF and use e.g. a pdf-tool to - # annotate free text answers. - # - set HTML { - - } - - template::add_event_listener \ - -id print-button \ - -event click \ - -preventdefault=false \ - -script "window.print();" - append HTML [template::collect_body_scripts] - - ::xo::cc set_parameter template_file view-plain-master - ::xo::cc set_parameter MenuBar 0 - template::head::add_link -rel stylesheet -href /resources/xowf/test-item.css - - if {[llength $form_objs] > 0} { - append HTML "
[xowf::test_item::answer_manager grading_table -csv $grade_csv $grade_dict]
- } - set return_url [:query_parameter local_return_url:localurl [:pretty_link]] append HTML "