version 1.47, 2001/06/26 21:39:15
|
version 1.55, 2001/08/17 16:50:04
|
Line 1
|
Line 1
|
# The LON-CAPA Homework handler |
# The LON-CAPA Homework handler |
# Guy Albertelli |
# Guy Albertelli |
# 11/30 Gerd Kortemeyer |
# 11/30 Gerd Kortemeyer |
# 6/1 Gerd Kortemeyer |
# 6/1,8/17 Gerd Kortemeyer |
|
|
package Apache::lonhomework; |
package Apache::lonhomework; |
use strict; |
use strict; |
Line 84 sub send_footer {
|
Line 84 sub send_footer {
|
} |
} |
|
|
$Apache::lonxml::browse=''; |
$Apache::lonxml::browse=''; |
sub check_date { |
|
|
sub check_access { |
my ($id) = @_; |
my ($id) = @_; |
my $date =''; |
my $date =''; |
my $status = ''; |
my $status = ''; |
Line 130 sub check_date {
|
Line 131 sub check_date {
|
if ( $maxtries eq '' ) { $maxtries = '2'; } |
if ( $maxtries eq '' ) { $maxtries = '2'; } |
if ($tries >= $maxtries) { $status = 'CANNOT_ANSWER'; } |
if ($tries >= $maxtries) { $status = 'CANNOT_ANSWER'; } |
} |
} |
|
|
|
if (($status ne 'CLOSED') && ($Apache::lonhomework::type eq 'exam')) { |
|
return ('UNCHECKEDOUT','needs to be checked out'); |
|
} |
|
|
|
|
&Apache::lonxml::debug("sending back :$status:$datemsg:"); |
&Apache::lonxml::debug("sending back :$status:$datemsg:"); |
if (($Apache::lonhomework::browse eq 'F') && ($status eq 'CLOSED')) { |
if (($Apache::lonhomework::browse eq 'F') && ($status eq 'CLOSED')) { |
&Apache::lonxml::debug("should be allowed to browse a resource when closed"); |
&Apache::lonxml::debug("should be allowed to browse a resource when closed"); |
Line 269 sub renderpage {
|
Line 276 sub renderpage {
|
# with no arg it returns a HTML <option> list of the template titles |
# with no arg it returns a HTML <option> list of the template titles |
# with one arg it returns the filename associated with the arg passed |
# with one arg it returns the filename associated with the arg passed |
sub get_template_list { |
sub get_template_list { |
my ($namewanted) = @_; |
my ($namewanted,$extension) = @_; |
my $result; |
my $result; |
foreach my $file (</home/httpd/html/res/adm/includes/templates/*.problem>) { |
&Apache::lonxml::debug("Looking for :$extension:"); |
|
foreach my $file (</home/httpd/html/res/adm/includes/templates/*.$extension>) { |
my $name=&Apache::lonnet::metadata($file,'title'); |
my $name=&Apache::lonnet::metadata($file,'title'); |
if ($namewanted && ($name eq $namewanted)) { |
if ($namewanted && ($name eq $namewanted)) { |
$result=$file; |
$result=$file; |
Line 286 sub get_template_list {
|
Line 294 sub get_template_list {
|
sub newproblem { |
sub newproblem { |
my ($request) = @_; |
my ($request) = @_; |
|
|
|
my $extension=$request->uri; |
|
$extension=~s:^.*\.([\w]+)$:$1:; |
|
&Apache::lonxml::debug("Looking for :$extension:"); |
if ($ENV{'form.template'}) { |
if ($ENV{'form.template'}) { |
use File::Copy; |
use File::Copy; |
my $file = &get_template_list($ENV{'form.template'}); |
my $file = &get_template_list($ENV{'form.template'},$extension); |
my $dest = &Apache::lonnet::filelocation("",$request->uri); |
my $dest = &Apache::lonnet::filelocation("",$request->uri); |
copy($file,$dest); |
copy($file,$dest); |
&renderpage($request,$file); |
&renderpage($request,$file); |
} else { |
} else { |
my $templatelist=&get_template_list(); |
my $templatelist=&get_template_list('',$extension); |
my $url=$request->uri; |
my $url=$request->uri; |
|
my $dest = &Apache::lonnet::filelocation("",$request->uri); |
$request->print(<<ENDNEWPROBLEM); |
$request->print(<<ENDNEWPROBLEM); |
<body bgcolor="#FFFFFF"> |
<body bgcolor="#FFFFFF"> |
The request file $url doesn\'t exist. You can create a new problem <br /> |
The request file $url doesn\'t exist. You can create a new $extension <br /> |
<form action="$url" method="POST"> |
<form action="$url" method="POST"> |
<input type="submit" value="New Problem"><br /> |
<input type="submit" value="New $extension"><br /> |
<select name="template"> |
<select name="template"> |
$templatelist |
$templatelist |
</select> |
</select> |
Line 328 sub handler {
|
Line 340 sub handler {
|
#my $t0 = [&gettimeofday()]; |
#my $t0 = [&gettimeofday()]; |
my $request=$_[0]; |
my $request=$_[0]; |
|
|
#if ( $ENV{'user.name'} eq 'albertel' ) {$Apache::lonxml::debug=1;} |
if ( $ENV{'user.name'} eq 'albertel' ) {$Apache::lonxml::debug=1;} |
|
|
if (&setupheader($request)) { return OK; } |
if (&setupheader($request)) { return OK; } |
$ENV{'request.uri'}=$request->uri; |
$ENV{'request.uri'}=$request->uri; |