Diff for /loncom/interface/lonstatistics.pm between versions 1.143 and 1.144

version 1.143, 2008/11/10 13:20:14 version 1.144, 2008/11/20 14:37:24
Line 28 Line 28
 #  #
 ###  ###
   
 =pod  
   
 =head1 NAME  
   
 lonstatistics  
   
 =head1 SYNOPSIS  
   
 Main handler for statistics and chart.  
   
 This is part of the LearningOnline Network with CAPA project  
 described at http://www.lon-capa.org.  
   
 =over 4  
   
 =cut  
   
 package Apache::lonstatistics;  package Apache::lonstatistics;
   
Line 81  use Apache::lonsurveyreports(); Line 66  use Apache::lonsurveyreports();
 use Apache::longradinganalysis();  use Apache::longradinganalysis();
 use LONCAPA;  use LONCAPA;
   
 #######################################################  
 #######################################################  
   
 =pod  
   
 =item Package Variables  
   
 =item @FullClasslist The full classlist  
   
 =item @Students The students we are concerned with for this invocation  
   
 =item @Sections The sections available in this class  
   
 =item @Groups The groups available in the class  
   
 =item $curr_student The student currently being examined  
   
 =item $prev_student The student previous in the classlist  
   
 =item $next_student The student next in the classlist  
   
 =over  
   
 =cut   
   
 #######################################################  
 #######################################################  
 #  #
 # Classlist variables  # Classlist variables
 #  #
Line 115  my $curr_student; Line 73  my $curr_student;
 my $prev_student;  my $prev_student;
 my $next_student;  my $next_student;
   
 #######################################################  
 #######################################################  
   
 =pod  
   
 =item &clear_classlist_variables()  
   
 undef the following package variables:  
   
 =over  
   
 =item @FullClasslist  
   
 =item @Students  
   
 =item @Sections  
   
 =item @Groups  
   
 =item %StudentData  
   
 =item @StudentDataOrder  
   
 =item @SelectedStudentData  
   
 =item $curr_student  
   
 =item $prev_student  
   
 =item $next_student  
   
 =back  
   
 =cut  
   
 #######################################################  
 #######################################################  
 sub clear_classlist_variables {  sub clear_classlist_variables {
     undef(@FullClasslist);      undef(@FullClasslist);
     undef(@Students);      undef(@Students);
Line 164  sub clear_classlist_variables { Line 86  sub clear_classlist_variables {
     undef($next_student);      undef($next_student);
 }  }
   
 #######################################################  
 #######################################################  
   
 =pod  
   
 =item &PrepareClasslist()  
   
 Build up the classlist information.  The classlist information is kept in  
 the following package variables:  
   
 =over  
   
 =item @FullClasslist  
   
 =item @Students  
   
 =item @Sections  
   
 =item @Groups   
   
 =item %StudentData  
   
 =item @SelectedStudentData  
   
 =item $curr_student  
   
 =item $prev_student  
   
 =item $next_student  
   
 =back  
   
 $curr_student, $prev_student, and $next_student may not be defined, depending  
 upon the calling context.  
   
 =cut  
   
 #######################################################  
 #######################################################  
 sub PrepareClasslist {  sub PrepareClasslist {
     my %Sections;      my %Sections;
     &clear_classlist_variables();      &clear_classlist_variables();
Line 377  sub PrepareClasslist { Line 261  sub PrepareClasslist {
     return;      return;
 }  }
   
 #######################################################  
 #######################################################  
   
 =pod  
   
 =item get_selected_sections  
   
 Returns an array of the selected sections  
   
 =cut  
   
 #######################################################  
 #######################################################  
 sub get_selected_sections {  sub get_selected_sections {
     my @selected_sections =       my @selected_sections = 
  &Apache::loncommon::get_env_multiple('form.Section');   &Apache::loncommon::get_env_multiple('form.Section');
Line 407  sub get_selected_sections { Line 279  sub get_selected_sections {
     return @selected_sections;      return @selected_sections;
 }  }
   
 #######################################################  
 #######################################################  
                                                                                       
 =pod  
                                                                                       
 =item get_selected_groups  
                                                                                       
 Returns an array of the selected groups  
                                                                                       
 =cut  
                                                                                       
 #######################################################  
 #######################################################  
 sub get_selected_groups {  sub get_selected_groups {
     my @selected_groups =      my @selected_groups =
         &Apache::loncommon::get_env_multiple('form.Group');          &Apache::loncommon::get_env_multiple('form.Group');
Line 433  sub get_selected_groups { Line 293  sub get_selected_groups {
     return @selected_groups;      return @selected_groups;
 }  }
                                                                                                                                                                           
 =pod  
   
 =item &section_and_enrollment_description  
   
 Returns a string describing the currently selected section(s), group(s) and   
 access status.    
   
 Inputs: mode = 'plaintext' or 'localized'  (defaults to 'localized')  
     'plaintext' is used for example in Excel spreadsheets.  
 Returns: scalar description string.  
   
 =cut  
   
 #######################################################  
 #######################################################  
 sub section_and_enrollment_description {  sub section_and_enrollment_description {
     my ($mode) = @_;      my ($mode) = @_;
     if (! defined($mode)) { $mode = 'localized'; }      if (! defined($mode)) { $mode = 'localized'; }
Line 472  sub section_and_enrollment_description { Line 319  sub section_and_enrollment_description {
     return $description;      return $description;
 }  }
   
 #######################################################  
 #######################################################  
   
 sub section_or_group_text {  sub section_or_group_text {
     my ($mode,$type,@items) = @_;      my ($mode,$type,@items) = @_;
Line 516  sub section_or_group_text { Line 363  sub section_or_group_text {
 }  }
   
   
 =pod  
   
 =item get_students  
   
 Returns a list of the selected students  
   
 =cut  
   
 #######################################################  
 #######################################################  
 sub get_students {  sub get_students {
     if (! @Students) {      if (! @Students) {
         &PrepareClasslist()          &PrepareClasslist()
Line 533  sub get_students { Line 370  sub get_students {
     return @Students;      return @Students;
 }  }
   
 #######################################################  
 #######################################################  
   
 =pod  
   
 =item &current_student()  
   
 Returns a pointer to a hash containing data about the currently  
 selected student.  
   
 =cut  
   
 #######################################################  
 #######################################################  
 sub current_student {   sub current_student { 
     return $curr_student;      return $curr_student;
 }  }
   
 #######################################################  
 #######################################################  
   
 =pod  
   
 =item &previous_student()  
   
 Returns a pointer to a hash containing data about the student prior  
 in the list of students.  Or something.    
   
 =cut  
   
 #######################################################  
 #######################################################  
 sub previous_student {   sub previous_student { 
     return $prev_student;      return $prev_student;
 }  }
   
 #######################################################  
 #######################################################  
   
 =pod  
   
 =item &next_student()  
   
 Returns a pointer to a hash containing data about the next student  
 to be viewed.  
   
 =cut  
   
 #######################################################  
 #######################################################  
 sub next_student {   sub next_student { 
     return $next_student;      return $next_student;
 }  }
   
 ##############################################  
 ##############################################  
   
 =pod   
   
 =item &StudentDataSelect($elementname,$status,$numvisible,$selected)  
   
 Returns html for a selection box allowing the user to choose one (or more)   
 of the fields of student data available (fullname, username, id, section, etc)  
   
 =over 4  
   
 =item $elementname The name of the HTML form element  
   
 =item $status 'multiple' or 'single' selection box  
   
 =item $numvisible The number of options to be visible  
   
 =back  
   
 =cut  
   
 ##############################################  
 ##############################################  
 sub StudentDataSelect {  sub StudentDataSelect {
     my ($elementname,$status,$numvisible)=@_;      my ($elementname,$status,$numvisible)=@_;
     if ($numvisible < 1) {      if ($numvisible < 1) {
Line 650  sub StudentDataSelect { Line 429  sub StudentDataSelect {
     return $Str;      return $Str;
 }  }
   
 #######################################################  
 #######################################################  
   
 =pod  
   
 =item &get_selected_maps($elementname)  
   
 Input: Name of the <select> form element used to specify the maps.  
   
 Returns: Array of symbs of selected maps or the description 'all'.  
    If form.$elementname does not exist, 'all' is returned.  
   
 =cut  
   
 #######################################################  
 #######################################################  
 sub get_selected_maps {  sub get_selected_maps {
     my ($elementname) = @_;      my ($elementname) = @_;
     my @selected_maps =       my @selected_maps = 
Line 681  sub get_selected_maps { Line 446  sub get_selected_maps {
 }  }
   
   
 #######################################################  
 #######################################################  
   
 =pod  
   
 =item &selected_sequences_with_assessments  
   
 Retrieve the sequences which were selected by the user to show.    
   
 Input: $mode: scalar.  Either 'selected' or 'all'.  If not specified,  
     'selected' is used.  
   
 Returns: an array containing a navmap object and navmap resources,   
     or an array containing a scalar with an error message.  
   
 =cut  
   
 #######################################################  
 #######################################################  
 sub selected_sequences_with_assessments {  sub selected_sequences_with_assessments {
     my ($mode) = @_;      my ($mode) = @_;
     $mode = 'selected' if (! defined($mode));      $mode = 'selected' if (! defined($mode));
Line 739  sub selected_sequences_with_assessments Line 487  sub selected_sequences_with_assessments
     return $navmap,@sequences_to_show;      return $navmap,@sequences_to_show;
 }  }
   
 ##############################################  
 ##############################################  
   
 =pod   
   
 =item &map_select($elementname,$status,$numvisible,$restriction)   
   
 Returns html for a selection box allowing the user to choose one (or more)   
 of the sequences in the course.  The values of the sequences are the symbs.  
 If the top sequence is selected, the value 'top' will result.  
   
 =over 4  
   
 =item $elementname The name of the HTML form element  
   
 =item $status 'multiple' or 'single' selection box  
   
 =item $numvisible The number of options to be visible  
   
 =back  
   
 =cut  
   
 ##############################################  
 ##############################################  
 sub map_select {  sub map_select {
     my ($elementname,$status,$numvisible)=@_;      my ($elementname,$status,$numvisible)=@_;
     if ($numvisible < 1) {      if ($numvisible < 1) {
Line 810  sub map_select { Line 534  sub map_select {
     return $form;      return $form;
 }  }
   
 ##############################################  
 ##############################################  
   
 =pod   
   
 =item &SectionSelect($elementname,$status,$numvisible)   
   
 Returns html for a selection box allowing the user to choose one (or more)   
 of the sections in the course.    
   
 Uses the package variables @Sections  
 =over 4  
   
 =item $elementname The name of the HTML form element  
   
 =item $status 'multiple' or 'single' selection box  
   
 =item $numvisible The number of options to be visible  
   
 =back  
   
 =cut  
   
 ##############################################  
 ##############################################  
 sub SectionSelect {  sub SectionSelect {
     my ($elementname,$status,$numvisible)=@_;      my ($elementname,$status,$numvisible)=@_;
     if ($numvisible < 1) {      if ($numvisible < 1) {
Line 869  sub SectionSelect { Line 569  sub SectionSelect {
     return $Str;      return $Str;
 }  }
   
 ##############################################  
 ##############################################  
                                                                                       
 =pod  
                                                                                       
 =item &GroupSelect($elementname,$status,$numvisible)  
                                                                                       
 Returns html for a selection box allowing the user to choose one (or more)  
 of the groups in the course.  
                                                                                       
 Uses the package variables @Groups  
 =over 4  
                                                                                       
 =item $elementname The name of the HTML form element  
                                                                                       
 =item $status 'multiple' or 'single' selection box  
                                                                                       
 =item $numvisible The number of options to be visible  
                                                                                       
 =back  
                                                                                       
 =cut  
                                                                                       
 ##############################################  
 ##############################################  
 sub GroupSelect {  sub GroupSelect {
     my ($elementname,$status,$numvisible)=@_;      my ($elementname,$status,$numvisible)=@_;
     if ($numvisible < 1) {      if ($numvisible < 1) {
Line 928  sub GroupSelect { Line 604  sub GroupSelect {
 }  }
   
   
 ##################################################  
 ##################################################  
 sub DisplayClasslist {  sub DisplayClasslist {
     my ($r)=@_;      my ($r)=@_;
     &Apache::lonhtmlcommon::add_breadcrumb      &Apache::lonhtmlcommon::add_breadcrumb
Line 1057  sub DisplayClasslist { Line 733  sub DisplayClasslist {
     return;      return;
 }  }
   
 ##############################################  
 ##############################################  
 sub CreateMainMenu {  sub CreateMainMenu {
     #      #
     # Define menu data      # Define menu data
Line 1121  sub CreateMainMenu { Line 797  sub CreateMainMenu {
     return $Str;      return $Str;
 }  }
   
 ##############################################  
 ##############################################  
 sub handler {  sub handler {
     my $r=shift;      my $r=shift;
     my $c = $r->connection();      my $c = $r->connection();
Line 1275  ENDSTYLE Line 951  ENDSTYLE
   
 1;  1;
   
 #######################################################  __END__
 #######################################################  
   
 =pod  =pod
   
   =head1 NAME
   
   lonstatistics
   
   =head1 SYNOPSIS
   
   Main handler for statistics and chart.
   
   This is part of the LearningOnline Network with CAPA project
   described at http://www.lon-capa.org.
   
   
   =head1 PACKAGE VARIABLES
   
   =over
   
   =item @FullClasslist The full classlist
   
   =item @Students The students we are concerned with for this invocation
   
   =item @Sections The sections available in this class
   
   =item @Groups The groups available in the class
   
   =item $curr_student The student currently being examined
   
   =item $prev_student The student previous in the classlist
   
   =item $next_student The student next in the classlist
   
 =back  =back
   
 =cut  =head1 SUBROUTINES
   
   =over
   
 #######################################################  =item &clear_classlist_variables()
 #######################################################  
   
 __END__  undef the following package variables:
   
   =over 4
   
   =item * @FullClasslist
   
   =item * @Students
   
   =item * @Sections
   
   =item * @Groups
   
   =item * %StudentData
   
   =item * @StudentDataOrder
   
   =item * @SelectedStudentData
   
   =item * $curr_student
   
   =item * $prev_student
   
   =item * $next_student
   
   =back
   
   =item &PrepareClasslist()
   
   Build up the classlist information.  The classlist information is kept in
   the following package variables:
   
   =over 4 
   
   =item * @FullClasslist
   
   =item * @Students
   
   =item * @Sections
   
   =item * @Groups 
   
   =item * %StudentData
   
   =item * @SelectedStudentData
   
   =item * $curr_student
   
   =item * $prev_student
   
   =item * $next_student
   
   =back
   
   $curr_student, $prev_student, and $next_student may not be defined, depending
   upon the calling context.
   
   =item get_selected_sections()
   
   Returns an array of the selected sections
   
   =item get_selected_groups()
                                                                                       
   Returns an array of the selected groups
   
   =item &section_and_enrollment_description()
   
   Returns a string describing the currently selected section(s), group(s) and 
   access status.  
   
   Inputs: mode = 'plaintext' or 'localized'  (defaults to 'localized')
       'plaintext' is used for example in Excel spreadsheets.
   Returns: scalar description string.
   
   =item section_or_group_text()
   
   =item get_students()
   
   Returns a list of the selected students
   
   =item &current_student()
   
   Returns a pointer to a hash containing data about the currently
   selected student.
   
   =item &previous_student()
   
   Returns a pointer to a hash containing data about the student prior
   in the list of students.  Or something. 
   
   =item &next_student()
   
   Returns a pointer to a hash containing data about the next student
   to be viewed. 
   
   =item &StudentDataSelect($elementname,$status,$numvisible,$selected)
   
   Returns html for a selection box allowing the user to choose one (or more) 
   of the fields of student data available (fullname, username, id, section, etc)
   
   =over 4
   
   =item * $elementname The name of the HTML form element
   
   =item * $status 'multiple' or 'single' selection box
   
   =item * $numvisible The number of options to be visible
   
   =back
   
   =item &get_selected_maps($elementname)
   
   Input: Name of the <select> form element used to specify the maps.
   
   Returns: Array of symbs of selected maps or the description 'all'.
      If form.$elementname does not exist, 'all' is returned.
   
   =item &selected_sequences_with_assessments()
   
   Retrieve the sequences which were selected by the user to show.  
   
   Input: $mode: scalar.  Either 'selected' or 'all'.  If not specified,
       'selected' is used.
   
   Returns: an array containing a navmap object and navmap resources, 
       or an array containing a scalar with an error message.
   
   =item &map_select($elementname,$status,$numvisible,$restriction) 
   
   Returns html for a selection box allowing the user to choose one (or more) 
   of the sequences in the course.  The values of the sequences are the symbs.
   If the top sequence is selected, the value 'top' will result.
   
   =over 4
   
   =item * $elementname The name of the HTML form element
   
   =item * $status 'multiple' or 'single' selection box
   
   =item * $numvisible The number of options to be visible
   
   =back
   
   =item &SectionSelect($elementname,$status,$numvisible) 
   
   Returns html for a selection box allowing the user to choose one (or more) 
   of the sections in the course.  
   
   Uses the package variables @Sections
   
   =over 4
   
   =item * $elementname The name of the HTML form element
   
   =item * $status 'multiple' or 'single' selection box
   
   =item * $numvisible The number of options to be visible
   
   =back
   
   =item &GroupSelect($elementname,$status,$numvisible)
                                                                                       
   Returns html for a selection box allowing the user to choose one (or more)
   of the groups in the course.
                                                                                       
   Uses the package variables @Groups
   
   =over 4
                                                                                       
   =item * $elementname The name of the HTML form element
                                                                                       
   =item * $status 'multiple' or 'single' selection box
                                                                                       
   =item * $numvisible The number of options to be visible
                                                                                       
   =back
   
   =item CreateMainMenu()
   
   =back
   
   =cut
   

Removed from v.1.143  
changed lines
  Added in v.1.144


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>