[LON-CAPA-cvs] cvs: loncom /homework inputtags.pm optionresponse.pm /interface loncommon.pm

albertel lon-capa-cvs-allow@mail.lon-capa.org
Mon, 16 Apr 2007 22:50:45 -0000


This is a MIME encoded message

--albertel1176763845
Content-Type: text/plain

albertel		Mon Apr 16 18:50:45 2007 EDT

  Modified files:              
    /loncom/homework	inputtags.pm optionresponse.pm 
    /loncom/interface	loncommon.pm 
  Log:
  - bug#2622
     - color extended across whole row
     - make the try count stand out more
     - correct message updated 
     - option response display vertically
     - coverted response messages to be css rather than staitic colros
  
  
--albertel1176763845
Content-Type: text/plain
Content-Disposition: attachment; filename="albertel-20070416185045.txt"

Index: loncom/homework/inputtags.pm
diff -u loncom/homework/inputtags.pm:1.220 loncom/homework/inputtags.pm:1.221
--- loncom/homework/inputtags.pm:1.220	Wed Mar 14 22:54:28 2007
+++ loncom/homework/inputtags.pm	Mon Apr 16 18:50:41 2007
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # input  definitons
 #
-# $Id: inputtags.pm,v 1.220 2007/03/15 02:54:28 albertel Exp $
+# $Id: inputtags.pm,v 1.221 2007/04/16 22:50:41 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -586,14 +586,14 @@
     my $message='';
     my $button=0;
     my $previousmsg;
-    my $bgcolor='orange';
+    my $css_class='orange';
     my $added_computer_text=0;
-    my %possiblecolors =
-	( 'correct'         => '#aaffaa',
-	  'charged_try'     => '#ffaaaa',
-	  'not_charged_try' => '#ffffaa',
-	  'no_grade'        => '#ffffaa',
-	  'no_message'      => '#ffffff',
+    my %possible_class =
+	( 'correct'         => 'LC_answer_correct',
+	  'charged_try'     => 'LC_answer_charged_try',
+	  'not_charged_try' => 'LC_answer_not_charged_try',
+	  'no_grade'        => 'LC_answer_no_grade',
+	  'no_message'      => 'LC_no_message',
 	  );
 
     my $part = $Apache::inputtags::part;
@@ -607,14 +607,14 @@
     if ($previous) { $previousmsg=&mt('You have entered that answer before'); }
     
     if ($solved =~ /^correct/) {
-        $bgcolor=$possiblecolors{'correct'};
+        $css_class=$possible_class{'correct'};
 	$message=&mt('You are correct.');
 	if ($awarded < 1 && $awarded > 0) {
 	    $message=&mt('You are partially correct.');
-	    $bgcolor=$possiblecolors{'not_charged_try'};
+	    $css_class=$possible_class{'not_charged_try'};
 	} elsif ($awarded < 1) {
 	    $message=&mt('Incorrect.');
-	    $bgcolor=$possiblecolors{'charged_try'};
+	    $css_class=$possible_class{'charged_try'};
 	}
 	if ($env{'request.filename'} =~ 
 	    m|/res/lib/templates/examupload.problem$|) {
@@ -646,13 +646,13 @@
 	} else {
 	    $message = "<b>".&mt('You are excused from the problem.')."</b>";
 	}
-	$bgcolor=$possiblecolors{'charged_try'};
+	$css_class=$possible_class{'charged_try'};
 	$button=0;
 	$previousmsg='';
     } elsif ($award eq 'EXACT_ANS' || $award eq 'APPROX_ANS' ) {
 	if ($solved =~ /^incorrect/ || $solved eq '') {
 	    $message = &mt("Incorrect").".";
-	    $bgcolor=$possiblecolors{'charged_try'};
+	    $css_class=$possible_class{'charged_try'};
 	    $button=1;
 	} else {
 	    if ($target eq 'tex') {
@@ -669,105 +669,105 @@
 		    'Your receipt is '.&Apache::lonnet::receipt($Apache::inputtags::part).
 		    (($target eq 'web')?&Apache::loncommon::help_open_topic('Receipt'):'');
 	    }
-	    $bgcolor=$possiblecolors{'correct'};
+	    $css_class=$possible_class{'correct'};
 	    $button=0;
 	    $previousmsg='';
 	}
     } elsif ($award eq 'NO_RESPONSE') {
 	$message = '';
-	$bgcolor=$possiblecolors{'no_feedback'};
+	$css_class=$possible_class{'no_feedback'};
 	$button=1;
     } elsif ($award eq 'EXTRA_ANSWER') {
 	$message = &mt('Some extra items were submitted.');
-	$bgcolor=$possiblecolors{'not_charged_try'};
+	$css_class=$possible_class{'not_charged_try'};
 	$button = 1;
     } elsif ($award eq 'MISSING_ANSWER') {
 	$message = &mt('Some items were not submitted.');
-	$bgcolor=$possiblecolors{'not_charged_try'};
+	$css_class=$possible_class{'not_charged_try'};
 	$button = 1;
     } elsif ($award eq 'ERROR') {
 	$message = &mt('An error occured while grading your answer.');
-	$bgcolor=$possiblecolors{'not_charged_try'};
+	$css_class=$possible_class{'not_charged_try'};
 	$button = 1;
     } elsif ($award eq 'TOO_LONG') {
 	$message = &mt("The submitted answer was too long.");
-	$bgcolor=$possiblecolors{'not_charged_try'};
+	$css_class=$possible_class{'not_charged_try'};
 	$button=1;
     } elsif ($award eq 'WANTED_NUMERIC') {
 	$message = &mt("This question expects a numeric answer.");
-	$bgcolor=$possiblecolors{'not_charged_try'};
+	$css_class=$possible_class{'not_charged_try'};
 	$button=1;
     } elsif ($award eq 'MISORDERED_RANK') {
 	$message = &mt('You have provided an invalid ranking');
 	if ($target ne 'tex') {
 	    $message.=', '.&mt('please refer to').' '.&Apache::loncommon::help_open_topic('Ranking_Problems','help on ranking problems');
 	}
-	$bgcolor=$possiblecolors{'not_charged_try'};
+	$css_class=$possible_class{'not_charged_try'};
 	$button=1;
     } elsif ($award eq 'INVALID_FILETYPE') {
 	$message = &mt('Submission won\'t be graded. The type of file submitted is not allowed.');
-	$bgcolor=$possiblecolors{'not_charged_try'};
+	$css_class=$possible_class{'not_charged_try'};
 	$button=1;
     } elsif ($award eq 'SIG_FAIL') {
 	my ($used,$min,$max)=split(':',$awardmsg);
 	my $word = ($used < $min) ? 'more' : 'fewer';
 	$message = &mt("Submission not graded.  Use $word digits.",$used);
-	$bgcolor=$possiblecolors{'not_charged_try'};
+	$css_class=$possible_class{'not_charged_try'};
 	$button=1;
     } elsif ($award eq 'UNIT_INVALID_INSTRUCTOR') {
 	$message = &mt('Error in instructor specifed unit. This error has been reported to the instructor.', $awardmsg);
 	if ($target ne 'tex') {$message.=&Apache::loncommon::help_open_topic('Physical_Units');} 
-	$bgcolor=$possiblecolors{'not_charged_try'};
+	$css_class=$possible_class{'not_charged_try'};
 	$button=1;
     } elsif ($award eq 'UNIT_INVALID_STUDENT') {
 	$message = &mt('Unable to interpret units. Computer reads units as "[_1]".',&markup_unit($awardmsg,$target));
 	if ($target ne 'tex') {$message.=&Apache::loncommon::help_open_topic('Physical_Units');} 
-	$bgcolor=$possiblecolors{'not_charged_try'};
+	$css_class=$possible_class{'not_charged_try'};
 	$button=1;
     } elsif ($award eq 'UNIT_FAIL' || $award eq 'UNIT_IRRECONCIBLE') {
 	$message = &mt('Incompatible units. No conversion found between "[_1]" and the required units.',&markup_unit($awardmsg,$target));
 	if ($target ne 'tex') {$message.=&Apache::loncommon::help_open_topic('Physical_Units');} 
-	$bgcolor=$possiblecolors{'not_charged_try'};
+	$css_class=$possible_class{'not_charged_try'};
 	$button=1;
     } elsif ($award eq 'UNIT_NOTNEEDED') {
 	$message = &mt('Only a number required. Computer reads units of "[_1]".',&markup_unit($awardmsg,$target));
-	$bgcolor=$possiblecolors{'not_charged_try'};
+	$css_class=$possible_class{'not_charged_try'};
 	$button=1;
     } elsif ($award eq 'NO_UNIT') {
 	$message = &mt("Units required").'.';
 	if ($target ne 'tex') {$message.=&Apache::loncommon::help_open_topic('Physical_Units')};
-	$bgcolor=$possiblecolors{'not_charged_try'};
+	$css_class=$possible_class{'not_charged_try'};
 	$button=1;
     } elsif ($award eq 'COMMA_FAIL') {
 	$message = &mt("Proper comma separation is required").'.';
-	$bgcolor=$possiblecolors{'not_charged_try'};
+	$css_class=$possible_class{'not_charged_try'};
 	$button=1;
     } elsif ($award eq 'BAD_FORMULA') {
 	$message = &mt("Unable to understand formula");
-	$bgcolor=$possiblecolors{'not_charged_try'};
+	$css_class=$possible_class{'not_charged_try'};
 	$button=1;
     } elsif ($award eq 'INCORRECT') {
 	$message = &mt("Incorrect").'.';
-	$bgcolor=$possiblecolors{'charged_try'};
+	$css_class=$possible_class{'charged_try'};
 	$button=1;
     } elsif ($award eq 'SUBMITTED') {
 	$message = &mt("Your submission has been recorded.");
-	$bgcolor=$possiblecolors{'no_grade'};
+	$css_class=$possible_class{'no_grade'};
 	$button=1;
     } elsif ($award eq 'DRAFT') {
 	$message = &mt("A draft copy has been saved.");
-	$bgcolor=$possiblecolors{'not_charged_try'};
+	$css_class=$possible_class{'not_charged_try'};
 	$button=1;
     } elsif ($award eq 'ASSIGNED_SCORE') {
 	$message = &mt("A score has been assigned.");
-	$bgcolor=$possiblecolors{'correct'};
+	$css_class=$possible_class{'correct'};
 	$button=0;
     } elsif ($award eq '') {
 	if ($handgrade && $Apache::inputtags::status[-1] eq 'SHOW_ANSWER') {
 	    $message = &mt("Nothing submitted.");
-	    $bgcolor=$possiblecolors{'charged_try'};
+	    $css_class=$possible_class{'charged_try'};
 	} else {
-	    $bgcolor=$possiblecolors{'not_charged_try'};
+	    $css_class=$possible_class{'not_charged_try'};
 	}
 	$button=1;
     } else {
@@ -791,7 +791,7 @@
     if (lc($Apache::lonhomework::problemstatus) eq 'no'  && 
 	$Apache::inputtags::status[-1] ne 'SHOW_ANSWER') {
 	$message = &mt("Answer Submitted: Your final submission will be graded after the due date.");
-	$bgcolor=$possiblecolors{'no_grade'};
+	$css_class=$possible_class{'no_grade'};
 	$button=1;
     }
     if ($Apache::inputtags::status[-1] eq 'SHOW_ANSWER' && 
@@ -799,7 +799,7 @@
 	$message.= $computer;
 	$added_computer_text=1;
     }
-    return ($button,$bgcolor,$message,$previousmsg);
+    return ($button,$css_class,$message,$previousmsg);
 }
 
 sub markup_unit {
@@ -1045,15 +1045,15 @@
     &Apache::lonxml::debug("Found Award |$award|$solved|$awardmsg");
     if ( $award ne '' || $solved ne '' || $status eq 'SHOW_ANSWER') {
 	&Apache::lonxml::debug('Getting message');
-	($showbutton,my $bgcolor,$message,$previousmsg) =
+	($showbutton,my $css_class,$message,$previousmsg) =
 	    &decideoutput($award,$awarded,$awardmsg,$solved,$previous,
 			  $target);
 	if ($target eq 'tex') {
 	    $message='\vskip 2 mm '.$message.' ';
 	} else {
-	    $message="<td bgcolor=\"$bgcolor\">$message</td>";
+	    $message="<td class=\"$css_class\">$message</td>";
 	    if ($previousmsg) {
-		$previousmsg="<td bgcolor=\"#aaaaff\">$previousmsg</td>";
+		$previousmsg="<td class=\"LC_answer_previous\">$previousmsg</td>";
 	    }
 	}
     }
@@ -1094,11 +1094,12 @@
 	    $trystr.="</nobr></td>";
 	}
     }
+
     if ($Apache::lonhomework::history{"$prefix.afterduedate"}) {
 	#last submissions was after due date
 	$latemessage=&mt(' The last submission was after the Due Date ');;
 	if ($target eq 'web') {
-	    $latemessage='<td bgcolor="#ffaaaa">'.$latemessage.'</td>';
+	    $latemessage='<td class="LC_answer_late">'.$latemessage.'</td>';
 	}
     }
     return ($previousmsg,$latemessage,$message,$trystr,$showbutton);
@@ -1168,23 +1169,27 @@
 
 	($previousmsg,$latemessage,$message,$trystr) =
 	    &get_grade_messages($id,"$prefix",$target,$status);
-	if (!exists($Apache::lonhomework::history{"$prefix.tries"})) {
-	    undef($trystr);
-	}
 
 	if ($previousmsg ne '') {
 	    my ($match,$which) = &find_which_previous($i);
 	    $message=$previousmsg;
 	    my $previous = $count_lookup{$which};
-	    $message =~ s{(</td>)}{ as submission $previous $1};
-	    
-	} elsif ($trystr ne '') { 
-	    ($trystr) = ($trystr =~ m{(\d+)/\d+});
-	    $message =~ s{(<td.*?>)}{$1 $trystr };
+	    $message =~ s{(</td>)}{ as submission # $previous $1};
+	} elsif ($Apache::lonhomework::history{"$prefix.tries"}) {
+	    if ( $Apache::lonhomework::history{"$prefix.solved"} =~ 
+		 /^correct/) {
+		$message =~ s{(<td.*?>)(.*?)(</td>)}
+		             {$1 <strong>Correct</strong>. $3};
+	    }
+	    my $trystr = "(Try ".
+		$Apache::lonhomework::history{"$prefix.tries"}.')';
+	    $message =~ s{(</td>)}{ $trystr $1};
 	}
+	my ($class) = ($message =~ m{<td.*class="([^"]*)"}); #"
+	$message =~ s{(<td.*?>)}{<td>};
+	
 
-
-	$output.='<tr>';
+	$output.='<tr class="'.$class.'">';
 	$output.='<td align ="center">'.$count.'</td>';
 	$output.=$message;
 
@@ -1202,11 +1207,11 @@
 		$output.='<td></td>';
 	    }
 	}
-	$output.='</tr>'."\n";
+	$output.=&Apache::loncommon::end_data_table_row()."\n";
     }
     return if ($output eq '');
     my $headers = 
-	'<tr>'.'<th>'.&mt('Submission #').'</th><th>'.&mt('Try').
+	'<tr>'.'<th>'.&mt('Submission #').'</th><th>'.&mt(' ').
 	'</th><th colspan="'.scalar(@Apache::inputtags::response).'">'.
 	&mt('Submitted Answer').'</th>';
     $output ='<table class="LC_prior_tries">'.$headers.$output.'</table>';
Index: loncom/homework/optionresponse.pm
diff -u loncom/homework/optionresponse.pm:1.141 loncom/homework/optionresponse.pm:1.142
--- loncom/homework/optionresponse.pm:1.141	Fri Apr  6 12:54:48 2007
+++ loncom/homework/optionresponse.pm	Mon Apr 16 18:50:41 2007
@@ -1,7 +1,7 @@
 # LearningOnline Network with CAPA
 # option list style responses
 #
-# $Id: optionresponse.pm,v 1.141 2007/04/06 16:54:48 albertel Exp $
+# $Id: optionresponse.pm,v 1.142 2007/04/16 22:50:41 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -367,11 +367,11 @@
 	my $output;
 	foreach my $name (@$whichopt) {
 	    next if (!defined($lastresponse{$name}));
-	    $output .= '<td>'.$lastresponse{$name}.'</td>';
+	    $output .= '<tr><td>'.$lastresponse{$name}.'</td></tr>';
 	}
 	next if (!defined($output));
 	$output =
-	    '<table class="LC_optres_prior"><tr>'.$output.'</tr></table>';
+	    '<table class="LC_prior_option">'.$output.'</table>';
 	$Apache::inputtags::submission_display{$key} = $output;
     }
 }
Index: loncom/interface/loncommon.pm
diff -u loncom/interface/loncommon.pm:1.522 loncom/interface/loncommon.pm:1.523
--- loncom/interface/loncommon.pm:1.522	Fri Apr 13 16:22:15 2007
+++ loncom/interface/loncommon.pm	Mon Apr 16 18:50:44 2007
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # a pile of common routines
 #
-# $Id: loncommon.pm,v 1.522 2007/04/13 20:22:15 albertel Exp $
+# $Id: loncommon.pm,v 1.523 2007/04/16 22:50:44 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -3690,20 +3690,18 @@
     my $border = ($env{'browser.type'} eq 'explorer') ? '0px 2px 0px 2px'
 	                                              : '0px 3px 0px 4px';
 
+
     return <<END;
 h1, h2, h3, th { font-family: $sans }
 a:focus { color: red; background: yellow } 
 table.thinborder,
-table.LC_optres_prior {
-  border-collapse: collapse;
-}
+
 table.thinborder tr th {
   border-style: solid;
   border-width: 1px;
   background: $tabbg;
 }
-table.thinborder tr td, 
-table.LC_optres_prior tr td {
+table.thinborder tr td {
   border-style: solid;
   border-width: 1px
 }
@@ -3901,7 +3899,8 @@
   border-spacing: 0px;
   width: 100%;
 }
-table.LC_data_table tr th, table.LC_calendar tr th, table.LC_mail_list tr th {
+table.LC_data_table tr th, table.LC_calendar tr th, table.LC_mail_list tr th,
+table.LC_prior_tries tr th {
   font-weight: bold;
   background-color: $data_table_head;
   font-size: smaller;
@@ -4284,7 +4283,7 @@
     border-color: gray;
     border-collapse: collapse;
 }
-table.LC_prior_tries th,
+
 table.LC_prior_tries td {
     border-width: 1px;
     border-style: solid;
@@ -4295,9 +4294,47 @@
     font-weight: bold;
     background: #aaffaa;
 }
+
+.LC_answer_correct {
+  background: #AAFFAA;
+  color: black;
+}
+.LC_answer_charged_try {
+  background: #FFAAAA ! important;
+  color: black;
+}
+.LC_answer_not_charged_try, 
+.LC_answer_no_grade,
+.LC_answer_late {
+  background: #FFFFAA;
+  color: black;
+}
+.LC_answer_previous {
+  background: #AAAAFF;
+  color: black;
+}
+.LC_answer_no_message {
+  background: #FFFFFF;
+  color: black;
+}
+.LC_answer_unknown {
+  background: orange;
+  color: black;
+}
+
+
 span.LC_prior_numerical {
-    font-family: monospace;
-    white-space: pre;
+  font-family: monospace;
+  white-space: pre;
+}
+
+table.LC_prior_option {
+  width: 100%;
+  border-collapse: collapse;
+}
+table.LC_prior_option tr td {
+  border-style: solid;
+  border-width: 1px
 }
 
 span.LC_nobreak {

--albertel1176763845--