# The LON-CAPA Homework handler
# Guy Albertelli
# 11/30 Gerd Kortemeyer
package Apache::lonhomework;
use strict;
use Apache::style;
use Apache::lonxml;
use Apache::lonnet;
use Apache::inputtags;
use Apache::structuretags;
use Apache::response;
sub subhandler {
my ($target,$problem)=@_;
my %mystyle;
my $result = '';
&Apache::inputtags::initialize_inputtags;
%Apache::lonhomework::results=();
%Apache::lonhomework::history=&Apache::lonnet::restore;
#ignore error conditions
my ($temp)=keys %Apache::lonhomework::history ;
if ($temp =~ m/^error:.*/) { %Apache::lonhomework::history=(); }
my $resultkey;
foreach $resultkey (sort keys %Apache::lonhomework::history) {
&Apache::lonxml::debug("$resultkey ---- $Apache::lonhomework::history{$resultkey}");
}
&Apache::lonxml::debug("\n
restored values^\n");
my $default=&Apache::lonnet::getfile('/home/httpd/html/res/adm/includes/default_homework.lcpm');
if ($default == -1) {
&Apache::lonxml::error("Unable to find default_homework.lcpm");
$default='';
}
return Apache::lonxml::xmlparse($target, $problem,
$default.&setup_vars($target),%mystyle);
}
sub get_target {
if ( $ENV{'request.state'} eq "published") {
return 'web';
} elsif ($ENV{'request.state'} eq "construct") {
if ( defined $ENV{'form.preview'}) {
return 'web';
} else {
return 'edit';
}
}
}
sub setup_vars {
my ($target) = @_;
return ';'
# return ';$external::target='.$target.';';
}
sub send_header {
my ($request)= @_;
$request->print(&Apache::lontexconvert::header());
$ENV{'request.uri'}=$request->uri;
# $request->print('