[LON-CAPA-cvs] cvs: loncom /interface lonstatistics.pm /interface/statistics lonstudentassessment.pm
stredwic
lon-capa-cvs@mail.lon-capa.org
Fri, 26 Jul 2002 19:49:26 -0000
This is a MIME encoded message
--stredwic1027712966
Content-Type: text/plain
stredwic Fri Jul 26 15:49:26 2002 EDT
Modified files:
/loncom/interface lonstatistics.pm
/loncom/interface/statistics lonstudentassessment.pm
Log:
Finished combining the chart and student assessment reports, except for
documentation. The grade information is displayed like the chart, but
has more of an interface like student assessment. Currently, all the
controls change onchange, except for student section and column
reselection multiselects. These will be updated whenever another
interface button submits a form.
--stredwic1027712966
Content-Type: text/plain
Content-Disposition: attachment; filename="stredwic-20020726154926.txt"
Index: loncom/interface/lonstatistics.pm
diff -u loncom/interface/lonstatistics.pm:1.33 loncom/interface/lonstatistics.pm:1.34
--- loncom/interface/lonstatistics.pm:1.33 Fri Jul 26 12:22:09 2002
+++ loncom/interface/lonstatistics.pm Fri Jul 26 15:49:26 2002
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# (Publication Handler
#
-# $Id: lonstatistics.pm,v 1.33 2002/07/26 16:22:09 stredwic Exp $
+# $Id: lonstatistics.pm,v 1.34 2002/07/26 19:49:26 stredwic Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -51,6 +51,7 @@
use HTML::TokeParser;
use GDBM_File;
+#my $jr;
sub CheckFormElement {
my ($cache, $ENVName, $cacheName, $default)=@_;
@@ -70,7 +71,8 @@
$cache->{'reportKey'} = 'false';
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
- ['sort','download','reportSelected',
+ ['sort','download',
+ 'reportSelected',
'StudentAssessmentStudent']);
&CheckFormElement($cache, 'Status', 'Status', 'Active');
&CheckFormElement($cache, 'postdata', 'reportSelected', 'Class list');
@@ -98,6 +100,7 @@
'StudentAssessmentStudent', 'All Students');
$cache->{'StudentAssessmentStudent'} =
&Apache::lonnet::unescape($cache->{'StudentAssessmentStudent'});
+ &CheckFormElement($cache, 'DefaultColumns', 'DefaultColumns', 'false');
if(defined($ENV{'form.Section'})) {
my @sectionsSelected = (ref($ENV{'form.Section'}) ?
@@ -108,6 +111,24 @@
$cache->{'sectionsSelected'} = $cache->{'sectionList'};
}
+ my @headingColumns=();
+ my @sequenceColumns=();
+ my $foundColumn = 0;
+ if(defined($ENV{'form.ReselectColumns'})) {
+ my @reselected = (ref($ENV{'form.ReselectColumns'}) ?
+ @{$ENV{'form.ReselectColumns'}}
+ : ($ENV{'form.ReselectColumns'}));
+ foreach (@reselected) {
+ if(/HeadingColumn/) {
+ push(@headingColumns, $_);
+ $foundColumn = 1;
+ } elsif(/SequenceColumn/) {
+ push(@sequenceColumns, $_);
+ $foundColumn = 1;
+ }
+ }
+ }
+
foreach (keys(%ENV)) {
if(/form\.Analyze:::/) {
# $cache->{'reportSelected'} = 'Analyze';
@@ -120,9 +141,33 @@
$cache->{'AnalyzeProblem'} = $problem;
&CheckFormElement($cache, 'Interval', 'Interval', '1');
+ } elsif(/form\.HeadingColumn/) {
+ my $value = $_;
+ $value =~ s/form\.//;
+ push(@headingColumns, $value);
+ $foundColumn=1;
+ } elsif(/form\.SequenceColumn/) {
+ my $value = $_;
+ $value =~ s/form\.//;
+ push(@sequenceColumns, $value);
+ $foundColumn=1;
}
}
+ if($foundColumn) {
+ $cache->{'HeadingsFound'} = join(':', @headingColumns);
+ $cache->{'SequencesFound'} = join(':', @sequenceColumns);;
+ }
+ if(!defined($cache->{'HeadingsFound'}) ||
+ $cache->{'DefaultColumns'} ne 'false') {
+ $cache->{'HeadingsFound'}='HeadingColumnFull Name';
+ }
+ if(!defined($cache->{'SequencesFound'}) ||
+ $cache->{'DefaultColumns'} ne 'false') {
+ $cache->{'SequencesFound'}='All Sequences';
+ }
+ $cache->{'DefaultColumns'} = 'false';
+
return;
# Select page to display
@@ -602,6 +647,8 @@
sub handler {
my $r=shift;
+
+# $jr = $r;
unless(&Apache::lonnet::allowed('vgr',$ENV{'request.course.id'})) {
$ENV{'user.error.msg'}=
Index: loncom/interface/statistics/lonstudentassessment.pm
diff -u loncom/interface/statistics/lonstudentassessment.pm:1.3 loncom/interface/statistics/lonstudentassessment.pm:1.4
--- loncom/interface/statistics/lonstudentassessment.pm:1.3 Fri Jul 26 12:22:09 2002
+++ loncom/interface/statistics/lonstudentassessment.pm Fri Jul 26 15:49:26 2002
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# (Publication Handler
#
-# $Id: lonstudentassessment.pm,v 1.3 2002/07/26 16:22:09 stredwic Exp $
+# $Id: lonstudentassessment.pm,v 1.4 2002/07/26 19:49:26 stredwic Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -42,10 +42,12 @@
use Apache::loncoursedata;
use GDBM_File;
+#my $jr;
+
sub BuildStudentAssessmentPage {
my ($cacheDB,$students,$courseID,$formName,$headings,$spacing,
$studentInformation,$r,$c)=@_;
-
+# $jr = $r;
my %cache;
unless(tie(%cache,'GDBM_File',$cacheDB,&GDBM_READER,0640)) {
$r->print('<html><body>Unable to tie database.</body></html>');
@@ -75,23 +77,24 @@
splice(@$students, $studentIndex, 1);
}
}
+ my ($infoHeadings, $infoKeys, $sequenceHeadings, $sequenceKeys,
+ $doNotShow) =
+ &ShouldShowColumns(\%cache, $headings, $studentInformation);
my $selectedName = &FindSelectedStudent(\%cache,
$cache{'StudentAssessmentStudent'},
$students);
- $r->print(&CreateInterface(\%cache, $selectedName, $students, $formName));
+ $r->print(&CreateInterface(\%cache, $selectedName, $students, $formName,
+ $doNotShow));
- my $Ptr = '';
+ my $Str = '';
if($selectedName eq 'No Student Selected') {
- $Ptr .= '<h3><font color=blue>WARNING: ';
- $Ptr .= 'Please select a student</font></h3>';
- $r->print($Ptr);
+ $Str .= '<h3><font color=blue>WARNING: ';
+ $Str .= 'Please select a student</font></h3>';
+ $r->print($Str);
return;
}
- my ($infoHeadings, $infoKeys, $sequenceHeadings, $sequenceKeys) =
- &ShouldShowColumns(\%cache, $headings, $studentInformation);
-
$r->print(&CreateTableHeadings(\%cache, $spacing, $infoKeys, $infoHeadings,
$sequenceKeys, $sequenceHeadings));
untie(%cache);
@@ -141,9 +144,9 @@
}
$r->print('</pre>'."\n");
if($selected == 0) {
- $Ptr .= '<h3><font color=blue>WARNING: ';
- $Ptr .= 'Please select a student</font></h3>';
- $r->print($Ptr);
+ $Str .= '<h3><font color=blue>WARNING: ';
+ $Str .= 'Please select a student</font></h3>';
+ $r->print($Str);
}
return;
@@ -152,33 +155,42 @@
#---- Student Assessment Web Page --------------------------------------------
sub CreateInterface {
- my($cache,$selectedName,$students,$formName)=@_;
- my $Ptr = '';
- $Ptr .= &CreateLegend();
- $Ptr .= '<table><tr><td>'."\n";
- $Ptr .= '<input type="submit" name="PreviousStudent" ';
- $Ptr .= 'value="Previous Student" />'."\n";
- $Ptr .= '   '."\n";
- $Ptr .= &Apache::lonhtmlcommon::StudentOptions($cache, $students,
+ my($cache,$selectedName,$students,$formName,$doNotShow)=@_;
+
+ my $Str = '';
+ $Str .= &CreateLegend();
+ $Str .= '<table><tr><td>'."\n";
+ $Str .= '<input type="submit" name="PreviousStudent" ';
+ $Str .= 'value="Previous Student" />'."\n";
+ $Str .= '   '."\n";
+ $Str .= &Apache::lonhtmlcommon::StudentOptions($cache, $students,
$selectedName,
'StudentAssessment',
$formName);
- $Ptr .= "\n".'   '."\n";
- $Ptr .= '<input type="submit" name="NextStudent" ';
- $Ptr .= 'value="Next Student" />'."\n";
- $Ptr .= '</td></tr></table>'."\n";
- $Ptr .= '<table><tr><td align="center"><b>Select Sections</b>';
- $Ptr .= '</td></tr>'."\n";
+ $Str .= "\n".'   '."\n";
+ $Str .= '<input type="submit" name="NextStudent" ';
+ $Str .= 'value="Next Student" />'."\n";
+ $Str .= '</td></tr></table>'."\n";
+ $Str .= '<table cellspacing="5"><tr>'."\n";
+ $Str .= '<td align="center"><b>Select Sections</b>'."\n";
+ $Str .= '</td>'."\n";
+ $Str .= '<td align="center"><b>Select column to view:</b></td>'."\n";
+ $Str .= '<td></td></tr>'."\n";
- $Ptr .= '<tr><td align="center">'."\n";
+ $Str .= '<tr><td align="center">'."\n";
my @sections = split(':',$cache->{'sectionList'});
my @selectedSections = split(':',$cache->{'sectionsSelected'});
- $Ptr .= &Apache::lonhtmlcommon::MultipleSectionSelect(\@sections,
+ $Str .= &Apache::lonhtmlcommon::MultipleSectionSelect(\@sections,
\@selectedSections,
'Statistics');
- $Ptr .= '</td></tr></table>'."\n";
+ $Str .= '</td><td align="center">';
+ $Str .= &CreateColumnSelectionBox($doNotShow);
+ $Str .= '</td><td>'."\n";
+ $Str .= '<input type="submit" name="DefaultColumns" ';
+ $Str .= 'value="Default Column Display" />'."\n";
+ $Str .= '</td></tr></table>'."\n";
- return $Ptr;
+ return $Str;
}
sub CreateTableHeadings {
@@ -186,8 +198,14 @@
$sequenceHeadings)=@_;
my $Str = '';
- $Str .= '<table border="0" cellpadding="0" cellspacing="0"><tr>'."\n";
+ $Str .= '<table border="0" cellpadding="0" cellspacing="0">'."\n";
+
+ $Str .= '<tr>'."\n";
+ $Str .= &CreateColumnSelectors($infoHeadings, $sequenceHeadings,
+ $sequenceKeys);
+ $Str .= '<td></td></tr>'."\n";
+ $Str .= '<tr>'."\n";
my $displayString = '<td align="left"><pre><a href="/adm/statistics?';
$displayString .= 'sort=LINKDATA">DISPLAYDATA</a>FORMATTING';
$displayString .= $spacing.'</pre></td>'."\n";
@@ -433,41 +451,22 @@
=cut
sub CreateColumnSelectionBox {
- my ($CacheData,$headings)=@_;
-
- my $missing=0;
- my $notThere='<tr><td align="right"><b>Select column to view:</b>';
- my $name;
- $notThere .= '<td align="left">';
- $notThere .= '<select name="ChartReselect" size="4" multiple="true">'."\n";
-
- for(my $index=0; $index<(scalar @$headings); $index++) {
- if(&ShouldShowColumn($CacheData, 'ChartHeading'.$index)) {
- next;
- }
- $name = $headings->[$index];
- $notThere .= '<option value="ChartHeading'.$index.'">';
- $notThere .= $name.'</option>'."\n";
- $missing++;
- }
+ my ($doNotShow)=@_;
- foreach my $sequence (split(/\:/,$CacheData->{'orderedSequences'})) {
- if(&ShouldShowColumn($CacheData, 'ChartSequence'.$sequence)) {
- next;
- }
- $name = $CacheData->{$sequence.':title'};
- $notThere .= '<option value="ChartSequence'.$sequence.'">';
+ my $notThere = '';
+ $notThere .= '<select name="ReselectColumns" size="4" ';
+ $notThere .= 'multiple="true">'."\n";
+
+ for(my $index=0; $index<$doNotShow->{'count'}; $index++) {
+ my $name = $doNotShow->{$index.':name'};
+ $notThere .= '<option value="';
+ $notThere .= $doNotShow->{$index.':id'}.'">';
$notThere .= $name.'</option>'."\n";
- $missing++;
}
- if($missing) {
- $notThere .= '</select>';
- } else {
- $notThere='<tr><td>';
- }
+ $notThere .= '</select>';
- return $notThere.'</td></tr>';
+ return $notThere;
}
=pod
@@ -497,37 +496,24 @@
=cut
sub CreateColumnSelectors {
- my ($headings)=@_;
-=pod
- my $found=0;
- my ($name, $length, $position);
+ my ($infoHeadings, $sequenceHeadings, $sequenceKeys)=@_;
- my $present = '<tr>';
- for(my $index=0; $index<(scalar @$headings); $index++) {
+ my $present = '';
+ for(my $index=0; $index<(scalar @$infoHeadings); $index++) {
$present .= '<td align="left">';
$present .= '<input type="checkbox" checked="on" ';
- $present .= 'name="ChartHeading'.$index.'" />';
- $present .= '</td>';
- $found++;
+ $present .= 'name="HeadingColumn'.$infoHeadings->[$index].'" />';
+ $present .= '</td>'."\n";
}
- foreach my $sequence (split(/\:/,$CacheData->{'orderedSequences'})) {
- if(!&ShouldShowColumn($CacheData, 'ChartSequence'.$sequence)) {
- next;
- }
+ for(my $index=0; $index<(scalar @$sequenceHeadings); $index++) {
$present .= '<td align="left">';
$present .= '<input type="checkbox" checked="on" ';
- $present .= 'name="ChartSequence'.$sequence.'" />';
- $present .= '</td>';
- $found++;
+ $present .= 'name="SequenceColumn'.$sequenceKeys->[$index].'" />';
+ $present .= '</td>'."\n";
}
- if(!$found) {
- $present = '';
- }
-
- return $present.'<td></td></tr></form>'."\n";;
-=cut
+ return $present;
}
#---- END Student Assessment Web Page ----------------------------------------
@@ -602,26 +588,40 @@
my @sequenceKeys=();
my @sequenceHeadings=();
+ my %doNotShow;
+
my $index;
+ my $count = 0;
+ my $check = '';
for($index=0; $index < scalar @$headings; $index++) {
- push(@infoHeadings, $headings->[$index]);
- push(@infoKeys, $cacheKey->[$index]);
+ $check = 'HeadingColumn'.$headings->[$index];
+ if($cache->{'HeadingsFound'} =~ /$check/) {
+ push(@infoHeadings, $headings->[$index]);
+ push(@infoKeys, $cacheKey->[$index]);
+ } else {
+ $doNotShow{$count.':name'} = $headings->[$index];
+ $doNotShow{$count.':id'} = 'HeadingColumn'.$headings->[$index];
+ $count++;
+ }
}
foreach my $sequence (split(/\:/,$cache->{'orderedSequences'})) {
- push(@sequenceHeadings, $cache->{$sequence.':title'});
- push(@sequenceKeys, $sequence);
+ $check = 'SequenceColumn'.$sequence;
+ if($cache->{'SequencesFound'} eq 'All Sequences' ||
+ $cache->{'SequencesFound'} =~ /$check/) {
+ push(@sequenceHeadings, $cache->{$sequence.':title'});
+ push(@sequenceKeys, $sequence);
+ } else {
+ $doNotShow{$count.':name'} = $cache->{$sequence.':title'};
+ $doNotShow{$count.':id'} = 'SequenceColumn'.$sequence;
+ $count++;
+ }
}
-# my $headings=$cache->{'form.ChartHeadings'};
-# my $sequences=$cache->{'form.ChartSequences'};
-# if($headings eq 'ALLHEADINGS' || $sequences eq 'ALLSEQUENCES' ||
-# $headings=~/$test/ || $sequences=~/$test/) {
-# return 1;
-# }
+ $doNotShow{'count'} = $count;
return (\@infoHeadings, \@infoKeys, \@sequenceHeadings,
- \@sequenceKeys);
+ \@sequenceKeys, \%doNotShow);
}
#---- END Student Assessment Worker Functions --------------------------------
--stredwic1027712966--