Diff for /loncom/homework/grades.pm between versions 1.509 and 1.510

version 1.509, 2008/02/06 00:39:11 version 1.510, 2008/02/06 16:32:30
Line 5458  sub scantron_validator_lettnum { Line 5458  sub scantron_validator_lettnum {
     my $occurrences = 0;      my $occurrences = 0;
     if (($responsetype_per_response{$questnum-1} eq 'essayresponse') ||      if (($responsetype_per_response{$questnum-1} eq 'essayresponse') ||
         ($responsetype_per_response{$questnum-1} eq 'formularesponse') ||          ($responsetype_per_response{$questnum-1} eq 'formularesponse') ||
         ($responsetype_per_response{$questnum-1} eq 'stringresponse')) {          ($responsetype_per_response{$questnum-1} eq 'stringresponse') ||
           ($responsetype_per_response{$questnum-1} eq 'imageresponse') ||
           ($responsetype_per_response{$questnum-1} eq 'reactionresponse') ||
           ($responsetype_per_response{$questnum-1} eq 'organicresponse')) {
         my @singlelines = split('',$currquest);          my @singlelines = split('',$currquest);
         foreach my $entry (@singlelines) {          foreach my $entry (@singlelines) {
             $occurrences = &occurence_count($entry,$matchon);              $occurrences = &occurence_count($entry,$matchon);
Line 5557  sub scantron_validator_positional { Line 5560  sub scantron_validator_positional {
         #          #
         if (($responsetype_per_response{$questnum-1} eq 'essayresponse') ||          if (($responsetype_per_response{$questnum-1} eq 'essayresponse') ||
             ($responsetype_per_response{$questnum-1} eq 'formularesponse') ||              ($responsetype_per_response{$questnum-1} eq 'formularesponse') ||
             ($responsetype_per_response{$questnum-1} eq 'stringresponse')) {              ($responsetype_per_response{$questnum-1} eq 'stringresponse') ||
               ($responsetype_per_response{$questnum-1} eq 'imageresponse') ||
               ($responsetype_per_response{$questnum-1} eq 'reactionresponse') ||
               ($responsetype_per_response{$questnum-1} eq 'organicresponse')) {
             my $doubleerror = 0;              my $doubleerror = 0;
             while (($currquest >= $$scantron_config{'Qlength'}) &&               while (($currquest >= $$scantron_config{'Qlength'}) && 
                    (!$doubleerror)) {                     (!$doubleerror)) {
Line 6798  for multi and missing bubble cases). Line 6804  for multi and missing bubble cases).
                                   in exam mode. This hash contains a                                     in exam mode. This hash contains a 
                                   comma-separated list of the lines per                                     comma-separated list of the lines per 
                                   sub-question.                                    sub-question.
    %responsetype_per_response   - essayresponse, forumalaresponse, and     %responsetype_per_response   - essayresponse, formularesponse,
                                   stringresponse type problem parts can have                                    stringresponse, imageresponse, reactionresponse,
                                     and organicresponse type problem parts can have
                                   multiple lines per response if the weight                                    multiple lines per response if the weight
                                   assigned exceeds 10.  In this case, only                                    assigned exceeds 10.  In this case, only
                                   one bubble per line is permitted, but more                                     one bubble per line is permitted, but more 
Line 6833  sub prompt_for_corrections { Line 6840  sub prompt_for_corrections {
         $r->print(&mt('The group of bubble lines below responds to a single question.').'<br />');          $r->print(&mt('The group of bubble lines below responds to a single question.').'<br />');
         if (($responsetype_per_response{$question-1} eq 'essayresponse') ||          if (($responsetype_per_response{$question-1} eq 'essayresponse') ||
             ($responsetype_per_response{$question-1} eq 'formularesponse') ||              ($responsetype_per_response{$question-1} eq 'formularesponse') ||
             ($responsetype_per_response{$question-1} eq 'stringresponse')) {              ($responsetype_per_response{$question-1} eq 'stringresponse') ||
               ($responsetype_per_response{$question-1} eq 'imageresponse') ||
               ($responsetype_per_response{$question-1} eq 'reactionresponse') ||
               ($responsetype_per_response{$question-1} eq 'organicresponse')) {
             $r->print(&mt("Although this particular question type requires handgrading, the instructions for this question in the exam directed students to leave [quant,_1,line] blank on their scantron sheets.",$lines).'<br /><br />'.&mt('A non-zero score can be assigned to the student during scantron grading by selecting a bubble in at least one line.').'<br />'.&mt('The score for this question will be a sum of the numeric values for the selected bubbles from each line, where A=1 point, B=2 points etc.').'<br />'.&mt("To assign a score of zero for this question, mark all lines as 'No bubble'.").'<br /><br />');              $r->print(&mt("Although this particular question type requires handgrading, the instructions for this question in the exam directed students to leave [quant,_1,line] blank on their scantron sheets.",$lines).'<br /><br />'.&mt('A non-zero score can be assigned to the student during scantron grading by selecting a bubble in at least one line.').'<br />'.&mt('The score for this question will be a sum of the numeric values for the selected bubbles from each line, where A=1 point, B=2 points etc.').'<br />'.&mt("To assign a score of zero for this question, mark all lines as 'No bubble'.").'<br /><br />');
         } else {          } else {
             $r->print(&mt("Select at most one bubble in a single line and select 'No Bubble' in all the other lines. ")."<br />");              $r->print(&mt("Select at most one bubble in a single line and select 'No Bubble' in all the other lines. ")."<br />");
Line 7146  sub scantron_get_maxbubble { Line 7156  sub scantron_get_maxbubble {
     my $response_number = 0;      my $response_number = 0;
     my $bubble_line     = 0;      my $bubble_line     = 0;
     foreach my $resource (@resources) {      foreach my $resource (@resources) {
         # Need to retrieve part IDs and response IDs because essayresponse          # Need to retrieve part IDs and response IDs because essayresponse,
         # items are not included in $analysis{'parts'} from lonnet::ssi.            # reactionresponse and organicresponse items are not included in 
           # $analysis{'parts'} from lonnet::ssi.  
         my %possible_part_ids;           my %possible_part_ids; 
         if (ref($resource->parts()) eq 'ARRAY') {           if (ref($resource->parts()) eq 'ARRAY') { 
             foreach my $part (@{$resource->parts()}) {              foreach my $part (@{$resource->parts()}) {
Line 7175  sub scantron_get_maxbubble { Line 7186  sub scantron_get_maxbubble {
         }          }
         # Add part_ids for any essayresponse items.           # Add part_ids for any essayresponse items. 
         foreach my $part_id (keys(%possible_part_ids)) {          foreach my $part_id (keys(%possible_part_ids)) {
             if ($analysis{$part_id.'.type'} eq 'essayresponse') {              if (($analysis{$part_id.'.type'} eq 'essayresponse') ||
                   ($analysis{$part_id.'.type'} eq 'reactionresponse') ||
                   ($analysis{$part_id.'.type'} eq 'organicresponse')) {
                 if (!grep(/^\Q$part_id\E$/,@parts)) {                  if (!grep(/^\Q$part_id\E$/,@parts)) {
                     push (@parts,$part_id);                      push (@parts,$part_id);
                 }                  }

Removed from v.1.509  
changed lines
  Added in v.1.510


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