version 1.232, 2005/12/22 22:06:54
|
version 1.237, 2006/03/24 17:34:11
|
Line 143 sub setup_vars {
|
Line 143 sub setup_vars {
|
# return ';$external::target='.$target.';'; |
# return ';$external::target='.$target.';'; |
} |
} |
|
|
sub send_header { |
|
my ($request)= @_; |
|
$request->print(&Apache::lontexconvert::header()); |
|
# $request->print('<form name='.$env{'form.request.prefix'}.'lonhomework method="POST" action="'.$request->uri.'">'); |
|
} |
|
|
|
sub createmenu { |
sub createmenu { |
my ($which,$request)=@_; |
my ($which,$request)=@_; |
if ($which eq 'grade') { |
if ($which eq 'grade') { |
Line 159 sub createmenu {
|
Line 153 sub createmenu {
|
} |
} |
} |
} |
|
|
sub send_footer { |
|
my ($request)= @_; |
|
# $request->print('</form>'); |
|
$request->print(&Apache::lontexconvert::footer()); |
|
} |
|
|
|
sub proctor_checked_in { |
sub proctor_checked_in { |
my ($slot_name,$slot,$type)=@_; |
my ($slot_name,$slot,$type)=@_; |
my @possible_proctors=split(",",$slot->{'proctor'}); |
my @possible_proctors=split(",",$slot->{'proctor'}); |
Line 198 sub check_ip_acc {
|
Line 186 sub check_ip_acc {
|
my $ip=$ENV{'REMOTE_ADDR'}; |
my $ip=$ENV{'REMOTE_ADDR'}; |
my $name; |
my $name; |
foreach my $pattern (split(',',$acc)) { |
foreach my $pattern (split(',',$acc)) { |
|
$pattern =~ s/^\s*//; |
|
$pattern =~ s/\s*$//; |
if ($pattern =~ /\*$/) { |
if ($pattern =~ /\*$/) { |
#35.8.* |
#35.8.* |
$pattern=~s/\*//; |
$pattern=~s/\*//; |
Line 295 sub check_slot_access {
|
Line 285 sub check_slot_access {
|
$slotstatus='CAN_ANSWER'; |
$slotstatus='CAN_ANSWER'; |
} |
} |
|
|
my ($got_grade,$checkedin); |
my ($is_correct,$got_grade,$checkedin); |
if ($type eq 'Task') { |
if ($type eq 'Task') { |
my $version=$Apache::lonhomework::history{'resource.0.version'}; |
my $version=$Apache::lonhomework::history{'resource.0.version'}; |
$got_grade = |
$got_grade = |
($Apache::lonhomework::history{"resource.$version.0.status"} |
($Apache::lonhomework::history{"resource.$version.0.status"} |
=~ /^(?:pass|fail)$/); |
=~ /^(?:pass|fail)$/); |
|
$is_correct = |
|
($Apache::lonhomework::history{"resource.$version.0.status"} eq 'pass' |
|
|| $Apache::lonhomework::history{"resource.0.solved"} =~ /^correct_/ ); |
$checkedin = |
$checkedin = |
$Apache::lonhomework::history{"resource.$version.0.checkedin"}; |
$Apache::lonhomework::history{"resource.$version.0.checkedin"}; |
} elsif ($type eq 'problem') { |
} elsif ($type eq 'problem') { |
Line 308 sub check_slot_access {
|
Line 301 sub check_slot_access {
|
$checkedin = $Apache::lonhomework::history{"resource.0.checkedin"}; |
$checkedin = $Apache::lonhomework::history{"resource.0.checkedin"}; |
} |
} |
|
|
|
&Apache::lonxml::debug(" slot is $slotstatus checkedin ($checkedin) got_grade ($got_grade) is_correct ($is_correct)"); |
|
|
|
# has a current checked in recrd, but hasn't got a grade, must be awaiting |
|
# a grade |
|
if ($checkedin |
|
&& !$got_grade) { |
|
return ('WAITING_FOR_GRADE'); |
|
} |
|
|
if ($slotstatus eq 'NOT_IN_A_SLOT' |
if ($slotstatus eq 'NOT_IN_A_SLOT' |
&& $checkedin ) { |
&& $checkedin ) { |
|
|
Line 318 sub check_slot_access {
|
Line 320 sub check_slot_access {
|
} |
} |
|
|
} |
} |
|
if ( $is_correct) { |
|
return ('SHOW_ANSWER'); |
|
} |
if ( $status eq 'CANNOT_ANSWER' && |
if ( $status eq 'CANNOT_ANSWER' && |
($slotstatus ne 'NEEDS_CHECKIN' && $slotstatus ne 'NOT_IN_A_SLOT')) { |
($slotstatus ne 'NEEDS_CHECKIN' && $slotstatus ne 'NOT_IN_A_SLOT')) { |
return ($status,$datemsg); |
return ($status,$datemsg); |
Line 639 sub analyze_header {
|
Line 644 sub analyze_header {
|
|
|
sub analyze_footer { |
sub analyze_footer { |
my ($request) = @_; |
my ($request) = @_; |
my $result='</body></html>'; |
$request->print(&Apache::loncommon::end_page()); |
$request->print($result); |
|
$request->rflush(); |
$request->rflush(); |
} |
} |
|
|
Line 988 sub handler {
|
Line 992 sub handler {
|
&Apache::lonxml::debug("Problem Mode ".$env{'form.problemmode'}); |
&Apache::lonxml::debug("Problem Mode ".$env{'form.problemmode'}); |
my ($symb) = &Apache::lonxml::whichuser(); |
my ($symb) = &Apache::lonxml::whichuser(); |
&Apache::lonxml::debug('symb is '.$symb); |
&Apache::lonxml::debug('symb is '.$symb); |
if ($env{'request.state'} eq "construct" || $symb eq '') { |
|
if ($env{'form.resetdata'} eq &mt('Reset Submissions') || |
|
$env{'form.resetdata'} eq &mt('New Problem Variation') || |
|
$env{'form.newrandomization'} eq &mt('New Randomization')) { |
|
my ($symb,$courseid,$domain,$name) = &Apache::lonxml::whichuser(); |
|
&Apache::lonnet::tmpreset($symb,'',$domain,$name); |
|
&Apache::lonxml::debug("Attempt reset"); |
|
} |
|
} |
|
if ($env{'request.state'} eq "construct") { |
if ($env{'request.state'} eq "construct") { |
if ( -e $file ) { |
if ( -e $file ) { |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
Line 1025 sub handler {
|
Line 1020 sub handler {
|
} |
} |
#my $td=&tv_interval($t0); |
#my $td=&tv_interval($t0); |
#&Apache::lonxml::debug("Spent $td seconds processing"); |
#&Apache::lonxml::debug("Spent $td seconds processing"); |
# &Apache::lonhomework::send_footer($request); |
|
# always turn off debug messages |
# always turn off debug messages |
$Apache::lonxml::debug=0; |
$Apache::lonxml::debug=0; |
return OK; |
return OK; |