--- loncom/homework/bridgetask.pm 2005/05/03 05:31:51 1.15
+++ loncom/homework/bridgetask.pm 2005/05/20 18:07:29 1.27
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# definition of tags that give a structure to a document
#
-# $Id: bridgetask.pm,v 1.15 2005/05/03 05:31:51 albertel Exp $
+# $Id: bridgetask.pm,v 1.27 2005/05/20 18:07:29 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -48,6 +48,8 @@ sub initialize_bridgetask {
$Apache::bridgetask::dimension='';
# list of all Dimension ids seen
@Apache::bridgetask::dimensionlist=();
+ # mandatory attribute of all Dimensions seen
+ %Apache::bridgetask::dimensionmandatory=();
# list of all current Instance ids
@Apache::bridgetask::instance=();
# list of all Instance ids seen in this problem
@@ -57,7 +59,7 @@ sub initialize_bridgetask {
}
sub proctor_check_auth {
- my ($slot)=@_;
+ my ($slot_name,$slot)=@_;
my $user=$env{'form.proctorname'};
my $domain=$env{'form.proctordomain'};
@@ -67,8 +69,13 @@ sub proctor_check_auth {
if ($puser eq $user && $pdom eq $domain) {
my $authhost=&Apache::lonnet::authenticate($puser,$env{'form.proctorpassword'},$pdom);
if ($authhost ne 'no_host') {
- $Apache::lonhomework::results{'resource.checkedin'}=
+ my $version=
+ $Apache::lonhomework::results{'resource.version'}=
+ ++$Apache::lonhomework::history{'resource.version'};
+ $Apache::lonhomework::results{"resource.$version.checkedin"}=
$user.'@'.$domain;
+ $Apache::lonhomework::results{"resource.$version.checkedin.slot"}=
+ $slot_name;
return 1;
}
}
@@ -76,8 +83,25 @@ sub proctor_check_auth {
return 0;
}
+sub get_version {
+ if ($env{'form.previousversion'} &&
+ defined($Apache::lonhomework::history{'resource.'.$env{'form.previousversion'}.'.status'})) {
+ return $env{'form.previousversion'};
+ }
+ return $Apache::lonhomework::history{'resource.version'};
+}
+
sub add_previous_version_button {
+ my ($status)=@_;
my $result;
+ if ($Apache::lonhomework::history{'resource.version'} eq '0') {
+ return '';
+ }
+ my $version=&get_version();
+ if ($version ne $Apache::lonhomework::history{'resource.version'}) {
+ return '';
+ }
+
$result.=&mt(' Show a previously done version: [_1]','');
@@ -92,19 +116,28 @@ sub add_grading_button {
return $result;
}
+sub add_request_another_attempt_button {
+ my $result;
+ $result.=' ';
+ return $result;
+}
+
sub start_Task {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
- &Apache::structuretags::initialize_storage();
- &Apache::lonhomework::showhash(%Apache::lonhomework::history);
my ($status,$accessmsg,$slot);
+ if ($target ne 'webgrade') {
+ &Apache::structuretags::initialize_storage();
+ &Apache::lonhomework::showhash(%Apache::lonhomework::history);
+ }
+
$Apache::lonhomework::parsing_a_task=1;
#should get back a or the neccesary stuff to start XML/MathML
my ($result,$head_tag_start,$body_tag_start,$form_tag_start)=
&Apache::structuretags::page_start($target,$token,$tagstack,$parstack,$parser,$safeeval);
-
+
if ($target eq 'web') {
- $body_tag_start.=&add_previous_version_button();
if ($Apache::lonhomework::modifygrades) {
$body_tag_start.='
'.&mt('Your submission is in the grading queue.').'
';
} elsif ($status ne 'NOT_YET_VIEWED') {
$msg.='
'.&mt('Not open to be viewed').'
';
}
@@ -153,12 +191,15 @@ sub start_Task {
} else {
$result.=&mt('Problem is not open to be viewed. It')." $accessmsg \\vskip 0 mm ";
}
- } elsif ($target eq 'grade') {
+ } elsif ($target eq 'grade' && !$env{'form.webgrade'}) {
if ($status eq 'NEEDS_CHECKIN') {
- if (&proctor_check_auth($slot)) {
+ if (&proctor_check_auth($slot_name,$slot)) {
#FIXME immeadiatly add this to the grading queue
# with slot->{'endtime'} for when grading can
# begin on this resource
+ # FIXME I think the above is done by default,
+ # need to check that
+ # failure doesn't do this.
}
}
}
@@ -174,24 +215,41 @@ sub start_Task {
'" value="'.$env{"form.grade_$field"}.'" />'."\n";
}
}
+ my $version=&get_version();
+ if ($Apache::lonhomework::history{"resource.$version.status"} eq 'fail') {
+ $result.='