--- loncom/homework/grades.pm 2002/06/20 21:21:16 1.28 +++ loncom/homework/grades.pm 2002/06/20 22:04:21 1.29 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # The LON-CAPA Grading handler # -# $Id: grades.pm,v 1.28 2002/06/20 21:21:16 ng Exp $ +# $Id: grades.pm,v 1.29 2002/06/20 22:04:21 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -112,9 +112,9 @@ ENDHEADER

Show Student Submissions on Assessment

-
- - +
UsernameNameDomain 
+ + ENDTABLEST my (%classlist) = &getclasslist($cdom,$cnum,'0'); foreach my $student ( sort(@{ $classlist{'allids'} }) ) { @@ -248,7 +248,7 @@ sub viewstudentgrade { $result.="\n"; } } - $result.=''; + $result.=''; return $result; } #FIXME need to look at the meatdata spec on what type of data to accept and provide an @@ -343,22 +343,39 @@ sub get_symb_and_url { return ($symb,$url); } +sub view_edit_entire_class_form { + my ($symb,$url)=@_; + my $result.='
'."\n". + ''."\n". + ''."\n". + ''."\n". + ''."\n". + ''."\n"; + return $result; +} + +sub show_grading_menu_form { + my ($symb,$url)=@_; + my $result.='
'."\n". + ''."\n". + ''."\n". + ''."\n". + ''."\n". + ''."\n"; + return $result; +} + sub gradingmenu { my ($request) = @_; my ($symb,$url)=&get_symb_and_url($request); if (!$symb) {return '';} my $result='

 Select a Grading Method


'; - $result.='
UsernameNameDomain 
'."\n"; + $result.='
'."\n"; $result.=''."\n"; $result.='
'."\n"; $result.=' Resource : '.$url.'
'."\n"; - $result.='
'."\n". - ''."\n". - ''."\n". - ''."\n". - ''."\n". - '
'."\n"; + $result.=&view_edit_entire_class_form($symb,$url); $result.='
'."\n". ''."\n". ''."\n". @@ -391,7 +408,7 @@ sub viewgrades { my $cellclr = '"#ffffcc"'; #get list of parts for this problem - my (@parts) = &getpartlist($url); + my (@parts) = sort(&getpartlist($url)); $request->print ("

Manual Grading

"); @@ -401,10 +418,10 @@ sub viewgrades { ''."\n". ''."\n". ''."\n". - '
'."\n". + '
'."\n". ''."\n". ''."\n"; - foreach my $part (sort(@parts)) { + foreach my $part (@parts) { my $display=&Apache::lonnet::metadata($url,$part.'.display'); if (!$display) { $display = &Apache::lonnet::metadata($url,$part.'.name'); } $result.=''."\n"; @@ -415,7 +432,7 @@ sub viewgrades { $result.=&viewstudentgrade($url,$symb,$ENV{'request.course.id'},$student,@parts); } $result.='
UsernameNameDomain'.$display.'
'; - + $result.=&show_grading_menu_form($symb,$url); return $result; } @@ -658,21 +675,44 @@ sub csvuploadassign { } } $request->print('

Assigning Grades

'); - &Apache::lonhomework::showhash(('1'=>\@keyfields)); - &Apache::lonhomework::showhash(%fields); my $courseid=$ENV{'request.course.id'}; my $cdom=$ENV{"course.$courseid.domain"}; my $cnum=$ENV{"course.$courseid.num"}; my (%classlist) = &getclasslist($cdom,$cnum,'1'); - foreach my $student ( sort(@{ $classlist{'allids'} }) ) { - my %newhash; - foreach my $grade (@gradedata) { - my %entries=&Apache::loncommon::record_sep($grade); - foreach my $dest (keys(%fields)) { - - } + my @skipped; + my $countdone=0; + foreach my $grade (@gradedata) { + my %entries=&Apache::loncommon::record_sep($grade); + my $username=$entries{$fields{'username'}}; + my $domain=$entries{$fields{'domain'}}; + if (!exists($classlist{"$username:$domain"})) { + push(@skipped,"$username:$domain"); + next; } + my %grades; + foreach my $dest (keys(%fields)) { + if ($dest eq 'username' || $dest eq 'domain') { next; } + if ($entries{$fields{$dest}} eq '') { next; } + my $store_key=$dest; + $store_key=~s/^stores/resource/; + $store_key=~s/_/\./g; + $grades{$store_key}=$entries{$fields{$dest}}; + } + $grades{"resource.regrader"}="$ENV{'user.name'}:$ENV{'user.domain'}"; + &Apache::lonnet::cstore(\%grades,$symb,$ENV{'request.course.id'}, + $domain,$username); + $request->print('.'); + $request->rflush(); + $countdone++; + } + $request->print("
Stored $countdone students\n"); + if (@skipped) { + $request->print('
Skipped Students
'); + foreach my $student (@skipped) { $request->print("
$student"); } } + $request->print(&view_edit_entire_class_form($symb,$url)); + $request->print(&show_grading_menu_form($symb,$url)); + return ''; } sub send_header { @@ -695,8 +735,6 @@ sub send_footer { sub handler { my $request=$_[0]; - if ( $ENV{'user.name'} eq 'albertel' ) {$Apache::lonxml::debug=1;} else {$Apache::lonxml::debug=0;} - if ($ENV{'browser.mathml'}) { $request->content_type('text/xml'); } else { @@ -742,7 +780,7 @@ sub handler { } } } else { - &Apache::lonhomework::showhashsubset(\%ENV,'^form'); + #&Apache::lonhomework::showhashsubset(\%ENV,'^form'); $Apache::grades::viewgrades=&Apache::lonnet::allowed('vgr',$ENV{'request.course.id'}); if ($command eq 'submission') { &listStudents($request) if ($ENV{'form.student'} eq '');