--- loncom/homework/grades.pm 2003/09/29 21:31:30 1.130.2.1.2.6
+++ loncom/homework/grades.pm 2003/08/14 22:34:37 1.133
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# The LON-CAPA Grading handler
#
-# $Id: grades.pm,v 1.130.2.1.2.6 2003/09/29 21:31:30 albertel Exp $
+# $Id: grades.pm,v 1.133 2003/08/14 22:34:37 bowersj2 Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -2798,9 +2798,7 @@ LISTJAVASCRIPT
sub getSymbMap {
my ($request) = @_;
- my $navmap = Apache::lonnavmaps::navmap-> new($ENV{'request.course.fn'}.'.db',
- $ENV{'request.course.fn'}.'_parms.db');
-# $navmap->init();
+ my $navmap = Apache::lonnavmaps::navmap->new();
my %symbx = ();
my @titles = ();
@@ -2845,8 +2843,7 @@ sub displayPage {
&sub_page_js($request);
$request->print($result);
- my $navmap = Apache::lonnavmaps::navmap-> new($ENV{'request.course.fn'}.'.db',
- $ENV{'request.course.fn'}.'_parms.db',1, 1);
+ my $navmap = Apache::lonnavmaps::navmap->new();
my ($mapUrl, $id, $resUrl) = split(/___/, $ENV{'form.page'});
my $map = $navmap->getResourceByUrl($resUrl); # add to navmaps
@@ -3008,8 +3005,7 @@ sub updateGradeByPage {
$request->print($result);
- my $navmap = Apache::lonnavmaps::navmap-> new($ENV{'request.course.fn'}.'.db',
- $ENV{'request.course.fn'}.'_parms.db',1, 1);
+ my $navmap = Apache::lonnavmaps::navmap->new();
my ($mapUrl, $id, $resUrl) = split(/___/, $ENV{'form.page'});
my $map = $navmap->getResourceByUrl($resUrl); # add to navmaps
@@ -3146,8 +3142,6 @@ sub getSequenceDropDown {
}
sub scantron_uploads {
- #FIXME need to support scantron files put in another location,
- # maybe the course directory? a scantron dir in the course directory?
if (!-e $Apache::lonnet::perlvar{'lonScansDir'}) { return ''};
my $result= '
\n");
- } elsif ($error eq 'duplicateID') {
- $r->print("The encoded ID has also been used by a previous paper $arg\n");
- }
- $r->print("
Original ID is ".$$scan_record{'scantron.ID'}.
- " \n");
- $r->print("Name on paper is ".$$scan_record{'scantron.LastName'}.",".
- $$scan_record{'scantron.FirstName'}."
");
- $r->print("
Please correct \n");
- $r->print("\n
Pick a specific user -- username:");
- $r->print("\ndomain:".
- &Apache::loncommon::select_dom_form(undef,'scantron_domain'));
- #FIXME it would be nice if this sent back the user ID and
- #could do partial userID matches
- $r->print(&Apache::loncommon::selectstudent_link('scantronupload',
- 'scantron_username','scantron_domain'));
- $r->print('
');
- } elsif ($error eq 'doublebubble') {
- $r->print("There have been multiple bubbles scanned for a single question\n");
- $r->print('');
- foreach my $question (@{$arg}) {
- my $selected=$$scan_record{"scantron.$question.answer"};
- $r->print("
For question $question, selected bubbles were ".
- join(" ",split('',$selected)).
- " Please pick which one should be used for grading ");
- &scantron_bubble_selector($r,$scan_config,$question);
- }
- } elsif ($error eq 'missingbubble') {
- $r->print("Some questions have no scanned bubbles\n");
- $r->print('');
- foreach my $question (@{$arg}) {
- my $selected=$$scan_record{"scantron.$question.answer"};
- $r->print("
Question $question, Please select a bubble to use ");
- &scantron_bubble_selector($r,$scan_config,$question);
- }
- } else {
- $r->print("\n
");
- }
- $r->print("
Skip this scanline saving it for later ");
- $r->print("\n
");
- &scantron_end_validate_form($r);
-}
-
-sub scantron_bubble_selector {
- my ($r,$scan_config,$quest)=@_;
- my $max=$$scan_config{'Qlength'};
- my @alphabet=('A'..'Z');
- for (my $i=0;$i<$max;$i++) {
- $r->print(''.$alphabet[$i]);
- }
- $r->print(' Nothing');
- $r->print(' ');
-}
-
-sub scantron_validate_CODE {
- my ($r,$currentphase) = @_;
- #FIXME doesn't do anything yet
- return (0,$currentphase+1);
-}
-
-sub scantron_validate_doublebubble {
- my ($r,$currentphase) = @_;
- #get student info
- my $classlist=&Apache::loncoursedata::get_classlist();
- my %idmap=&username_to_idmap($classlist);
-
- #get scantron line setup
- my %scantron_config=&get_scantron_config($ENV{'form.scantron_format'});
- my ($scanlines,$scan_data)=&scantron_getfile();
- for (my $i=0;$i<=$scanlines->{'count'};$i++) {
- my $line=&scantron_get_line($scanlines,$i);
- if (!$line) { next; }
- my $scan_record=&scantron_parse_scanline($line,$i,\%scantron_config,
- $scan_data);
- if (!defined($$scan_record{'scantron.doubleerror'})) { next; }
- &scantron_get_correction($r,$i,$scan_record,\%scantron_config,$line,
- 'doublebubble',
- $$scan_record{'scantron.doubleerror'});
- return (1,$currentphase);
- }
- return (0,$currentphase+1);
-}
-
-sub scantron_validate_missingbubbles {
- my ($r,$currentphase) = @_;
- #get student info
- my $classlist=&Apache::loncoursedata::get_classlist();
- my %idmap=&username_to_idmap($classlist);
-
- #get scantron line setup
- my %scantron_config=&get_scantron_config($ENV{'form.scantron_format'});
- my ($scanlines,$scan_data)=&scantron_getfile();
- my $max_bubble=$ENV{'form.scantron_maxbubble'};
- if (!$max_bubble) { $max_bubble=2**31; }
- for (my $i=0;$i<=$scanlines->{'count'};$i++) {
- my $line=&scantron_get_line($scanlines,$i);
- if (!$line) { next; }
- my $scan_record=&scantron_parse_scanline($line,$i,\%scantron_config,
- $scan_data);
- if (!defined($$scan_record{'scantron.missingerror'})) { next; }
- my @to_correct;
- foreach my $missing (@{$$scan_record{'scantron.missingerror'}}) {
- if ($missing gt $max_bubble) { next; }
- push(@to_correct,$missing);
- }
- if (@to_correct) {
- &scantron_get_correction($r,$i,$scan_record,\%scantron_config,
- $line,'missingbubble',\@to_correct);
- return (1,$currentphase);
- }
-
- }
- return (0,$currentphase+1);
-}
-
-sub scantron_end_validate_form {
- my ($r) = @_;
- $r->print('