version 1.1, 1999/09/28 21:25:37
|
version 1.2, 1999/10/15 14:29:34
|
Line 44 proc runCapaTools { classDirConfigFile }
|
Line 44 proc runCapaTools { classDirConfigFile }
|
$utilsMenu add command -label "Analyze Class Report" -command "CTanalyzeReport $num" |
$utilsMenu add command -label "Analyze Class Report" -command "CTanalyzeReport $num" |
$utilsMenu add command -label "Analyze Responses" -command "CTanalyzeScorer $num" |
$utilsMenu add command -label "Analyze Responses" -command "CTanalyzeScorer $num" |
$utilsMenu add command -label "Graph a Responses Analysis" -command "CTgraphAnalyzeScorer $num" |
$utilsMenu add command -label "Graph a Responses Analysis" -command "CTgraphAnalyzeScorer $num" |
|
$utilsMenu add command -label "Discussion Stats" -command "CTdiscussStats $num" |
$utilsMenu add command -label "Quit" -command "CTquit $num" |
$utilsMenu add command -label "Quit" -command "CTquit $num" |
$utilsMenu post 0 0 |
$utilsMenu post 0 0 |
Centre_Dialog $utilsMenu default |
Centre_Dialog $utilsMenu default |
Line 672 proc CTgraphAnalyzeScorer { num } {
|
Line 673 proc CTgraphAnalyzeScorer { num } {
|
} |
} |
|
|
########################################################### |
########################################################### |
|
# CTdiscussStats |
|
########################################################### |
|
########################################################### |
|
########################################################### |
|
proc CTdiscussStats { num } { |
|
global gCT gUniqueNumber gFile |
|
set cmdnum [incr gUniqueNumber] |
|
set gCT(cmd.$cmdnum) discussstats |
|
set file [file join $gFile($num) discussion logs access.log] |
|
displayStatus "Generating discussion Stats" both $cmdnum |
|
CTdiscussForum $cmdnum $file $gFile($num) |
|
CToutput $num $cmdnum |
|
removeStatus $cmdnum |
|
unset gCT(cmd.$cmdnum) |
|
} |
|
|
|
########################################################### |
# CTquit |
# CTquit |
########################################################### |
########################################################### |
########################################################### |
########################################################### |
Line 2605 proc CTcreateSubset { num cmdnum day set
|
Line 2623 proc CTcreateSubset { num cmdnum day set
|
catch {unset answerArray} |
catch {unset answerArray} |
catch {unset exist} |
catch {unset exist} |
} |
} |
|
|
|
########################################################### |
|
# CTdiscussForum |
|
########################################################### |
|
########################################################### |
|
########################################################### |
|
proc CTdiscussForum { num file dir } { |
|
global gCT gFile |
|
|
|
set fileId [open $file r] |
|
set maxLine [lindex [exec wc $file] 0] |
|
set aline [gets $fileId] |
|
set last 0 |
|
set line_cnt 0 |
|
while {![eof $fileId]} { |
|
incr line_cnt |
|
if { ($line_cnt%20) == 0 } { updateStatusBar [expr $line_cnt/double($maxLine)] $num } |
|
foreach {stunum capaid name email action set prob date time} [split $aline "|"] {} |
|
if { $action == "ViewProblem" } { |
|
if { [catch {incr count($set,$prob)}]} { |
|
set count($set,$prob) 1 |
|
if { $set > $last } { set last $set } |
|
if { [catch {set max($set)}]} { set max($set) 0 } |
|
if { $prob > $max($set)} { set max($set) $prob } |
|
if { [catch {set posts($set,$prob) [llength [glob $dir/discussion/$set/[format "%06d" $prob]-*-*-*.msg]]}]} { set posts($set,$prob) 0 } |
|
} |
|
set ever($name) 1 |
|
set names($set,$name) 1 |
|
set nameprob($set,$prob,$name) 1 |
|
} |
|
set aline [gets $fileId] |
|
} |
|
|
|
updateStatusMessage "Generating Output" $num |
|
updateStatusBar 0 $num |
|
for {set i 1} { $i <= $last } { incr i } { |
|
updateStatusBar [expr $i/$last] $num |
|
#if { [catch {set max($i)}]} { break } |
|
set total($i) 0 |
|
for {set j 1} { $j < $max($i) } { incr j } { |
|
set message "" |
|
if {[catch {set message "Set [format %2d $i] Problem [format %3d $j] [format %3d $posts($i,$j)] reponses, viewed [format %4d $count($i,$j)] times, "} ]} { continue } |
|
incr total($i) $count($i,$j) |
|
if { [catch { set ratio [expr $count($i,$j)/double($posts($i,$j))]} error]} { |
|
append message "ratio [format %5s [format %3.1f 0]]" |
|
} else { |
|
append message "ratio [format %5s [format %3.1f $ratio]]" |
|
} |
|
append message " from [format %3d [llength [array names nameprob $i,$j,*]]] viewers\n" |
|
CTputs $num $message |
|
} |
|
CTputs $num "Total views for set $i: $total($i)\n" |
|
} |
|
|
|
for {set i 1} { 1 } { incr i } { |
|
if { [catch {set max($i)}]} { break } |
|
CTputs $num "For set $i Num viewers:[llength [array names names $i,*]] causing $total($i) views.\n" |
|
} |
|
close $fileId |
|
CTputs $num "Total # of unique visitors [llength [array names ever]]\n" |
|
#IDEAS: stick into capastats |
|
# : howmany viws are repeats |
|
# : Student Course Profile, add #ViewProblems #Posts |
|
# : add some portion of these stats to analyze log files? |
|
} |
|
|