--- loncom/interface/lonwhatsnew.pm 2020/03/30 11:15:09 1.105.2.16 +++ loncom/interface/lonwhatsnew.pm 2020/12/13 02:00:49 1.129 @@ -1,5 +1,7 @@ +# The LearningOnline Network +# What's New in a course # -# $Id: lonwhatsnew.pm,v 1.105.2.16 2020/03/30 11:15:09 raeburn Exp $ +# $Id: lonwhatsnew.pm,v 1.129 2020/12/13 02:00:49 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -80,7 +82,7 @@ sub handler { } unless ($isadhoc) { %checkallowed = ( coursenormalmail => 1, - coursecritmail => 1,); + coursecritmail => 1,); } foreach my $perm_check (['whn','whatsnew',1], ['pch','coursediscussion',1], @@ -653,7 +655,8 @@ sub display_actions_box { foreach my $item (@actionorder) { unless ($item eq 'coursenormalmail' || $item eq 'coursecritmail' || - $item eq 'newroles' || $item eq 'oldroles') { + $item eq 'newroles' || $item eq 'oldroles' || + $item eq 'crslogin' || $item eq 'sessions') { if ($show{$item}) { $needitems = 1; last; @@ -1120,12 +1123,28 @@ sub check_discussions { sub check_handgraded { my ($resource,$symb,$title,$cdom,$cnum,$ungraded,$tograde) = @_; if ($resource->is_problem()) { - my ($map,$ind,$url)=&Apache::lonnet::decode_symb($symb); + my ($handgradeable,$is_task); my $partlist=$resource->parts(); - my $handgradeable; - foreach my $part (@$partlist) { - if ($resource->handgrade($part) eq 'yes') { - $handgradeable=1; last; + if ($resource->is_task()) { + $is_task = 1; + foreach my $part (@$partlist) { + if ($resource->handgrade($part) eq 'yes') { + $handgradeable=1; + last; + } + } + } else { + foreach my $part (@$partlist) { + my @types = $resource->responseType($part); + if (grep(/^essay$/,@types)) { + $handgradeable=1; + last; + } elsif (grep(/^custom$/,@types)) { + if ($resource->handgrade($part) eq 'yes') { + $handgradeable=1; + last; + } + } } } if ($handgradeable) { @@ -1134,6 +1153,7 @@ sub check_handgraded { if (@ungraded > 0) { $$ungraded{$symb}{count} = scalar(@ungraded); $$ungraded{$symb}{title} = $title; + $$ungraded{$symb}{is_task} = $is_task; if ($resource->encrypted()) { $$ungraded{$symb}{'enclink'} = $resource->link(); $$ungraded{$symb}{'encsymb'} = $resource->shown_symb(); @@ -1389,7 +1409,7 @@ sub getnormalmail { if (defined($sendtime) && $sendtime!~/error/) { if (($emailstatus{$msgid} eq 'new') || ($status eq 'new')) { $sendtime = &Apache::lonlocal::locallocaltime($sendtime); - $msgcount ++; + $msgcount ++; if ($shortsubj eq '') { $shortsubj = &mt('No subject'); } @@ -1799,12 +1819,23 @@ sub display_handgrade { foreach my $res (@{$tograde}) { $rowNum ++; my $css_class = $rowNum%2?' class="LC_odd_row"':''; - my ($map,$id,$url)=&Apache::lonnet::decode_symb($res); - my $linkurl=&Apache::lonnet::clutter($url); - $linkurl .= '?symb='.&escape($res); - if ($$ungraded{$res}{'enclink'}) { - $linkurl = - $$ungraded{$res}{'enclink'}.'?symb='.$$ungraded{$res}{'encsymb'}; + my $linkurl; + if ($$ungraded{$res}{'is_task'}) { + my ($map,$id,$url)=&Apache::lonnet::decode_symb($res); + $linkurl=&Apache::lonnet::clutter($url); + $linkurl .= '?symb='.&escape($res); + if ($$ungraded{$res}{'enclink'}) { + $linkurl = + $$ungraded{$res}{'enclink'}.'?symb='.$$ungraded{$res}{'encsymb'}; + } + } else { + $linkurl='/adm/grades'; + if ($$ungraded{$res}{'enclink'}) { + $linkurl.='?symb='.$$ungraded{$res}{'encsymb'}; + } else { + $linkurl.='?symb='.&escape($res); + } + $linkurl.='&command=ungraded'; } $r->print(''.$$ungraded{$res}{title}.''.$$ungraded{$res}{count}.''); } @@ -2114,7 +2145,7 @@ sub display_activity { } return; } - + sub display_coursediscussion { my ($r,$newdiscussions,$unread,$countunread,$res_title,$itemserror) = @_; my $lctype = lc(&Apache::loncommon::course_type()); @@ -2144,7 +2175,7 @@ sub display_coursediscussion { my $forum_title = $$unread{$ressymb}{'title'}; my $type = 'Resource'; my $feedurl=&Apache::lonfeedback::get_feedurl($ressymb); - my $disclink = $feedurl.'?symb='.&escape($$unread{$ressymb}{symb}); + my $disclink = $feedurl.'?symb='. &escape($$unread{$ressymb}{symb}); if ($feedurl =~ /bulletinboard/) { $type = 'Discussion Board'; }