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