--- loncom/homework/bridgetask.pm 2005/08/15 19:41:43 1.42
+++ loncom/homework/bridgetask.pm 2005/09/20 06:45:02 1.49
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# definition of tags that give a structure to a document
#
-# $Id: bridgetask.pm,v 1.42 2005/08/15 19:41:43 albertel Exp $
+# $Id: bridgetask.pm,v 1.49 2005/09/20 06:45:02 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -158,6 +158,8 @@ sub add_grading_button {
$result.='
'.&mt("Review Queue has [_1] entries. [_2] of them are ready to be graded and [_3] of them are currently being graded",$entries,$ready,$locks);
$result.='
'."\n";
+ $result.=' '."\n";
}
return $result;
}
@@ -311,8 +313,8 @@ sub start_Task {
my $webgrade='yes';
if ($target eq 'webgrade') {
$result.=$head_tag_start.$body_tag_start;
- $result.=' Review'.&show_queue('reviewqueue');
- $result.=' Grade'.&show_queue('gradingqueue');
+ #$result.=' Review'.&show_queue('reviewqueue');
+ #$result.=' Grade'.&show_queue('gradingqueue');
}
# FIXME Blast! still need to reorg this, need to reshow the
# queue being reviewed once done with the grade pass...
@@ -334,7 +336,7 @@ sub start_Task {
&Apache::structuretags::initialize_storage();
&Apache::lonhomework::showhash(%Apache::lonhomework::history);
if ($target eq 'webgrade') {
- $result.=' After -'.&show_queue($env{'form.queue'});
+ #$result.=' After -'.&show_queue($env{'form.queue'});
$result.="\n".'
';
if ($status_code eq 'selected') {
$form_tag_start.=
@@ -353,6 +355,8 @@ sub start_Task {
$result.=&show_queue($env{'form.queue'},1);
} elsif ($status_code eq 'show_list') {
$result.=&show_queue($env{'form.queue'},1);
+ } elsif ($status_code eq 'select_user') {
+ $result.=&select_user();
} else {
$result.=''.&mt("No user to be graded.").'';
}
@@ -390,6 +394,12 @@ sub get_key_todo {
return (undef,'show_list');
}
+ if (defined($env{'form.regradeasubmission'})) {
+ &Apache::lonxml::debug("regrade a grading....");
+ $env{'form.queue'}='none';
+ return (undef,'select_user');
+ }
+
my $queue=$env{'form.queue'};
if (!defined($queue)) {
@@ -398,6 +408,20 @@ sub get_key_todo {
my $gradingkey=&Apache::lonnet::unescape($env{'form.gradingkey'});
+ if ($env{'form.queue'} eq 'none') {
+ if (defined($env{'form.gradingkey'})) {
+ if ($target eq 'webgrade') {
+ if ($env{'form.stop'}) {
+ return (undef,'stop');
+ } elsif ($env{'form.next'}) {
+ return (undef,'show_list');
+ }
+ }
+ return ($gradingkey,'selected');
+ } else {
+ return (undef,'show_list');
+ }
+ }
if (defined($env{'form.queue'}) && defined($env{'form.gradingkey'})
&& !defined($env{'form.gradingaction'})
&& $env{'form.queuemode'} eq 'selected') {
@@ -462,7 +486,10 @@ sub end_Task {
$result.="\n".'
';
+ return $result;
+}
+
+sub get_student_status {
+ my ($symb,$cid,$udom,$uname)=@_;
+ my %record = &Apache::lonnet::restore($symb,$env{'request.course.id'},
+ $udom,$uname);
+ my %status;
+ $status{'status'}=$record{'resource.status'};
+ $status{'version'}=$record{'resource.version'};
+ $status{'grader'}=$record{'resource.grader'};
+ $status{'reviewqueue'}=&check_queue_for_key($cid,'reviewqueue',
+ &encode_queue_key($symb,$udom,$uname));
+ $status{'gradingqueue'}=&check_queue_for_key($cid,'gradingqueue',
+ &encode_queue_key($symb,$udom,$uname));
+ return %status;
+}
+
sub start_ClosingParagraph {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
my $result;
@@ -984,7 +1124,10 @@ sub get_instance {
my $instance=&get_instance();
my $version=&get_version();
if ($target eq 'web') {
- $result=$dimension{'intro'}.$dimension{$instance.'.text'};
+ @Apache::scripttag::parser_env = @_;
+ $result.=&Apache::scripttag::xmlparse($dimension{'intro'});
+ @Apache::scripttag::parser_env = @_;
+ $result.=&Apache::scripttag::xmlparse($dimension{$instance.'.text'});
if ($Apache::lonhomework::history{"resource.$version.status"} eq 'pass' ||
$Apache::lonhomework::history{"resource.$version.status"} eq 'fail') {
foreach my $id (@{$dimension{$instance.'.criterias'}}) {
@@ -996,7 +1139,7 @@ sub get_instance {
} elsif ($status eq 'pass') {
$result.=''.&mt('Passed').'';
} else {
- &Apache::lonxml::error("Student viewing a graded bridgetask was show a status of $status");
+ &Apache::lonxml::error("Student viewing a graded bridgetask was shown a status of $status");
}
$result.='
';
if ($Apache::lonhomework::history{"resource.$version.$dim.$instance.$id.comment"}) {
@@ -1007,20 +1150,28 @@ sub get_instance {
}
}
} elsif ($target eq 'webgrade') {
+ # in case of any side effects that we need
+ @Apache::scripttag::parser_env = @_;
+ &Apache::scripttag::xmlparse($dimension{'intro'});
+ @Apache::scripttag::parser_env = @_;
+ &Apache::scripttag::xmlparse($dimension{$instance.'.text'});
foreach my $id (@{$dimension{$instance.'.criterias'}}) {
my $link='criteria_'.$instance.'_'.$id;
my $status=$Apache::lonhomework::history{"resource.$version.$dim.$instance.$id.status"};
$result.='
';
my (undef,undef,$udom,$uname) = &Apache::lonxml::whichuser();
my $file_url = '/uploaded/'.$udom.'/'.$uname.'/portfolio';
- foreach my $partial_file (split(',',$Apache::lonhomework::history{"resource.$version.bridgetask.portfiles"})) {
+ foreach my $partial_file (split(',',$Apache::lonhomework::history{"resource.$version.0.bridgetask.portfiles"})) {
my $file=$file_url.$partial_file;
&Apache::lonnet::allowuploaded('/adm/bridgetask',$file);
- $result.=' '.$file.
- '';
+ ' ';
}
$result.='
';
$last_link=$link;
@@ -1064,7 +1215,7 @@ sub get_instance {
} elsif ($status eq 'ungraded') {
$ungraded++;
} else {
- &Apache::lonxml::error("got weird status --$status--");
+ $ungraded++;
}
}
if ($optional_passed < $dimension{$instance.'.optionalrequired'}) {
@@ -1093,22 +1244,18 @@ sub start_IntroParagraph {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
my $result;
if ($target eq 'web' || $target eq 'webgrade') {
- if ($tagstack->[-2] eq 'Dimension' || $target eq 'webgrade') {
- &Apache::lonxml::startredirection();
+ if ($tagstack->[-2] eq 'Dimension') {
+ $dimension{'intro'}=&Apache::lonxml::get_all_text('/introparagraph',$parser);
+
+ } elsif ($target eq 'webgrade') {
+ &Apache::lonxml::get_all_text('/introparagraph',$parser);
}
+
}
return $result;
}
sub end_IntroParagraph {
- my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
- my $result;
- if ($target eq 'web' || $target eq 'webgrade') {
- if ($tagstack->[-2] eq 'Dimension' || $target eq 'webgrade') {
- $dimension{'intro'}=&Apache::lonxml::endredirection();
- }
- }
- return $result;
}
sub start_Instance {
@@ -1123,40 +1270,27 @@ sub start_Instance {
}
sub end_Instance {
- my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
- return '';
}
sub start_InstanceText {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
+ my $instance_id=$Apache::bridgetask::instance[-1];
+ my $text=&Apache::lonxml::get_all_text('/instancetext',$parser);
if ($target eq 'web' || $target eq 'webgrade') {
- &Apache::lonxml::startredirection();
+ $dimension{$instance_id.'.text'}=$text;
}
return '';
}
sub end_InstanceText {
- my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
- my $instance_id=$Apache::bridgetask::instance[-1];
- if ($target eq 'web' || $target eq 'webgrade') {
- $dimension{$instance_id.'.text'}=&Apache::lonxml::endredirection();
- }
return '';
}
sub start_Criteria {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
- if ($target eq 'web' || $target eq 'webgrade' || $target eq 'grade') {
- &Apache::lonxml::startredirection();
- }
- return '';
-}
-
-sub end_Criteria {
- my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
my $instance_id=$Apache::bridgetask::instance[-1];
+ my $criteria=&Apache::lonxml::get_all_text('/criteria',$parser);
if ($target eq 'web' || $target eq 'webgrade' || $target eq 'grade') {
- my $criteria=&Apache::lonxml::endredirection();
my $id=&get_id($parstack,$safeeval);
$dimension{$instance_id.'.criteria.'.$id}=$criteria;
$dimension{$instance_id.'.criteria.'.$id.'.mandatory'}=
@@ -1166,17 +1300,21 @@ sub end_Criteria {
return '';
}
+sub end_Criteria {
+}
+
sub proctor_validation_screen {
my ($slot) = @_;
my (undef,undef,$domain,$user) = &Apache::lonxml::whichuser();
my $url=&Apache::lonnet::studentphoto($domain,$user,'jpg');
- $user=$env{'form.proctorname'};
- if ($env{'form.proctordomain'}) { $domain=$env{'form.proctordomain'}; }
+ my $name=&Apache::loncommon::plainname($user,$domain);
+
my $msg;
if ($env{'form.proctorpassword'}) {
$msg='
'.&mt("Failed to authenticate the proctor.")
.'
';
}
+ if (!$env{'form.proctordomain'}) { $env{'form.proctordomain'}=$domain; }
my $result= (<Proctor Validation
Your room's proctor needs to validate your access to this resource.
@@ -1185,13 +1323,22 @@ sub proctor_validation_screen {
-
Proctor's Username:
+
Proctor's Username:
Password:
-
Proctor's Domain:
+
Proctor's Domain:
-Student who should be logged in is:
-
+
+
+
+
Student who should be logged in is:
+
Name:
$name
+
Student ID:
$env{'environment.id'}
+
Usename
$user\@$domain
+
+
+
+
ENDCHECKOUT
return $result;
500 Internal Server Error
Internal Server Error
The server encountered an internal error or
misconfiguration and was unable to complete
your request.
Please contact the server administrator at
root@localhost to inform them of the time this error occurred,
and the actions you performed just before this error.
More information about this error may be available
in the server error log.