version 1.68, 2003/09/30 11:41:06
|
version 1.75, 2003/11/20 20:21:17
|
Line 54 use Apache::lonstatistics;
|
Line 54 use Apache::lonstatistics;
|
use Apache::lonhtmlcommon; |
use Apache::lonhtmlcommon; |
use Apache::loncoursedata; |
use Apache::loncoursedata; |
use Apache::lonnet; # for logging porpoises |
use Apache::lonnet; # for logging porpoises |
|
use Apache::lonlocal; |
use Spreadsheet::WriteExcel; |
use Spreadsheet::WriteExcel; |
|
|
####################################################### |
####################################################### |
Line 138 Inputs:
|
Line 139 Inputs:
|
####################################################### |
####################################################### |
sub BuildStudentAssessmentPage { |
sub BuildStudentAssessmentPage { |
my ($r,$c)=@_; |
my ($r,$c)=@_; |
|
# |
undef($Statistics); |
undef($Statistics); |
undef($show_links); |
undef($show_links); |
undef($output_mode); |
undef($output_mode); |
Line 146 sub BuildStudentAssessmentPage {
|
Line 147 sub BuildStudentAssessmentPage {
|
undef($base); |
undef($base); |
undef($datadescription); |
undef($datadescription); |
undef($single_student_mode); |
undef($single_student_mode); |
|
# |
|
my %Saveable_Parameters = ('Status' => 'scalar', |
|
'chartoutputmode' => 'scalar', |
|
'chartoutputdata' => 'scalar', |
|
'Section' => 'array', |
|
'StudentData' => 'array', |
|
'Maps' => 'array'); |
|
&Apache::loncommon::store_course_settings('chart',\%Saveable_Parameters); |
|
&Apache::loncommon::restore_course_settings('chart',\%Saveable_Parameters); |
|
# |
|
&Apache::lonstatistics::PrepareClasslist(); |
|
# |
$single_student_mode = 0; |
$single_student_mode = 0; |
$single_student_mode = 1 if ($ENV{'form.SelectedStudent'}); |
$single_student_mode = 1 if ($ENV{'form.SelectedStudent'}); |
if ($ENV{'form.selectstudent'}) { |
if ($ENV{'form.selectstudent'}) { |
Line 200 sub BuildStudentAssessmentPage {
|
Line 212 sub BuildStudentAssessmentPage {
|
# are immediately reflected in the chart. |
# are immediately reflected in the chart. |
&Apache::lonnet::clear_EXT_cache_status(); |
&Apache::lonnet::clear_EXT_cache_status(); |
# |
# |
|
# Clean out loncoursedata's package data, just to be safe. |
|
&Apache::loncoursedata::clear_internal_caches(); |
|
# |
# Call the initialize routine selected above |
# Call the initialize routine selected above |
$initialize->($r); |
$initialize->($r); |
foreach my $student (@Students) { |
foreach my $student (@Students) { |
Line 302 sub CreateInterface {
|
Line 317 sub CreateInterface {
|
# $Str .= &CreateLegend(); |
# $Str .= &CreateLegend(); |
$Str .= '<table cellspacing="5">'."\n"; |
$Str .= '<table cellspacing="5">'."\n"; |
$Str .= '<tr>'; |
$Str .= '<tr>'; |
$Str .= '<td align="center"><b>Sections</b></td>'; |
$Str .= '<td align="center"><b>'.&mt('Sections').'</b></td>'; |
$Str .= '<td align="center"><b>Student Data</b></td>'; |
$Str .= '<td align="center"><b>'.&mt('Student Data</b>').'</td>'; |
$Str .= '<td align="center"><b>Enrollment Status</b></td>'; |
$Str .= '<td align="center"><b>'.&mt('Enrollment Status').'</b></td>'; |
$Str .= '<td align="center"><b>Sequences and Folders</b></td>'; |
$Str .= '<td align="center"><b>'.&mt('Sequences and Folders').'</b></td>'; |
$Str .= '<td align="center"><b>Output Format</b>'. |
$Str .= '<td align="center"><b>'.&mt('Output Format').'</b>'. |
&Apache::loncommon::help_open_topic("Chart_Output_Formats"). |
&Apache::loncommon::help_open_topic("Chart_Output_Formats"). |
'</td>'; |
'</td>'; |
$Str .= '<td align="center"><b>Output Data</b>'. |
$Str .= '<td align="center"><b>'.&mt('Output Data').'</b>'. |
&Apache::loncommon::help_open_topic("Chart_Output_Data"). |
&Apache::loncommon::help_open_topic("Chart_Output_Data"). |
'</td>'; |
'</td>'; |
$Str .= '</tr>'."\n"; |
$Str .= '</tr>'."\n"; |
Line 338 sub CreateInterface {
|
Line 353 sub CreateInterface {
|
$Str .= &CreateAndParseOutputDataSelector(); |
$Str .= &CreateAndParseOutputDataSelector(); |
$Str .= '</td></tr>'."\n"; |
$Str .= '</td></tr>'."\n"; |
$Str .= '</table>'."\n"; |
$Str .= '</table>'."\n"; |
$Str .= '<input type="submit" value="Generate Chart" />'; |
$Str .= '<input type="submit" name="Generate Chart" value="'. |
|
&mt('Generate Chart').'" />'; |
$Str .= ' 'x5; |
$Str .= ' 'x5; |
$Str .= '<input type="submit" name="selectstudent" '. |
$Str .= '<input type="submit" name="selectstudent" value="'. |
'value="Select One Student" />'; |
&mt('Select One Student').'" />'; |
$Str .= ' 'x5; |
$Str .= ' 'x5; |
$Str .= '<input type="submit" name="ClearCache" value="Clear Caches" />'; |
$Str .= '<input type="submit" name="ClearCache" value="'. |
|
&mt('Clear Caches').'" />'; |
$Str .= ' 'x5; |
$Str .= ' 'x5; |
$Str .= '<br />'; |
$Str .= '<br />'; |
return $Str; |
return $Str; |
Line 416 sub OutputDescriptions {
|
Line 433 sub OutputDescriptions {
|
sub CreateAndParseOutputSelector { |
sub CreateAndParseOutputSelector { |
my $Str = ''; |
my $Str = ''; |
my $elementname = 'chartoutputmode'; |
my $elementname = 'chartoutputmode'; |
|
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
|
[$elementname]); |
# |
# |
# Format for output options is 'mode, restrictions'; |
# Format for output options is 'mode, restrictions'; |
my $selected = 'html, without links'; |
my $selected = 'html, without links'; |
Line 442 sub CreateAndParseOutputSelector {
|
Line 461 sub CreateAndParseOutputSelector {
|
foreach my $option (@OutputOptions) { |
foreach my $option (@OutputOptions) { |
$Str .= "\n".' <option value="'.$option->{'value'}.'"'; |
$Str .= "\n".' <option value="'.$option->{'value'}.'"'; |
$Str .= " selected " if ($option->{'value'} eq $selected); |
$Str .= " selected " if ($option->{'value'} eq $selected); |
$Str .= ">".$option->{'name'}."<\/option>"; |
$Str .= ">".&mt($option->{'name'})."<\/option>"; |
} |
} |
$Str .= "\n</select>"; |
$Str .= "\n</select>"; |
return $Str; |
return $Str; |
Line 453 sub CreateAndParseOutputSelector {
|
Line 472 sub CreateAndParseOutputSelector {
|
## |
## |
my @OutputDataOptions = |
my @OutputDataOptions = |
( |
( |
{ name => 'Scores', |
{ name => 'Scores Summary', |
base => 'scores', |
|
value => 'scores', |
|
shortdesc => 'Score on each Problem Part', |
|
longdesc =>'The students score on each problem part, computed as'. |
|
'the part weight * part awarded', |
|
}, |
|
{ name => 'Scores Sum', |
|
base => 'scores', |
|
value => 'sum only', |
|
shortdesc => 'Sum of Scores on each Problem Part', |
|
longdesc =>'The total of the scores of the student on each problem'. |
|
' part in the sequences or folders selected.', |
|
}, |
|
{ name => 'Scores Sum & Maximums', |
|
base => 'scores', |
base => 'scores', |
value => 'sum and total', |
value => 'sum and total', |
shortdesc => 'Total Score and Maximum Possible for each '. |
shortdesc => 'Total Score and Maximum Possible for each '. |
Line 475 my @OutputDataOptions =
|
Line 480 my @OutputDataOptions =
|
longdesc => 'The score of each student as well as the '. |
longdesc => 'The score of each student as well as the '. |
' maximum possible on each Sequence or Folder.', |
' maximum possible on each Sequence or Folder.', |
}, |
}, |
{ name => 'Scores Summary Table Only', |
{ name => 'Scores Per Problem', |
base => 'scores', |
base => 'scores', |
value => 'final table scores', |
value => 'scores', |
shortdesc => 'Summary of Scores', |
shortdesc => 'Score on each Problem Part', |
longdesc => 'The average score on each sequence or folder for the '. |
longdesc =>'The students score on each problem part, computed as'. |
'selected students.', |
'the part weight * part awarded', |
}, |
}, |
|
# { name => 'Scores Sum', |
|
# base => 'scores', |
|
# value => 'sum only', |
|
# shortdesc => 'Sum of Scores on each Problem Part', |
|
# longdesc =>'The total of the scores of the student on each problem'. |
|
# ' part in the sequences or folders selected.', |
|
# }, |
|
# { name => 'Scores Summary Table Only', |
|
# base => 'scores', |
|
# value => 'final table scores', |
|
# shortdesc => 'Summary of Scores', |
|
# longdesc => 'The average score on each sequence or folder for the '. |
|
# 'selected students.', |
|
# }, |
{ name =>'Tries', |
{ name =>'Tries', |
base =>'tries', |
base =>'tries', |
value => 'tries', |
value => 'tries', |
Line 490 my @OutputDataOptions =
|
Line 509 my @OutputDataOptions =
|
}, |
}, |
{ name =>'Parts Correct', |
{ name =>'Parts Correct', |
base =>'tries', |
base =>'tries', |
value => 'parts correct', |
|
shortdesc => 'Number of Problem Parts completed successfully.', |
|
longdesc => 'The Number of Problem Parts completed successfully'. |
|
' on each sequence or folder.', |
|
}, |
|
{ name =>'Parts Correct & Maximums', |
|
base =>'tries', |
|
value => 'parts correct total', |
value => 'parts correct total', |
shortdesc => 'Number of Problem Parts completed successfully.', |
shortdesc => 'Number of Problem Parts completed successfully.', |
longdesc => 'The Number of Problem Parts completed successfully and '. |
longdesc => 'The Number of Problem Parts completed successfully and '. |
'the maximum possible for each student', |
'the maximum possible for each student', |
}, |
}, |
{ name => 'Parts Summary Table Only', |
# { name =>'Parts Correct', |
base => 'tries', |
# base =>'tries', |
value => 'final table parts', |
# value => 'parts correct', |
shortdesc => 'Summary of Parts Correct', |
# shortdesc => 'Number of Problem Parts completed successfully.', |
longdesc => 'A summary table of the average number of problem parts '. |
# longdesc => 'The Number of Problem Parts completed successfully'. |
'students were able to get correct on each sequence.', |
# ' on each sequence or folder.', |
}, |
# }, |
|
# { name => 'Parts Summary Table Only', |
|
# base => 'tries', |
|
# value => 'final table parts', |
|
# shortdesc => 'Summary of Parts Correct', |
|
# longdesc => 'A summary table of the average number of problem parts '. |
|
# 'students were able to get correct on each sequence.', |
|
# }, |
); |
); |
|
|
sub HTMLifyOutputDataDescriptions { |
sub HTMLifyOutputDataDescriptions { |
Line 550 sub CreateAndParseOutputDataSelector {
|
Line 569 sub CreateAndParseOutputDataSelector {
|
foreach my $option (@OutputDataOptions) { |
foreach my $option (@OutputDataOptions) { |
$Str .= "\n".' <option value="'.$option->{'value'}.'"'; |
$Str .= "\n".' <option value="'.$option->{'value'}.'"'; |
$Str .= " selected " if ($option->{'value'} eq $data); |
$Str .= " selected " if ($option->{'value'} eq $data); |
$Str .= ">".$option->{'name'}."<\/option>"; |
$Str .= ">".&mt($option->{'name'})."<\/option>"; |
} |
} |
$Str .= "\n</select>"; |
$Str .= "\n</select>"; |
return $Str; |
return $Str; |
Line 1519 sub StudentPerformanceOnSequence {
|
Line 1538 sub StudentPerformanceOnSequence {
|
$partscore = $weight*$awarded; |
$partscore = $weight*$awarded; |
$score += $partscore; |
$score += $partscore; |
$symbol = $partscore; |
$symbol = $partscore; |
|
if (abs($symbol - sprintf("%.0f",$symbol)) < 0.001) { |
|
$symbol = sprintf("%.0f",$symbol); |
|
} |
if (length($symbol) > 1) { |
if (length($symbol) > 1) { |
$symbol = '*'; |
$symbol = '*'; |
} |
} |