--- loncom/homework/lonhomework.pm 2004/12/20 12:16:47 1.188 +++ loncom/homework/lonhomework.pm 2004/12/22 22:05:40 1.190 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # The LON-CAPA Homework handler # -# $Id: lonhomework.pm,v 1.188 2004/12/20 12:16:47 foxr Exp $ +# $Id: lonhomework.pm,v 1.190 2004/12/22 22:05:40 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -54,74 +54,29 @@ use Apache::loncommon(); use Apache::lonlocal; use Time::HiRes qw( gettimeofday tv_interval ); use Apache::lonnet(); -# -# FIXME!!!!!!! -# Be nice if someone -# - Took credit/blame for this module. -# - At least commented the purpose of each major -# sub -# - Even better commented the major blocks. -# -# I'll have a go at it for what I need. -# ?'s- mean maybe this is right. -# The number of ?'s represents the rough level -# of doubt I have about rightness, with ??? representing -# uncertainty based on the first blush interpretation. -# ?? - I have some code to back up this interpretation. -# ? - I"m pretty sure I understand the code that backs up this -# interpretation. -# ???? - Absolutely clueless. -# . - I'm pretty sure the interpretation is correct. -# RF. - - -# 'Exported' Variables: - -# viewgrades is 'F' if users are not allowed to view the grades.. T otherwise. - -$Apache::lonhomework::viewgrades = 'F'; # By default cannot. -# Internal variables. +# FIXME - improve commenting -my $DEBUG=0; # set nonzero to enable debugging. BEGIN { &Apache::lonxml::register_insert(); } -# -# Issue debug log messages. -# Parameters: -# The log message to issue. -# Implicit Inputs: -# DEBUG - If non zero the message is issued, otherwise not. -# -sub Debug { - my ($message) = @_; - - if($DEBUG) { - my @call_context = caller(1); - my $prefix = "$call_context[3]:$call_context[2]:: "; - &Apache::lonnet::logthis($prefix.$message); - } -} # -# I believe this sub defines how to render the -# problem based on the context of the rendering? +# Decides what targets to render for. # Implicit inputs: # Various session environment variables: -# request.state - State of the resource actually ?? -# published - Examining in resource space. -# uploaded - Not sure how this happens????? -# contruct - Rendering in construction space for viewing. -# form.grade_target - +# request.state - published - is a /res/ resource +# uploaded - is a /uploaded/ resource +# contruct - is a /priv/ resource +# form.grade_target - a form parameter requesting a specific target sub get_target { - &Debug("request.state = $ENV{'request.state'}"); + &Apache::lonxml::debug("request.state = $ENV{'request.state'}"); if( defined($ENV{'form.grade_target'})) { - &Debug("form.grade_target = $ENV{'form.grade_target'}"); + &Apache::lonxml::debug("form.grade_target= $ENV{'form.grade_target'}"); } else { - &Debug("form.grade_target "); + &Apache::lonxml::debug("form.grade_target "); } if (($ENV{'request.state'} eq "published") || ($ENV{'request.state'} eq "uploaded")) { @@ -160,7 +115,8 @@ sub get_target { } else { return ('web','answer'); } - } elsif ( $ENV{'form.problemmode'} eq &mt('Edit') ) { + } elsif ( $ENV{'form.problemmode'} eq &mt('Edit') || + $ENV{'form.problemmode'} ee 'Edit') { if ( $ENV{'form.submitted'} eq 'edit' ) { if ( $ENV{'form.submit'} eq &mt('Submit Changes and View') ) { return ('modified','web','answer'); @@ -671,10 +627,10 @@ sub editxmlmode { } return ''; } + # # Render the page in whatever target desired. # - sub renderpage { my ($request,$file) = @_; @@ -866,7 +822,8 @@ sub handler { if ( &Apache::lonnet::mod_perl_version() == 2 ) { &Apache::lonnet::cleanenv(); } - $request->internal_redirect('/adm/ambiguous'); return; + &Apache::lonnet::logthis(&Apache::lonnet::mod_perl_version()); + $request->internal_redirect('/adm/ambiguous'); return OK; } } if (&setupheader($request)) { return OK; } @@ -891,7 +848,8 @@ sub handler { #&view_or_edit_menu($request); $ENV{'form.problemmode'}='View'; &renderpage($request,$file); - } elsif ($ENV{'form.problemmode'} eq &mt('EditXML')) { + } elsif ($ENV{'form.problemmode'} eq &mt('EditXML') || + $ENV{'form.problemmode'} eq 'EditXML' { &editxmlmode($request,$file); } elsif ($ENV{'form.problemmode'} eq &mt('Calculate answers')) { &analyze($request,$file);