--- loncom/interface/lonnavmaps.pm 2010/11/15 22:46:47 1.440.2.3 +++ loncom/interface/lonnavmaps.pm 2010/02/28 22:36:38 1.444 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Navigate Maps Handler # -# $Id: lonnavmaps.pm,v 1.440.2.3 2010/11/15 22:46:47 raeburn Exp $ +# $Id: lonnavmaps.pm,v 1.444 2010/02/28 22:36:38 raeburn Exp $ # # Copyright Michigan State University Board of Trustees @@ -478,6 +478,7 @@ use Apache::loncommon(); use Apache::lonenc(); use Apache::lonlocal; use Apache::lonnet; + use POSIX qw (floor strftime); use Time::HiRes qw( gettimeofday tv_interval ); use LONCAPA; @@ -492,7 +493,7 @@ sub NOTHING { return 3; } my $resObj = "Apache::lonnavmaps::resource"; -# Keep these mappings in sync with lonquickgrades, which uses the colors +# Keep these mappings in sync with lonquickgrades, which usesthe colors # instead of the icons. my %statusIconMap = ( @@ -699,8 +700,8 @@ sub getDescription { return &mt("Excused by instructor"); } if ($status == $res->ATTEMPTED) { - if ($res->src() eq '/res/gci/gci/internal/submission.problem') { - return &mt('Question(s) submitted for review'); + if ($res->is_anonsurvey($part) || $res->is_survey($part)) { + return &mt("Survey submission recorded"); } else { return &mt("Answer submitted, not yet graded"); } @@ -723,11 +724,7 @@ sub getDescription { } } if ($status == $res->ANSWER_SUBMITTED) { - if ($res->src() eq '/res/gci/gci/internal/submission.problem') { - return &mt('Question(s) submitted for review'); - } else { - return &mt('Answer submitted'); - } + return &mt('Answer submitted'); } } @@ -1045,7 +1042,7 @@ sub render_communication_status { my $location=&Apache::loncommon::lonhttpdurl("/adm/lonMisc"); if ($resource->hasDiscussion()) { $discussionHTML = $linkopen . - ''.&mt('New Discussion').'' . + ''.&mt('New Discussion').'' . $linkclose; } @@ -1055,7 +1052,7 @@ sub render_communication_status { if ($msgid) { $feedbackHTML .= ' ' - . ''.&mt('New E-mail').''; + . ''.&mt('New E-mail').''; } } } @@ -1069,7 +1066,7 @@ sub render_communication_status { $errorcount++; $errorHTML .= ' ' - . ''.&mt('New Error').''; + . ''.&mt('New Error').''; } } } @@ -1496,7 +1493,12 @@ END if ($args->{'caller'} eq 'navmapsdisplay') { $result .= ''; + &Apache::loncommon::help_open_menu('Navigation Screen','Navigation_Screen',undef,'RAT').''; + if ($env{'environment.remotenavmap'} ne 'on') { + $result .= ''; + } else { + $result .= ''; + } $result.=""; $result.=&show_linkitems_toolbar($args->{'linkitems'}); if ($args->{'sort_html'}) { @@ -1504,7 +1506,7 @@ END $result.=''. ''; } else { - $result.=''; } } @@ -1887,7 +1889,7 @@ sub show_linkitems_toolbar { my $result .=' '."\n"; @@ -2388,7 +2382,7 @@ resource object. Based on the symb of the resource, get a resource object for that resource. This is one of the proper ways to get a resource object. -=item * B(map_pc): +=item * B(map_pc): Based on the map_pc of the resource, get a resource object for the given map. This is one of the proper ways to get a resource object. @@ -3543,7 +3537,11 @@ sub navHash { my $self = shift; my $param = shift; my $id = shift; - return $self->{NAV_MAP}->navhash($param . ($id?$self->{ID}:"")); + my $arg = $param . ($id?$self->{ID}:""); + if (defined($arg)) { + return $self->{NAV_MAP}->navhash($arg); + } + return; } =pod @@ -3786,6 +3784,35 @@ sub is_problem { } return 0; } +# +# The has below is the set of status that are considered 'incomplete' +# +my %incomplete_hash = +( + TRIES_LEFT() => 1, + OPEN() => 1, + ATTEMPTED() => 1 + + ); +# +# Return tru if a problem is incomplete... for now incomplete means that +# any part of the problem is incomplete. +# Note that if the resources is not a problem, 0 is returned. +# +sub is_incomplete { + my $self = shift; + if ($self->is_problem()) { + &Apache::lonnet::logthis('is problem'); + foreach my $part (@{$self->parts()}) { + &Apache::lonnet::logthis("$part status ".$self->status($part)); + if (exists($incomplete_hash{$self->status($part)})) { + return 1; + } + } + } + return 0; + +} sub is_raw_problem { my $self=shift; my $src = $self->src(); @@ -3821,7 +3848,7 @@ sub is_survey { my $self = shift(); my $part = shift(); my $type = $self->parmval('type',$part); - if ($type eq 'survey') { + if (($type eq 'survey') || ($type eq 'surveycred')) { return 1; } if ($self->src() =~ /\.(survey)$/) { @@ -3829,6 +3856,15 @@ sub is_survey { } return 0; } +sub is_anonsurvey { + my $self = shift(); + my $part = shift(); + my $type = $self->parmval('type',$part); + if (($type eq 'anonsurvey') || ($type eq 'anonsurveycred')) { + return 1; + } + return 0; +} sub is_task { my $self=shift; my $src = $self->src(); @@ -3882,12 +3918,6 @@ resource of the map. Returns a string with the type of the map in it. -=item *B: - -Returns a string with a comma-separated ordered list of map_pc IDs -for the hierarchy of maps containing a map, with the top level -map first, then descending to deeper levels, with the enclosing map last. - =back =cut @@ -3918,11 +3948,6 @@ sub map_type { my $pc = $self->map_pc(); return $self->navHash("map_type_$pc", 0); } -sub map_hierarchy { - my $self = shift; - my $pc = $self->map_pc(); - return $self->navHash("map_hierarchy_$pc", 0); -} ##### # Property queries
'. - &Apache::loncommon::help_open_menu('Navigation Screen','Navigation_Screen',undef,'RAT').'  
".mt('Tools:')."   '.$args->{'sort_html'}.'

'. + $result.='

'. $args->{'sort_html'}.'
'."\n
    "; - foreach my $link (@linkorder) { + foreach my $link (@linkorder) { my $link_id = "LC_content_toolbar_".$link; if (defined($linkitems->{$link})) { if ($linkitems->{$link}{'text'} ne '') { @@ -1907,14 +1909,6 @@ sub show_linkitems_toolbar { } } } - if ($env{'environment.remotenavmap'} eq 'on') { - if (&Apache::loncommon::needs_gci_custom()) { - if ($env{'request.course.id'} && - &Apache::lonnet::allowed('mdc',$env{'request.course.id'})) { - $result .= '
  • '; - } - } - } $result .= '
'; $result .= '