[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--