--- loncom/homework/grades.pm 2006/10/17 20:19:31 1.380
+++ loncom/homework/grades.pm 2007/01/04 14:59:57 1.386
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# The LON-CAPA Grading handler
#
-# $Id: grades.pm,v 1.380 2006/10/17 20:19:31 albertel Exp $
+# $Id: grades.pm,v 1.386 2007/01/04 14:59:57 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -39,6 +39,7 @@ use Apache::loncoursedata;
use Apache::lonmsg();
use Apache::Constants qw(:common);
use Apache::lonlocal;
+use Apache::lonenc;
use String::Similarity;
use lib '/home/httpd/lib/perl';
use LONCAPA;
@@ -1469,7 +1470,8 @@ sub get_increment {
#--- displays the grading box, used in essay type problem and grading by page/sequence
sub gradeBox {
my ($request,$symb,$uname,$udom,$counter,$partid,$record) = @_;
- my $checkIcon = '';
my $wgt = &Apache::lonnet::EXT('resource.'.$partid.'.weight',$symb,$udom,$uname);
my $wgtmsg = ($wgt > 0 ? '(problem weight)' :
@@ -1492,10 +1494,10 @@ sub gradeBox {
my $increment = &get_increment();
$result.='
'."\n"; # display radio buttons in a nice table 10 across
while ($thisweight<=$wgt) {
- $result.= '
' : '');
$thisweight += $increment;
$ctr++;
@@ -1512,14 +1514,14 @@ sub gradeBox {
$result.=''."\n";
- $result.="  \n";
+ $result.=" \n";
$result.=''."\n".
''."\n".
'dir_config('lonIconsURL').
+ my $checkIcon = '';
# header info
@@ -1752,7 +1759,7 @@ KEYWORDS
# Load the other essays for similarity check
#
my (undef,undef,$essayurl) = &Apache::lonnet::decode_symb($symb);
- my ($adom,$aname,$apath)=($essayurl=~/^(\w+)\/(\w+)\/(.*)$/);
+ my ($adom,$aname,$apath)=($essayurl=~/^($LONCAPA::domain_re)\/($LONCAPA::username_re)\/(.*)$/);
$apath=&escape($apath);
$apath=~s/\W/\_/gs;
%oldessays=&Apache::lonnet::dump('nohist_essay_'.$apath,$adom,$aname);
@@ -2110,10 +2117,19 @@ sub processHandGrade {
}
my $includemsg = $env{'form.includemsg'.$ctr};
my ($subject,$message,$msgstatus) = ('','','');
+ my $restitle = &Apache::lonnet::gettitle($symb);
+ my $encrypturl=&Apache::lonnet::EXT('resource.0.encrypturl',
+ $symb,$udom,$uname);
+ my ($feedurl,$baseurl,$showsymb,$messagetail);
+ $feedurl = &Apache::lonnet::clutter($url);
+ if ($encrypturl =~ /^yes$/i) {
+ $baseurl = &Apache::lonenc::encrypted($feedurl,1);
+ $showsymb = &Apache::lonenc::encrypted($symb,1);
+ }
if ($includemsg =~ /savemsg|newmsg\Q$ctr\E/) {
$subject = $env{'form.msgsub'} if ($includemsg =~ /msgsub/);
unless ($subject=~/\w/) { $subject=&mt('Grading Feedback'); }
- $subject.=' ['.&Apache::lonnet::declutter($url).']';
+ $subject.=' ['.$restitle.']';
my (@msgnum) = split(/,/,$includemsg);
foreach (@msgnum) {
$message.=$env{'form.'.$_} if ($_ =~ /savemsg|newmsg/ && $_ ne '');
@@ -2121,14 +2137,16 @@ sub processHandGrade {
$message =&Apache::lonfeedback::clear_out_html($message);
if ($env{'form.withgrades'.$ctr}) {
$message.="\n\nPoint".($pts > 1 ? 's':'').' awarded = '.$pts.' out of '.$wgt;
- $message.=" for $env{'form.probTitle'}";
- }
- $msgstatus = &Apache::lonmsg::user_normal_msg($uname,$udom,
- $subject,
- $message);
- $request->print(' '.&mt('Sending message to [_1]@[_2]',$uname,$udom).': '.
+ $messagetail = " for $env{'form.probTitle'}";
+ }
+ $msgstatus =
+ &Apache::lonmsg::user_normal_msg($uname,$udom,$subject,
+ $message.$messagetail,
+ undef,$baseurl,undef,
+ undef,undef,$showsymb,
+ $restitle);
+ $request->print(' '.&mt('Sending message to [_1]:[_2]',$uname,$udom).': '.
$msgstatus);
}
if ($env{'form.collaborator'.$ctr}) {
@@ -2144,7 +2162,23 @@ sub processHandGrade {
next;
} else {
if ($message ne '') {
- $msgstatus = &Apache::lonmsg::user_normal_msg($collaborator,$udom,$subject,$message);
+ $encrypturl=
+ &Apache::lonnet::EXT('resource.0.encrypturl',
+ $symb,$udom,$collaborator);
+ if ($encrypturl =~ /^yes$/i) {
+ $baseurl = &Apache::lonenc::encrypted($feedurl,1);
+ $showsymb = &Apache::lonenc::encrypted($symb,1);
+ } else {
+ $baseurl = $feedurl;
+ $showsymb = $symb;
+ }
+ if ($env{'form.withgrades'.$ctr}) {
+ $messagetail = " for $env{'form.probTitle'}";
+
+ }
+ $msgstatus =
+ &Apache::lonmsg::user_normal_msg($collaborator,$udom,$subject,$message.$messagetail,undef,$baseurl,undef,undef,undef,$showsymb,$restitle);
}
}
}
@@ -2500,10 +2534,22 @@ sub handback_files {
$message .= ' The returned file(s) are named: '. $file_msg;
$message .= " and can be found in your portfolio space.";
my $url = (&Apache::lonnet::decode_symb($symb))[2];
- $url = &Apache::lonnet::declutter($url);
- my $msgstatus = &Apache::lonmsg::user_normal_msg($stuname,$domain,
- $subject.' (File Returned) ['.$url.']',$message);
-
+ my $feedurl = &Apache::lonnet::declutter($url);
+ my $encrypturl=&Apache::lonnet::EXT('resource.0.encrypturl',
+ $symb,$domain,$stuname);
+ my ($baseurl,$showsymb);
+ if ($encrypturl =~ /^yes$/i) {
+ $baseurl = &Apache::lonenc::encrypted($feedurl,1);
+ $showsymb = &Apache::lonenc::encrypted($symb,1);
+ } else {
+ $baseurl = $feedurl;
+ $showsymb = $symb;
+ }
+ my $restitle = &Apache::lonnet::gettitle($symb);
+ my $msgstatus =
+ &Apache::lonmsg::user_normal_msg($stuname,$domain,$subject.
+ ' (File Returned) ['.$restitle.']',$message,undef,
+ $baseurl,undef,undef,undef,$showsymb,$restitle);
}
}
return;
@@ -3776,6 +3822,9 @@ LISTJAVASCRIPT
''."\n".
''." \n";
+ $result.=' '.&mt('Use CODE:').' '.
+ ' '."\n";
+
$result.=' " /> '."\n";
@@ -3806,8 +3855,8 @@ LISTJAVASCRIPT
$studentTable.=($ptr%2 == 0 ? '
' : '');
$ptr++;
}
- $studentTable.='
' if ($ptr%2 == 0);
- $studentTable.='
'."\n";
+ $studentTable.='
' if ($ptr%2 == 0);
+ $studentTable.=''."\n";
$studentTable.='" />'."\n";
@@ -3830,9 +3879,10 @@ sub getSymbMap {
1,0,1);
for my $sequence ($navmap->getById('0.0'), @sequences) {
if ($navmap->hasResource($sequence, sub { shift->is_problem(); }, 0) ) {
- my $title = $minder.'.'.$sequence->compTitle();
- push @titles, $title; # minder in case two titles are identical
- $symbx{$title} = $sequence->symb();
+ my $title = $minder.'.'.
+ &HTML::Entities::encode($sequence->compTitle(),'"\'&');
+ push(@titles, $title); # minder in case two titles are identical
+ $symbx{$title} = &HTML::Entities::encode($sequence->symb(),'"\'&');
$minder++;
}
}
@@ -3868,6 +3918,11 @@ sub displayPage {
my $result='