version 1.8, 2005/03/31 21:24:29
|
version 1.9, 2005/04/04 18:14:58
|
Line 37 use Apache::lonmenu;
|
Line 37 use Apache::lonmenu;
|
use Apache::lonlocal; |
use Apache::lonlocal; |
use Apache::lonxml; |
use Apache::lonxml; |
use Time::HiRes qw( gettimeofday tv_interval ); |
use Time::HiRes qw( gettimeofday tv_interval ); |
|
|
BEGIN { |
BEGIN { |
&Apache::lonxml::register('Apache::bridgetask',('Task','IntroParagraph','Dimension','Instance','InstanceText','Criteria','ClosingParagraph')); |
&Apache::lonxml::register('Apache::bridgetask',('Task','IntroParagraph','Dimension','Instance','InstanceText','Criteria','ClosingParagraph')); |
} |
} |
|
|
|
sub initialize_bridgetask { |
|
# id of current Dimension, 0 means that no dimension is current |
|
# (inside <Task> only) |
|
$Apache::bridgetask::dimension=''; |
|
# list of all Dimension ids seen |
|
@Apache::bridgetask::dimensionlist=(); |
|
# list of all current Instance ids |
|
@Apache::bridgetask::instance=(); |
|
# list of all Instance ids seen in this problem |
|
@Apache::bridgetask::instancelist=(); |
|
} |
|
|
sub proctor_check_auth { |
sub proctor_check_auth { |
my ($slot)=@_; |
my ($slot)=@_; |
my $user=$ENV{'form.proctorname'}; |
my $user=$ENV{'form.proctorname'}; |
Line 63 sub proctor_check_auth {
|
Line 76 sub proctor_check_auth {
|
|
|
sub add_previous_version_button { |
sub add_previous_version_button { |
my $result; |
my $result; |
$result.=' Show a previously done version: <select name="previousversion"> |
$result.=&mt(' Show a previously done version: [_1]','<select name="previousversion"> |
<option>Pick one</option> |
<option>Pick one</option> |
</select>'; |
</select>'); |
return $result; |
return $result; |
} |
} |
|
|
Line 88 sub start_Task {
|
Line 101 sub start_Task {
|
$target eq 'tex') { |
$target eq 'tex') { |
($status,$accessmsg,$slot) = |
($status,$accessmsg,$slot) = |
&Apache::lonhomework::check_task_access('0'); |
&Apache::lonhomework::check_task_access('0'); |
push (@Apache::inputtags::status,$status); |
push(@Apache::inputtags::status,$status); |
my $expression='$external::datestatus="'.$status.'";'; |
my $expression='$external::datestatus="'.$status.'";'; |
$expression.='$external::gradestatus="'.$Apache::lonhomework::history{"resource.0.solved"}.'";'; |
$expression.='$external::gradestatus="'.$Apache::lonhomework::history{"resource.0.solved"}.'";'; |
&Apache::run::run($expression,$safeeval); |
&Apache::run::run($expression,$safeeval); |
Line 164 sub end_Task {
|
Line 177 sub end_Task {
|
($target eq 'answer') || ($target eq 'tex') |
($target eq 'answer') || ($target eq 'tex') |
) { |
) { |
if ($target eq 'web') { |
if ($target eq 'web') { |
$result.='<table border="1">'. |
if ($status eq 'CAN_ANSWER') { |
&Apache::inputtags::file_selector("bridge","task","*", |
$result.='<table border="1">'. |
'portfolioonly'). |
&Apache::inputtags::file_selector('0',"bridgetask","*", |
"</table>"; |
'portfolioonly'). |
|
"</table>"; |
|
$result.=&Apache::inputtags::gradestatus('0'); |
|
} |
$result.=&Apache::lonxml::xmlend().'</html>'; |
$result.=&Apache::lonxml::xmlend().'</html>'; |
} |
} |
} |
} |
Line 201 sub end_ClosingParagraph {
|
Line 217 sub end_ClosingParagraph {
|
} |
} |
|
|
my %dimension; |
my %dimension; |
my $dim_id; |
|
sub start_Dimension { |
sub start_Dimension { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
undef(%dimension); |
undef(%dimension); |
$dim_id=$Apache::lonxml::curdepth; |
my $dim_id=$Apache::lonxml::curdepth; |
|
$Apache::bridgetask::dimension=$dim_id; |
|
push(@Apache::bridgetask::dimensionlist,$dim_id); |
|
undef(@Apache::bridgetask::instance); |
return ''; |
return ''; |
} |
} |
|
|
Line 216 sub end_Dimension {
|
Line 234 sub end_Dimension {
|
#FIXME just grabbing the first one for now, need |
#FIXME just grabbing the first one for now, need |
#to randomly pick one until all have been seen |
#to randomly pick one until all have been seen |
#then start repicking |
#then start repicking |
my $instance=$dimension{'instances'}->[0]; |
&Apache::response::pushrandomnumber(); |
$result=$dimension{'intro'}. |
my $num_instances=scalar(@{$dimension{'instances'}}); |
$dimension{$instance.'.text'}; |
my $which=&Math::Random::random_uniform_integer(1,0,$num_instances-1); |
|
my $instance=$dimension{'instances'}->[$which]; |
|
$result=$dimension{'intro'}.$dimension{$instance.'.text'}; |
#FIXME: don't show the criteria yet |
#FIXME: don't show the criteria yet |
#foreach my $id (@{$dimension{$instance.'.criterias'}}) { |
#foreach my $id (@{$dimension{$instance.'.criterias'}}) { |
# $result.=$dimension{$instance.'.criteria.'.$id}; |
# $result.=$dimension{$instance.'.criteria.'.$id}; |
Line 249 sub end_IntroParagraph {
|
Line 269 sub end_IntroParagraph {
|
return $result; |
return $result; |
} |
} |
|
|
my $instance_id; |
|
sub start_Instance { |
sub start_Instance { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
push(@{$dimension{'instances'}},$Apache::lonxml::curdepth); |
push(@{$dimension{'instances'}},$Apache::lonxml::curdepth); |
$instance_id=$Apache::lonxml::curdepth; |
push(@Apache::bridgetask::instance,$Apache::lonxml::curdepth); |
|
push(@Apache::bridgetask::instancelist,$Apache::lonxml::curdepth); |
return ''; |
return ''; |
} |
} |
|
|
Line 272 sub start_InstanceText {
|
Line 292 sub start_InstanceText {
|
|
|
sub end_InstanceText { |
sub end_InstanceText { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
|
my $instance_id=$Apache::bridgetask::instance[-1]; |
if ($target eq 'web') { |
if ($target eq 'web') { |
$dimension{$instance_id.'.text'}=&Apache::lonxml::endredirection(); |
$dimension{$instance_id.'.text'}=&Apache::lonxml::endredirection(); |
} |
} |
Line 288 sub start_Criteria {
|
Line 309 sub start_Criteria {
|
|
|
sub end_Criteria { |
sub end_Criteria { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
|
my $instance_id=$Apache::bridgetask::instance[-1]; |
if ($target eq 'web') { |
if ($target eq 'web') { |
my $criteria=&Apache::lonxml::endredirection(); |
my $criteria=&Apache::lonxml::endredirection(); |
my $id=$Apache::lonxml::curdepth; |
my $id=$Apache::lonxml::curdepth; |