--- loncom/homework/bridgetask.pm 2005/09/20 06:45:02 1.49 +++ loncom/homework/bridgetask.pm 2005/09/22 22:25:35 1.53 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # definition of tags that give a structure to a document # -# $Id: bridgetask.pm,v 1.49 2005/09/20 06:45:02 albertel Exp $ +# $Id: bridgetask.pm,v 1.53 2005/09/22 22:25:35 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -204,6 +204,67 @@ sub preserve_grade_info { return $result; } +sub style { + return (< +.fail, .pass, .neutral { + position: relative; + margin : 5px; + margin-bottom :10px; + padding : 4px; + padding-left : 75px; + border : thin solid; + font-weight : bolder; + font-size: smaller; + font-family: Arial; + background-color : rgb(255,240,225); +} + +.fail h4, .pass h4 { + position:absolute; + left: -4px; + top: -8px; + padding:2px; + margin:0; + background-color : rgb(255,240,225); + border : thin solid; +} + +.fail { + color: red; +} + +.pass { + color : green; +} + +.neutral { + color : blue; +} + +.question { + border : thin solid black; + padding : 4px; + margin-bottom : 1em; +} + +.grade { + font-size: x-large; + font-family: Arial; + position:absolute; + left: 5px; + top: -5px; + width: 70px; +} + +div#feedback h1 { + color : inherit; +} + +STYLE + +} + sub start_Task { my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; @@ -291,7 +352,7 @@ sub start_Task { } elsif ($target eq 'web') { my $name= &Apache::structuretags::get_resource_name($parstack,$safeeval); $result.="$head_tag_start$name - $body_tag_start \n"; + $body_tag_start \n".&style(); my ($version,$previous)=&get_version(); if ($Apache::lonhomework::history{"resource.$version.status"} eq 'fail') { @@ -370,6 +431,10 @@ sub start_Task { $webgrade.'" />'; $result.=''; + if ($env{'form.regrade'}) { + $result.=''; + } } } else { # page_start returned a starting result, delete it if we don't need it @@ -511,6 +576,8 @@ sub end_Task { $Apache::lonhomework::results{"resource.0.award"}= $Apache::lonhomework::results{"resource.$version.0.award"}= $award; + $Apache::lonhomework::results{"resource.0.submission"}= + $Apache::lonhomework::results{"resource.$version.0.submission"}=''; } &Apache::lonhomework::showhash(%Apache::lonhomework::results); &Apache::structuretags::finalize_storage(); @@ -575,13 +642,16 @@ sub end_Task { &remove_from_queue($env{'form.queue'}); my ($symb,$courseid,$udom,$uname)=&Apache::lonxml::whichuser(); - $Apache::lonhomework::results{"resource.$version.0.bridgetask.portfiles"}= - $Apache::lonhomework::history{"resource.$version.0.bridgetask.portfiles"}; - &Apache::grades::version_portfiles( - \%Apache::lonhomework::results, - ["$version.0.bridgetask"],$courseid, - $symb,$udom,$uname, - ["$version.0.bridgetask"]); + + if ($env{'form.regrade'} ne 'yes') { + $Apache::lonhomework::results{"resource.$version.0.bridgetask.portfiles"}= + $Apache::lonhomework::history{"resource.$version.0.bridgetask.portfiles"}; + &Apache::grades::version_portfiles( + \%Apache::lonhomework::results, + ["$version.0.bridgetask"],$courseid, + $symb,$udom,$uname, + ["$version.0.bridgetask"]); + } } else { $Apache::lonhomework::results{"resource.$version.status"}='pass'; $Apache::lonhomework::results{"resource.$version.0.solved"}='correct_by_override'; @@ -590,23 +660,25 @@ sub end_Task { &remove_from_queue($env{'form.queue'}); my ($symb,$courseid,$udom,$uname)=&Apache::lonxml::whichuser(); - $Apache::lonhomework::results{"resource.$version.0.bridgetask.portfiles"}= - $Apache::lonhomework::history{"resource.$version.0.bridgetask.portfiles"}; - &Apache::grades::version_portfiles( - \%Apache::lonhomework::results, - ["$version.0.bridgetask"],$courseid, - $symb,$udom,$uname, - ["$version.0.bridgetask"]); + if ($env{'form.regrade'} ne 'yes') { + $Apache::lonhomework::results{"resource.$version.0.bridgetask.portfiles"}= + $Apache::lonhomework::history{"resource.$version.0.bridgetask.portfiles"}; + &Apache::grades::version_portfiles( + \%Apache::lonhomework::results, + ["$version.0.bridgetask"],$courseid, + $symb,$udom,$uname, + ["$version.0.bridgetask"]); + } } $Apache::lonhomework::results{"resource.status"}= $Apache::lonhomework::results{"resource.$version.status"}; if (defined($Apache::lonhomework::results{"resource.$version.0.awarded"})) { $Apache::lonhomework::results{"resource.0.award"}= - $Apache::lonhomework::results{"resource.$version.award"}; + $Apache::lonhomework::results{"resource.$version.0.award"}; $Apache::lonhomework::results{"resource.0.awarded"}= - $Apache::lonhomework::results{"resource.$version.awarded"}; + $Apache::lonhomework::results{"resource.$version.0.awarded"}; $Apache::lonhomework::results{"resource.0.solved"}= - $Apache::lonhomework::results{"resource.$version.solved"}; + $Apache::lonhomework::results{"resource.$version.0.solved"}; } &Apache::structuretags::finalize_storage(); } @@ -1011,6 +1083,7 @@ sub select_user { + $fullname->{$student} @@ -1133,20 +1206,27 @@ sub get_instance { foreach my $id (@{$dimension{$instance.'.criterias'}}) { my $status=$Apache::lonhomework::history{"resource.$version.$dim.$instance.$id.status"}; my $comment=$Apache::lonhomework::history{"resource.$version.$dim.$instance.$id.comment"}; - $result.='
'; + my $mandatory=($dimension{$instance.'.criteria.'.$id.'.mandatory'} ne 'N'); + if ($mandatory) { + $mandatory='Mandatory'; + } else { + $mandatory='Optional'; + } if ($status eq 'fail') { - $result.=''.&mt('Did not pass').''; } elsif ($status eq 'pass') { - $result.=''.&mt('Passed').''; } else { &Apache::lonxml::error("Student viewing a graded bridgetask was shown a status of $status"); } - $result.='
'; + my $status_display=$status; + $status_display=~s/^([a-z])/uc($1)/e; + $result.='

'.$mandatory. + ' Criteria

'. + $dimension{$instance.'.criteria.'.$id}. + '

'.$status_display.'

'; if ($Apache::lonhomework::history{"resource.$version.$dim.$instance.$id.comment"}) { - $result.=&mt('Comment from grader: ').$Apache::lonhomework::history{"resource.$version.$dim.$instance.$id.comment"}.'
'; + $result.='

'.$Apache::lonhomework::history{"resource.$version.$dim.$instance.$id.comment"}.'

'; } - $result.=$dimension{$instance.'.criteria.'.$id}. - '
'; + $result.=''; } } } elsif ($target eq 'webgrade') { @@ -1186,9 +1266,10 @@ sub get_instance { ''; $result.=''; my (undef,undef,$udom,$uname) = &Apache::lonxml::whichuser(); - my $file_url = '/uploaded/'.$udom.'/'.$uname.'/portfolio'; + my $file_url = '/uploaded/'.$udom.'/'.$uname.'/portfolio/'; foreach my $partial_file (split(',',$Apache::lonhomework::history{"resource.$version.0.bridgetask.portfiles"})) { my $file=$file_url.$partial_file; + $file=~s|/+|/|g; &Apache::lonnet::allowuploaded('/adm/bridgetask',$file); $result.=' '.$file.