--- loncom/homework/lonhomework.pm 2004/02/23 23:29:47 1.169
+++ loncom/homework/lonhomework.pm 2004/05/26 22:45:57 1.176
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# The LON-CAPA Homework handler
#
-# $Id: lonhomework.pm,v 1.169 2004/02/23 23:29:47 albertel Exp $
+# $Id: lonhomework.pm,v 1.176 2004/05/26 22:45:57 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -207,11 +207,11 @@ sub check_access {
if ( ! ($ENV{'form.problemstate'} eq 'CANNOT_ANSWER_correct' &&
lc($Apache::lonhomework::problemstatus) eq 'no')) {
return ('CANNOT_ANSWER',
- &mt('is in this state by royal decree.'));
+ &mt('is in this state due to author settings.'));
}
} else {
return ($ENV{'form.problemstate'},
- &mt('is in this state by royal decree.'));
+ &mt('is in this state due to author settings.'));
}
}
&Apache::lonxml::debug("in construction ignoring dates");
@@ -399,29 +399,29 @@ sub handle_save_or_undo {
if ((!$error) && (!copy($filebak,$file))) { $error=1; }
if ((!$error) && (!move($filetmp,$filebak))) { $error=1; }
if (!$error) {
- $request->print("
".&mt("Undid changes, Switched")." $filebak ".&mt("and")." $file
");
+ &Apache::lonxml::info("".&mt("Undid changes, Switched")." $filebak ".&mt("and")." $file
");
} else {
- $request->print("".&mt("Unable to undo, unable to switch")." $filebak ".&mt("and")." $file
");
+ &Apache::lonxml::info("".&mt("Unable to undo, unable to switch")." $filebak ".&mt("and")." $file
");
$error=1;
}
} else {
my $fs=Apache::File->new(">$filebak");
if (defined($fs)) {
print $fs $$problem;
- $request->print("".&mt("Making Backup to").
- " $filebak ");
+ &Apache::lonxml::info("".&mt("Making Backup to").
+ " $filebak ");
} else {
- $request->print("".&mt("Unable to make backup")." $filebak ");
+ &Apache::lonxml::info("".&mt("Unable to make backup")." $filebak ");
$error=2;
}
my $fh=Apache::File->new(">$file");
if (defined($fh)) {
print $fh $$result;
- $request->print("".&mt("Saving Modifications to").
- " $file ");
+ &Apache::lonxml::info("".&mt("Saving Modifications to").
+ " $file ");
} else {
- $request->print("".
- &mt("Unable to write to")." $file ");
+ &Apache::lonxml::info("".
+ &mt("Unable to write to")." $file ");
$error|=4;
}
}
@@ -432,16 +432,16 @@ sub analyze_header {
my ($request) = @_;
my $result.='
'.&mt("Analyzing a problem").'
-
+ '.&Apache::lonxml::message_location().'
';
+ &Apache::lonxml::add_messages(\$result);
$request->print($result);
$request->rflush();
}
@@ -464,7 +464,8 @@ sub analyze {
my %prog_state=
&Apache::lonhtmlcommon::Create_PrgWin($request,&mt('Analyze Progress'),
&mt('Getting Problem Variants'),
- $ENV{'form.numtoanalyze'});
+ $ENV{'form.numtoanalyze'},
+ 'inline',undef);
for(my $i=1;$i<$ENV{'form.numtoanalyze'}+1;$i++) {
&Apache::lonhtmlcommon::Increment_PrgWin($request,\%prog_state,
&mt('last problem'));
@@ -489,6 +490,7 @@ sub analyze {
}
&Apache::lonhtmlcommon::Update_PrgWin($request,\%prog_state,
&mt('Analyzing Results'));
+ $request->print(' '.&mt('List of possible answers').': ');
foreach my $part (sort(keys(%allparts))) {
if (defined(@{ $overall{$part.'.answer'} })) {
my $num_cols=scalar(@{ $overall{$part.'.answer'}->[0] });
@@ -549,21 +551,23 @@ sub editxmlmode {
if ($cols > 80) { $cols = 80; }
if ($cols < 70) { $cols = 70; }
if ($rows < 20) { $rows = 20; }
- $result.='
+ $result.=''.
+ &Apache::lonxml::message_location().'
';
+ &Apache::lonxml::add_messages(\$result);
$request->print($result);
}
return '';
@@ -575,6 +579,7 @@ sub renderpage {
my (@targets) = &get_target();
&Apache::lonhomework::showhashsubset(\%ENV,'form.');
&Apache::lonxml::debug("Running targets ".join(':',@targets));
+ my $overall_result;
foreach my $target (@targets) {
#my $t0 = [&gettimeofday()];
my $problem=&Apache::lonnet::getfile($file);
@@ -606,12 +611,16 @@ sub renderpage {
#$result =~ s:::;
#$result.=" Spent $td seconds processing target $target\n";
#}
- $request->print($result);
- $request->rflush();
+# $request->print($result);
+ $overall_result.=$result;
+# $request->rflush();
}
#$request->print(":Result ends");
#my $td=&tv_interval($t0);
}
+ &Apache::lonxml::add_messages(\$overall_result);
+ $request->print($overall_result);
+ $request->rflush();
}
# with no arg it returns a HTML list of the template titles
@@ -660,8 +669,8 @@ sub newproblem {
copy($templatefilename,$dest);
&renderpage($request,$dest);
} else {
- my $url=$request->uri;
- my $shownurl=$url;
+ my $url=&HTML::Entities::encode($request->uri,'<>&"');
+ my $shownurl=$url;
$shownurl=~s-^/~-/priv/-;
my $dest = &Apache::lonnet::filelocation("",$request->uri);
my $errormsg;
@@ -700,7 +709,7 @@ ENDNEWPROBLEM
sub view_or_edit_menu {
my ($request) = @_;
- my $url=$request->uri;
+ my $url=&HTML::Entities::encode($request->uri,'<>&"');
my %lt=&Apache::lonlocal::texthash( 'would' => 'Would you like to',
'view' => 'View',
'Edit' => 'edit',
@@ -709,8 +718,8 @@ sub view_or_edit_menu {
$request->print(<
-$lt{'would'}
-<{'or'}
+$lt{'would'}
+<{'or'}
<{'the problem'}.
@@ -745,7 +754,8 @@ sub handler {
#check if we know where we are
if ($ENV{'request.course.fn'} && !&Apache::lonnet::symbread()) {
# if we are browsing we might not be able to know where we are
- if ($Apache::lonhomework::browse ne 'F') {
+ if ($Apache::lonhomework::browse ne 'F' &&
+ $ENV{'request.state'} ne "construct") {
#should know where we are, so ask
if ( &Apache::lonnet::mod_perl_version() == 2 ) {
&Apache::lonnet::cleanenv();