Index: openacs-4/packages/xowf/catalog/xowf.de_DE.ISO-8859-1.xml =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowf/catalog/xowf.de_DE.ISO-8859-1.xml,v diff -u -N -r1.2.2.25 -r1.2.2.26 --- openacs-4/packages/xowf/catalog/xowf.de_DE.ISO-8859-1.xml 22 Apr 2020 19:56:26 -0000 1.2.2.25 +++ openacs-4/packages/xowf/catalog/xowf.de_DE.ISO-8859-1.xml 25 Apr 2020 21:35:12 -0000 1.2.2.26 @@ -80,6 +80,7 @@ Schlie�e Einsicht f�r Studierende Teilnehmer + Teilnehmer Teilnehmer haben diese Frage beantwortet Bitte beantworten Sie Ergebnisse Index: openacs-4/packages/xowf/catalog/xowf.en_US.ISO-8859-1.xml =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowf/catalog/xowf.en_US.ISO-8859-1.xml,v diff -u -N -r1.2.2.23 -r1.2.2.24 --- openacs-4/packages/xowf/catalog/xowf.en_US.ISO-8859-1.xml 22 Apr 2020 19:56:26 -0000 1.2.2.23 +++ openacs-4/packages/xowf/catalog/xowf.en_US.ISO-8859-1.xml 25 Apr 2020 21:35:12 -0000 1.2.2.24 @@ -49,6 +49,7 @@ Testrun Please answer Participant + Participants participants answered this question Results Show Results 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.23 -r1.1.2.24 --- openacs-4/packages/xowf/lib/inclass-exam.wf 22 Apr 2020 19:56:26 -0000 1.1.2.23 +++ openacs-4/packages/xowf/lib/inclass-exam.wf 25 Apr 2020 21:35:12 -0000 1.1.2.24 @@ -42,6 +42,7 @@ # - "poll" (for teachers), # - "print-answers" (for teachers), # - "print-answer-table" (for teachers), +# - "print-participants" (for teachers), # - "delete" (for teachers), # - "qrcode" (for teachers) # @@ -214,12 +215,14 @@ set lLink "$wf_pretty_link?m=list" set pLink1 [$obj pretty_link -query m=print-answers] set pLink2 [$obj pretty_link -query m=print-answer-table] + set pLink3 [$obj pretty_link -query m=print-participants] set menu "\[" if {[acs_user::site_wide_admin_p -user_id [::xo::cc user_id]]} { append menu "#xowf.online-exam-exam_instances#, " } append menu \ + "#xowf.Participants#, " \ "#xowf.online-exam-protocol#, " \ "#xowf.online-exam-results-table#\]" } @@ -351,7 +354,6 @@ # :proc www-print-answer-table {} { set HTML "" - set ctx [::xowf::Context require [self]] set wf [xowf::test_item::answer_manager get_answer_wf [self]] if {$wf ne ""} { #set form_info [::xowf::test_item::question_manager combined_question_form -with_numbers [self]] @@ -382,6 +384,41 @@ } ######################################################################## + # web-callable method "print-participants" + # + # Print participants in a tabular form. + # + :proc www-print-participants {} { + set HTML "" + set wf [xowf::test_item::answer_manager get_answer_wf [self]] + if {$wf ne ""} { + + set items [xowf::test_item::answer_manager get_wf_instances $wf] + set items2 [$items deep_copy] + foreach i [$items2 children] { + $i set online-exam-userName [acs_user::get_element -user_id [$i creation_user] -element username] + $i set online-exam-fullName [::xo::get_user_name [$i creation_user]] + } + set HTML [::xowf::test_item::answer_manager participants_table \ + -package_id ${:package_id} \ + -items $items2 \ + -state * \ + [self]] + $items2 destroy + } + if {$HTML eq ""} { + set HTML "#xowiki.no_data#" + } else { + set HTML "

#xowf.Participants#

$HTML" + } + set return_url [[$wf package_id] query_parameter local_return_url:localurl [:pretty_link]] + append HTML "

#xowiki.back#

\n" + + :www-view $HTML + + } + + ######################################################################## # web-callable method "view-my-exam " # # Provide feedback to the student about the results. Index: openacs-4/packages/xowf/lib/online-exam.wf =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowf/lib/online-exam.wf,v diff -u -N -r1.6.2.24 -r1.6.2.25 --- openacs-4/packages/xowf/lib/online-exam.wf 8 Mar 2020 17:21:50 -0000 1.6.2.24 +++ openacs-4/packages/xowf/lib/online-exam.wf 25 Apr 2020 21:35:12 -0000 1.6.2.25 @@ -272,7 +272,7 @@ $i set online-exam-userName [acs_user::get_element -user_id [$i creation_user] -element username] $i set online-exam-fullName [::xo::get_user_name [$i creation_user]] } - set HTML [::xowf::test_item::answer_manager result_table \ + set HTML [::xowf::test_item::answer_manager results_table \ -package_id ${:package_id} \ -items $items2 \ [self]] Index: openacs-4/packages/xowf/tcl/test-item-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowf/tcl/test-item-procs.tcl,v diff -u -N -r1.7.2.51 -r1.7.2.52 --- openacs-4/packages/xowf/tcl/test-item-procs.tcl 22 Apr 2020 20:17:59 -0000 1.7.2.51 +++ openacs-4/packages/xowf/tcl/test-item-procs.tcl 25 Apr 2020 21:35:12 -0000 1.7.2.52 @@ -1141,7 +1141,8 @@ # # - marked_results # - answers_panel - # - result_table + # - results_table + # - participants_table # - revisions_up_to # @@ -1592,7 +1593,7 @@ } - :public method result_table { + :public method results_table { -package_id:integer -items:object,required {-view_all_method print-answers} @@ -1732,6 +1733,89 @@ return $HTML } + :public method participants_table { + -package_id:integer + -items:object,required + {-view_all_method print-answers} + {-state done} + wf:object + } { + + set form_field_objs {} + lappend form_field_objs \ + [$wf create_raw_form_field \ + -name _online-exam-userName \ + -spec text,label=#xowf.participant#] \ + [$wf create_raw_form_field \ + -name _online-exam-fullName \ + -spec text,label=#acs-subsite.Name#] \ + [$wf create_raw_form_field \ + -name _online-exam-seconds \ + -spec number,label=#xowf.Seconds#] \ + [$wf create_raw_form_field \ + -name _creation_date \ + -spec date,label=#xowiki.Page-last_modified#] + + # + # Take "orderby" from the query parameter. If not set, order by + # the first field. + # + set orderby [::$package_id query_parameter orderby:token ""] + if {$orderby eq "" && [llength $form_field_objs] > 0} { + set orderby [[lindex $form_field_objs 0] name],asc + } + + # + # Create table widget. + # + set table_widget [::xowiki::TableWidget create_from_form_fields \ + -package_id $package_id \ + -form_field_objs $form_field_objs \ + -orderby $orderby] + # + # Extend properties of every answer with corresponding ".score" + # values. + # + foreach p [$items children] { + + #foreach ff_obj $answer_form_field_objs { + # $ff_obj object $p + # set property [$ff_obj name] + # $ff_obj value [$p property $property] + #} + + set duration [:get_duration [$p get_revision_sets]] + $p set_property -new 1 _online-exam-seconds \ + [expr {[dict get $duration toClock] - [dict get $duration fromClock]}] + } + + if {$state eq "done"} { + set uc {tcl {[$p state] ne "done"}} + } else { + set uc {tcl {false}} + } + + # + # Render table widget with extended properties. + # + set HTML [$table_widget render_page_items_as_table \ + -package_id $package_id \ + -items $items \ + -form_field_objs $form_field_objs \ + -csv true \ + -uc $uc \ + -view_field _online-exam-userName \ + -view_filter_link [$wf pretty_link -query m=$view_all_method] \ + {*}[expr {[info exists generate] ? [list -generate $generate] : ""}] \ + -return_url [ad_return_url] \ + -return_url_att local_return_url \ + ] + $table_widget destroy + return $HTML + } + + + :public method marked_results {-obj:object -wf:object form_info} { set form_field_objs [:answer_form_field_objs -wf $wf $form_info] @@ -1936,16 +2020,6 @@ return [:load_question_objs $obj [:current_question_name $obj]] } - - :public method shuffled_question_objs {obj:object shuffle_id} { - set form_objs [:question_objs $obj] - set result {} - foreach i [::xowiki::randomized_indices -seed $shuffle_id [llength $form_objs]] { - lappend result [lindex $form_objs $i] - } - return $result - } - :public method shuffled_index {{-shuffle_id:integer -1} obj:object position} { if {$shuffle_id > -1} { set form_objs [:question_objs $obj] @@ -2290,6 +2364,7 @@ edit admin print-answers admin print-answer-table admin + print-participants admin delete admin qrcode admin make-live-revision admin