'.
@@ -245,9 +267,11 @@ sub option {
sub problem_web_to_edit_header {
my ($rndseed)=@_;
- my $result.='
-
-
+ my $result.='';
+ if (!$Apache::lonhomework::parsing_a_task) {
+ $result .= '';
+ }
+ $result .= '
@@ -255,11 +279,17 @@ sub problem_web_to_edit_header {
$rndseed.'"
onchange="javascript:document.lonhomework.changerandseed.click()" />
';
- $result.="
+ if (!$Apache::lonhomework::parsing_a_task) {
+ $result.="
Problem Status:
";
- my $numtoanalyze=$env{'form.numtoanalyze'};
- if (!$numtoanalyze) { $numtoanalyze=20; }
- $result.= ' for
+ my $numtoanalyze=$env{'form.numtoanalyze'};
+ if (!$numtoanalyze) { $numtoanalyze=20; }
+ $result.= ' for
'.&mt('versions of this problem').
'.'.&Apache::loncommon::help_open_topic("Analyze_Problem",
'',undef,undef,300).
' ';
+ }
return $result;
}
@@ -306,9 +337,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 {
@@ -329,11 +370,16 @@ sub initialize_storage {
sub finalize_storage {
my $result;
if (%Apache::lonhomework::results) {
+ 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,
@@ -343,6 +389,8 @@ sub finalize_storage {
&store_aggregates($symb,$courseid);
}
}
+ } else {
+ &Apache::lonxml::debug('Nothing to store');
}
return $result;
}
@@ -422,10 +470,6 @@ sub firstaccess_msg {
ENDCHECKOUT
}
-# initializes the problem globals across the inputtags, lonhomework, and
-# structuretags modules.
-#
-#
sub init_problem_globals {
my ($type)=@_;
#initialize globals
@@ -497,7 +541,12 @@ sub get_problem_status {
}
sub start_problem {
- my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
+ my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
+
+ # We'll use the redirection to fix up printing of duedates.
+ if (!$Apache::lonxml::metamode) {
+ &Apache::lonxml::startredirection();
+ }
# Problems don't nest and we don't allow more than one in
# a .problem file.
@@ -505,7 +554,7 @@ sub start_problem {
if ( $Apache::inputtags::part ne '' ||
$Apache::lonhomework::parsing_a_problem) {
&Apache::lonxml::error('Only one <problem> allowed in a .problem file');
- #my $bodytext=&Apache::lonxml::get_all_text("/problem",$parser);
+ #my $bodytext=&Apache::lonxml::get_all_text("/problem",$parser,$style);
return '';
}
@@ -527,7 +576,7 @@ sub start_problem {
defined($env{'form.problemtype'})) {
$Apache::lonhomework::type=$env{'form.problemtype'};
}
- &Apache::lonxml::debug("Found this to be of type :$Apache::ltonhomework::type:");
+ &Apache::lonxml::debug("Found this to be of type :$Apache::lonhomework::type:");
}
if ($Apache::lonhomework::type eq '' ) {
my $uri=$env{'request.uri'};
@@ -573,14 +622,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.=
' |