--- loncom/interface/Attic/lonchart.pm 2002/02/19 20:22:00 1.31
+++ loncom/interface/Attic/lonchart.pm 2002/02/28 23:14:57 1.33
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# (Publication Handler
#
-# $Id: lonchart.pm,v 1.31 2002/02/19 20:22:00 minaeibi Exp $
+# $Id: lonchart.pm,v 1.33 2002/02/28 23:14:57 minaeibi Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -43,7 +43,7 @@
# 9/8 Gerd Kortemeyer
# 10/1, 10/19, 11/17, 11/22, 11/24, 11/28 12/18 Behrouz Minaei
# YEAR=2002
-# 2/1, 2/6, 2/19 Behrouz Minaei
+# 2/1, 2/6, 2/19, 2/28 Behrouz Minaei
#
###
@@ -64,7 +64,7 @@ my @rowlabels;
my @students;
my @PreCol;
my $r;
-
+
# ------------------------------------------------------------- Find out status
sub ExtractStudentData {
@@ -225,6 +225,55 @@ sub tracetable {
}
+sub usection2 {
+ my ($udom,$unam,$courseid,$ActiveFlag)=@_;
+ $courseid=~s/\_/\//g;
+ $courseid=~s/^(\w)/\/$1/;
+ foreach my $elem(split(/\&/,&Apache::lonnet::reply('dump:'.$udom.':'.$unam.':roles',
+ &Apache::lonnet::homeserver($unam,$udom)))) {
+ my ($key,$value)=split(/\=/,$elem);
+ $key=&Apache::lonnet::unescape($key);
+ if ($key=~/^$courseid(?:\/)*(\w+)*\_st$/) {
+ my $section=$1;
+ if ($key eq $courseid.'_st') { $section=''; }
+ my ($dummy,$end,$start)=split(/\_/,&Apache::lonnet::unescape($value));
+ my $now=time;
+ my $notactive=0;
+ if ($start) {
+ if ($now<$start) { $notactive=1; }
+ }
+ if ($end) {
+ if ($now>$end) { $notactive=1; }
+ }
+ if ($ActiveFlag == 1) { $notactive=0; }
+ unless ($notactive) { return $section; }
+ }
+ }
+ return '-1';
+}
+
+
+sub usection {
+ my ($udom,$unam,$courseid)=@_;
+ $courseid=~s/\_/\//g;
+ $courseid=~s/^(\w)/\/$1/;
+ map {
+ my ($key,$value)=split(/\=/,$_);
+ $key=&Apache::lonnet::unescape($key);
+ if ($key=~/^$courseid(?:\/)*(\w+)*\_st$/) {
+ my $section=$1;
+ if ($key eq $courseid.'_st') { $section=''; }
+ my ($dummy,$end,$start)=split(/\_/,&Apache::lonnet::unescape($value));
+# $section=($section) ? $section : '(none)';
+# $section=(int($section)) ? int($section) : $section;
+# $r->print($unam.'...'.$section.'
');
+ return $section;
+ }
+ } split(/\&/,&Apache::lonnet::reply('dump:'.$udom.':'.$unam.':roles',
+ &Apache::lonnet::homeserver($unam,$udom)));
+ return '';
+}
+
sub BuildChart {
# ----------------------- Get first and last resource, see if there is anything
my $firstres=$hash{'map_start_/res/'.$ENV{'request.course.uri'}};
@@ -244,21 +293,26 @@ sub BuildChart {
my ($end,$start)=split(/\:/,&Apache::lonnet::unescape($value));
my $active=1;
if (($end) && ($now>$end)) { $active=0; }
+
+ if ($ENV{'form.active'} eq 'All Students') { $active=1; }
+
if ($active) {
my $thisindex=$#students+1;
$name=&Apache::lonnet::unescape($name);
$students[$thisindex]=$name;
my ($sname,$sdom)=split(/\:/,$name);
$PreCol[$thisindex]=$sname.':';
- my $ssec=&Apache::lonnet::usection($sdom,$sname,$cid);
+
+ my $ssec=&usection($sdom,$sname,$cid);#,$active);
+
if ($ssec==-1) {
$rowlabels[$thisindex]=
'Data not available: '.$name;
} else {
my %reply=&Apache::lonnet::idrget($sdom,$sname);
my $reply=&Apache::lonnet::reply('get:'.$sdom.':'.$sname.
- ':environment:lastname&generation&firstname&middlename',
- &Apache::lonnet::homeserver($sname,$sdom));
+ ':environment:lastname&generation&firstname&middlename',
+ &Apache::lonnet::homeserver($sname,$sdom));
#$ssec=(int($ssec)) ? int($ssec) : $ssec;
my $sec=sprintf('%3s',$ssec);
$rowlabels[$thisindex]=$sec.' '.$reply{$sname}.' ';
@@ -306,15 +360,24 @@ sub BuildChart {
}
sub CreateForm {
+ my $OpSel1='';
+ my $OpSel2='';
+ if ( $ENV{'form.active'} eq 'All Students' ) { $OpSel2='selected'; }
+ else { $OpSel1 = 'selected'; }
+
my $Ptr = '