--- loncom/interface/lonstatistics.pm 2002/07/25 21:23:51 1.32 +++ loncom/interface/lonstatistics.pm 2002/08/01 20:49:06 1.38 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # (Publication Handler # -# $Id: lonstatistics.pm,v 1.32 2002/07/25 21:23:51 stredwic Exp $ +# $Id: lonstatistics.pm,v 1.38 2002/08/01 20:49:06 stredwic Exp $ # # Copyright Michigan State University Board of Trustees # @@ -31,7 +31,7 @@ # 11/1,11/4,11/16,12/14,12/16,12/18,12/20,12/31 Behrouz Minaei # YEAR=2002 # 1/22,2/1,2/6,2/25,3/2,3/6,3/17,3/21,3/22,3/26,4/7,5/6 Behrouz Minaei -# 5/12,5/14,5/15,5/19,5/26,7/16,25/7 Behrouz Minaei +# 5/12,5/14,5/15,5/19,5/26,7/16,25/7,29/7 Behrouz Minaei # ### @@ -70,7 +70,8 @@ sub ProcessFormData{ $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'); @@ -82,6 +83,7 @@ sub ProcessFormData{ &CheckFormElement($cache, 'sort', 'sort', 'fullname'); &CheckFormElement($cache, 'download', 'download', 'false'); + # student assessment if(defined($ENV{'form.CreateStudentAssessment'}) || defined($ENV{'form.NextStudent'}) || defined($ENV{'form.PreviousStudent'})) { @@ -98,49 +100,97 @@ sub ProcessFormData{ 'StudentAssessmentStudent', 'All Students'); $cache->{'StudentAssessmentStudent'} = &Apache::lonnet::unescape($cache->{'StudentAssessmentStudent'}); + &CheckFormElement($cache, 'DefaultColumns', 'DefaultColumns', 'false'); - foreach (keys(%ENV)) { - if(/form\.Analyze:::/) { -# $cache->{'reportSelected'} = 'Analyze'; -# $cache->{'reportKey'} = 'Problem Analysis'; - my ($uri, $title, $part, $problem); - (undef, $uri, $title, $part, $problem)=split(':::', $_); - $cache->{'AnalyzeURI'} = $uri; - $cache->{'AnalyzeTitle'} = $title; - $cache->{'AnalyzePart'} = $part; - $cache->{'AnalyzeProblem'} = $problem; - - &CheckFormElement($cache, 'Interval', 'Interval', '1'); + if(defined($ENV{'form.Section'})) { + my @sectionsSelected = (ref($ENV{'form.Section'}) ? + @{$ENV{'form.Section'}} : + ($ENV{'form.Section'})); + $cache->{'sectionsSelected'} = join(':', @sectionsSelected); + } elsif(!defined($cache->{'sectionsSelected'})) { + $cache->{'sectionsSelected'} = $cache->{'sectionList'}; + } + + # Problem analysis + &CheckFormElement($cache, 'Interval', 'Interval', '1'); + + # ProblemStatistcs + &CheckFormElement($cache, 'DisplayCSVFormat', + 'DisplayFormat', 'Display Table Format'); + &CheckFormElement($cache, 'ProblemStatisticsAscend', + 'ProblemStatisticsAscend', 'Ascending'); + &CheckFormElement($cache, 'ProblemStatisticsMaps', + 'ProblemStatisticsMaps', 'All Maps'); + + # Search only form elements + 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; + } } } - return; + $cache->{'reportKey'} = 'false'; + if($cache->{'reportSelected'} eq 'Analyze') { + $cache->{'reportKey'} = 'Analyze'; + } elsif($cache->{'reportSelected'} eq 'DoDiffGraph') { + $cache->{'reportKey'} = 'DoDiffGraph'; + } elsif($cache->{'reportSelected'} eq 'PercentWrongGraph') { + $cache->{'reportKey'} = 'PercentWrongGraph'; + } - # Select page to display - if(defined($ENV{'form.ProblemStatistics'}) || - defined($ENV{'form.ProblemStatisticsRecalculate'}) || - defined($ENV{'form.DisplayCSVFormat'})) { - $cache->{'GoToPage'} = 'ProblemStatistics'; - &CheckFormElement($cache, 'DisplayCSVFormat', - 'DisplayFormat', 'Display Table Format'); - &CheckFormElement($cache, 'Ascend','ProblemStatisticsAscend', - 'Ascending'); - &CheckFormElement($cache, 'Maps', 'ProblemStatisticsMap', - 'All Maps'); - } elsif(defined($ENV{'form.ProblemAnalysis'})) { - $cache->{'GoToPage'} = 'ProblemAnalysis'; - &CheckFormElement($cache, 'Interval', 'Interval', '1'); - } elsif(defined($ENV{'form.DoDiffGraph'})) { - $cache->{'GoToPage'} = 'DoDiffGraph'; + if(defined($ENV{'form.DoDiffGraph'})) { + $cache->{'reportSelected'} = 'DoDiffGraph'; + $cache->{'reportKey'} = 'DoDiffGraph'; } elsif(defined($ENV{'form.PercentWrongGraph'})) { - $cache->{'GoToPage'} = 'PercentWrongGraph'; - } elsif(defined($ENV{'form.ActivityLog'})) { - $cache->{'GoToPage'} = 'ActivityLog'; - } else { - $cache->{'GoToPage'} = 'Menu'; + $cache->{'reportSelected'} = 'PercentWrongGraph'; + $cache->{'reportKey'} = 'PercentWrongGraph'; } - &CheckFormElement($cache, 'Status', 'Status', 'Active'); + foreach (keys(%ENV)) { + if(/form\.Analyze/) { + $cache->{'reportSelected'} = 'Analyze'; + $cache->{'reportKey'} = 'Analyze'; + my $data; + (undef, $data)=split(':::', $_); + $cache->{'AnalyzeInfo'}=$data; + } 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; } @@ -243,7 +293,7 @@ sub SpaceColumns { } sub PrepareData { - my ($c, $cacheDB, $studentInformation, $headings)=@_; + my ($c, $cacheDB, $studentInformation, $headings,$r)=@_; # Test for access to the cache data my $courseID=$ENV{'request.course.id'}; @@ -260,13 +310,13 @@ sub PrepareData { # Download class list information if not using cached data my %cache; - unless(tie(%cache,'GDBM_File',$cacheDB,&GDBM_WRCREAT,0640)) { + unless(tie(%cache,'GDBM_File',$cacheDB,&GDBM_WRCREAT(),0640)) { return "Unable to tie hash to db file."; } if(!$isCached) { my $processTopResourceMapReturn= - &Apache::loncoursedata::ProcessTopResourceMap(\%cache, $c); + &Apache::loncoursedata::ProcessTopResourceMap(\%cache, $c, $r); if($processTopResourceMapReturn ne 'OK') { untie(%cache); return $processTopResourceMapReturn; @@ -381,32 +431,12 @@ sub Close_PrgWin { $r->rflush(); } -# For loading the colored table for display or un-colored for print -sub setbgcolor { - my $PrintTable=shift; - my %color; - if ($PrintTable){ - $color{"gb"}="#FFFFFF"; - $color{"red"}="#FFFFFF"; - $color{"yellow"}="#FFFFFF"; - $color{"green"}="#FFFFFF"; - $color{"purple"}="#FFFFFF"; - } else { - $color{"gb"}="#DDFFFF"; - $color{"red"}="#FFDDDD"; - $color{"yellow"}="#EEFFCC"; - $color{"green"}="#DDFFDD"; - $color{"purple"}="#FFDDFF"; - } - - return \%color; -} sub BuildClasslist { my ($cacheDB,$students,$studentInformation,$headings)=@_; my %cache; - unless(tie(%cache,'GDBM_File',$cacheDB,&GDBM_READER,0640)) { + unless(tie(%cache,'GDBM_File',$cacheDB,&GDBM_READER(),0640)) { return '
Unable to tie database.'; } @@ -459,6 +489,44 @@ sub BuildClasslist { return $Str; } +sub CreateMainMenu { + my ($status, $reports)=@_; + + my $Str = ''; + + $Str .= ''."\n"; + $Str .= ' | Analysis Reports: | '."\n"; + $Str .= 'Student Status: | |
{'reportSelected'} eq $reports->{$_}) { + $Str .= ' selected=""'; + } + $Str .= '>'.$reports->{$_}.''."\n"; + } + $Str .= ' | '."\n"; + + $Str .= ''; + $Str .= &Apache::lonhtmlcommon::StatusOptions($status, 'Statistics'); + $Str .= ' | '."\n"; + + $Str .= '