--- loncom/interface/lonnavmaps.pm 2005/12/29 18:50:35 1.349.2.5 +++ loncom/interface/lonnavmaps.pm 2005/12/02 23:06:02 1.352 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Navigate Maps Handler # -# $Id: lonnavmaps.pm,v 1.349.2.5 2005/12/29 18:50:35 albertel Exp $ +# $Id: lonnavmaps.pm,v 1.352 2005/12/02 23:06:02 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -57,7 +57,7 @@ my %statusIconMap = $resObj->CLOSED => '', $resObj->OPEN => 'navmap.open.gif', $resObj->CORRECT => 'navmap.correct.gif', - $resObj->PARTIALLY_CORRECT => 'navmap.partial.gif', + $resObj->PARTIALLY_CORRECT => 'navmap.ellipsis.gif', $resObj->INCORRECT => 'navmap.wrong.gif', $resObj->ATTEMPTED => 'navmap.ellipsis.gif', $resObj->ERROR => '' @@ -530,8 +530,7 @@ sub getDescription { if ($status == $res->PAST_DUE_NO_ANSWER) { return &mt("Was due")." " . timeToHumanString($res->duedate($part),'end'); } - if (($status == $res->ANSWER_OPEN || $status == $res->PARTIALLY_CORRECT) - && $res->handgrade($part) ne 'yes') { + if ($status == $res->ANSWER_OPEN || $status == $res->PARTIALLY_CORRECT) { return &mt("Answer available"); } if ($status == $res->EXCUSED) { @@ -2266,25 +2265,6 @@ sub get_user_data { $self->{RETRIEVED_USER_DATA} = 1; } -sub get_discussion_data { - my $self = shift; - if ($self->{RETRIEVED_DISCUSSION_DATA}) { - return $self->{DISCUSSION_DATA}; - } - - my $cid=$env{'request.course.id'}; - my $cdom=$env{'course.'.$cid.'.domain'}; - my $cnum=$env{'course.'.$cid.'.num'}; - - # Retrieve discussion data for resources in course - my %discussion_data = &Apache::lonnet::dump($cid,$cdom,$cnum); - - $self->{DISCUSSION_DATA} = \%discussion_data; - $self->{RETRIEVED_DISCUSSION_DATA} = 1; - return $self->{DISCUSSION_DATA}; -} - - # Internal function: Takes a key to look up in the nav hash and implements internal # memory caching of that key. sub navhash { @@ -2495,6 +2475,12 @@ sub parmval_real { my $cid=$env{'request.course.id'}; my $csec=$env{'request.course.sec'}; + my $cgroup=''; + my @cgrps=split(/:/,$env{'request.course.groups'}); + if (@cgrps > 0) { + @cgrps = sort(@cgrps); + $cgroup = $cgrps[0]; + } my $uname=$env{'user.name'}; my $udom=$env{'user.domain'}; @@ -2512,6 +2498,10 @@ sub parmval_real { my $mapparm=$mapname.'___(all).'.$what; my $usercourseprefix=$cid; + my $grplevel=$usercourseprefix.'.['.$cgroup.'].'.$what; + my $grplevelr=$usercourseprefix.'.['.$cgroup.'].'.$symbparm; + my $grplevelm=$usercourseprefix.'.['.$cgroup.'].'.$mapparm; + my $seclevel= $usercourseprefix.'.['.$csec.'].'.$what; my $seclevelr=$usercourseprefix.'.['.$csec.'].'.$symbparm; my $seclevelm=$usercourseprefix.'.['.$csec.'].'.$mapparm; @@ -2532,6 +2522,12 @@ sub parmval_real { } # ------------------------------------------------------- second, check course + if ($cgroup ne '' and defined($courseopt)) { + if (defined($$courseopt{$grplevelr})) { return $$courseopt{$grplevelr}; } + if (defined($$courseopt{$grplevelm})) { return $$courseopt{$grplevelm}; } + if (defined($$courseopt{$grplevel})) { return $$courseopt{$grplevel}; } + } + if ($csec and defined($courseopt)) { if (defined($$courseopt{$seclevelr})) { return $$courseopt{$seclevelr}; } if (defined($$courseopt{$seclevelm})) { return $$courseopt{$seclevelm}; } @@ -2644,15 +2640,19 @@ sub getResourceByUrl { if (ref($resUrl)) { return $resUrl; } $resUrl = &Apache::lonnet::clutter($resUrl); + if (defined($multiple)) { + if ($multiple) { + my @resIds = $self->{NAV_HASH}->{'ids_' . $resUrl}; + } + } my $resId = $self->{NAV_HASH}->{'ids_' . $resUrl}; if (!$resId) { return ''; } if ($multiple) { my @resources = (); my @resIds = split (/,/, $resId); foreach my $id (@resIds) { - my $resourceId = $self->getById($id); - if ($resourceId) { - push(@resources,$resourceId); + if ($id) { + push(@resources,$self->getById($id)); } } return @resources;