[LON-CAPA-cvs] cvs: loncom /interface lonwhatsnew.pm
raeburn
lon-capa-cvs@mail.lon-capa.org
Tue, 30 May 2006 20:16:24 -0000
This is a MIME encoded message
--raeburn1149020184
Content-Type: text/plain
raeburn Tue May 30 16:16:24 2006 EDT
Modified files:
/loncom/interface lonwhatsnew.pm
Log:
Adding thin veneer to support ANGEL-style groups. Also modification to row colors for problems with multiple parts above critical values in thresholds display.
--raeburn1149020184
Content-Type: text/plain
Content-Disposition: attachment; filename="raeburn-20060530161624.txt"
Index: loncom/interface/lonwhatsnew.pm
diff -u loncom/interface/lonwhatsnew.pm:1.55 loncom/interface/lonwhatsnew.pm:1.56
--- loncom/interface/lonwhatsnew.pm:1.55 Tue May 30 08:46:09 2006
+++ loncom/interface/lonwhatsnew.pm Tue May 30 16:16:23 2006
@@ -1,5 +1,5 @@
#
-# $Id: lonwhatsnew.pm,v 1.55 2006/05/30 12:46:09 www Exp $
+# $Id: lonwhatsnew.pm,v 1.56 2006/05/30 20:16:23 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -145,6 +145,7 @@
my $domain=&Apache::loncommon::determinedomain();
my $function = &Apache::loncommon::get_users_function();
my $tabbg=&Apache::loncommon::designparm($function.'.tabbg',$domain);
+ my $lctype = lc($env{'course.'.$env{'request.course.id'}.'.type'});
$r->print('<table width="100%" border="0" cellpadding="5" cellspacing="0"><tr><td width="100%">');
my %threshold_titles = &Apache::lonlocal::texthash (
@@ -154,17 +155,17 @@
);
my %interval_titles = &Apache::lonlocal::texthash (
- -1 => 'since start of course',
+ -1 => "since start of $lctype",
2592000 => 'since last month',
604800 => 'since last week',
86400 => 'since yesterday',
);
my %initpage = &Apache::lonlocal::texthash (
- firstres => 'first resource in the course',
+ firstres => "first resource in the $lctype",
whatsnew => "what's new? page",
userpref => 'your general user preferences',
- coursespecific => 'specific setting for this course',
+ coursespecific => "specific setting for this $lctype",
);
my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
my $crs = $env{'course.'.$env{'request.course.id'}.'.num'};
@@ -227,7 +228,8 @@
</script>
';
}
- return &Apache::loncommon::start_page('Course Action Items',$scripttag);
+ return &Apache::loncommon::start_page(&mt('[_1] Action Items',
+ $env{'course.'.$env{'request.course.id'}.'.type'}),$scripttag);
}
#-------------------------------
@@ -246,11 +248,15 @@
my $udom = $env{'user.domain'};
my $uname = $env{'user.name'};
my $cid = $env{'request.course.id'};
-
+ my $crstype = $env{'course.'.$cid.'.type'};
+ my $lctype = lc($crstype);
+ my %stulabel = (
+ 'Course' => 'students',
+ 'Group' => 'members',
+ );
my %lt = &Apache::lonlocal::texthash(
- 'yacc' => 'You are accessing an invalid course.',
+ 'yacc' => 'You are accessing an invalid course or group',
'gtfr' => 'Go to first resource',
- 'pgse' => 'Page set to be displayed after you have selected a role in this course?',
'hial' => 'Hide all',
'shal' => 'Show all',
);
@@ -288,7 +294,7 @@
firstres => 'First resource',
whatsnew => "What's New? page",
userpref => 'user preference',
- coursespecific => 'course only',
+ coursespecific => $lctype.' only',
default => 'default',
);
@@ -309,13 +315,11 @@
'</a></font><br />');
}
}
- $r->print($lt{'pgse'}.' '.&mt('Currently: [_1]','<i>'.$currinit.'</i>').
- ' <nobr> '.&mt('[_1] for just [_2]','<b>Change</b>',
- '<a href="/adm/whatsnew?command=courseinit&refpage='.$refpage.
- '">this course</a>').' '.&mt('or for all [_1].',
- '<a href="/adm/preferences?action=changecourseinit&refpage='.
- $refpage.'">your courses</a>').'</nobr><br /><hr />');
-
+ $r->print(&mt('Page set to be displayed after you have selected a role in this [_1]',$lctype).
+ '. <nobr>'.&mt('Currently: <i>[_1]</i>',$currinit).'. '.
+ &mt('<b>Change</b> for just <a href="/adm/whatsnew?command=courseinit&refpage=[_1]">this [_2]</a>',$refpage,$lctype).' '.
+ &mt('or for all <a href="/adm/preferences?action=changecourseinit&refpage=[_1]">your courses/groups</a>',$refpage).'</nobr><br /><hr />');
+
if ($command eq 'reset') {
$result = &process_reset($cdom,$crs);
} elsif ($command eq 'update') {
@@ -330,7 +334,7 @@
unless ($store_result eq 'ok') {
&Apache::lonnet::logthis('Error storing whatsnew settings: '.
- $store_result.' for '.'user '.$uname.':'.$udom.' in course '.$cid);
+ $store_result.' for '.'user '.$uname.':'.$udom.' in '.$lctype.' '.$cid);
$result .= &mt('Unable to store visibility settings due to [_1]',
$store_result);
}
@@ -356,19 +360,19 @@
}
my %headings = &Apache::lonlocal::texthash(
- coursediscussion => 'Unread course discussion posts',
+ coursediscussion => 'Unread '.$lctype.' discussion posts',
handgrading => 'Problems requiring handgrading',
haserrors => 'Problems with errors',
- versionchanges => 'Resources in course with version changes '.$interval,
- coursenormalmail => 'New course messages',
- coursecritmail => 'New critical messages in course',
+ versionchanges => 'Resources in '.$lctype.' with version changes '.$interval,
+ coursenormalmail => 'New '.$lctype.' messages',
+ coursecritmail => 'New critical messages in '.$lctype,
);
if ($$checkallowed{'abovethreshold'}) {
&get_curr_thresholds(\%threshold,$uname,$udom,$cid,$cdom,$crs);
}
- $headings{'abovethreshold'} = &mt('Problems with av. attempts').' ≥ '.$threshold{'av_attempts'}.' '.&mt('or deg. difficulty').' ≥ '.$threshold{'degdiff'}.'<br /> '.&mt('and total number of students with submissions').' ≥ '.$threshold{'numstudents'};
+ $headings{'abovethreshold'} = &mt('Problems with av. attempts').' ≥ '.$threshold{'av_attempts'}.' '.&mt('or deg. difficulty').' ≥ '.$threshold{'degdiff'}.'<br /> '.&mt('and total number of [_1] with submissions',$stulabel{$crstype}).' ≥ '.$threshold{'numstudents'};
my @actionorder = ('handgrading','haserrors','abovethreshold','versionchanges','coursediscussion','coursenormalmail','coursecritmail');
@@ -526,9 +530,10 @@
sub display_interval_config {
my ($r,$refpage,$interval_titles) = @_;
+ my $lctype = lc($env{'course.'.$env{'request.course.id'}.'.type'});
my $current = &get_current($env{'user.name'},$env{'user.domain'},
$env{'request.course.id'},'interval');
- $r->print('<br />'.&mt('Choose the time window to use for display of version changes for resources in the course.'));
+ $r->print('<br />'.&mt('Choose the time window to use for display of version changes for resources in the [_1].',$lctype));
unless ($current eq '') {
$r->print(' '.&mt('Current value is [_1]','<b>'.
$$interval_titles{$current}.'</b>.'));
@@ -607,13 +612,14 @@
my ($control,$current) = &curr_courseinit();
my @chgstate = ('userpref','coursespecific');
my @chgentry = ('firstres','whatsnew');
+ my $lctype = lc($env{'course.'.$env{'request.course.id'}.'.type'});
my %lt = &Apache::lonlocal::texthash(
- 'chwp' => 'Choose which page will be displayed when you enter this course after selecting a role.',
+ 'chwp' => "Choose which page will be displayed when you enter this $lctype after selecting a role.",
'cuva' => 'Current value is determined by',
'anis' => 'and is set to display',
'padc' => 'Page display controlled by',
- 'chce' => 'Choose course entry',
- 'moce' => 'Modify course entry',
+ 'chce' => 'Choose '.$lctype.' entry',
+ 'moce' => 'Modify '.$lctype.' entry',
);
$r->print(<<"END");
<br />$lt{'chwp'}
@@ -623,17 +629,27 @@
<form method="post" name="courseinitswitch" action="/adm/whatsnew">
<input type="hidden" name="command" value="newcourseinit" />
<input type="hidden" name="refpage" value="$refpage" />
-$lt{'padc'}
+$lt{'padc'}:
END
foreach my $choice (@chgstate) {
+ my $chkstring;
+ if ($choice eq $control) {
+ $chkstring = ' checked="checked" ';
+ }
$r->print('<nobr><label><input type="radio" name="courseinit_control" value="'.
- $choice.'"/>'.$$initpage{$choice}.' </label></nobr>');
+ $choice.'"'.$chkstring.'/>'.$$initpage{$choice}.
+ ' </label></nobr>');
}
$r->print('<br /><br />'.&mt('If').' '.$$initpage{'coursespecific'}.
- '<br />'.$lt{'chce'}." \n");
+ ' - <br />'.$lt{'chce'}.": \n");
foreach my $choice (@chgentry) {
+ my $chkstring;
+ if (($choice eq $current) && ($control eq 'coursespecific')) {
+ $chkstring = ' checked="checked" ';
+ }
$r->print('<nobr><label><input type="radio" name="courseinit_page" value="'.
- $choice.'"/>'.$$initpage{$choice}.' </label></nobr>');
+ $choice.'"'.$chkstring.'/>'.$$initpage{$choice}.
+ ' </label></nobr>');
}
$r->print('<br /><br /><input type="submit" name="display" value="'.
$lt{'moce'}.'" /></form>');
@@ -681,7 +697,7 @@
} elsif ($action eq 'abovethreshold') { # DEGDIFF/AV. TRIES TRIGGERS
&display_abovethreshold($r,$refpage,$warnings,$triggered,
- $res_title,$rowColor1,$rowColor2);
+ $res_title);
} elsif ($action eq 'coursediscussion') { # UNREAD COURSE DISCUSSION
&display_coursediscussion($r,$newdiscussions,$unread,
$countunread,$res_title,$rowColor1,$rowColor2);
@@ -864,11 +880,12 @@
}
}
if ($warning) {
- if ($warningnum %2 == 1) {
+ if ($$warningnum %2 == 1) {
$rowColor = $rowColor1;
} else {
$rowColor = $rowColor2;
}
+ $$triggered{$symb}{rowColor} = $rowColor;
$$triggered{$symb}{title} = $resource->title;
foreach my $part (@parts) {
if (exists($stats{$part}{users})) {
@@ -895,7 +912,7 @@
}
}
push(@{$warnings},$symb);
- $warningnum ++;
+ $$warningnum ++;
}
}
@@ -1173,7 +1190,7 @@
}
sub display_abovethreshold {
- my ($r,$refpage,$warnings,$triggered,$res_title,$rowColor1,$rowColor2) = @_;
+ my ($r,$refpage,$warnings,$triggered,$res_title) = @_;
my %lt = &Apache::lonlocal::texthash(
reso => 'Resource',
part => 'Part',
@@ -1185,8 +1202,6 @@
rese => 'Reset counters to 0',
nopr => 'No problems satisfy threshold criteria',
);
- my $rowColor;
- my $warningnum = 0;
if (@{$warnings} > 0) {
@{$warnings} = sort { &cmp_title($a,$b,$res_title) } @{$warnings};
$r->print('<form name="reset_tracking" method="post" action="/adm/whatsnew">'.
@@ -1195,11 +1210,6 @@
"\n");
$r->print('<tr bgcolor="#cccccc"><td><b><small>'.$lt{'reso'}.'</small></b></td><td align="right"><b><small>'.$lt{'part'}.'</small></b></td><td align="right"><b><small>'.$lt{'nust'}.'</small></b></td><td align="right"><b><small>'.$lt{'avat'}.'</small></b></td><td align="right"><b><small>'.$lt{'dedi'}.'</small></b></td><td align="right"><b><small>'.$lt{'lare'}.'</small></b></td><td align="right"><b><small>'.$lt{'reco'}.'</small></b></td></tr>');
foreach my $res (@{$warnings}) {
- if ($warningnum %2 == 1) {
- $rowColor = $rowColor1;
- } else {
- $rowColor = $rowColor2;
- }
my ($map,$id,$url)=&Apache::lonnet::decode_symb($res);
my $linkurl=&Apache::lonnet::clutter($url);
my $rowspan;
@@ -1207,8 +1217,7 @@
$rowspan = 'rowspan="'.$$triggered{$res}{numparts}.'"';
}
$linkurl .= '?symb='.&escape($res);
- $r->print('<tr bgcolor="'.$rowColor.'"><td '.$rowspan.'><a href="'.$linkurl.'"><small>'.$$triggered{$res}{title}.'</small></a></td>'.$$triggered{$res}{text});
- $warningnum ++;
+ $r->print('<tr bgcolor="'.$$triggered{$res}{rowColor}.'"><td '.$rowspan.'><a href="'.$linkurl.'"><small>'.$$triggered{$res}{title}.'</small></a></td>'.$$triggered{$res}{text});
}
$r->print('<tr bgcolor="#cccccc"><td colspan="7" align="right"><br /><b><small><input type="submit" name="counters" value="'.$lt{'rese'}.'" /></form>');
} else {
@@ -1254,11 +1263,12 @@
sub display_coursediscussion {
my ($r,$newdiscussions,$unread,$countunread,$res_title,$rowColor1,
$rowColor2) = @_;
+ my $lctype = lc($env{'course.'.$env{'request.course.id'}.'.type'});
my %lt = &Apache::lonlocal::texthash(
'loca' => 'Location',
'type' => 'Type',
'numn' => 'Number of new posts',
- 'noun' => 'No unread posts in course discussions',
+ 'noun' => 'No unread posts in '.$lctype.' discussions',
'tmlp' => 'Time of last post',
);
my $rowColor;
@@ -1312,6 +1322,7 @@
sub display_coursenormalmail {
my ($r,$msgcount,$newmsgs,$rowColor1,$rowColor2) = @_;
my $rowColor;
+ my $lctype = lc($env{'course.'.$env{'request.course.id'}.'.type'});
if ($msgcount > 0) {
$r->print('<tr bgcolor="#cccccc"><td><b><small>'.&mt('Number').'</small></b></td><td><b><small>'.&mt('Subject').'</small></b></td><td><b><small>'.&mt('Sender').'</small></b></td><td><b><small>'.&mt('Date/Time').'</small></b></td></tr>');
my $rowNum = 0;
@@ -1327,13 +1338,14 @@
$mailcount ++;
}
} else {
- $r->print('<tr><td bgcolor="#ffffff" width="100%"><center><br /><b><i><small>'.&mt('No new course messages').'</small></i></b><br /><br /></center></td></tr>');
+ $r->print('<tr><td bgcolor="#ffffff" width="100%"><center><br /><b><i><small>'.&mt('No new [_1] messages',$lctype).'</small></i></b><br /><br /></center></td></tr>');
}
}
sub display_coursecritmail {
my ($r,$critmsgcount,$critmsgs,$rowColor1,$rowColor2) = @_;
my $rowColor;
+ my $lctype = lc($env{'course.'.$env{'request.course.id'}.'.type'});
if ($critmsgcount > 0) {
$r->print('<tr bgcolor="#cccccc"><td><b><small>'.&mt('Number').'</small></b></td><td><b><small>'.&mt('Subject').'</small></b></td><td><b><small>'.&mt('Sender').'</small></b></td><td><b><small>'.&mt('Date/Time').'</small></b></td></tr>');
my $rowNum = 0;
@@ -1349,7 +1361,7 @@
$mailcount ++;
}
} else {
- $r->print('<tr><td bgcolor="#ffffff" width="100%"><center><br /><b><i><small>'.&mt('No unread critical messages in course').'</small></i></b><br /><br /></center></td></tr>');
+ $r->print('<tr><td bgcolor="#ffffff" width="100%"><center><br /><b><i><small>'.&mt('No unread critical messages in [_1]',$lctype).'</small></i></b><br /><br /></center></td></tr>');
}
}
@@ -1368,8 +1380,9 @@
if ($tmp=~ /^(con_lost|error|no_such_host)/i) {
%settings = ();
unless ($tmp =~ /^error: 2 /) {
+ my $lctype = lc($env{'course.'.$env{'request.course.id'}.'.type'});
&Apache::lonnet::logthis('Error retrieving whatsnew settings: '.
- $tmp.' for '.$uname.':'.$udom.' for course: '.$cid);
+ $tmp.' for '.$uname.':'.$udom.' for '.$lctype.': '.$cid);
}
}
return %settings;
@@ -1409,8 +1422,9 @@
'<b>'.$$interval_titles{$env{'form.interval'}}.'</b><br />');
} else {
+ my $lctype = lc($env{'course.'.$env{'request.course.id'}.'.type'});
&Apache::lonnet::logthis('Error storing whatsnew interval setting'.
- ' '.$outcome.' for '.$uname.':'.$udom.' in course '.$cid);
+ ' '.$outcome.' for '.$uname.':'.$udom.' in '.$lctype.' '.$cid);
$result = &mt('Unable to set interval to [_1] due to [_2].',
'<b>'.$$interval_titles{$env{'form.interval'}}.'</b>',
'<tt>'.$outcome.'</tt>.<br />');
@@ -1432,8 +1446,9 @@
'<b>'.$env{'form.countunread'}.'</b><br />');
} else {
+ my $lctype = lc($env{'course.'.$env{'request.course.id'}.'.type'});
&Apache::lonnet::logthis('Error storing whatsnew countunread setting'.
- ' '.$outcome.' for '.$uname.':'.$udom.' in course '.$cid);
+ ' '.$outcome.' for '.$uname.':'.$udom.' in '.$lctype.' '.$cid);
$result = &mt('Unable to set "number unread posts display" to [_1]'.
' due to [_2].',
'<b>'.$env{'form.countunread'}.'</b>',
@@ -1460,27 +1475,27 @@
}
}
if ($page_control) {
+ my $lctype = lc($env{'course.'.$env{'request.course.id'}.'.type'});
my $outcome = &Apache::lonnet::put('nohist_whatsnew',
\%courseinit_settings,$udom,$uname);
if ($outcome eq 'ok') {
if ($page_control eq 'global preferences') {
- $result = &mt('Page displayed after role selection in course now set by [_1]',"<b>user's global preferences</b>.");
+ $result = &mt("Page displayed after role selection in [_1] now set by <b>user's global preferences</b>.",$lctype);
} else {
- $result = &mt('Page displayed after role selection in this course set to [_1]','<b>'.$$initpage{$env{'form.courseinit_page'}}.'</b>.');
+ $result = &mt('Page displayed after role selection in this [_1] set to <b>[_2]</b>',$lctype,$$initpage{$env{'form.courseinit_page'}});
}
} else {
&Apache::lonnet::logthis('Error storing whatsnew courseinit '.
'setting: '.$outcome.' for '.$uname.
- ':'.$udom.' in course '.$cid);
+ ':'.$udom.' in '.$lctype.' '.$cid);
if ($page_control eq 'global preferences') {
$result = &mt('Unable to set control of page display to [_1]'.
' due to [_2].',
'<b>'.$page_control.'</b>',
'<tt>'.$outcome.'</tt>.<br />');
} else {
- $result = &mt('Unable to set page display, after role selection, for this course to [_1] due to [_2].',
- '<b>'.$$initpage{$env{'form.courseinit_page'}}.'</b>',
- '<tt>'.$outcome.'</tt>.<br />');
+ $result = &mt('Unable to set page display, after role selection, for this [_1] to <b>[_2]</b> due to <tt>[_3]</tt>.<br />',$lctype,
+ $$initpage{$env{'form.courseinit_page'}},$outcome);
}
}
}
--raeburn1149020184--