--- loncom/interface/loncoursedata.pm 2003/02/25 15:55:15 1.50 +++ loncom/interface/loncoursedata.pm 2003/02/28 23:19:01 1.54 @@ -1,7 +1,6 @@ # The LearningOnline Network with CAPA -# (Publication Handler # -# $Id: loncoursedata.pm,v 1.50 2003/02/25 15:55:15 matthew Exp $ +# $Id: loncoursedata.pm,v 1.54 2003/02/28 23:19:01 bowersj2 Exp $ # # Copyright Michigan State University Board of Trustees # @@ -281,7 +280,6 @@ The returned structure is a hash referen source => '/s/o/u/r/c/e', type => (container|assessment), num_assess => 2, # only for container - contents => [ {},{},{},{} ], # only for container parts => [11,13,15], # only for assessment response_ids => [12,14,16], # only for assessment contents => [........] # only for container @@ -313,36 +311,37 @@ sub get_sequence_assessment_data { ## We are going to loop until we run out of sequences/pages to explore for ## resources. This means we have to start out with something to look ## at. - my $curRes = $iterator->next(); # BEGIN_MAP - $curRes = $iterator->next(); # The sequence itself - # - my $title = $curRes->title(); - my $symb = $curRes->symb(); - my $src = $curRes->src(); + my $title = $ENV{'course.'.$ENV{'request.course.id'}.'.description'}; + my $symb = 'top'; + my $src = 'not applicable'; # my @Sequences; my @Assessments; my @Nested_Sequences = (); # Stack of sequences, keeps track of depth my $top = { title => $title, + src => $src, symb => $symb, type => 'container', num_assess => 0, + num_assess_parts => 0, contents => [], }; push (@Sequences,$top); push (@Nested_Sequences, $top); # # We need to keep track of which sequences contain homework problems # - my $previous = $top; + my $previous; + my $curRes = $iterator->next(); # BEGIN_MAP + $curRes = $iterator->next(); # The first item in the top level map. while (scalar(@Nested_Sequences)) { $previous = $curRes; $curRes = $iterator->next(); my $currentmap = $Nested_Sequences[-1]; # Last one on the stack if ($curRes == $iterator->BEGIN_MAP()) { # get the map itself, instead of BEGIN_MAP - $title = $previous->title();#$curRes->title(); - $symb = $previous->symb;#curRes->symb(); - $src = $previous->src();#$curRes->src(); + $title = $previous->title(); + $symb = $previous->symb(); + $src = $previous->src(); my $newmap = { title => $title, src => $src, symb => $symb, @@ -370,10 +369,13 @@ sub get_sequence_assessment_data { src => $src, symb => $symb, type => 'assessment', + parts => $parts, + num_parts => scalar(@$parts), }; push(@Assessments,$assessment); push(@{$currentmap->{'contents'}},$assessment); $currentmap->{'num_assess'}++; + $currentmap->{'num_assess_parts'}+= scalar(@$parts); } return ($top,\@Sequences,\@Assessments); } @@ -1685,13 +1687,26 @@ $ENV{'course.'.$cid.'.domain'}, and $ENV Returns a reference to a hash which contains: keys '$sname:$sdom' - values [$end,$start,$id,$section,$fullname] + values [$sdom,$sname,$end,$start,$id,$section,$fullname,$status] + +The constant values CL_SDOM, CL_SNAME, CL_END, etc. can be used +as indices into the returned list to future-proof clients against +changes in the list order. =cut ################################################ ################################################ +sub CL_SDOM { return 0; } +sub CL_SNAME { return 1; } +sub CL_END { return 2; } +sub CL_START { return 3; } +sub CL_ID { return 4; } +sub CL_SECTION { return 5; } +sub CL_FULLNAME { return 6; } +sub CL_STATUS { return 7; } + sub get_classlist { my ($cid,$cdom,$cnum) = @_; $cid = $cid || $ENV{'request.course.id'};