--- loncom/homework/bridgetask.pm	2006/10/11 18:54:33	1.183
+++ loncom/homework/bridgetask.pm	2006/10/17 15:11:11	1.185
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA 
 # definition of tags that give a structure to a document
 #
-# $Id: bridgetask.pm,v 1.183 2006/10/11 18:54:33 albertel Exp $
+# $Id: bridgetask.pm,v 1.185 2006/10/17 15:11:11 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -105,7 +105,7 @@ sub check_in {
 sub check_in_sequence {
     my ($user,$domain,$slot_name) = @_;
     my $navmap = Apache::lonnavmaps::navmap->new();
-    my ($symb) = &Apache::lonxml::whichuser();
+    my ($symb) = &Apache::lonnet::whichuser();
     my ($map)  = &Apache::lonnet::decode_symb($symb);
     my @resources = 
 	$navmap->retrieveResources($map, sub { $_[0]->is_problem() },0,0);
@@ -225,7 +225,7 @@ sub add_previous_version_button {
 }
 
 sub add_grading_button {
-    my (undef,$cid)=&Apache::lonxml::whichuser();
+    my (undef,$cid)=&Apache::lonnet::whichuser();
     my $cnum=$env{'course.'.$cid.'.num'};
     my $cdom=$env{'course.'.$cid.'.domain'};
     my %sections = &Apache::loncommon::get_sections($cdom,$cnum);
@@ -388,7 +388,7 @@ sub internal_location {
 }
 
 sub submission_time_stamp {
-    my ($symb,$courseid,$udom,$uname)=&Apache::lonxml::whichuser();
+    my ($symb,$courseid,$udom,$uname)=&Apache::lonnet::whichuser();
     my $submissiontime;
     my $version=$Apache::lonhomework::history{'resource.0.version'};
     for (my $v=$Apache::lonhomework::history{'version'};$v>0;$v--) {
@@ -426,7 +426,7 @@ sub submission_time_stamp {
 sub file_list {
     my ($files,$uname,$udom) = @_;
     if (!defined($uname) || !defined($udom)) {
-	(undef,undef,$udom,$uname) = &Apache::lonxml::whichuser();
+	(undef,undef,$udom,$uname) = &Apache::lonnet::whichuser();
     }
     my $file_url = '/uploaded/'.$udom.'/'.$uname.'/portfolio/';
 
@@ -487,7 +487,7 @@ sub done_screen {
     my ($version) = @_;
     my $title=&Apache::lonnet::gettitle();
     my @files=split(',',$Apache::lonhomework::history{'resource.'.$version.'.0.bridgetask.portfiles'});
-    my (undef,undef,$domain,$user)= &Apache::lonxml::whichuser();
+    my (undef,undef,$domain,$user)= &Apache::lonnet::whichuser();
     my $files = '<ul>';
     my $msg;
     foreach my $file (@files) {
@@ -831,7 +831,7 @@ sub get_key_todo {
     if (defined($env{'form.regradeaspecificsubmission'}) &&
 	defined($env{'form.gradinguser'})               &&
 	defined($env{'form.gradingdomain'})               ) {
-	my ($symb,$cid)=&Apache::lonxml::whichuser();
+	my ($symb,$cid)=&Apache::lonnet::whichuser();
 	my $cnum  = $env{'course.'.$cid.'.num'};
 	my $cdom  = $env{'course.'.$cid.'.domain'};
 	my $uname = $env{'form.gradinguser'};
@@ -1102,8 +1102,6 @@ DONEBUTTON
 	    if ($award eq 'SUBMITTED') {
 		&add_to_queue('gradingqueue',\%queue_data);
 	    }
-	} elsif ($Apache::lonhomework::results{'INTERNAL_store'}) {
-	    &Apache::structuretags::finalize_storage();
 	}
 	if ($target eq 'grade' && $env{'form.webgrade'} eq 'yes' 
 	    && exists($env{'form.cancel'})) {
@@ -1172,7 +1170,7 @@ DONEBUTTON
 		$Apache::lonhomework::results{"resource.$version.0.awarded"}='0';
 		&remove_from_queue($env{'form.queue'}); 
 
-		my ($symb,$courseid,$udom,$uname)=&Apache::lonxml::whichuser();
+		my ($symb,$courseid,$udom,$uname)=&Apache::lonnet::whichuser();
 		
 		if ($env{'form.regrade'} ne 'yes') {
 		    $Apache::lonhomework::results{"resource.$version.0.bridgetask.portfiles"}=
@@ -1190,7 +1188,7 @@ DONEBUTTON
 		$Apache::lonhomework::results{"resource.$version.0.awarded"}='1';
 		&remove_from_queue($env{'form.queue'});
 
-		my ($symb,$courseid,$udom,$uname)=&Apache::lonxml::whichuser();
+		my ($symb,$courseid,$udom,$uname)=&Apache::lonnet::whichuser();
 		if ($env{'form.regrade'} ne 'yes') {
 		    $Apache::lonhomework::results{"resource.$version.0.bridgetask.portfiles"}=
 			$Apache::lonhomework::history{"resource.$version.0.bridgetask.portfiles"};
@@ -1214,6 +1212,10 @@ DONEBUTTON
 	    &minimize_storage();
 	    &Apache::structuretags::finalize_storage();
 	}
+	if (exists($Apache::lonhomework::results{'INTERNAL_store'})) {
+	    # instance generation occured and hasn't yet been stored
+	    &Apache::structuretags::finalize_storage();
+	}
     } elsif ($target eq 'webgrade') {
 	$result.="</div>";
 	#$result.='<input type="submit" name="next" value="'.
@@ -1266,7 +1268,7 @@ sub move_between_queues {
 sub check_queue_unlock {
     my ($queue,$key,$allow_not_me)=@_;
     if ($queue eq 'none') { return 'ok'; }
-    my ($symb,$cid,$udom,$uname)=&Apache::lonxml::whichuser();
+    my ($symb,$cid,$udom,$uname)=&Apache::lonnet::whichuser();
     if (!defined($key)) {
 	$key="$symb\0queue\0$uname:$udom";
     }
@@ -1289,7 +1291,7 @@ sub in_queue {
     if ($queue eq 'none') { return 0; }
     if (!defined($symb) || !defined($cdom) || !defined($cnum)
 	|| !defined($udom) || !defined($uname)) {
-	($symb,my $cid,$udom,$uname)=&Apache::lonxml::whichuser();
+	($symb,my $cid,$udom,$uname)=&Apache::lonnet::whichuser();
 	$cnum=$env{'course.'.$cid.'.num'};
 	$cdom=$env{'course.'.$cid.'.domain'};
     }
@@ -1308,7 +1310,7 @@ sub remove_from_queue {
     if ($queue eq 'none') { return 'ok'; }
     if (!defined($symb) || !defined($cdom) || !defined($cnum)
 	|| !defined($udom) || !defined($uname)) {
-	($symb,my $cid,$udom,$uname)=&Apache::lonxml::whichuser();
+	($symb,my $cid,$udom,$uname)=&Apache::lonnet::whichuser();
 	$cnum=$env{'course.'.$cid.'.num'};
 	$cdom=$env{'course.'.$cid.'.domain'};
     }
@@ -1333,7 +1335,7 @@ sub setup_env_for_other_user {
 
 sub get_queue_data {
     my ($queue,$udom,$uname)=@_;
-    my ($symb,$cid,$other_udom,$other_uname)=&Apache::lonxml::whichuser();
+    my ($symb,$cid,$other_udom,$other_uname)=&Apache::lonnet::whichuser();
     if (!$uname || !$udom) {
 	$uname=$other_uname;
 	$udom =$other_udom;
@@ -1379,7 +1381,7 @@ sub check_queue_for_key {
 sub add_to_queue {
     my ($queue,$user_data)=@_;
     if ($queue eq 'none') { return 'ok'; }
-    my ($symb,$cid,$udom,$uname)=&Apache::lonxml::whichuser();
+    my ($symb,$cid,$udom,$uname)=&Apache::lonnet::whichuser();
     if (!$cid || $env{'request.state'} eq 'construct') {
 	return 'no_queue';
     }
@@ -1417,7 +1419,7 @@ sub get_limited_classlist {
 sub show_queue {
     my ($queue,$with_selects)=@_;
     my $result;
-    my ($symb,$cid,$udom,$uname)=&Apache::lonxml::whichuser();
+    my ($symb,$cid,$udom,$uname)=&Apache::lonnet::whichuser();
     my $cnum=$env{'course.'.$cid.'.num'};
     my $cdom=$env{'course.'.$cid.'.domain'};
 
@@ -1544,7 +1546,7 @@ FORM
 sub get_queue_counts {
     my ($queue)=@_;
     my $result;
-    my ($symb,$cid,$udom,$uname)=&Apache::lonxml::whichuser();
+    my ($symb,$cid,$udom,$uname)=&Apache::lonnet::whichuser();
     my $cnum=$env{'course.'.$cid.'.num'};
     my $cdom=$env{'course.'.$cid.'.domain'};
 
@@ -1602,7 +1604,7 @@ sub decode_queue_key {
 sub queue_key_locked {
     my ($queue,$key,$cdom,$cnum)=@_;
     if (!defined($cdom) || !defined($cnum)) {
-	my (undef,$cid)=&Apache::lonxml::whichuser();
+	my (undef,$cid)=&Apache::lonnet::whichuser();
 	$cnum=$env{'course.'.$cid.'.num'};
 	$cdom=$env{'course.'.$cid.'.domain'};
     }
@@ -1714,7 +1716,7 @@ sub find_mid_grade {
 sub lock_key {
     my ($queue,$todo)=@_;
     my $me=$env{'user.name'}.':'.$env{'user.domain'};
-    my (undef,$cid)=&Apache::lonxml::whichuser();
+    my (undef,$cid)=&Apache::lonnet::whichuser();
     my $cnum=$env{'course.'.$cid.'.num'};
     my $cdom=$env{'course.'.$cid.'.domain'};
     my $success=&Apache::lonnet::newput($queue,{"$todo\0locked"=> $me},
@@ -1729,7 +1731,7 @@ sub lock_key {
 sub get_queue_symb_status {
     my ($queue,$symb,$cdom,$cnum) = @_;
     if (!defined($cdom) || !defined($cnum)) {
-	my (undef,$cid)=&Apache::lonxml::whichuser();
+	my (undef,$cid)=&Apache::lonnet::whichuser();
 	$cnum=$env{'course.'.$cid.'.num'};
 	$cdom=$env{'course.'.$cid.'.domain'};
     }
@@ -1753,7 +1755,7 @@ sub get_queue_symb_status {
 sub get_from_queue {
     my ($queue)=@_;
     my $result;
-    my ($symb,$cid,$udom,$uname)=&Apache::lonxml::whichuser();
+    my ($symb,$cid,$udom,$uname)=&Apache::lonnet::whichuser();
     my $cnum=$env{'course.'.$cid.'.num'};
     my $cdom=$env{'course.'.$cid.'.domain'};
     my $todo=&find_mid_grade($queue,$symb,$cdom,$cnum);
@@ -1829,7 +1831,7 @@ sub get_from_queue {
 }
 
 sub select_user {
-    my ($symb,$cid)=&Apache::lonxml::whichuser();
+    my ($symb,$cid)=&Apache::lonnet::whichuser();
 
     my @chosen_sections=
 	&Apache::loncommon::get_env_multiple('form.chosensections');
@@ -2516,7 +2518,7 @@ sub end_Criteria {
 
 sub proctor_validation_screen {
     my ($slot) = @_;
-    my (undef,undef,$domain,$user) = &Apache::lonxml::whichuser();
+    my (undef,undef,$domain,$user) = &Apache::lonnet::whichuser();
     my $url=&Apache::lonnet::studentphoto($domain,$user,'jpg');
     my $name=&Apache::loncommon::plainname($user,$domain);