version 1.66, 2001/08/22 19:21:36
|
version 1.67, 2001/09/14 20:17:35
|
Line 66 sub page_start {
|
Line 66 sub page_start {
|
sub initialize_storage { |
sub initialize_storage { |
%Apache::lonhomework::results=(); |
%Apache::lonhomework::results=(); |
my ($symb,$courseid,$domain,$name) = &Apache::lonxml::whichuser(); |
my ($symb,$courseid,$domain,$name) = &Apache::lonxml::whichuser(); |
%Apache::lonhomework::history= |
if ($ENV{'request.state'} eq 'construct') { |
&Apache::lonnet::restore($symb,$courseid,$domain,$name); |
%Apache::lonhomework::history= |
|
&Apache::lonnet::restore($ENV{'request.uri'},'nohist_construct',$domain,$name); |
|
my ($temp)=keys %Apache::lonhomework::history ; |
|
&Apache::lonxml::debug("Return message of $temp"); |
|
} else { |
|
%Apache::lonhomework::history= |
|
&Apache::lonnet::restore($symb,$courseid,$domain,$name); |
|
} |
#ignore error conditions |
#ignore error conditions |
my ($temp)=keys %Apache::lonhomework::history ; |
my ($temp)=keys %Apache::lonhomework::history ; |
if ($temp =~ m/^error:.*/) { %Apache::lonhomework::history=(); } |
if ($temp =~ m/^error:.*/) { %Apache::lonhomework::history=(); } |
Line 82 sub finalize_storage {
|
Line 89 sub finalize_storage {
|
my ($temp) = keys %Apache::lonhomework::results; |
my ($temp) = keys %Apache::lonhomework::results; |
if ( $temp ne '' ) { |
if ( $temp ne '' ) { |
my ($symb,$courseid,$domain,$name) = &Apache::lonxml::whichuser(); |
my ($symb,$courseid,$domain,$name) = &Apache::lonxml::whichuser(); |
$result=&Apache::lonnet::cstore(\%Apache::lonhomework::results, |
if ($ENV{'request.state'} eq 'construct') { |
$symb,$courseid,$domain,$name); |
$result=&Apache::lonnet::cstore(\%Apache::lonhomework::results, |
&Apache::lonxml::debug("Store return message:".$result); |
$ENV{'request.uri'},'nohist_construct', |
|
$domain,$name); |
|
&Apache::lonxml::debug('Construct Store return message:'.$result); |
|
} else { |
|
$result=&Apache::lonnet::cstore(\%Apache::lonhomework::results, |
|
$symb,$courseid,$domain,$name); |
|
&Apache::lonxml::debug('Store return message:'.$result); |
|
} |
} |
} |
return $result; |
return $result; |
} |
} |
Line 127 sub start_problem {
|
Line 141 sub start_problem {
|
} |
} |
} |
} |
|
|
#added vars to the scripting enviroment |
#added vars to the scripting enviroment |
my $expression='$external::part='.$Apache::inputtags::part.';'; |
my $expression='$external::part='.$Apache::inputtags::part.';'; |
&Apache::run::run($expression,$safeeval); |
&Apache::run::run($expression,$safeeval); |
my $status; |
my $status; |
Line 137 sub start_problem {
|
Line 151 sub start_problem {
|
my ($result,$head_tag_start,$body_tag_start)= |
my ($result,$head_tag_start,$body_tag_start)= |
&page_start($target,$token,$tagstack,$parstack,$parser,$safeeval); |
&page_start($target,$token,$tagstack,$parstack,$parser,$safeeval); |
|
|
if ($Apache::lonhomework::type eq 'exam') { |
|
if ($target eq 'web') { |
|
my $token=$Apache::lonhomework::history{"resource.0.outtoken"}; |
|
if (($ENV{'form.doescheckout'}) && (!$token)) { |
|
$token=&Apache::lonxml::maketoken(); |
|
$Apache::lonhomework::history{"resource.0.outtoken"}=$token; |
|
} |
|
$body_tag_start.=&Apache::lonxml::printtokenheader($target,$token); |
|
} |
|
} |
|
if ($target eq 'web' || $target eq 'grade') { |
if ($target eq 'web' || $target eq 'grade') { |
|
#handle exam checkout |
|
if ($Apache::lonhomework::type eq 'exam') { |
|
my $token=$Apache::lonhomework::history{"resource.0.outtoken"}; |
|
if (($ENV{'form.doescheckout'}) && (!$token)) { |
|
$token=&Apache::lonxml::maketoken(); |
|
$Apache::lonhomework::history{"resource.0.outtoken"}=$token; |
|
} |
|
$body_tag_start.=&Apache::lonxml::printtokenheader($target,$token); |
|
} |
|
|
|
#handle rand seed in construction space |
|
my $rndseed; |
|
if ($ENV{'request.state'} eq "construct") { |
|
$rndseed=$ENV{'form.rndseed'}; |
|
if (!$rndseed) { |
|
$rndseed=time; |
|
$ENV{'form.rndseed'}=$rndseed; |
|
} |
|
&Apache::run::run('$external::randomseed='.$rndseed.';',$safeeval); |
|
} |
($status,$accessmsg) = &Apache::lonhomework::check_access('0'); |
($status,$accessmsg) = &Apache::lonhomework::check_access('0'); |
push (@Apache::inputtags::status,$status); |
push (@Apache::inputtags::status,$status); |
my $expression='$external::datestatus="'.$status.'";'; |
my $expression='$external::datestatus="'.$status.'";'; |
Line 166 sub start_problem {
|
Line 191 sub start_problem {
|
} elsif ($status eq 'UNCHECKEDOUT') { |
} elsif ($status eq 'UNCHECKEDOUT') { |
$msg.=&checkout_msg; |
$msg.=&checkout_msg; |
} |
} |
return $result.$msg.'<br />'; |
$result.=$msg.'<br />'; |
} |
} |
} |
} elsif ($target eq 'web') { |
} |
my $name= &Apache::lonxml::get_param('name',$parstack,$safeeval); |
if ($target eq 'web') { |
if ($name eq '') { |
my $name= &Apache::lonxml::get_param('name',$parstack,$safeeval); |
$name=&Apache::lonnet::EXT('resource.title'); |
if ($name eq '') { |
if ($name eq 'con_lost') { $name = ''; } |
$name=&Apache::lonnet::EXT('resource.title'); |
} |
if ($name eq 'con_lost') { $name = ''; } |
$Apache::lonhomework::name=$name; |
} |
if ($status eq 'CAN_ANSWER') { |
$Apache::lonhomework::name=$name; |
# create a page header and exit |
if ($status eq 'CAN_ANSWER') { |
$result.="$head_tag_start<title>$name</title></head>\n |
# create a page header and exit |
|
$result.="$head_tag_start<title>$name</title></head>\n |
|
$body_tag_start\n |
$body_tag_start\n |
<form name=\"lonhomework\" method=\"POST\" action=\"".$ENV{'request.uri'}."\">". |
<form name=\"lonhomework\" method=\"POST\" action=\"".$ENV{'request.uri'}."\">". |
'<input type="hidden" name="submitted" value="yes" />'; |
'<input type="hidden" name="submitted" value="yes" />'; |
if ($ENV{'request.state'} eq "construct") { |
if ($ENV{'request.state'} eq "construct") { |
$result.='<input type="hidden" name="problemmode" value="View" /> |
$result.= |
<input type="submit" name="problemmode" value="Edit" /><hr />'; |
'<input type="hidden" name="problemmode" value="View" /> |
} |
<input type="submit" name="problemmode" value="Edit" /> |
# if we are viewing someone else preserve that info |
Random Seed:<input type="text" name="rndseed" width="10" value="'. |
if (defined $ENV{'form.grade_symb'}) { |
$rndseed.'" /><hr />'; |
foreach my $field ('symb','courseid','domain','username') { |
} |
$result .= '<input type="hidden" name="grade_'.$field. |
# if we are viewing someone else preserve that info |
'" value="'.$ENV{"form.grade_$field"}.'" />'."\n"; |
if (defined $ENV{'form.grade_symb'}) { |
|
foreach my $field ('symb','courseid','domain','username') { |
|
$result .= '<input type="hidden" name="grade_'.$field. |
|
'" value="'.$ENV{"form.grade_$field"}.'" />'."\n"; |
|
} |
} |
} |
|
} elsif ($status eq 'SHOW_ANSWER' || $status eq 'CANNOT_ANSWER' |
|
|| $status eq 'CLOSED') { |
|
$result.=$head_tag_start. |
|
"<title>$name</title></head>\n$body_tag_start\n"; |
} |
} |
return $result; |
|
} elsif ($status eq 'SHOW_ANSWER' || $status eq 'CANNOT_ANSWER' || $status eq 'CLOSED') { |
|
return $result.$head_tag_start."<title>$name</title></head>\n$body_tag_start\n"; |
|
} |
} |
} |
} elsif ($target eq 'edit') { |
if ($target eq 'edit') { |
|
$result.=$head_tag_start."</head>".$body_tag_start. |
$result.=$head_tag_start."</head>".$body_tag_start. |
'<form name="lonhomework" method="POST" action="'.$ENV{'request.uri'}.'"> |
'<form name="lonhomework" method="POST" action="'. |
|
$ENV{'request.uri'}.'"> |
<input type="hidden" name="submitted" value="edit" /> |
<input type="hidden" name="submitted" value="edit" /> |
<input type="hidden" name="problemmode" value="Edit" /> |
<input type="hidden" name="problemmode" value="Edit" /> |
<input type="submit" name="problemmode" value="View" /> |
<input type="submit" name="problemmode" value="View" /> |
Line 210 sub start_problem {
|
Line 238 sub start_problem {
|
'; |
'; |
my $temp=&Apache::edit::insertlist($target,$token); |
my $temp=&Apache::edit::insertlist($target,$token); |
$result.=$temp; |
$result.=$temp; |
return $result; |
} elsif ($target eq 'modified') { |
} |
|
if ($target eq 'modified') { |
|
$result=$token->[4]; |
$result=$token->[4]; |
$result.=&Apache::edit::handle_insert(); |
$result.=&Apache::edit::handle_insert(); |
return $result; |
} else { |
|
# page_start returned a starting result, delete it if we don't need it |
|
$result = ''; |
} |
} |
return ''; |
return $result; |
} |
} |
|
|
sub end_problem { |
sub end_problem { |