--- loncom/homework/structuretags.pm 2006/03/28 18:31:37 1.332.2.1
+++ loncom/homework/structuretags.pm 2006/02/16 02:03:25 1.336
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# definition of tags that give a structure to a document
#
-# $Id: structuretags.pm,v 1.332.2.1 2006/03/28 18:31:37 albertel Exp $
+# $Id: structuretags.pm,v 1.336 2006/02/16 02:03:25 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -192,8 +192,10 @@ sub setup_rndseed {
my ($safeeval)=@_;
my $rndseed;
my ($symb)=&Apache::lonxml::whichuser();
- if ($env{'request.state'} eq "construct" || $symb eq '' ||
- $Apache::lonhomework::history{'resource.CODE'}) {
+ if ($env{'request.state'} eq "construct"
+ || $symb eq ''
+ || $Apache::lonhomework::type eq 'practice'
+ || $Apache::lonhomework::history{'resource.CODE'}) {
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
['rndseed']);
$rndseed=$env{'form.rndseed'};
@@ -336,9 +338,19 @@ sub initialize_storage {
%Apache::lonhomework::results=();
%Apache::lonhomework::history=();
my ($symb,$courseid,$domain,$name) = &Apache::lonxml::whichuser();
- if ($env{'request.state'} eq 'construct' || $symb eq '') {
+ if ($env{'request.state'} eq 'construct'
+ || $symb eq ''
+ || $Apache::lonhomework::type eq 'practice') {
+
+ my $namespace = $symb || $env{'request.uri'};
+ if ($env{'form.resetdata'} eq &mt('Reset Submissions') ||
+ $env{'form.resetdata'} eq &mt('New Problem Variation') ||
+ $env{'form.newrandomization'} eq &mt('New Randomization')) {
+ &Apache::lonnet::tmpreset($namespace,'',$domain,$name);
+ &Apache::lonxml::debug("Attempt reset");
+ }
%Apache::lonhomework::history=
- &Apache::lonnet::tmprestore($env{'request.uri'},'',$domain,$name);
+ &Apache::lonnet::tmprestore($namespace,'',$domain,$name);
my ($temp)=keys %Apache::lonhomework::history ;
&Apache::lonxml::debug("Return message of $temp");
} else {
@@ -362,10 +374,13 @@ sub finalize_storage {
my @remove = grep(/^INTERNAL_/,keys(%Apache::lonhomework::results));
delete(@Apache::lonhomework::results{@remove});
my ($symb,$courseid,$domain,$name) = &Apache::lonxml::whichuser();
- if ($env{'request.state'} eq 'construct' || $symb eq '') {
+ if ($env{'request.state'} eq 'construct'
+ || $symb eq ''
+ || $Apache::lonhomework::type eq 'practice') {
+ my $namespace = $symb || $env{'request.uri'};
$Apache::lonhomework::results{'rndseed'}=$env{'form.rndseed'};
$result=&Apache::lonnet::tmpstore(\%Apache::lonhomework::results,
- $env{'request.uri'},'',$domain,$name);
+ $namespace,'',$domain,$name);
&Apache::lonxml::debug('Construct Store return message:'.$result);
} else {
$result=&Apache::lonnet::cstore(\%Apache::lonhomework::results,
@@ -608,14 +623,18 @@ sub start_problem {
#handle rand seed in construction space
my $rndseed=&setup_rndseed($safeeval);
my ($symb)=&Apache::lonxml::whichuser();
- if ($env{'request.state'} ne "construct" && $symb eq '') {
+ if ($env{'request.state'} ne "construct" &&
+ ($symb eq '' || $Apache::lonhomework::type eq 'practice')) {
$form_tag_start.=''.
''.
+ value="'.&mt('New Problem Variation').'" />';
+ if (exists($env{'form.username'})) {
+ $form_tag_start.=
'';
- if ($env{'user.adv'}) {
+ }
+ if ($env{'request.role.adv'}) {
$form_tag_start.=
'