--- loncom/interface/lonwhatsnew.pm 2006/09/06 19:20:04 1.61
+++ loncom/interface/lonwhatsnew.pm 2006/12/20 23:02:33 1.67
@@ -1,5 +1,5 @@
#
-# $Id: lonwhatsnew.pm,v 1.61 2006/09/06 19:20:04 albertel Exp $
+# $Id: lonwhatsnew.pm,v 1.67 2006/12/20 23:02:33 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -286,11 +286,7 @@ sub display_actions_box {
$result = &store_courseinit_setting($uname,$udom,$cid,$initpage);
}
- my %threshold = (
- av_attempts => 2,
- degdiff => 0.5,
- numstudents => 2,
- );
+ my %threshold = ();
my %pagedesc = &Apache::lonlocal::texthash (
firstres => 'First resource',
whatsnew => "What's New? page",
@@ -468,9 +464,6 @@ sub display_threshold_config {
my $rowColor;
my @thresholditems = ("av_attempts","degdiff","numstudents");
- foreach my $item (@thresholditems) {
- $threshold{$item} = '';
- }
my %threshold_titles = &Apache::lonlocal::texthash(
av_attempts => 'Average number of attempts',
degdiff => 'Degree of difficulty',
@@ -747,6 +740,10 @@ sub getitems {
%{$$ungraded{$symb}} = ();
%{$$triggered{$symb}} = ();
$$triggered{$symb}{numparts} = 0;
+ if ($resource->encrypted()) {
+ $$triggered{$symb}{'enclink'} = $resource->link();
+ $$triggered{$symb}{'encsymb'} = $resource->shown_symb();
+ }
my $title = $resource->compTitle();
$$res_title{$symb} = $title;
my $ressymb = $resource->wrap_symb();
@@ -788,12 +785,17 @@ sub check_discussions {
%{$$unread{$ressymb}} = ();
$$unread{$ressymb}{'title'} = $title;
$$unread{$ressymb}{'symb'} = $symb;
+ if ($resource->encrypted()) {
+ $$unread{$ressymb}{'enclink'} = $resource->link();
+ $$unread{$ressymb}{'encsymb'} = $resource->shown_symb();
+ }
push(@{$newdiscussions}, $ressymb);
$$unread{$ressymb}{'lastpost'} = $resource->last_post_time();
if ($countunread eq 'on') {
- $$unread{$ressymb}{'unreadcount'} = $resource->unread_discussion();
+ $$unread{$ressymb}{'unreadcount'} =
+ $resource->discussion_info('unread');
}
}
@@ -814,7 +816,11 @@ sub check_handgraded {
if (@ungraded > 0) {
$$ungraded{$symb}{count} = scalar(@ungraded);
$$ungraded{$symb}{title} = $title;
- push(@{$tograde}, $symb);
+ if ($resource->encrypted()) {
+ $$ungraded{$symb}{'enclink'} = $resource->link();
+ $$ungraded{$symb}{'encsymb'} = $resource->shown_symb();
+ }
+ push(@{$tograde},$symb);
}
}
}
@@ -883,29 +889,28 @@ sub check_thresholds {
}
if ($warning) {
$$triggered{$symb}{title} = $resource->title;
+ my $partcount = 0;
+ @{$$triggered{$symb}{text}} = ();
foreach my $part (@parts) {
if (exists($stats{$part}{users})) {
my $resetname = 'reset_'.&escape($symb."\0".$part);
my $resettitle = 'title_'.&escape($symb."\0".$part);
- if ($$triggered{$symb}{numparts}) {
- $$triggered{$symb}{text} .= '
'."\n";
- }
if (@parts > 1) {
- $$triggered{$symb}{text} .= '
+ $$triggered{$symb}{text}[$partcount] = '
part - '.$part.' | ';
} else {
- $$triggered{$symb}{text} .= '
+ $$triggered{$symb}{text}[$partcount] = '
single part | ';
}
- $$triggered{$symb}{text} .= '
+ $$triggered{$symb}{text}[$partcount] .= '
'.$stats{$part}{users}.' |
'.$stats{$part}{attempts}.' |
'.$stats{$part}{degdiff}.' |
'.$lastreset{$part}.' |
- |
-
';
- $$triggered{$symb}{numparts} ++;
+ | ';
+ $partcount ++;
}
+ $$triggered{$symb}{numparts} = $partcount;
}
push(@{$warnings},$symb);
}
@@ -914,6 +919,11 @@ sub check_thresholds {
sub get_curr_thresholds {
my ($threshold,$uname,$udom,$cid,$cdom,$crs) = @_;
+ # set default values
+ %$threshold = (av_attempts => 2,
+ degdiff => 0.5,
+ numstudents => 2
+ );
my %thresholdsettings = &Apache::lonnet::dump('nohist_whatsnew',$udom,
$uname,$cid.':threshold');
my $thresholdcount = 0;
@@ -1005,7 +1015,7 @@ sub process_update {
next if ($_!~/^form\.(.+)\_setparmval$/);
my $name = $1;
my $value = $env{'form.'.$name.'_value'};
- if ($name && defined($value)) {
+ if ($name && defined($value) && ($value ne '')) {
my $put_result = &Apache::lonnet::put('nohist_whatsnew',
{$name=>$value},$udom,$uname);
@@ -1148,7 +1158,10 @@ sub display_handgrade {
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'};
+ }
$r->print(''.$$ungraded{$res}{title}.' | '.$$ungraded{$res}{count}.' |
');
$rowNum ++;
}
@@ -1218,14 +1231,30 @@ sub display_abovethreshold {
$rowspan = 'rowspan="'.$$triggered{$res}{numparts}.'"';
}
$linkurl .= '?symb='.&escape($res);
- $r->print(''.
+ if ($$triggered{$res}{'enclink'}) {
+ $linkurl =
+ $$triggered{$res}{'enclink'}.'?symb='.$$triggered{$res}{'encsymb'};
+ }
+ my $css_class = $row%2?'LC_odd_row':'';
+ $r->print('
'.
''.
- $$triggered{$res}{title}.' | '.
- $$triggered{$res}{text});
+ $$triggered{$res}{title}.'');
+ if (ref($$triggered{$res}{text}) eq 'ARRAY') {
+ $r->print($$triggered{$res}{text}[0]);
+ }
+ $r->print('
');
+ if (ref($$triggered{$res}{text}) eq 'ARRAY') {
+ if (@{$$triggered{$res}{text}} > 1) {
+ for (my $i=1; $i<@{$$triggered{$res}{text}}; $i++) {
+ $r->print(''.
+ $$triggered{$res}{text}[$i].'
');
+ }
+ }
+ }
}
$r->print('
|
');
} else {
- $r->print('
'.$lt{'nopr'}.'
');
+ $r->print(''.$lt{'nopr'}.' |
');
}
}
@@ -1296,9 +1325,13 @@ sub display_coursediscussion {
my $forum_title = $$unread{$ressymb}{'title'};
my $type = 'Resource';
my $feedurl=&Apache::lonfeedback::get_feedurl($ressymb);
+ my $disclink = $feedurl.'?symb='.$$unread{$ressymb}{symb};
if ($feedurl =~ /bulletinboard/) {
$type = 'Bulletin Board';
}
+ if ($$unread{$ressymb}{'enclink'}) {
+ $disclink = $$unread{$ressymb}{'enclink'}.'?symb='.$$unread{$ressymb}{'encsymb'};
+ }
if ($rowNum %2 == 1) {
$rowColor = $rowColor1;
} else {
@@ -1306,7 +1339,7 @@ sub display_coursediscussion {
}
my $lastpost = &Apache::lonnavmaps::timeToHumanString(
$$unread{$ressymb}{'lastpost'});
- $r->print(''.$forum_title.' | '.$type.' | ');
+ $r->print('
'.$forum_title.' | '.$type.' | ');
if ($countunread eq 'on') {
my $unreadnum = $$unread{$ressymb}{'unreadcount'};
$r->print(''.$lastpost.' | '.
|