--- loncom/homework/grades.pm 2006/11/03 20:04:08 1.383
+++ loncom/homework/grades.pm 2007/04/16 19:00:38 1.395
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# The LON-CAPA Grading handler
#
-# $Id: grades.pm,v 1.383 2006/11/03 20:04:08 albertel Exp $
+# $Id: grades.pm,v 1.395 2007/04/16 19:00:38 albertel 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;
@@ -116,8 +117,12 @@ sub response_type {
my $navmap = Apache::lonnavmaps::navmap->new();
my $res = $navmap->getBySymb($symb);
my $partlist = $res->parts();
+ my %vPart =
+ map { $_ => 1 } (&Apache::loncommon::get_env_multiple('form.vPart'));
my (%response_types,%handgrade);
foreach my $part (@{ $partlist }) {
+ next if (%vPart && !exists($vPart{$part}));
+
my @types = $res->responseType($part);
my @ids = $res->responseIds($part);
for (my $i=0; $i < scalar(@ids); $i++) {
@@ -598,7 +603,8 @@ sub verifyreceipt {
my (undef,undef,$fullname) = &getclasslist('all','0');
my $receiptparts=0;
- if ($env{"course.$courseid.receiptalg"} eq 'receipt2') { $receiptparts=1; }
+ if ($env{"course.$courseid.receiptalg"} eq 'receipt2' ||
+ $env{"course.$courseid.receiptalg"} eq 'receipt3') { $receiptparts=1; }
my $parts=['0'];
if ($receiptparts) { ($parts)=&response_type($symb); }
foreach (sort
@@ -1513,10 +1519,10 @@ sub gradeBox {
$result.=''."\n";
@@ -1621,6 +1627,23 @@ sub show_problem {
return $result;
}
+sub download_all_link {
+ my ($r,$symb) = @_;
+ my $all_students =
+ join("\n", &Apache::loncommon::get_env_multiple('form.stuinfo'));
+
+ my $parts =
+ join("\n",&Apache::loncommon::get_env_multiple('form.vPart'));
+
+ my $identifier = &Apache::loncommon::get_cgi_id();
+ &Apache::lonnet::appenv('cgi.'.$identifier.'.students' => $all_students,
+ 'cgi.'.$identifier.'.symb' => $symb,
+ 'cgi.'.$identifier.'.parts' => $parts,);
+ $r->print(''.
+ &mt('Download All Submitted Documents').'');
+ return
+}
+
# --------------------------- show submissions of a student, option to grade
sub submission {
my ($request,$counter,$total) = @_;
@@ -1655,7 +1678,7 @@ sub submission {
&sub_page_kw_js($request) if ($env{'form.handgrade'} eq 'yes');
$env{'form.probTitle'} = $env{'form.probTitle'} eq '' ?
&Apache::lonnet::gettitle($symb) : $env{'form.probTitle'};
-
+ &download_all_link($request,$symb);
$request->print('
Part: '.
- $display_part.' ( ID '.$respid.
+ $lastsubonly.='Debug -'.'Part: '.
+ $display_part.' ( hhhh ID '.$respid.
' ) ';
my $files=&get_submitted_files($udom,$uname,$partid,$respid,\%record);
if (@$files) {
@@ -2006,7 +2032,8 @@ KEYWORDS
my $part_resp = join('_',@{ $part_response_id });
next if ($seen{$partid} > 0);
$seen{$partid}++;
- next if ($$handgrade{$part_resp} =~ /:no$/ && $env{'form.lastSub'} =~ /^(hdgrade)$/);
+ next if ($$handgrade{$part_resp} ne 'yes'
+ && $env{'form.lastSub'} eq 'hdgrade');
push @partlist,$partid;
push @gradePartRespid,$partid.'.'.$respid;
$request->print(&gradeBox($request,$symb,$uname,$udom,$counter,$partid,\%record));
@@ -2116,10 +2143,22 @@ 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);
+ } else {
+ $baseurl = $feedurl;
+ $showsymb = $symb;
+ }
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 '');
@@ -2127,14 +2166,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}) {
@@ -2150,7 +2191,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);
}
}
}
@@ -2506,10 +2563,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::clutter($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;
@@ -2941,7 +3010,7 @@ sub viewgrades {
}
$result.=''.' | '.' |
'."\n".
'