[LON-CAPA-cvs] cvs: loncom / LONCAPA.pm /auth lonlogout.pm lonuploadedacc.pm /homework grades.pm hint.pm loncapagrade.pm optionresponse.pm outputtags.pm radiobuttonresponse.pm /interface lonmeta.pm lontest.pm /publisher lonpubdir.pm

jms lon-capa-cvs-allow@mail.lon-capa.org
Thu, 20 Nov 2008 15:19:39 -0000


This is a MIME encoded message

--jms1227194379
Content-Type: text/plain

jms		Thu Nov 20 15:19:39 2008 EDT

  Modified files:              
    /loncom/homework	radiobuttonresponse.pm grades.pm hint.pm 
                    	optionresponse.pm loncapagrade.pm outputtags.pm 
    /loncom/auth	lonlogout.pm lonuploadedacc.pm 
    /loncom/publisher	lonpubdir.pm 
    /loncom	LONCAPA.pm 
    /loncom/interface	lonmeta.pm lontest.pm 
  Log:
  Moved POD comments to bottom of file
  
--jms1227194379
Content-Type: text/plain
Content-Disposition: attachment; filename="jms-20081120151939.txt"

Index: loncom/homework/radiobuttonresponse.pm
diff -u loncom/homework/radiobuttonresponse.pm:1.138 loncom/homework/radiobuttonresponse.pm:1.139
--- loncom/homework/radiobuttonresponse.pm:1.138	Tue Nov 18 19:14:28 2008
+++ loncom/homework/radiobuttonresponse.pm	Thu Nov 20 15:19:15 2008
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # mutliple choice style responses
 #
-# $Id: radiobuttonresponse.pm,v 1.138 2008/11/18 19:14:28 jms Exp $
+# $Id: radiobuttonresponse.pm,v 1.139 2008/11/20 15:19:15 jms Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -26,86 +26,6 @@
 #
 
 
-=head1 NAME
-
-Apache::radiobuttonresponse
-
-=head1 SYNOPSIS
-
-Handles multiple-choice style responses.
-
-This is part of the LearningOnline Network with CAPA project
-described at http://www.lon-capa.org.
-
-=head1 SUBROUTINES
-
-=over
-
-=item start_radiobuttonresponse()
-
-=item bubble_line_count()
-
-=item end_radiobuttonresponse()
-
-=item start_foilgroup()
-
-=item storesurvey()
-
-=item grade_response()
-
-=item end_foilgroup()
-
-=item getfoilcounts()
-
-=item format_prior_answer()
-
-=item displayallfoils()
-
-=item &whichfoils($max,$randomize)
-
-Randomizes the list of foils.
-Respects
-  - each foils desire to be randomized
-  - the existance of Concept groups of foils (select 1 foil from each)
-  - and selects a single correct statement from all possilble true statments
-  - and limits it to a toal of $max foils
-
-WARNING: this routine uses the random number generator, it should only
-be called once per target, otherwise it can cause randomness changes in
-homework problems.
-
-Arguments
-  $max - maximum number of foils to select (including the true one)
-         (so a max of 5 is: 1 true, 4 false)
-
-  $randomize - whether to randomize the listing of foils, by default
-               will randomize, only if randomize is 'no' will it not
-
-Returns
-  $answer - location in the array of the correct answer
-  @foils  - array of foil names in to display order
-
-=item displayfoils()
-
-=item displayallanswers()
-
-=item displayanswers()
-
-=item start_conceptgroup()
-
-=item end_conceptgroup()
-
-=item insert_conceptgroup()
-
-=item start_foil()
-
-=item end_foil()
-
-=item insert_foil()
-
-=back
-
-=cut
 
 package Apache::radiobuttonresponse;
 use strict;
@@ -888,4 +808,87 @@
 }
 1;
 __END__
+
+
+
+=head1 NAME
+
+Apache::radiobuttonresponse
+
+=head1 SYNOPSIS
+
+Handles multiple-choice style responses.
+
+This is part of the LearningOnline Network with CAPA project
+described at http://www.lon-capa.org.
+
+=head1 SUBROUTINES
+
+=over
+
+=item start_radiobuttonresponse()
+
+=item bubble_line_count()
+
+=item end_radiobuttonresponse()
+
+=item start_foilgroup()
+
+=item storesurvey()
+
+=item grade_response()
+
+=item end_foilgroup()
+
+=item getfoilcounts()
+
+=item format_prior_answer()
+
+=item displayallfoils()
+
+=item &whichfoils($max,$randomize)
+
+Randomizes the list of foils.
+Respects
+  - each foils desire to be randomized
+  - the existance of Concept groups of foils (select 1 foil from each)
+  - and selects a single correct statement from all possilble true statments
+  - and limits it to a toal of $max foils
+
+WARNING: this routine uses the random number generator, it should only
+be called once per target, otherwise it can cause randomness changes in
+homework problems.
+
+Arguments
+  $max - maximum number of foils to select (including the true one)
+         (so a max of 5 is: 1 true, 4 false)
+
+  $randomize - whether to randomize the listing of foils, by default
+               will randomize, only if randomize is 'no' will it not
+
+Returns
+  $answer - location in the array of the correct answer
+  @foils  - array of foil names in to display order
+
+=item displayfoils()
+
+=item displayallanswers()
+
+=item displayanswers()
+
+=item start_conceptgroup()
+
+=item end_conceptgroup()
+
+=item insert_conceptgroup()
+
+=item start_foil()
+
+=item end_foil()
+
+=item insert_foil()
+
+=back
+
+=cut
  
Index: loncom/homework/grades.pm
diff -u loncom/homework/grades.pm:1.530 loncom/homework/grades.pm:1.531
--- loncom/homework/grades.pm:1.530	Tue Nov 18 19:14:28 2008
+++ loncom/homework/grades.pm	Thu Nov 20 15:19:15 2008
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # The LON-CAPA Grading handler
 #
-# $Id: grades.pm,v 1.530 2008/11/18 19:14:28 jms Exp $
+# $Id: grades.pm,v 1.531 2008/11/20 15:19:15 jms Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -26,163 +26,7 @@
 # http://www.lon-capa.org/
 #
 
-=head1 NAME
-
-Apache::grades
-
-=head1 SYNOPSIS
-
-Handles the viewing of grades.
-
-This is part of the LearningOnline Network with CAPA project
-described at http://www.lon-capa.org.
-
-=head1 OVERVIEW
-
-Do an ssi with retries:
-While I'd love to factor out this with the vesrion in lonprintout,
-that would either require a data coupling between modules, which I refuse to perpetuate (there's quite enough of that already), or would require the invention of another infrastructure
-I'm not quite ready to invent (e.g. an ssi_with_retry object).
-
-At least the logic that drives this has been pulled out into loncommon.
-
-
-
-ssi_with_retries - Does the server side include of a resource.
-                     if the ssi call returns an error we'll retry it up to
-                     the number of times requested by the caller.
-                     If we still have a proble, no text is appended to the
-                     output and we set some global variables.
-                     to indicate to the caller an SSI error occurred.  
-                     All of this is supposed to deal with the issues described
-                     in LonCAPA BZ 5631 see:
-                     http://bugs.lon-capa.org/show_bug.cgi?id=5631
-                     by informing the user that this happened.
-
-Parameters:
-  resource   - The resource to include.  This is passed directly, without
-               interpretation to lonnet::ssi.
-  form       - The form hash parameters that guide the interpretation of the resource
-               
-  retries    - Number of retries allowed before giving up completely.
-Returns:
-  On success, returns the rendered resource identified by the resource parameter.
-Side Effects:
-  The following global variables can be set:
-   ssi_error                - If an unrecoverable error occurred this becomes true.
-                              It is up to the caller to initialize this to false
-                              if desired.
-   ssi_error_resource  - If an unrecoverable error occurred, this is the value
-                              of the resource that could not be rendered by the ssi
-                              call.
-   ssi_error_message   - The error string fetched from the ssi response
-                              in the event of an error.
-
-
-=head1 HANDLER SUBROUTINE
-
-ssi_with_retries()
-
-=head1 SUBROUTINES
-
-=over
-
-=item scantron_get_correction() : 
-
-   Builds the interface screen to interact with the operator to fix a
-   specific error condition in a specific scanline
-
- Arguments:
-    $r           - Apache request object
-    $i           - number of the current scanline
-    $scan_record - hash ref as returned from &scantron_parse_scanline()
-    $scan_config - hash ref as returned from &get_scantron_config()
-    $line        - full contents of the current scanline
-    $error       - error condition, valid values are
-                   'incorrectCODE', 'duplicateCODE',
-                   'doublebubble', 'missingbubble',
-                   'duplicateID', 'incorrectID'
-    $arg         - extra information needed
-       For errors:
-         - duplicateID   - paper number that this studentID was seen before on
-         - duplicateCODE - array ref of the paper numbers this CODE was
-                           seen on before
-         - incorrectCODE - current incorrect CODE 
-         - doublebubble  - array ref of the bubble lines that have double
-                           bubble errors
-         - missingbubble - array ref of the bubble lines that have missing
-                           bubble errors
-
-=item  scantron_get_maxbubble() : 
-
-   Returns the maximum number of bubble lines that are expected to
-   occur. Does this by walking the selected sequence rendering the
-   resource and then checking &Apache::lonxml::get_problem_counter()
-   for what the current value of the problem counter is.
-
-   Caches the results to $env{'form.scantron_maxbubble'},
-   $env{'form.scantron.bubble_lines.n'}, 
-   $env{'form.scantron.first_bubble_line.n'} and
-   $env{"form.scantron.sub_bubblelines.n"}
-   which are the total number of bubble, lines, the number of bubble
-   lines for response n and number of the first bubble line for response n,
-   and a comma separated list of numbers of bubble lines for sub-questions
-   (for optionresponse, matchresponse, and rankresponse items), for response n.  
-
-
-=item  scantron_validate_missingbubbles() : 
-
-   Validates all scanlines in the selected file to not have any
-    answers that don't have bubbles that have not been verified
-    to be bubble free.
 
-=item  scantron_process_students() : 
-
-   Routine that does the actual grading of the bubble sheet information.
-
-   The parsed scanline hash is added to %env 
-
-   Then foreach unskipped scanline it does an &Apache::lonnet::ssi()
-   foreach resource , with the form data of
-
-	'submitted'     =>'scantron' 
-	'grade_target'  =>'grade',
-	'grade_username'=> username of student
-	'grade_domain'  => domain of student
-	'grade_courseid'=> of course
-	'grade_symb'    => symb of resource to grade
-
-    This triggers a grading pass. The problem grading code takes care
-    of converting the bubbled letter information (now in %env) into a
-    valid submission.
-
-=item  scantron_upload_scantron_data() :
-
-    Creates the screen for adding a new bubble sheet data file to a course.
-
-=item  scantron_upload_scantron_data_save() : 
-
-   Adds a provided bubble information data file to the course if user
-   has the correct privileges to do so. 
-
-=item  valid_file() :
-
-   Validates that the requested bubble data file exists in the course.
-
-=item  scantron_download_scantron_data() : 
-
-   Shows a list of the three internal files (original, corrected,
-   skipped) for a specific bubble sheet data file that exists in the
-   course.
-
-=item  scantron_validate_ID() : 
-
-   Validates all scanlines in the selected file to not have any
-   invalid or underspecified student IDs
-
-=back
-
-=cut
 
 package Apache::grades;
 use strict;
@@ -9084,3 +8928,162 @@
 1;
 
 __END__;
+
+
+=head1 NAME
+
+Apache::grades
+
+=head1 SYNOPSIS
+
+Handles the viewing of grades.
+
+This is part of the LearningOnline Network with CAPA project
+described at http://www.lon-capa.org.
+
+=head1 OVERVIEW
+
+Do an ssi with retries:
+While I'd love to factor out this with the vesrion in lonprintout,
+that would either require a data coupling between modules, which I refuse to perpetuate (there's quite enough of that already), or would require the invention of another infrastructure
+I'm not quite ready to invent (e.g. an ssi_with_retry object).
+
+At least the logic that drives this has been pulled out into loncommon.
+
+
+
+ssi_with_retries - Does the server side include of a resource.
+                     if the ssi call returns an error we'll retry it up to
+                     the number of times requested by the caller.
+                     If we still have a proble, no text is appended to the
+                     output and we set some global variables.
+                     to indicate to the caller an SSI error occurred.  
+                     All of this is supposed to deal with the issues described
+                     in LonCAPA BZ 5631 see:
+                     http://bugs.lon-capa.org/show_bug.cgi?id=5631
+                     by informing the user that this happened.
+
+Parameters:
+  resource   - The resource to include.  This is passed directly, without
+               interpretation to lonnet::ssi.
+  form       - The form hash parameters that guide the interpretation of the resource
+               
+  retries    - Number of retries allowed before giving up completely.
+Returns:
+  On success, returns the rendered resource identified by the resource parameter.
+Side Effects:
+  The following global variables can be set:
+   ssi_error                - If an unrecoverable error occurred this becomes true.
+                              It is up to the caller to initialize this to false
+                              if desired.
+   ssi_error_resource  - If an unrecoverable error occurred, this is the value
+                              of the resource that could not be rendered by the ssi
+                              call.
+   ssi_error_message   - The error string fetched from the ssi response
+                              in the event of an error.
+
+
+=head1 HANDLER SUBROUTINE
+
+ssi_with_retries()
+
+=head1 SUBROUTINES
+
+=over
+
+=item scantron_get_correction() : 
+
+   Builds the interface screen to interact with the operator to fix a
+   specific error condition in a specific scanline
+
+ Arguments:
+    $r           - Apache request object
+    $i           - number of the current scanline
+    $scan_record - hash ref as returned from &scantron_parse_scanline()
+    $scan_config - hash ref as returned from &get_scantron_config()
+    $line        - full contents of the current scanline
+    $error       - error condition, valid values are
+                   'incorrectCODE', 'duplicateCODE',
+                   'doublebubble', 'missingbubble',
+                   'duplicateID', 'incorrectID'
+    $arg         - extra information needed
+       For errors:
+         - duplicateID   - paper number that this studentID was seen before on
+         - duplicateCODE - array ref of the paper numbers this CODE was
+                           seen on before
+         - incorrectCODE - current incorrect CODE 
+         - doublebubble  - array ref of the bubble lines that have double
+                           bubble errors
+         - missingbubble - array ref of the bubble lines that have missing
+                           bubble errors
+
+=item  scantron_get_maxbubble() : 
+
+   Returns the maximum number of bubble lines that are expected to
+   occur. Does this by walking the selected sequence rendering the
+   resource and then checking &Apache::lonxml::get_problem_counter()
+   for what the current value of the problem counter is.
+
+   Caches the results to $env{'form.scantron_maxbubble'},
+   $env{'form.scantron.bubble_lines.n'}, 
+   $env{'form.scantron.first_bubble_line.n'} and
+   $env{"form.scantron.sub_bubblelines.n"}
+   which are the total number of bubble, lines, the number of bubble
+   lines for response n and number of the first bubble line for response n,
+   and a comma separated list of numbers of bubble lines for sub-questions
+   (for optionresponse, matchresponse, and rankresponse items), for response n.  
+
+
+=item  scantron_validate_missingbubbles() : 
+
+   Validates all scanlines in the selected file to not have any
+    answers that don't have bubbles that have not been verified
+    to be bubble free.
+
+=item  scantron_process_students() : 
+
+   Routine that does the actual grading of the bubble sheet information.
+
+   The parsed scanline hash is added to %env 
+
+   Then foreach unskipped scanline it does an &Apache::lonnet::ssi()
+   foreach resource , with the form data of
+
+	'submitted'     =>'scantron' 
+	'grade_target'  =>'grade',
+	'grade_username'=> username of student
+	'grade_domain'  => domain of student
+	'grade_courseid'=> of course
+	'grade_symb'    => symb of resource to grade
+
+    This triggers a grading pass. The problem grading code takes care
+    of converting the bubbled letter information (now in %env) into a
+    valid submission.
+
+=item  scantron_upload_scantron_data() :
+
+    Creates the screen for adding a new bubble sheet data file to a course.
+
+=item  scantron_upload_scantron_data_save() : 
+
+   Adds a provided bubble information data file to the course if user
+   has the correct privileges to do so. 
+
+=item  valid_file() :
+
+   Validates that the requested bubble data file exists in the course.
+
+=item  scantron_download_scantron_data() : 
+
+   Shows a list of the three internal files (original, corrected,
+   skipped) for a specific bubble sheet data file that exists in the
+   course.
+
+=item  scantron_validate_ID() : 
+
+   Validates all scanlines in the selected file to not have any
+   invalid or underspecified student IDs
+
+=back
+
+=cut
Index: loncom/homework/hint.pm
diff -u loncom/homework/hint.pm:1.73 loncom/homework/hint.pm:1.74
--- loncom/homework/hint.pm:1.73	Wed Nov 19 18:34:56 2008
+++ loncom/homework/hint.pm	Thu Nov 20 15:19:15 2008
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA 
 # implements the tags that control the hints
 #
-# $Id: hint.pm,v 1.73 2008/11/19 18:34:56 jms Exp $
+# $Id: hint.pm,v 1.74 2008/11/20 15:19:15 jms Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -26,60 +26,7 @@
 # http://www.lon-capa.org/
 #
 
-=head1 NAME
-
-Apache::hinttags
-
-=head1 SYNOPSIS
-
-This handler coordinates the delivery of hints to students working on LON-CAPA problems and assignments.
-
-This is part of the LearningOnline Network with CAPA project
-described at http://www.lon-capa.org.
-
-=head1 SUBROUTINES
-
-=over
-
-=item start_hintgroup()
-
-=item end_hintgroup()
-
-=item start_numericalhint()
-
-=item end_numericalhint()
-
-=item start_formulahint()
-
-=item end_formulahint()
-
-=item start_mathhint()
-
-=item end_mathhint()
-
-=item start_customhint()
-
-=item end_customhint()
 
-=item start_stringhint()
-
-=item end_stringhint()
-
-=item start_hintpart()
-
-=item end_hintpart()
-
-=item start_optionhint()
-
-=item end_optionhint()
-
-=item start_radiobuttonhint()
-
-=item end_radiobuttonhint()
-
-=back
-
-=cut
 
 package Apache::hinttags; 
 
@@ -704,3 +651,59 @@
 }
 1;
 __END__
+
+
+=head1 NAME
+
+Apache::hinttags
+
+=head1 SYNOPSIS
+
+This handler coordinates the delivery of hints to students working on LON-CAPA problems and assignments.
+
+This is part of the LearningOnline Network with CAPA project
+described at http://www.lon-capa.org.
+
+=head1 SUBROUTINES
+
+=over
+
+=item start_hintgroup()
+
+=item end_hintgroup()
+
+=item start_numericalhint()
+
+=item end_numericalhint()
+
+=item start_formulahint()
+
+=item end_formulahint()
+
+=item start_mathhint()
+
+=item end_mathhint()
+
+=item start_customhint()
+
+=item end_customhint()
+
+=item start_stringhint()
+
+=item end_stringhint()
+
+=item start_hintpart()
+
+=item end_hintpart()
+
+=item start_optionhint()
+
+=item end_optionhint()
+
+=item start_radiobuttonhint()
+
+=item end_radiobuttonhint()
+
+=back
+
+=cut
\ No newline at end of file
Index: loncom/homework/optionresponse.pm
diff -u loncom/homework/optionresponse.pm:1.155 loncom/homework/optionresponse.pm:1.156
--- loncom/homework/optionresponse.pm:1.155	Tue Nov 18 19:14:28 2008
+++ loncom/homework/optionresponse.pm	Thu Nov 20 15:19:15 2008
@@ -1,7 +1,7 @@
 # LearningOnline Network with CAPA
 # option list style responses
 #
-# $Id: optionresponse.pm,v 1.155 2008/11/18 19:14:28 jms Exp $
+# $Id: optionresponse.pm,v 1.156 2008/11/20 15:19:15 jms Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -27,67 +27,7 @@
 #
 
 
-=head1 NAME
-
-Apache::optionresponse.pm;
-
-=head1 SYNOPSIS
-
-Handles tags associated with showing a list of
-options.
-
-This is part of the LearningOnline Network with CAPA project
-described at http://www.lon-capa.org.
-
-=head1 HANDLER SUBROUTINE
-
-start_optionresponse()
 
-=head1 OTHER SUBROUTINES
-
-=over
-
-=item end_optionresponse()
-
-=item start_foilgroup()
-
-=item end_foilgroup()
-
-=item getfoilcounts()
-
-=item displayanswers()
-
-=item check_for_invalid()
-
-=item displayfoils()
-
-=item optionlist_correction()
-
-=item webbubbles()
-
-=item bubbles()
-
-=item start_conceptgroup()
-
-=item end_conceptgroup()
-
-=item insert_conceptgroup()
-
-=item start_foil()
-
-=item end_foil()
-
-=item start_drawoptionlist()
-
-=item end_drawoptionlist()
-
-=item insert_foil()
-
-=item insert_drawoptionlist()
-
-=item =back
-
-=cut
 
 
 package Apache::optionresponse;
@@ -841,3 +781,64 @@
 1;
 __END__
  
+=head1 NAME
+
+Apache::optionresponse.pm;
+
+=head1 SYNOPSIS
+
+Handles tags associated with showing a list of
+options.
+
+This is part of the LearningOnline Network with CAPA project
+described at http://www.lon-capa.org.
+
+=head1 HANDLER SUBROUTINE
+
+start_optionresponse()
+
+=head1 OTHER SUBROUTINES
+
+=over
+
+=item end_optionresponse()
+
+=item start_foilgroup()
+
+=item end_foilgroup()
+
+=item getfoilcounts()
+
+=item displayanswers()
+
+=item check_for_invalid()
+
+=item displayfoils()
+
+=item optionlist_correction()
+
+=item webbubbles()
+
+=item bubbles()
+
+=item start_conceptgroup()
+
+=item end_conceptgroup()
+
+=item insert_conceptgroup()
+
+=item start_foil()
+
+=item end_foil()
+
+=item start_drawoptionlist()
+
+=item end_drawoptionlist()
+
+=item insert_foil()
+
+=item insert_drawoptionlist()
+
+=back
+
+=cut
\ No newline at end of file
Index: loncom/homework/loncapagrade.pm
diff -u loncom/homework/loncapagrade.pm:1.5 loncom/homework/loncapagrade.pm:1.6
--- loncom/homework/loncapagrade.pm:1.5	Mon Nov 10 13:43:43 2008
+++ loncom/homework/loncapagrade.pm	Thu Nov 20 15:19:15 2008
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # external style responses
 #
-# $Id: loncapagrade.pm,v 1.5 2008/11/10 13:43:43 jms Exp $
+# $Id: loncapagrade.pm,v 1.6 2008/11/20 15:19:15 jms Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -28,25 +28,6 @@
 # 1/26 Guy
 
 
-=pod
-
-=head1 NAME
-
-Apache::loncapagrade
-
-=head1 SYNOPSIS
-
-Handler to evaluate externally graded responses.
-
-This is part of the LearningOnline Network with CAPA project
-described at http://www.lon-capa.org.
-
-=head2 notes
-
-results of parse end up in here:
-undef(%Apache::loncapagrade::results);
-
-=cut
 
 package Apache::loncapagrade;
 use strict;
@@ -118,3 +99,42 @@
 1;
 __END__
 
+=pod
+
+=head1 NAME
+
+Apache::loncapagrade
+
+=head1 SYNOPSIS
+
+Handler to evaluate externally graded responses.
+
+This is part of the LearningOnline Network with CAPA project
+described at http://www.lon-capa.org.
+
+=head1 SUBROUTINES
+
+=over
+
+=item start_loncapagrade()
+
+=item end_loncapagrade()
+
+=item start_awarddetail()
+
+=item end_awarddetail()
+
+=item start_message()
+
+=item end_message()
+
+=back
+
+=head2 notes
+
+results of parse end up in here:
+undef(%Apache::loncapagrade::results);
+
+=cut
+
+
Index: loncom/homework/outputtags.pm
diff -u loncom/homework/outputtags.pm:1.53 loncom/homework/outputtags.pm:1.54
--- loncom/homework/outputtags.pm:1.53	Tue Nov 18 19:14:28 2008
+++ loncom/homework/outputtags.pm	Thu Nov 20 15:19:15 2008
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA 
 # tags that create controlled output
 #
-# $Id: outputtags.pm,v 1.53 2008/11/18 19:14:28 jms Exp $
+# $Id: outputtags.pm,v 1.54 2008/11/20 15:19:15 jms Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -26,48 +26,7 @@
 # http://www.lon-capa.org/
 #
 
-=head1 NAME
-
-Apache::outputtags;
-
-=head1 SYNOPSIS
-
-Handles tags associated with output. Seems to
-relate to due dates of the assignment.
-
-This is part of the LearningOnline Network with CAPA project
-described at http://www.lon-capa.org.
-
-=head1 SUBROUTINES
-
-=over
-
-=item start_displayduedate()
-
-=item initialize_outputtags()
-
-Empties the hash of tags that have already been displayed that should only be displayed once.
 
-=item end_displayduedate()
-
-=item start_displaytitle()
-
-=item end_displaytitle()
-
-=item multipart()
-
-=item start_displayweight()
-
-=item end_displayweight()
-
-=item start_displaystudentphoto()
-
-=item end_displaystudentphoto()
-
-
-=back
-
-=cut
 
 package Apache::outputtags; 
 
@@ -318,3 +277,47 @@
 
 1;
 __END__
+
+
+=head1 NAME
+
+Apache::outputtags;
+
+=head1 SYNOPSIS
+
+Handles tags associated with output. Seems to
+relate to due dates of the assignment.
+
+This is part of the LearningOnline Network with CAPA project
+described at http://www.lon-capa.org.
+
+=head1 SUBROUTINES
+
+=over
+
+=item start_displayduedate()
+
+=item initialize_outputtags()
+
+Empties the hash of tags that have already been displayed that should only be displayed once.
+
+=item end_displayduedate()
+
+=item start_displaytitle()
+
+=item end_displaytitle()
+
+=item multipart()
+
+=item start_displayweight()
+
+=item end_displayweight()
+
+=item start_displaystudentphoto()
+
+=item end_displaystudentphoto()
+
+
+=back
+
+=cut
\ No newline at end of file
Index: loncom/auth/lonlogout.pm
diff -u loncom/auth/lonlogout.pm:1.34 loncom/auth/lonlogout.pm:1.35
--- loncom/auth/lonlogout.pm:1.34	Mon Nov 17 18:09:14 2008
+++ loncom/auth/lonlogout.pm	Thu Nov 20 15:19:22 2008
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Logout Handler
 #
-# $Id: lonlogout.pm,v 1.34 2008/11/17 18:09:14 bisitz Exp $
+# $Id: lonlogout.pm,v 1.35 2008/11/20 15:19:22 jms Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -154,6 +154,20 @@
 __END__
 
 
+=head1 NAME
+
+Apache::lonlogout
+
+=head1 SYNOPSIS
+
+
+This is part of the LearningOnline Network with CAPA project
+described at http://www.lon-capa.org.
+
+=head1 HANDLER SUBROUTINE
+
+
+=cut
 
 
 
Index: loncom/auth/lonuploadedacc.pm
diff -u loncom/auth/lonuploadedacc.pm:1.14 loncom/auth/lonuploadedacc.pm:1.15
--- loncom/auth/lonuploadedacc.pm:1.14	Wed Nov 12 20:01:09 2008
+++ loncom/auth/lonuploadedacc.pm	Thu Nov 20 15:19:22 2008
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Access Handler for User Files
 #
-# $Id: lonuploadedacc.pm,v 1.14 2008/11/12 20:01:09 jms Exp $
+# $Id: lonuploadedacc.pm,v 1.15 2008/11/20 15:19:22 jms Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -26,31 +26,7 @@
 # http://www.lon-capa.org/
 #
 
-=head1 NAME
-
-Apache::lonuploadedacc
-
-=head1 SYNOPSIS
-
-The way this is supposed to work:
-
- User A has client machine C 
- User A is logged into LON-CAPA server S
- needs file from user B
- homeserver for user B is H
 
-This is part of the LearningOnline Network with CAPA project
-described at http://www.lon-capa.org.
-
-=head1 HANDLER SUBROUTINE
-
-This handler runs on H
-To access a userfile:
-Server S generates a token and puts it into the query string of URL for H
-Client box C asks H for file with token issued by C
-H now must ask S if token is valid, uses S's lond-command tokenauthuserfile
-
-=cut
 
 package Apache::lonuploadedacc;
 
@@ -89,7 +65,31 @@
 
 
 
+=head1 NAME
+
+Apache::lonuploadedacc
+
+=head1 SYNOPSIS
+
+The way this is supposed to work:
+
+ User A has client machine C 
+ User A is logged into LON-CAPA server S
+ needs file from user B
+ homeserver for user B is H
 
+This is part of the LearningOnline Network with CAPA project
+described at http://www.lon-capa.org.
+
+=head1 HANDLER SUBROUTINE
+
+This handler runs on H
+To access a userfile:
+Server S generates a token and puts it into the query string of URL for H
+Client box C asks H for file with token issued by C
+H now must ask S if token is valid, uses S's lond-command tokenauthuserfile
+
+=cut
 
 
 
Index: loncom/publisher/lonpubdir.pm
diff -u loncom/publisher/lonpubdir.pm:1.113 loncom/publisher/lonpubdir.pm:1.114
--- loncom/publisher/lonpubdir.pm:1.113	Mon Nov 17 13:41:10 2008
+++ loncom/publisher/lonpubdir.pm	Thu Nov 20 15:19:28 2008
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Construction Space Directory Lister
 #
-# $Id: lonpubdir.pm,v 1.113 2008/11/17 13:41:10 schafran Exp $
+# $Id: lonpubdir.pm,v 1.114 2008/11/20 15:19:28 jms Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -27,118 +27,6 @@
 #
 ###
 
-=head1 NAME
-
-Apache::lonpubdir - Construction space directory lister
-
-=head1 SYNOPSIS
-
-Invoked (for various locations) by /etc/httpd/conf/srm.conf:
-
- <LocationMatch "^/\~.*/$">
- PerlAccessHandler       Apache::loncacc
- SetHandler perl-script
- PerlHandler Apache::lonpubdir
- ErrorDocument     403 /adm/login
- ErrorDocument     404 /adm/notfound.html
- ErrorDocument     406 /adm/unauthorized.html
- ErrorDocument	  500 /adm/errorhandler
- </LocationMatch>
-
- <Location /adm/pubdir>
- PerlAccessHandler       Apache::lonacc
- SetHandler perl-script
- PerlHandler Apache::lonpubdir
- ErrorDocument     403 /adm/login
- ErrorDocument     404 /adm/notfound.html
- ErrorDocument     406 /adm/unauthorized.html
- ErrorDocument	  500 /adm/errorhandler
- </Location>
-
-=head1 INTRODUCTION
-
-This module publishes a directory of files.
-
-This is part of the LearningOnline Network with CAPA project
-described at http://www.lon-capa.org.
-
-=head1 HANDLER SUBROUTINE
-
-This routine is called by Apache and mod_perl.
-
-=over 4
-
-=item *
-
-read in information
-
-=item *
-
-start page output
-
-=item *
-
-run through list of files and attempt to publish unhidden files
-
-=back
-
-=head2 OTHER SUBROUTINES:
-
-=head3 startpage($r, $uame, $udom, $thisdisfn)
-
-Output the header of the page.  This includes:
- - The HTML header 
- - The H1/H3  stuff which includes the directory.
- 
-    startpage($r, $uame, $udom, $thisdisfn);
-        $r     - The apache request object.
-        $uname - User name.
-        $udom  - Domain name the user is logged in under.
-        $thisdisfn - Displayable version of the filename.
-
-=head3 getTitleString($fullname)
-
-    Get the title string or "[untitled]" if the file has no title metadata:
-    Without the latter substitution, it's impossible to examine metadata for
-    untitled resources.  Resources may be legitimately untitled, to prevent
-    searches from locating them.
-    
-    $str = getTitleString($fullname);
-        $fullname - Fully qualified filename to check.
-
-=head3 putdirectory(r, base, here, dirname, modtime)
-
-    Put out a directory table row:
-    
-    putdirectory($r, $base, $here, $dirname, $modtime)
-        $r       - Apache request object.
-        $reqfile - File in request.
-        $here    - Where we are in directory tree.
-        $dirname - Name of directory special file.
-        $modtime - Encoded modification time.
-
-=head3 CategorizeFiles($location, $files)
-    
-    Categorize files in the directory.
-    For each file in a list of files in a file directory, 
-    the  file categorized as one of:
-        - directory  
-        - sequence
-        - problem 
-        - Other resource.
-
-    For each file the modification date is determined as well.
-    Returned is a list of sublists:
-        (directories, sequences, problems, other)
-    each of the sublists contains entries of the following form (sorted by filename):
-    (filename, typecode, lastmodtime)
-    
-        $list = CategorizeFiles($location, $files)
-        $location   - Directory in which the files live (relative to our execution)
-        $files      - list of files.
-
-=cut
-
 package Apache::lonpubdir;
 
 use strict;
@@ -898,3 +786,119 @@
 __END__
 
 
+=head1 NAME
+
+Apache::lonpubdir - Construction space directory lister
+
+=head1 SYNOPSIS
+
+Invoked (for various locations) by /etc/httpd/conf/srm.conf:
+
+ <LocationMatch "^/\~.*/$">
+ PerlAccessHandler       Apache::loncacc
+ SetHandler perl-script
+ PerlHandler Apache::lonpubdir
+ ErrorDocument     403 /adm/login
+ ErrorDocument     404 /adm/notfound.html
+ ErrorDocument     406 /adm/unauthorized.html
+ ErrorDocument	  500 /adm/errorhandler
+ </LocationMatch>
+
+ <Location /adm/pubdir>
+ PerlAccessHandler       Apache::lonacc
+ SetHandler perl-script
+ PerlHandler Apache::lonpubdir
+ ErrorDocument     403 /adm/login
+ ErrorDocument     404 /adm/notfound.html
+ ErrorDocument     406 /adm/unauthorized.html
+ ErrorDocument	  500 /adm/errorhandler
+ </Location>
+
+=head1 INTRODUCTION
+
+This module publishes a directory of files.
+
+This is part of the LearningOnline Network with CAPA project
+described at http://www.lon-capa.org.
+
+=head1 HANDLER SUBROUTINE
+
+This routine is called by Apache and mod_perl.
+
+=over 4
+
+=item *
+
+read in information
+
+=item *
+
+start page output
+
+=item *
+
+run through list of files and attempt to publish unhidden files
+
+=back
+
+=head1 SUBROUTINES:
+
+=over
+
+=item startpage($r, $uame, $udom, $thisdisfn)
+
+Output the header of the page.  This includes:
+ - The HTML header 
+ - The H1/H3  stuff which includes the directory.
+ 
+    startpage($r, $uame, $udom, $thisdisfn);
+        $r     - The apache request object.
+        $uname - User name.
+        $udom  - Domain name the user is logged in under.
+        $thisdisfn - Displayable version of the filename.
+
+=item getTitleString($fullname)
+
+    Get the title string or "[untitled]" if the file has no title metadata:
+    Without the latter substitution, it's impossible to examine metadata for
+    untitled resources.  Resources may be legitimately untitled, to prevent
+    searches from locating them.
+    
+    $str = getTitleString($fullname);
+        $fullname - Fully qualified filename to check.
+
+=item putdirectory(r, base, here, dirname, modtime)
+
+    Put out a directory table row:
+    
+    putdirectory($r, $base, $here, $dirname, $modtime)
+        $r       - Apache request object.
+        $reqfile - File in request.
+        $here    - Where we are in directory tree.
+        $dirname - Name of directory special file.
+        $modtime - Encoded modification time.
+
+=item CategorizeFiles($location, $files)
+    
+    Categorize files in the directory.
+    For each file in a list of files in a file directory, 
+    the  file categorized as one of:
+        - directory  
+        - sequence
+        - problem 
+        - Other resource.
+
+    For each file the modification date is determined as well.
+    Returned is a list of sublists:
+        (directories, sequences, problems, other)
+    each of the sublists contains entries of the following form (sorted by filename):
+    (filename, typecode, lastmodtime)
+    
+        $list = CategorizeFiles($location, $files)
+        $location   - Directory in which the files live (relative to our execution)
+        $files      - list of files.
+
+=back
+
+=cut
+
Index: loncom/LONCAPA.pm
diff -u loncom/LONCAPA.pm:1.26 loncom/LONCAPA.pm:1.27
--- loncom/LONCAPA.pm:1.26	Mon Nov 17 13:24:02 2008
+++ loncom/LONCAPA.pm	Thu Nov 20 15:19:33 2008
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Base routines
 #
-# $Id: LONCAPA.pm,v 1.26 2008/11/17 13:24:02 jms Exp $
+# $Id: LONCAPA.pm,v 1.27 2008/11/20 15:19:33 jms Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -27,41 +27,7 @@
 #
 ###
 
-=head1 NAME
-
-Apache::LONCAPA
-
-LONCAPA - Basic routines
-
-=head1 SYNOPSIS
-
-Generally useful routines
-
-=head1 EXPORTED SUBROUTINES
 
-=over 4
-
-=item *
-
-escape() : unpack non-word characters into CGI-compatible hex codes
-
-=item *
-
-unescape() : pack CGI-compatible hex codes into actual non-word ASCII character
-
-=item *
-
-add_get_param() :
- Inputs:  url (with or without exit GET from parameters), hash ref of
-              form name => value pairs
-
- Return: url with properly added the form name elements and values to the 
-         the url doing proper escaping of the values and joining with ? or &
-         as needed
-
-=back
-
-=cut
 
 package LONCAPA;
 
@@ -212,37 +178,6 @@
 } 
 
 
-#---------------------------------------------------------------
-
-=pod
-
-=out
-
-=item tie_domain_hash()
-
-Manipulation of hash based databases (factoring out common code
-for later use as we refactor.
-
- Ties a domain level resource file to a hash.
- If requested a history entry is created in the associated hist file.
-
- Parameters:
-    domain    - Name of the domain in which the resource file lives.
-    namespace - Name of the hash within that domain.
-    how       - How to tie the hash (e.g. GDBM_WRCREAT()).
-    loghead   - Optional parameter, if present a log entry is created
-                in the associated history file and this is the first part
-                 of that entry.
-    logtail   - Goes along with loghead,  The actual logentry is of the
-                form $loghead:<timestamp>:logtail.
-Returns:
-   Reference to a hash bound to the db file or alternatively undef
-   if the tie failed.
-
-=back
-
-=cut
-
 sub tie_domain_hash {
     my ($domain,$namespace,$how,$loghead,$logtail) = @_;
     
@@ -262,33 +197,6 @@
     return &_locking_hash_untie(@_);
 }
 
-=pod
-
-=out
-
-=item tie_user_hash()
-
-  Ties a user's resource file to a hash.  
-  If necessary, an appropriate history
-  log file entry is made as well.
-  This sub factors out common code from the subs that manipulate
-  the various gdbm files that keep keyword value pairs.
-Parameters:
-  domain       - Name of the domain the user is in.
-  user         - Name of the 'current user'.
-  namespace    - Namespace representing the file to tie.
-  how          - What the tie is done to (e.g. GDBM_WRCREAT().
-  loghead      - Optional first part of log entry if there may be a
-                 history file.
-  what         - Optional tail of log entry if there may be a history
-                 file.
-Returns:
-  hash to which the database is tied.  It's up to the caller to untie.
-  undef if the has could not be tied.
-
-back
-
-=cut
 
 sub tie_user_hash {
     my ($domain,$user,$namespace,$how,$loghead,$what) = @_;
@@ -304,18 +212,6 @@
     return &_locking_hash_untie(@_);
 }
 
-=pod
-
-=out
-
-=item locking_hash_tie()
-
-routines if you just have a filename
-return tied hashref or undef
-
-=back
-
-=cut
 
 sub locking_hash_tie {
     my ($filename,$how)=@_;
@@ -490,3 +386,99 @@
 __END__
 
 
+=head1 NAME
+
+Apache::LONCAPA
+
+LONCAPA - Basic routines
+
+=head1 SYNOPSIS
+
+Generally useful routines
+
+=head1 EXPORTED SUBROUTINES
+
+=over
+
+=item escape()
+
+unpack non-word characters into CGI-compatible hex codes
+
+=item unescape()
+
+ pack CGI-compatible hex codes into actual non-word ASCII character
+
+=item  add_get_param()
+ 
+ Inputs:  url (with or without exit GET from parameters), hash ref of
+              form name => value pairs
+
+ Return: url with properly added the form name elements and values to the 
+         the url doing proper escaping of the values and joining with ? or &
+         as needed
+
+=item clean_handle()
+
+=item propath()
+
+=item untie_domain_hash()
+
+=item tie_domain_hash()
+
+Manipulation of hash based databases (factoring out common code
+for later use as we refactor.
+
+ Ties a domain level resource file to a hash.
+ If requested a history entry is created in the associated hist file.
+
+ Parameters:
+    domain    - Name of the domain in which the resource file lives.
+    namespace - Name of the hash within that domain.
+    how       - How to tie the hash (e.g. GDBM_WRCREAT()).
+    loghead   - Optional parameter, if present a log entry is created
+                in the associated history file and this is the first part
+                 of that entry.
+    logtail   - Goes along with loghead,  The actual logentry is of the
+                form $loghead:<timestamp>:logtail.
+Returns:
+   Reference to a hash bound to the db file or alternatively undef
+   if the tie failed.
+
+=item tie_user_hash()
+
+  Ties a user's resource file to a hash.  
+  If necessary, an appropriate history
+  log file entry is made as well.
+  This sub factors out common code from the subs that manipulate
+  the various gdbm files that keep keyword value pairs.
+Parameters:
+  domain       - Name of the domain the user is in.
+  user         - Name of the 'current user'.
+  namespace    - Namespace representing the file to tie.
+  how          - What the tie is done to (e.g. GDBM_WRCREAT().
+  loghead      - Optional first part of log entry if there may be a
+                 history file.
+  what         - Optional tail of log entry if there may be a history
+                 file.
+Returns:
+  hash to which the database is tied.  It's up to the caller to untie.
+  undef if the has could not be tied.
+
+=item locking_hash_tie()
+
+routines if you just have a filename return tied hashref or undef
+
+=item locking_hash_untie()
+
+=item db_filename_parts()
+
+=head1 INTERNAL SUBROUTINES
+
+=item _do_hash_tie()
+
+=item _do_hash_untie()
+
+=back
+
+=cut
+
Index: loncom/interface/lonmeta.pm
diff -u loncom/interface/lonmeta.pm:1.215 loncom/interface/lonmeta.pm:1.216
--- loncom/interface/lonmeta.pm:1.215	Tue Nov 18 19:14:22 2008
+++ loncom/interface/lonmeta.pm	Thu Nov 20 15:19:39 2008
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Metadata display handler
 #
-# $Id: lonmeta.pm,v 1.215 2008/11/18 19:14:22 jms Exp $
+# $Id: lonmeta.pm,v 1.216 2008/11/20 15:19:39 jms Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -26,99 +26,6 @@
 # http://www.lon-capa.org/
 
 
-=head1 NAME
-
-Apache::lonmeta - display meta data
-
-=head1 SYNOPSIS
-
-Handler to display meta data
-
-This is part of the LearningOnline Network with CAPA project
-described at http://www.lon-capa.org.
-
-=head1 SUBROUTINES
-
-=over
-
-=item &get_dynamic_metadata_from_sql($url) :
-
-Queries sql database for dynamic metdata
-Returns a hash of hashes, with keys of urls which match $url
-Returned fields are given below.
-
-Examples:
-
-    %DynamicMetadata = &Apache::lonmeta::get_dynmaic_metadata_from_sql
-    ('/res/msu/korte/');
-
-    $DynamicMetadata{'/res/msu/korte/example.problem'}->{$field}
-
-=item dynamicmeta()
-
-Fetch and evaluate dynamic metadata
-
-=item access_count()
-
-=item alttag()
-
-Try to make an alt tag if there is none
-
-=item authordisplay()
-
-Author display
-
-=item evalgraph()
-
-Pretty display
-
-=item diffgraph()
-
-=item fieldnames()
-
-=item portfolio_linked_path()
-
-=item get_port_path_and_group()
-
-=item portfolio_display_uri()
-
-=item pre_select_course()
-
-=item select_course()
-
-=item prettyprint()
-
-Pretty printing of metadata field
-
-=item direct()
-
-Pretty input of metadata field
-
-=item selectbox()
-
-=item relatedfield()
-
-=item prettyinput()
-
-=item report_bombs()
-
-=item present_uneditable_metadata()
-
-=item present_editable_metadata()
-
-=item store_metadata()
-
-=item store_transferred_addedfields()
-
-=item store_portfolio_metadata()
-
-=item update_metadata_table()
-
-=back
-
-=cut
-
-
 package Apache::lonmeta;
 
 use strict;
@@ -1633,3 +1540,95 @@
 1;
 __END__
 
+
+=head1 NAME
+
+Apache::lonmeta - display meta data
+
+=head1 SYNOPSIS
+
+Handler to display meta data
+
+This is part of the LearningOnline Network with CAPA project
+described at http://www.lon-capa.org.
+
+=head1 SUBROUTINES
+
+=over
+
+=item &get_dynamic_metadata_from_sql($url) :
+
+Queries sql database for dynamic metdata
+Returns a hash of hashes, with keys of urls which match $url
+Returned fields are given below.
+
+Examples:
+
+    %DynamicMetadata = &Apache::lonmeta::get_dynmaic_metadata_from_sql
+    ('/res/msu/korte/');
+
+    $DynamicMetadata{'/res/msu/korte/example.problem'}->{$field}
+
+=item dynamicmeta()
+
+Fetch and evaluate dynamic metadata
+
+=item access_count()
+
+=item alttag()
+
+Try to make an alt tag if there is none
+
+=item authordisplay()
+
+Author display
+
+=item evalgraph()
+
+Pretty display
+
+=item diffgraph()
+
+=item fieldnames()
+
+=item portfolio_linked_path()
+
+=item get_port_path_and_group()
+
+=item portfolio_display_uri()
+
+=item pre_select_course()
+
+=item select_course()
+
+=item prettyprint()
+
+Pretty printing of metadata field
+
+=item direct()
+
+Pretty input of metadata field
+
+=item selectbox()
+
+=item relatedfield()
+
+=item prettyinput()
+
+=item report_bombs()
+
+=item present_uneditable_metadata()
+
+=item present_editable_metadata()
+
+=item store_metadata()
+
+=item store_transferred_addedfields()
+
+=item store_portfolio_metadata()
+
+=item update_metadata_table()
+
+=back
+
+=cut
Index: loncom/interface/lontest.pm
diff -u loncom/interface/lontest.pm:1.20 loncom/interface/lontest.pm:1.21
--- loncom/interface/lontest.pm:1.20	Fri Nov 14 21:26:54 2008
+++ loncom/interface/lontest.pm	Thu Nov 20 15:19:39 2008
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # A debugging harness.
 #
-# $Id: lontest.pm,v 1.20 2008/11/14 21:26:54 jms Exp $
+# $Id: lontest.pm,v 1.21 2008/11/20 15:19:39 jms Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -27,48 +27,6 @@
 #
 #
 
-=head1 NAME
-
-Apache::lontest;
-
-=head1 SYNOPSIS
-
-Used for debugging and testing the LONCAPA
-system.
-
-This is part of the LearningOnline Network with CAPA project
-described at http://www.lon-capa.org.
-
-=head1 HANDLER SUBROUTINE
-
-handler()
-
-=head1 OTHER SUBROUTINES
-
-=over
-
-=item *
-
-section() : 
-
-section takes one env var name as input, and returns
-what section the given env var is in, which is the part
-of the env var before the first period.
-Returns the section, or blank string for 'no section',
-which is normal for the standard env vars like REQUEST_URI.
-
-=item *
-
-print_hash()
-
-=item *
-
-
-
-
-=back
-
-=cut
 
 package Apache::lontest;
 
@@ -193,4 +151,39 @@
 
 
 
+=head1 NAME
+
+Apache::lontest;
+
+=head1 SYNOPSIS
+
+Used for debugging and testing the LONCAPA
+system.
+
+This is part of the LearningOnline Network with CAPA project
+described at http://www.lon-capa.org.
+
+=head1 HANDLER SUBROUTINE
+
+handler()
+
+=head1 OTHER SUBROUTINES
+
+=over
+
+=item  section() : 
+
+section takes one env var name as input, and returns
+what section the given env var is in, which is the part
+of the env var before the first period.
+Returns the section, or blank string for 'no section',
+which is normal for the standard env vars like REQUEST_URI.
+
+=item  print_hash()
+
+=back
+
+=cut
+
+
 

--jms1227194379--