--- loncom/homework/grades.pm 2010/04/01 02:28:27 1.574.2.10
+++ loncom/homework/grades.pm 2009/11/21 16:41:41 1.581
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# The LON-CAPA Grading handler
#
-# $Id: grades.pm,v 1.574.2.10 2010/04/01 02:28:27 raeburn Exp $
+# $Id: grades.pm,v 1.581 2009/11/21 16:41:41 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -97,15 +97,9 @@ sub ssi_print_error {
#
# --- Retrieve the parts from the metadata file.---
sub getpartlist {
- my ($symb,$errorref) = @_;
+ my ($symb) = @_;
my $navmap = Apache::lonnavmaps::navmap->new();
- unless (ref($navmap)) {
- if (ref($errorref)) {
- $$errorref = 'navmap';
- return;
- }
- }
my $res = $navmap->getBySymb($symb);
my $partlist = $res->parts();
my $url = $res->src();
@@ -150,15 +144,9 @@ sub nameUserString {
#--- Get the partlist and the response type for a given problem. ---
#--- Indicate if a response type is coded handgraded or not. ---
sub response_type {
- my ($symb,$response_error) = @_;
+ my ($symb) = shift;
my $navmap = Apache::lonnavmaps::navmap->new();
- unless (ref($navmap)) {
- if (ref($response_error)) {
- $$response_error = 1;
- }
- return;
- }
my $res = $navmap->getBySymb($symb);
my $partlist = $res->parts();
my %vPart =
@@ -195,7 +183,8 @@ sub get_display_part {
my ($partID,$symb)=@_;
my $display=&Apache::lonnet::EXT('resource.'.$partID.'.display',$symb);
if (defined($display) and $display ne '') {
- $display.= " (id $partID)";
+ $display.= ' ('
+ .&mt('Part ID: [_1]',$partID).')';
} else {
$display=$partID;
}
@@ -205,17 +194,12 @@ sub get_display_part {
#--- Show resource title
#--- and parts and response type
sub showResourceInfo {
- my ($symb,$probTitle,$checkboxes,$res_error) = @_;
+ my ($symb,$probTitle,$checkboxes) = @_;
my $col=3;
if ($checkboxes) { $col=4; }
my $result = '
'.&mt('Current Resource').': '.$probTitle.'
'."\n";
- my ($partlist,$handgrade,$responseType) = &response_type($symb,$res_error);
- if (ref($res_error)) {
- if ($$res_error) {
- return;
- }
- }
$result .='
';
+ my ($partlist,$handgrade,$responseType) = &response_type($symb);
my %resptype = ();
my $hdgrade='no';
my %partsseen;
@@ -234,9 +218,9 @@ sub showResourceInfo {
$partsseen{$partID}=1;
}
my $display_part=&get_display_part($partID,$symb);
- $result.='
'."\n";
@@ -783,13 +767,7 @@ sub verifyreceipt {
if ($env{"course.$courseid.receiptalg"} eq 'receipt2' ||
$env{"course.$courseid.receiptalg"} eq 'receipt3') { $receiptparts=1; }
my $parts=['0'];
- if ($receiptparts) {
- my $res_error;
- ($parts)=&response_type($symb,\$res_error);
- if ($res_error) {
- return &navmap_errormsg();
- }
- }
+ if ($receiptparts) { ($parts)=&response_type($symb); }
my $header =
&Apache::loncommon::start_data_table().
@@ -831,11 +809,11 @@ sub verifyreceipt {
}
}
if ($matches == 0) {
- $string = $title.&mt('No match found for the above receipt number.');
+ $string = $title.&mt('No match found for the above receipt.');
} else {
$string = &jscriptNform($symb).$title.
'
'.
- &mt('The above receipt number matches the following [numerate,_1,student].',$matches).
+ &mt('The above receipt matches the following [numerate,_1,student].',$matches).
'
'.
+ ''.&mt('Part: [_1]',$display_part).''.
+ ' '.
+ '('.&mt('Part ID: [_1]',$respid).')'.
+ ' ';
my $files=&get_submitted_files($udom,$uname,$partid,$respid,\%record);
if (@$files) {
$lastsubonly.=' '.&mt('Like all files provided by users, this file may contain viruses').' ';
@@ -2622,12 +2597,7 @@ sub processHandGrade {
}
$ctr = 0;
@parsedlist = reverse @parsedlist if ($button eq 'Previous');
- my $res_error;
- my ($partlist) = &response_type($symb,\$res_error);
- if ($res_error) {
- $request->print(&navmap_errormsg());
- return;
- }
+ my ($partlist) = &response_type($symb);
foreach my $student (@parsedlist) {
my $submitonly=$env{'form.submitonly'};
my ($uname,$udom) = split(/:/,$student);
@@ -2825,12 +2795,8 @@ sub check_and_remove_from_queue {
sub handback_files {
my ($request,$symb,$stuname,$domain,$newflg,$new_part,$newrecord) = @_;
my $portfolio_root = '/userfiles/portfolio';
- my $res_error;
- my ($partlist,$handgrade,$responseType) = &response_type($symb,\$res_error);
- if ($res_error) {
- $request->print(' '.&navmap_errormsg().' ');
- return;
- }
+ my ($partlist,$handgrade,$responseType) = &response_type($symb);
+
my @part_response_id = &flatten_responseType($responseType);
foreach my $part_response_id (@part_response_id) {
my ($part_id,$resp_id) = @{ $part_response_id };
@@ -3288,11 +3254,7 @@ sub viewgrades {
$result.= '
'.$common_header.'
'.&Apache::loncommon::start_data_table();
#radio buttons/text box for assigning points for a section or class.
#handles different parts of a problem
- my $res_error;
- my ($partlist,$handgrade,$responseType) = &response_type($symb,\$res_error);
- if ($res_error) {
- return &navmap_errormsg();
- }
+ my ($partlist,$handgrade,$responseType) = &response_type($symb);
my %weight = ();
my $ctsparts = 0;
my %seen = ();
@@ -3336,7 +3298,7 @@ sub viewgrades {
$result.=
&Apache::loncommon::start_data_table_row()."\n".
- '
\n";
- my $partserror;
- my (@parts) = sort(&getpartlist($symb,\$partserror));
- if ($partserror) {
- return &navmap_errormsg();
- }
+ my (@parts) = sort(&getpartlist($symb));
my (undef,undef,$url)=&Apache::lonnet::decode_symb($symb);
my @partids = ();
foreach my $part (@parts) {
@@ -3515,11 +3473,7 @@ sub editgrades {
my %columns = ();
my ($i,$ctr,$count,$rec_update) = (0,0,0,0);
- my $partserror;
- my (@parts) = sort(&getpartlist($symb,\$partserror));
- if ($partserror) {
- return &navmap_errormsg();
- }
+ my (@parts) = sort(&getpartlist($symb));
my $header;
while ($ctr < $env{'form.totalparts'}) {
my $partid = $env{'form.partid_'.$ctr};
@@ -3852,14 +3806,7 @@ ENDPICK
sub csvupload_fields {
my ($symb) = @_;
- my ($symb,$errorref) = @_;
- my (@parts) = &getpartlist($symb,$errorref);
- if (ref($errorref)) {
- if ($$errorref) {
- return;
- }
- }
-
+ my (@parts) = &getpartlist($symb);
my @fields=(['ID','Student/Employee ID'],
['username','Student Username'],
['domain','Student Domain']);
@@ -3959,12 +3906,8 @@ sub csvuploadmap {
&csvuploadmap_header($request,$symb,$datatoken,$#records+1);
my ($i,$keyfields);
if (@records) {
- my $fieldserror;
- my @fields=&csvupload_fields($symb,\$fieldserror);
- if ($fieldserror) {
- $request->print(&navmap_errormsg());
- return;
- }
+ my @fields=&csvupload_fields($symb);
+
if ($env{'form.upfile_associate'} eq 'reverse') {
&Apache::loncommon::csv_print_samples($request,\@records);
$i=&Apache::loncommon::csv_print_select_table($request,\@records,
@@ -4200,12 +4143,7 @@ LISTJAVASCRIPT
&mt('Manual Grading by Page or Sequence').'';
$result.='\n";
my $receiptalert = &mt("Please enter a receipt number given by a student in the receipt box.");
$request->print(<'."\n";
$result.='
-
'.
+ ($saveCmd eq 'pickStudentPage' ? 'checked="checked"' : '').' /> '.
&mt('The complete page/sequence/folder: For one student').'
-
-
+
+
-
-
-
';
$result .= &show_grading_menu_form($symb);
return $result;
@@ -9154,11 +8989,7 @@ sub assign_clicker_grades {
my ($symb)=&get_symb($r);
if (!$symb) {return '';}
# See which part we are saving to
- my $res_error;
- my ($partlist,$handgrade,$responseType) = &response_type($symb,\$res_error);
- if ($res_error) {
- return &navmap_errormsg();
- }
+ my ($partlist,$handgrade,$responseType) = &response_type($symb);
# FIXME: This should probably look for the first handgradeable part
my $part=$$partlist[0];
# Start screen output
@@ -9262,13 +9093,6 @@ ENDHEADER
return $result.&show_grading_menu_form($symb);
}
-sub navmap_errormsg {
- return '
'.
- &mt('An error occurred retrieving information about resources in the course.').' '.
- &mt('It is recommended that you [_1]re-initialize the course[_2] and then return to this grading page..','','').
- '
';
-}
-
sub handler {
my $request=$_[0];
&reset_caches();
@@ -9494,13 +9318,6 @@ ssi_with_retries()
=item scantron_get_maxbubble() :
- Arguments:
- $nav_error - Reference to scalar which is a flag to indicate a
- failure to retrieve a navmap object.
- if $nav_error is set to 1 by scantron_get_maxbubble(), the
- calling routine should trap the error condition and display the warning
- found in &navmap_errormsg().
-
Returns the maximum number of bubble lines that are expected to
occur. Does this by walking the selected sequence rendering the
resource and then checking &Apache::lonxml::get_problem_counter()
@@ -9566,11 +9383,6 @@ ssi_with_retries()
Validates all scanlines in the selected file to not have any
invalid or underspecified student/employee IDs
-=item navmap_errormsg() :
-
- Returns HTML mark-up inside a with a link to re-initialize the course.
- Should be called whenever the request to instantiate a navmap object fails.
-
=back
=cut