[LON-CAPA-cvs] cvs: loncom /homework lonhomework.pm
albertel
lon-capa-cvs@mail.lon-capa.org
Tue, 20 Jun 2006 05:10:01 -0000
albertel Tue Jun 20 01:10:01 2006 EDT
Modified files:
/loncom/homework lonhomework.pm
Log:
- multipart problems work correctly now
- handles 'student never did any work' in a correct manner now
Index: loncom/homework/lonhomework.pm
diff -u loncom/homework/lonhomework.pm:1.251 loncom/homework/lonhomework.pm:1.252
--- loncom/homework/lonhomework.pm:1.251 Mon Jun 19 23:33:55 2006
+++ loncom/homework/lonhomework.pm Tue Jun 20 01:10:00 2006
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# The LON-CAPA Homework handler
#
-# $Id: lonhomework.pm,v 1.251 2006/06/20 03:33:55 albertel Exp $
+# $Id: lonhomework.pm,v 1.252 2006/06/20 05:10:00 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -244,7 +244,7 @@
# does it pass normal muster
my ($status,$datemsg)=&check_access($id);
- my $useslots = &Apache::lonnet::EXT("resource.$id.useslots");
+ my $useslots = &Apache::lonnet::EXT("resource.0.useslots");
if ($useslots ne 'resource' && $useslots ne 'map'
&& $useslots ne 'map_map') {
return ($status,$datemsg);
@@ -269,8 +269,8 @@
}
my @slots=
- (split(':',&Apache::lonnet::EXT("resource.$id.availablestudent")),
- split(':',&Apache::lonnet::EXT("resource.$id.available")));
+ (split(':',&Apache::lonnet::EXT("resource.0.availablestudent")),
+ split(':',&Apache::lonnet::EXT("resource.0.available")));
# if (!@slots) {
# return ($status,$datemsg);
@@ -310,8 +310,10 @@
$checkedin =
$Apache::lonhomework::history{"resource.$version.0.checkedin"};
} elsif ($type eq 'problem') {
- $got_grade = 1;
- $checkedin = $Apache::lonhomework::history{"resource.0.checkedin"};
+ $got_grade = 1;
+ $checkedin = $Apache::lonhomework::history{"resource.0.checkedin"};
+ $is_correct =
+ ($Apache::lonhomework::history{"resource.0.solved"} =~/^correct_/);
}
&Apache::lonxml::debug(" slot is $slotstatus checkedin ($checkedin) got_grade ($got_grade) is_correct ($is_correct)");
@@ -324,6 +326,14 @@
return ('WAITING_FOR_GRADE');
}
+ # no slot is currently open, and has been checked in for this version
+ # previous slot is therefore CLOSED, so therefore the problem is
+ if (!defined($slot_name)
+ && $checkedin
+ && $type eq 'problem') {
+ return ('CLOSED',$datemsg);
+ }
+
if ($slotstatus eq 'NOT_IN_A_SLOT'
&& $checkedin ) {