--- loncom/interface/statistics/lonproblemanalysis.pm 2002/09/07 23:07:38 1.10 +++ loncom/interface/statistics/lonproblemanalysis.pm 2003/10/15 21:30:51 1.39 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA -# (Publication Handler # -# $Id: lonproblemanalysis.pm,v 1.10 2002/09/07 23:07:38 minaeibi Exp $ + +# $Id: lonproblemanalysis.pm,v 1.39 2003/10/15 21:30:51 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -25,507 +25,780 @@ # # http://www.lon-capa.org/ # -# (Navigate problems for statistical reports -# YEAR=2002 -# 5/12,7/26 Behrouz Minaei -# -### -package Apache::lonproblemanalysis; +package Apache::lonproblemanalysis; use strict; use Apache::lonnet(); +use Apache::loncommon(); use Apache::lonhtmlcommon(); -use GDBM_File; - -my $jr; +use Apache::loncoursedata(); +use Apache::lonstatistics; +use Apache::lonlocal; +use HTML::Entities(); + +my $plotcolors = [qw/ + #33ff00 + #0033cc #990000 #aaaa66 #663399 #ff9933 + #66ccff #ff9999 #cccc33 #660000 #33cc66 + /]; + #[qw/lgreen dgreen dred/]; sub BuildProblemAnalysisPage { - my ($cacheDB, $r)=@_; - - my %cache; - unless(tie(%cache,'GDBM_File',$cacheDB,&GDBM_READER(),0640)) { - $r->print('Unable to tie database.'); - return; - } - - my $Ptr = ''; - $Ptr .= '
Select Sections'; - $Ptr .= ' | '."\n"; - $Ptr .= ''."\n"; - my @sectionsSelected = split(':',$cache{'sectionsSelected'}); - my @sections = split(':',$cache{'sectionList'}); - $Ptr .= &Apache::lonhtmlcommon::MultipleSectionSelect(\@sections, - \@sectionsSelected, - 'Statistics'); - $Ptr .= ' |
Intervals | '."\n"; - $Ptr .= ''; - $Ptr .= &IntervalOptions($cache{'Interval'}); - $Ptr .= ' |
'.
+ ' |
'.&mt('Concept Number').' | '. + ''.&mt('Concept').' | '. + ''.&mt('Foil Number').' | '. + ''.&mt('Foil Name').' | '. + ''.&mt('Foil Text').' | '. + ''.&mt('Correct Value').' | '. + "
---|---|---|---|---|---|
'.&mt('Foil Number').' | '. + ''.&mt('Foil Name').' | '. + ''.&mt('Foil Text').' | '. + ''.&mt('Correct Value').' | '. + "||
'.$conceptindex.' | '. + ''.$concept->{'name'}.' | '. + ''.$foilindex++.' | '. + ''.$Foildata{$firstfoil}->{'name'}.' | '. + ''.$Foildata{$firstfoil}->{'text'}.' | '. + ''.$Foildata{$firstfoil}->{'value'}.' | '. + "
'.$foilindex++.' | '. + ''.$Foildata{$firstfoil}->{'name'}.' | '. + ''.$Foildata{$firstfoil}->{'text'}.' | '. + ''.$Foildata{$firstfoil}->{'value'}.' | '. + "||
'. + ' | '. + ' | '.$foilindex.' | '. + ''.$Foildata{$foilid}->{'name'}.' | '. + ''.$Foildata{$foilid}->{'text'}.' | '. + ''.$Foildata{$foilid}->{'value'}.' | '. + "
'.$foilindex.' | '. + ''.$Foildata{$foilid}->{'name'}.' | '. + ''.$Foildata{$foilid}->{'text'}.' | '. + ''.$Foildata{$foilid}->{'value'}.' | '. + "
'. + (' 'x4).' | '. + ''.$option.' | '. + "
'.$plotlink.' | '.$extrakey." |
".$plothtml.' | '.
+ "Start Time: ".$startdateform." ". + "End Time : "." ".$enddateform." ". + 'Plot Title :'.(" "x3). + ' '.$extratable. + " |
\# | Problem Title | "; - $Str .= 'Resource | Analysis |
---|---|---|---|
'.$count.' | '; - $Str .= ''.$Temp.' | '; - $Str .= ''.$uri.' | '; - if($partCount{$problemId.':'.$part} < 2) { - $Str .= ''."\n"; + $Str .= ' |
'.&mt('Sections').' | '; + $Str .= ''.&mt('Enrollment Status').' | '; +# $Str .= ''.&mt('Sequences and Folders').' | '; + $Str .= ''; + $Str .= ' |
'."\n"; + $Str .= &Apache::lonstatistics::SectionSelect('Section','multiple',5); + $Str .= ' | '; + # + $Str .= ''; + $Str .= &Apache::lonhtmlcommon::StatusOptions(undef,undef,5); + $Str .= ' | '; + # +# $Str .= ''; + my $only_seq_with_assessments = sub { + my $s=shift; + if ($s->{'num_assess'} < 1) { + return 0; + } else { + return 1; + } + }; + &Apache::lonstatistics::MapSelect('Maps','multiple,all',5, + $only_seq_with_assessments); + ## + ## + $Str .= ' | ';
+ { # These braces are here to organize the code, not scope it.
+ {
+ $Str .= ' '; + } + { + $Str .= ' '; + } + { + $Str .= ' |
'. + ''. + ' | '. + ''.$res->{'title'}.' '; + if ($partdata->{'option'} > 1) { + $seq_str .= &mt('response').' '.$respid; + } + $seq_str .= " |
  | '.$seq->{'title'}.' | '. + "
# | '. - "\n".'Concept | '. - "\n".'Correct | '. - "\n".'Wrong | '. - "\n".'
---|---|---|---|
'.($n+1).' | '."\n"; - my ($currentConcept) = split('::',$Concepts->[$n]); - $Str .= ''.$currentConcept; - $Str .= ' | '."\n"; - $Str .= ''.$data1[$n].' | '."\n"; - $Str .= ''.$data2[$n].' | '."\n"; - $Str .= 'From:['.localtime($ConceptData->{'Int.'.$k}); - $Str .= '] To: ['.localtime($ConceptData->{'Int.'.($k+1)}-1); - $Str .= '] | '.$Correct.' | '.$Wrong.' | '; - $Str .= '