[LON-CAPA-cvs] cvs: loncom /homework bridgetask.pm lonhomework.pm structuretags.pm /xml londefdef.pm

albertel lon-capa-cvs@mail.lon-capa.org
Fri, 29 Apr 2005 21:22:34 -0000


This is a MIME encoded message

--albertel1114809754
Content-Type: text/plain

albertel		Fri Apr 29 17:22:34 2005 EDT

  Modified files:              
    /loncom/homework	bridgetask.pm lonhomework.pm structuretags.pm 
    /loncom/xml	londefdef.pm 
  Log:
  - adding 'webgrade' target for bridgetasks
  
  
--albertel1114809754
Content-Type: text/plain
Content-Disposition: attachment; filename="albertel-20050429172234.txt"

Index: loncom/homework/bridgetask.pm
diff -u loncom/homework/bridgetask.pm:1.12 loncom/homework/bridgetask.pm:1.13
--- loncom/homework/bridgetask.pm:1.12	Fri Apr  8 15:21:52 2005
+++ loncom/homework/bridgetask.pm	Fri Apr 29 17:22:33 2005
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA 
 # definition of tags that give a structure to a document
 #
-# $Id: bridgetask.pm,v 1.12 2005/04/08 19:21:52 albertel Exp $
+# $Id: bridgetask.pm,v 1.13 2005/04/29 21:22:33 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -82,12 +82,19 @@
     return $result;
 }
 
+sub add_grading_button {
+    my $result;
+    $result.=' <input type="submit" name="gradeasubmission" value="'.
+	&mt("Get a submission to grade").'" />';
+    $result.='<input type="hidden" name="grade_target" value="webgrade" />';
+    return $result;
+}
+
 sub start_Task {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
 
     &Apache::structuretags::initialize_storage();
     &Apache::lonhomework::showhash(%Apache::lonhomework::history);
-
     my ($status,$accessmsg,$slot);
     $Apache::lonhomework::parsing_a_task=1;
     #should get back a <html> or the neccesary stuff to start XML/MathML
@@ -96,6 +103,12 @@
 
     if ($target eq 'web') {
 	$body_tag_start.=&add_previous_version_button();
+	if ($Apache::lonhomework::modifygrades) {
+	    $body_tag_start.='<form name="gradesubmission" method="POST" action="';
+	    my $uri=$env{'request.uri'};
+	    if ($env{'request.enc'}) { $uri=&Apache::lonenc::encrypted($uri); }
+	    $body_tag_start.=$uri.'">'.&add_grading_button()."</form>";
+	}
     }
     if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' ||
 	$target eq 'tex') {
@@ -159,6 +172,9 @@
 		}
 	    }
 	}
+    } elsif ($target eq 'webgrade') {
+	$result.=$head_tag_start.$body_tag_start.$form_tag_start.
+	    'Yahoo!';
     } else {
 	# page_start returned a starting result, delete it if we don't need it
 	$result = '';
@@ -171,7 +187,7 @@
     my $result='';
     my $status=$Apache::inputtags::status['-1'];
     if ($target eq 'grade' || $target eq 'web' || $target eq 'answer' ||
-	$target eq 'tex') {
+	$target eq 'tex' || $target eq 'webgrade') {
 	if (
 	    (($target eq 'web') && ($env{'request.state'} ne 'construct')) ||
 	    ($target eq 'answer') || ($target eq 'tex')
@@ -184,6 +200,8 @@
 							  "</table>";
 		    $result.=&Apache::inputtags::gradestatus('0');
 		}
+	    } 
+	    if ($target eq 'web' || $target eq 'webgrade') {
 		$result.=&Apache::lonxml::xmlend().'</html>';
 	    }
 	}
@@ -210,6 +228,8 @@
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
     my $result;
     if ($target eq 'web') {
+    } elsif ($target eq 'webgrade') {
+	&Apache::lonxml::startredirection();
     }
     return $result;
 }
@@ -218,6 +238,8 @@
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
     my $result;
     if ($target eq 'web') {
+    } elsif ($target eq 'webgrade') {
+	&Apache::lonxml::endredirection();
     }
     return $result;
 }
@@ -233,21 +255,29 @@
     return '';
 }
 
+sub get_instance {
+    #FIXME just grabbing the first one for now, need
+    #to randomly pick one until all have been seen
+    #then start repicking
+    &Apache::response::pushrandomnumber();
+    my @order=&Math::Random::random_permutation(@{$dimension{'instances'}});
+    return $order[0];
+}
+
 sub end_Dimension {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
     my $result;
     if ($target eq 'web') {
-	#FIXME just grabbing the first one for now, need
-	#to randomly pick one until all have been seen
-	#then start repicking
-	&Apache::response::pushrandomnumber();
-	my @order=&Math::Random::random_permutation(@{$dimension{'instances'}});
-	my $instance=$order[0];
+	my $instance=&get_instance();
 	$result=$dimension{'intro'}.$dimension{$instance.'.text'};
-	#FIXME: don't show the criteria yet
-	#foreach my $id (@{$dimension{$instance.'.criterias'}}) {
-	#    $result.=$dimension{$instance.'.criteria.'.$id};
-	#}
+    } elsif ($target eq 'webgrade') {
+	my $instance=&get_instance();
+	$result.='<table>';
+	foreach my $id (@{$dimension{$instance.'.criterias'}}) {
+	    $result.='<tr><td>'.
+		$dimension{$instance.'.criteria.'.$id}.'</td></tr>';
+	}
+	$result.='</table>';
     }
     return $result;
 }
@@ -255,8 +285,8 @@
 sub start_IntroParagraph {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
     my $result;
-    if ($target eq 'web') {
-	if ($tagstack->[-2] eq 'Dimension') {
+    if ($target eq 'web' || $target eq 'webgrade') {
+	if ($tagstack->[-2] eq 'Dimension' || $target eq 'webgrade') {
 	    &Apache::lonxml::startredirection();
 	}
     }
@@ -266,8 +296,8 @@
 sub end_IntroParagraph {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
     my $result;
-    if ($target eq 'web') {
-	if ($tagstack->[-2] eq 'Dimension') {
+    if ($target eq 'web' || $target eq 'webgrade') {
+	if ($tagstack->[-2] eq 'Dimension' || $target eq 'webgrade') {
 	    $dimension{'intro'}=&Apache::lonxml::endredirection();
 	}
     }
@@ -289,7 +319,7 @@
 
 sub start_InstanceText {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
-    if ($target eq 'web') {
+    if ($target eq 'web' || $target eq 'webgrade') {
 	&Apache::lonxml::startredirection();
     }
     return '';
@@ -298,7 +328,7 @@
 sub end_InstanceText {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
     my $instance_id=$Apache::bridgetask::instance[-1];
-    if ($target eq 'web') {
+    if ($target eq 'web' || $target eq 'webgrade') {
 	$dimension{$instance_id.'.text'}=&Apache::lonxml::endredirection();
     }
     return '';
@@ -306,7 +336,7 @@
 
 sub start_Criteria {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
-    if ($target eq 'web') {
+    if ($target eq 'web' || $target eq 'webgrade') {
 	&Apache::lonxml::startredirection();
     }
     return '';
@@ -315,7 +345,7 @@
 sub end_Criteria {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
     my $instance_id=$Apache::bridgetask::instance[-1];
-    if ($target eq 'web') {
+    if ($target eq 'web' || $target eq 'webgrade') {
 	my $criteria=&Apache::lonxml::endredirection();
 	my $id=$Apache::lonxml::curdepth;
 	$dimension{$instance_id.'.criteria.'.$id}=$criteria;
Index: loncom/homework/lonhomework.pm
diff -u loncom/homework/lonhomework.pm:1.204 loncom/homework/lonhomework.pm:1.205
--- loncom/homework/lonhomework.pm:1.204	Thu Apr  7 02:56:21 2005
+++ loncom/homework/lonhomework.pm	Fri Apr 29 17:22:33 2005
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # The LON-CAPA Homework handler
 #
-# $Id: lonhomework.pm,v 1.204 2005/04/07 06:56:21 albertel Exp $
+# $Id: lonhomework.pm,v 1.205 2005/04/29 21:22:33 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -85,9 +85,14 @@
 	    return ($env{'form.grade_target'});
 	} elsif ( defined($env{'form.grade_target'}  ) 
 		  && ($Apache::lonhomework::viewgrades eq 'F' )) {
-	    return ($env{'form.grade_target'});
+	    if ($env{'form.grade_target'} eq 'webgrade') {
+		if ($Apache::lonhomework::modifygrades eq 'F' ) {
+		    return ($env{'form.grade_target'});
+		}
+	    } else {
+		return ($env{'form.grade_target'});
+	    }
 	}
-
 	if ( defined($env{'form.submitted'}) &&
 	     ( !defined($env{'form.resetdata'})) &&
 	     ( !defined($env{'form.newrandomization'}))) {
@@ -479,7 +484,16 @@
 	&Apache::lonnet::devalidatecourseresdata($env{"course.$courseid.num"},
 					      $env{"course.$courseid.domain"});
     }
-    return ''
+    my $modifygrades = &Apache::lonnet::allowed('mgr',$env{'request.course.id'});
+    if (! $modifygrades && 
+	exists($env{'request.course.sec'}) && 
+	$env{'request.course.sec'} !~ /^\s*$/) {
+	$modifygrades = 
+	    &Apache::lonnet::allowed('mgr',$env{'request.course.id'}.
+				     '/'.$env{'request.course.sec'});
+    }
+    $Apache::lonhomework::modifygrades = $modifygrades;
+    return '';
 }
 
 sub setupheader {
Index: loncom/homework/structuretags.pm
diff -u loncom/homework/structuretags.pm:1.290 loncom/homework/structuretags.pm:1.291
--- loncom/homework/structuretags.pm:1.290	Mon Apr 25 17:40:33 2005
+++ loncom/homework/structuretags.pm	Fri Apr 29 17:22:33 2005
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA 
 # definition of tags that give a structure to a document
 #
-# $Id: structuretags.pm,v 1.290 2005/04/25 21:40:33 albertel Exp $
+# $Id: structuretags.pm,v 1.291 2005/04/29 21:22:33 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -96,6 +96,7 @@
     }
     return $body_tag_start;
 }
+
 sub page_start {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
     my %found;
@@ -126,7 +127,8 @@
 	my $bgcolor=&Apache::lonxml::get_param('bgcolor',$parstack,
 					       $safeeval);
 	$body_tag_start=&body_tag_start($background,$bgcolor);
-	if ($target eq 'web' && $env{'request.state'} ne 'construct') {
+	if ( ($target eq 'web' || $target eq 'webgrade')
+	     && $env{'request.state'} ne 'construct') {
 	    my ($symb,undef,undef,undef,$publicuser)=
 		&Apache::lonxml::whichuser();
 	    if ($symb eq '' && !$publicuser) {
Index: loncom/xml/londefdef.pm
diff -u loncom/xml/londefdef.pm:1.268 loncom/xml/londefdef.pm:1.269
--- loncom/xml/londefdef.pm:1.268	Fri Apr 22 16:59:31 2005
+++ loncom/xml/londefdef.pm	Fri Apr 29 17:22:33 2005
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Tags Default Definition Module 
 #
-# $Id: londefdef.pm,v 1.268 2005/04/22 20:59:31 albertel Exp $
+# $Id: londefdef.pm,v 1.269 2005/04/29 21:22:33 albertel Exp $
 # 
 #
 # Copyright Michigan State University Board of Trustees
@@ -153,7 +153,7 @@
     my $currentstring = '';
     my $options=$env{'course.'.$env{'request.course.id'}.'.tthoptions'};
     &Apache::lontexconvert::init_tth();
-    if ($target eq 'web' || $target eq 'edit') {
+    if ($target eq 'web' || $target eq 'edit' || $target eq 'webgrade' ) {
 	$currentstring = &Apache::lonxml::xmlbegin();
     } elsif ($target eq 'tex') {
 	$currentstring .= '\documentclass[letterpaper]{article}';

--albertel1114809754--