--- loncom/interface/lonwhatsnew.pm 2020/03/30 16:30:47 1.105.2.17 +++ loncom/interface/lonwhatsnew.pm 2020/09/01 22:30:58 1.105.2.18 @@ -1,5 +1,7 @@ +# The LearningOnline Network +# What's New in a course # -# $Id: lonwhatsnew.pm,v 1.105.2.17 2020/03/30 16:30:47 raeburn Exp $ +# $Id: lonwhatsnew.pm,v 1.105.2.18 2020/09/01 22:30:58 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1121,12 +1123,23 @@ 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; + } } } if ($handgradeable) { @@ -1135,6 +1148,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(); @@ -1800,12 +1814,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}.''); }