version 1.168, 2006/06/13 15:45:54
|
version 1.169, 2006/06/13 20:28:49
|
Line 46 BEGIN {
|
Line 46 BEGIN {
|
&Apache::lonxml::register('Apache::bridgetask',('Task','IntroParagraph','Dimension','Question','QuestionText','Setup','Instance','InstanceText','Criteria','ClosingParagraph')); |
&Apache::lonxml::register('Apache::bridgetask',('Task','IntroParagraph','Dimension','Question','QuestionText','Setup','Instance','InstanceText','Criteria','ClosingParagraph')); |
} |
} |
|
|
my %dimension_info; |
my %dimension; |
sub initialize_bridgetask { |
sub initialize_bridgetask { |
# id of current Dimension, 0 means that no dimension is current |
# id of current Dimension, 0 means that no dimension is current |
# (inside <Task> only) |
# (inside <Task> only) |
Line 59 sub initialize_bridgetask {
|
Line 59 sub initialize_bridgetask {
|
@Apache::bridgetask::instancelist=(); |
@Apache::bridgetask::instancelist=(); |
# key of queud user data that we are currently grading |
# key of queud user data that we are currently grading |
$Apache::bridgetask::queue_key=''; |
$Apache::bridgetask::queue_key=''; |
undef(%dimension_info); |
undef(%dimension); |
} |
} |
|
|
sub proctor_check_auth { |
sub proctor_check_auth { |
Line 1917 sub start_Dimension {
|
Line 1917 sub start_Dimension {
|
push(@{$Apache::bridgetask::dimension{$previous_dim}{'contains'}}, |
push(@{$Apache::bridgetask::dimension{$previous_dim}{'contains'}}, |
$dim); |
$dim); |
# FIXME need to add as a 'criteria' for nesting |
# FIXME need to add as a 'criteria' for nesting |
|
$dimension{$previous_dim}{'criteria.'.$dim}=''; |
|
$dimension{$previous_dim}{'criteria.'.$dim.'.type'}='dimension'; |
|
$dimension{$previous_dim}{'criteria.'.$dim.'.mandatory'}= |
|
&Apache::lonxml::get_param('Mandatory',$parstack,$safeeval); |
|
push(@{$dimension{$previous_dim}{'criterias'}},$dim); |
} else { |
} else { |
$Apache::bridgetask::top_dimensionlist{$dim}{'manadatory'}= |
$Apache::bridgetask::top_dimensionlist{$dim}{'manadatory'}= |
&Apache::lonxml::get_param('Mandatory',$parstack,$safeeval); |
&Apache::lonxml::get_param('Mandatory',$parstack,$safeeval); |
Line 1931 sub start_QuestionText {
|
Line 1936 sub start_QuestionText {
|
my $dim = &get_dim_id(); |
my $dim = &get_dim_id(); |
my $text=&Apache::lonxml::get_all_text('/questiontext',$parser,$style); |
my $text=&Apache::lonxml::get_all_text('/questiontext',$parser,$style); |
if ($target eq 'grade' || $target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'grade' || $target eq 'web' || $target eq 'webgrade') { |
$dimension_info{$dim}{'questiontext'}=$text; |
$dimension{$dim}{'questiontext'}=$text; |
} |
} |
return ''; |
return ''; |
} |
} |
Line 1947 sub get_instance {
|
Line 1952 sub get_instance {
|
$rand_alg eq '64bit2' || $rand_alg eq '64bit3' || |
$rand_alg eq '64bit2' || $rand_alg eq '64bit3' || |
$rand_alg eq '64bit4' ) { |
$rand_alg eq '64bit4' ) { |
&Apache::response::pushrandomnumber(); |
&Apache::response::pushrandomnumber(); |
my @order=&Math::Random::random_permutation(@{$dimension_info{$dim}{'instances'}}); |
my @order=&Math::Random::random_permutation(@{$dimension{$dim}{'instances'}}); |
my $num=@order; |
my $num=@order; |
my $version=&get_version(); |
my $version=&get_version(); |
my $which=($version-1)%$num; |
my $which=($version-1)%$num; |
Line 1959 sub get_instance {
|
Line 1964 sub get_instance {
|
if (defined($instance)) { return $instance; } |
if (defined($instance)) { return $instance; } |
|
|
&Apache::response::pushrandomnumber(); |
&Apache::response::pushrandomnumber(); |
my @instances = @{$dimension_info{$dim}{'instances'}}; |
my @instances = @{$dimension{$dim}{'instances'}}; |
# remove disabled instances |
# remove disabled instances |
for (my $i=0; $i < $#instances; $i++) { |
for (my $i=0; $i < $#instances; $i++) { |
if ($dimension_info{$dim}{$instances[$i].'.disabled'}) { |
if ($dimension{$dim}{$instances[$i].'.disabled'}) { |
splice(@instances,$i,1); |
splice(@instances,$i,1); |
$i--; |
$i--; |
} |
} |
Line 1979 sub get_instance {
|
Line 1984 sub get_instance {
|
} |
} |
} |
} |
|
|
|
sub get_criteria { |
|
my ($what,$version,$dim,$id) = @_; |
|
my $type = $dimension{$dim}{'criteria.'.$id.'.type'}; |
|
my $prefix = ($type eq 'criteria') ? "$dim.$id" |
|
: "$id"; |
|
my $entry = "resource.$version.0.$prefix.$what"; |
|
if (exists($Apache::lonhomework::results{$entry})) { |
|
return $Apache::lonhomework::results{$entry}; |
|
} |
|
return $Apache::lonhomework::history{$entry}; |
|
} |
|
|
{ |
{ |
my $last_link; |
my $last_link; |
sub link { |
sub link { |
Line 1995 sub get_instance {
|
Line 2012 sub get_instance {
|
my $version=&get_version(); |
my $version=&get_version(); |
if ($target eq 'web') { |
if ($target eq 'web') { |
@Apache::scripttag::parser_env = @_; |
@Apache::scripttag::parser_env = @_; |
$result.=&Apache::scripttag::xmlparse($dimension_info{$dim}{'intro'}); |
$result.=&Apache::scripttag::xmlparse($dimension{$dim}{'intro'}); |
my @instances = $instance; |
my @instances = $instance; |
if (&Apache::response::showallfoils()) { |
if (&Apache::response::showallfoils()) { |
@instances = @{$dimension_info{$dim}{'instances'}}; |
@instances = @{$dimension{$dim}{'instances'}}; |
} |
} |
my $shown_question_text; |
my $shown_question_text; |
foreach my $instance (@instances) { |
foreach my $instance (@instances) { |
@Apache::scripttag::parser_env = @_; |
@Apache::scripttag::parser_env = @_; |
$result.=&Apache::scripttag::xmlparse($dimension_info{$dim}{$instance.'.text'}); |
$result.=&Apache::scripttag::xmlparse($dimension{$dim}{$instance.'.text'}); |
@Apache::scripttag::parser_env = @_; |
@Apache::scripttag::parser_env = @_; |
$result.=&Apache::scripttag::xmlparse($dimension_info{$dim}{'questiontext'}); |
$result.=&Apache::scripttag::xmlparse($dimension{$dim}{'questiontext'}); |
if ($Apache::lonhomework::history{"resource.$version.0.status"} eq 'pass' || |
|
$Apache::lonhomework::history{"resource.$version.0.status"} eq 'fail') { |
my $task_status = |
|
$Apache::lonhomework::history{"resource.$version.0.status"}; |
|
if ($task_status eq 'pass' || $task_status eq 'fail') { |
|
|
my $dim_status=$Apache::lonhomework::history{"resource.$version.0.$dim.status"}; |
my $dim_status=$Apache::lonhomework::history{"resource.$version.0.$dim.status"}; |
my $mandatory='Mandatory'; |
my $mandatory='Mandatory'; |
Line 2025 sub get_instance {
|
Line 2044 sub get_instance {
|
my $man_passed=0; |
my $man_passed=0; |
my $opt_count=0; |
my $opt_count=0; |
my $opt_passed=0; |
my $opt_passed=0; |
foreach my $id ( @{$dimension_info{$dim}{$instance.'.criterias'}}, |
foreach my $id ( @{$dimension{$dim}{$instance.'.criterias'}}, |
@{$dimension_info{$dim}{'criterias'}} ) { |
@{$dimension{$dim}{'criterias'}} ) { |
if ($dimension_info{$dim}{'criteria.'.$id.'.mandatory'} |
my $status = &get_criteria('status',$version,$dim,$id); |
|
if ($dimension{$dim}{'criteria.'.$id.'.mandatory'} |
eq 'N') { |
eq 'N') { |
$opt_count++; |
$opt_count++; |
if ($Apache::lonhomework::history{"resource.$version.0.$dim.$id.status"} eq 'pass') { |
if ($status eq 'pass') { $opt_passed++; } |
$opt_passed++; |
|
} |
|
} else { |
} else { |
$man_count++; |
$man_count++; |
if ($Apache::lonhomework::history{"resource.$version.0.$dim.$instance.$id.status"} eq 'pass') { |
if ($status eq 'pass') { $man_passed++; } |
$man_passed++; |
|
} |
|
} |
} |
} |
} |
if ($man_passed eq $man_count) { $man_passed='all'; } |
if ($man_passed eq $man_count) { $man_passed='all'; } |
|
|
my $opt_req=$dimension_info{$dim}{$instance.'.optionalrequired'}; |
my $opt_req=$dimension{$dim}{$instance.'.optionalrequired'}; |
if ($opt_req !~ /\S/) { |
if ($opt_req !~ /\S/) { |
$opt_req= |
$opt_req= |
&Apache::lonxml::get_param('OptionalRequired', |
&Apache::lonxml::get_param('OptionalRequired', |
Line 2054 sub get_instance {
|
Line 2070 sub get_instance {
|
my $internal_location=&internal_location($dim); |
my $internal_location=&internal_location($dim); |
$result=~s/\Q$internal_location\E/$dim_info/; |
$result=~s/\Q$internal_location\E/$dim_info/; |
|
|
foreach my $id (@{$dimension_info{$dim}{$instance.'.criterias'}}, |
foreach my $id (@{$dimension{$dim}{$instance.'.criterias'}}, |
@{$dimension_info{$dim}{'criterias'}}) { |
@{$dimension{$dim}{'criterias'}}) { |
my $status=$Apache::lonhomework::history{"resource.$version.0.$dim.$id.status"}; |
# FIXME need to collect the dimension style criteria |
my $comment=$Apache::lonhomework::history{"resource.$version.0.$dim.$id.comment"}; |
# and output them here. |
my $mandatory=($dimension_info{$dim}{'criteria.'.$id.'.mandatory'} ne 'N'); |
my $type = $dimension{$dim}{'criteria.'.$id.'.type'}; |
|
next if ($type eq 'dimension'); |
|
my $status= &get_criteria('status', $version,$dim,$id); |
|
my $comment=&get_criteria('comment',$version,$dim,$id); |
|
my $mandatory=($dimension{$dim}{'criteria.'.$id.'.mandatory'} ne 'N'); |
if ($mandatory) { |
if ($mandatory) { |
$mandatory='Mandatory'; |
$mandatory='Mandatory'; |
} else { |
} else { |
Line 2075 sub get_instance {
|
Line 2095 sub get_instance {
|
'<div class="LC_'.$status.' LC_criteria"><h4>' |
'<div class="LC_'.$status.' LC_criteria"><h4>' |
.$mandatory.' Criteria</h4><p>'; |
.$mandatory.' Criteria</h4><p>'; |
@Apache::scripttag::parser_env = @_; |
@Apache::scripttag::parser_env = @_; |
$result.=&Apache::scripttag::xmlparse($dimension_info{$dim}{'criteria.'.$id}); |
$result.=&Apache::scripttag::xmlparse($dimension{$dim}{'criteria.'.$id}); |
$result.='</p><p class="LC_grade">'.$status_display.'</p>'; |
$result.='</p><p class="LC_grade">'.$status_display.'</p>'; |
if ($Apache::lonhomework::history{"resource.$version.0.$dim.$id.comment"}) { |
if ($comment) { |
$result.='<p class="LC_comment">'.&mt('Comment: [_1]',$Apache::lonhomework::history{"resource.$version.0.$dim.$id.comment"}).'</p>'; |
$result.='<p class="LC_comment">'. |
|
&mt('Comment: [_1]',$comment).'</p>'; |
} |
} |
$result.='</div>'; |
$result.='</div>'; |
} |
} |
Line 2087 sub get_instance {
|
Line 2108 sub get_instance {
|
} elsif ($target eq 'webgrade') { |
} elsif ($target eq 'webgrade') { |
# in case of any side effects that we need |
# in case of any side effects that we need |
@Apache::scripttag::parser_env = @_; |
@Apache::scripttag::parser_env = @_; |
&Apache::scripttag::xmlparse($dimension_info{$dim}{'intro'}); |
&Apache::scripttag::xmlparse($dimension{$dim}{'intro'}); |
@Apache::scripttag::parser_env = @_; |
@Apache::scripttag::parser_env = @_; |
&Apache::scripttag::xmlparse($dimension_info{$dim}{$instance.'.text'}); |
&Apache::scripttag::xmlparse($dimension{$dim}{$instance.'.text'}); |
@Apache::scripttag::parser_env = @_; |
@Apache::scripttag::parser_env = @_; |
&Apache::scripttag::xmlparse($dimension_info{$dim}{'questiontext'}); |
&Apache::scripttag::xmlparse($dimension{$dim}{'questiontext'}); |
foreach my $id (@{$dimension_info{$dim}{$instance.'.criterias'}}, |
foreach my $id (@{$dimension{$dim}{$instance.'.criterias'}}, |
@{$dimension_info{$dim}{'criterias'}} ) { |
@{$dimension{$dim}{'criterias'}} ) { |
|
# dimensional 'criteria' don't get assigned grades |
|
my $type = $dimension{$dim}{'criteria.'.$id.'.type'}; |
|
next if ($type eq 'dimension'); |
|
|
my $link=&link($id); |
my $link=&link($id); |
my $status=$Apache::lonhomework::history{"resource.$version.0.$dim.$id.status"}; |
my $status= &get_criteria('status',$version,$dim,$id); |
$result.='<div class="LC_GRADING_criteria" id="'.$link.'">'."\n". |
$result.='<div class="LC_GRADING_criteria" id="'.$link.'">'."\n". |
'<div class="LC_GRADING_criteriatext" id="next_'.$last_link.'">'."\n"; |
'<div class="LC_GRADING_criteriatext" id="next_'.$last_link.'">'."\n"; |
@Apache::scripttag::parser_env = @_; |
@Apache::scripttag::parser_env = @_; |
$result.=&Apache::scripttag::xmlparse($dimension_info{$dim}{'criteria.'.$id}); |
$result.=&Apache::scripttag::xmlparse($dimension{$dim}{'criteria.'.$id}); |
$result.='</div>'."\n". |
$result.='</div>'."\n". |
#$dimension_info{$dim}{'criteria.'.$id}. |
#$dimension{$dim}{'criteria.'.$id}. |
'<div class="LC_GRADING_grade">'."\n". |
'<div class="LC_GRADING_grade">'."\n". |
'<label class="LC_GRADING_ungraded"><input type="radio" name="HWVAL_'.$link.'" value="ungraded" '.($status eq 'ungraded' || !$status ? 'checked="checked"':'').' />'.&mt('Ungraded').'</label>'."\n". |
'<label class="LC_GRADING_ungraded"><input type="radio" name="HWVAL_'.$link.'" value="ungraded" '.($status eq 'ungraded' || !$status ? 'checked="checked"':'').' />'.&mt('Ungraded').'</label>'."\n". |
'<label class="LC_GRADING_fail"><input type="radio" name="HWVAL_'.$link.'" value="fail" '.($status eq 'fail' ? 'checked="checked"':'').' />'.&mt('Fail').'</label>'."\n". |
'<label class="LC_GRADING_fail"><input type="radio" name="HWVAL_'.$link.'" value="fail" '.($status eq 'fail' ? 'checked="checked"':'').' />'.&mt('Fail').'</label>'."\n". |
Line 2109 sub get_instance {
|
Line 2134 sub get_instance {
|
'<label class="LC_GRADING_review"><input type="radio" name="HWVAL_'.$link.'" value="review" '.($status eq 'review' ? 'checked="checked"':'').' />'.&mt('Review').'</label>'."\n". |
'<label class="LC_GRADING_review"><input type="radio" name="HWVAL_'.$link.'" value="review" '.($status eq 'review' ? 'checked="checked"':'').' />'.&mt('Review').'</label>'."\n". |
'</div>'."\n". |
'</div>'."\n". |
'<label class="LC_GRADING_comment">'.&mt('Additional Comment for Student')."\n". |
'<label class="LC_GRADING_comment">'.&mt('Additional Comment for Student')."\n". |
'<textarea class="LC_GRADING_comment_area" name="HWVAL_comment_'.$link.'">'.&HTML::Entities::encode($Apache::lonhomework::history{"resource.$version.0.$dim.$id.comment"}).'</textarea>'."\n". |
'<textarea class="LC_GRADING_comment_area" name="HWVAL_comment_'.$link.'">'.&HTML::Entities::encode(&get_criteria('comment',$version,$dim,$id),'<>"&').'</textarea>'."\n". |
'</label>'."\n". |
'</label>'."\n". |
'<ul class="LC_GRADING_navbuttons">'."\n". |
'<ul class="LC_GRADING_navbuttons">'."\n". |
'<li><a href="#'.$last_link.'">Prev</a></li>'."\n". |
'<li><a href="#'.$last_link.'">Prev</a></li>'."\n". |
Line 2126 sub get_instance {
|
Line 2151 sub get_instance {
|
my $review=0; |
my $review=0; |
|
|
@Apache::scripttag::parser_env = @_; |
@Apache::scripttag::parser_env = @_; |
$result.=&Apache::scripttag::xmlparse($dimension_info{$dim}{'intro'}); |
$result.=&Apache::scripttag::xmlparse($dimension{$dim}{'intro'}); |
@Apache::scripttag::parser_env = @_; |
@Apache::scripttag::parser_env = @_; |
$result.=&Apache::scripttag::xmlparse($dimension_info{$dim}{$instance.'.text'}); |
$result.=&Apache::scripttag::xmlparse($dimension{$dim}{$instance.'.text'}); |
@Apache::scripttag::parser_env = @_; |
@Apache::scripttag::parser_env = @_; |
&Apache::scripttag::xmlparse($dimension_info{$dim}{'questiontext'}); |
&Apache::scripttag::xmlparse($dimension{$dim}{'questiontext'}); |
|
|
foreach my $id (@{$dimension_info{$dim}{$instance.'.criterias'}}, |
foreach my $id (@{$dimension{$dim}{$instance.'.criterias'}}, |
@{$dimension_info{$dim}{'criterias'}}) { |
@{$dimension{$dim}{'criterias'}}) { |
my $link=&link($id); |
my $link=&link($id); |
my $status=$Apache::lonhomework::results{"resource.$version.0.$dim.$id.status"}=$env{'form.HWVAL_'.$link}; |
|
$Apache::lonhomework::results{"resource.$version.0.$dim.$id.comment"}=$env{'form.HWVAL_comment_'.$link}; |
my $type = $dimension{$dim}{'criteria.'.$id.'.type'}; |
my $mandatory=($dimension_info{$dim}{'criteria.'.$id.'.mandatory'} ne 'N'); |
if ($type eq 'criteria') { |
|
# dimensional 'criteria' don't get assigned grades |
|
$Apache::lonhomework::results{"resource.$version.0.$dim.$id.status"}=$env{'form.HWVAL_'.$link}; |
|
$Apache::lonhomework::results{"resource.$version.0.$dim.$id.comment"}=$env{'form.HWVAL_comment_'.$link}; |
|
} |
|
my $status= &get_criteria('status',$version,$dim,$id); |
|
|
|
my $mandatory=($dimension{$dim}{'criteria.'.$id.'.mandatory'} ne 'N'); |
if ($status eq 'pass') { |
if ($status eq 'pass') { |
if (!$mandatory) { $optional_passed++; } |
if (!$mandatory) { $optional_passed++; } |
} elsif ($status eq 'fail') { |
} elsif ($status eq 'fail') { |
Line 2151 sub get_instance {
|
Line 2183 sub get_instance {
|
} |
} |
} |
} |
# FIXME optional required can apply to only <instance> right now... |
# FIXME optional required can apply to only <instance> right now... |
my $opt_req=$dimension_info{$dim}{$instance.'.optionalrequired'}; |
my $opt_req=$dimension{$dim}{$instance.'.optionalrequired'}; |
if ($opt_req !~ /\S/) { |
if ($opt_req !~ /\S/) { |
$opt_req= |
$opt_req= |
&Apache::lonxml::get_param('OptionalRequired', |
&Apache::lonxml::get_param('OptionalRequired', |
Line 2161 sub get_instance {
|
Line 2193 sub get_instance {
|
if ($optional_passed < $opt_req) { |
if ($optional_passed < $opt_req) { |
$mandatory_failed++; |
$mandatory_failed++; |
} |
} |
&Apache::lonxml::debug("all instance ".join(':',@{$dimension_info{$dim}{$instance.'.criterias'}})." results -> m_f $mandatory_failed o_p $optional_passed u $ungraded r $review"); |
&Apache::lonxml::debug("all instance ".join(':',@{$dimension{$dim}{$instance.'.criterias'}})." results -> m_f $mandatory_failed o_p $optional_passed u $ungraded r $review"); |
if ($review) { |
if ($review) { |
$Apache::lonhomework::results{"resource.$version.0.$dim.status"}= |
$Apache::lonhomework::results{"resource.$version.0.$dim.status"}= |
'review'; |
'review'; |
Line 2179 sub get_instance {
|
Line 2211 sub get_instance {
|
# any other targets no output |
# any other targets no output |
undef($result); |
undef($result); |
} |
} |
|
pop(@Apache::bridgetask::dimension); |
return $result; |
return $result; |
} |
} |
|
|
Line 2190 sub get_instance {
|
Line 2223 sub get_instance {
|
my $version=&get_version(); |
my $version=&get_version(); |
if ($target eq 'web') { |
if ($target eq 'web') { |
@Apache::scripttag::parser_env = @_; |
@Apache::scripttag::parser_env = @_; |
$result.=&Apache::scripttag::xmlparse($dimension_info{$dim}{'intro'}); |
$result.=&Apache::scripttag::xmlparse($dimension{$dim}{'intro'}); |
my @instances = $instance; |
my @instances = $instance; |
if (&Apache::response::showallfoils()) { |
if (&Apache::response::showallfoils()) { |
@instances = @{$dimension_info{$dim}{'instances'}}; |
@instances = @{$dimension{$dim}{'instances'}}; |
} |
} |
foreach my $instance (@instances) { |
foreach my $instance (@instances) { |
@Apache::scripttag::parser_env = @_; |
@Apache::scripttag::parser_env = @_; |
$result.=&Apache::scripttag::xmlparse($dimension_info{$dim}{$instance.'.text'}); |
$result.=&Apache::scripttag::xmlparse($dimension{$dim}{$instance.'.text'}); |
@Apache::scripttag::parser_env = @_; |
@Apache::scripttag::parser_env = @_; |
$result.=&Apache::scripttag::xmlparse($dimension_info{$dim}{'questiontext'}); |
$result.=&Apache::scripttag::xmlparse($dimension{$dim}{'questiontext'}); |
} |
} |
} elsif ($target eq 'webgrade' |
} elsif ($target eq 'webgrade' |
|| $target eq 'grade' && $env{'form.webgrade'}) { |
|| $target eq 'grade' && $env{'form.webgrade'}) { |
# in case of any side effects that we need |
# in case of any side effects that we need |
@Apache::scripttag::parser_env = @_; |
@Apache::scripttag::parser_env = @_; |
&Apache::scripttag::xmlparse($dimension_info{$dim}{'intro'}); |
&Apache::scripttag::xmlparse($dimension{$dim}{'intro'}); |
@Apache::scripttag::parser_env = @_; |
@Apache::scripttag::parser_env = @_; |
&Apache::scripttag::xmlparse($dimension_info{$dim}{$instance.'.text'}); |
&Apache::scripttag::xmlparse($dimension{$dim}{$instance.'.text'}); |
@Apache::scripttag::parser_env = @_; |
@Apache::scripttag::parser_env = @_; |
&Apache::scripttag::xmlparse($dimension_info{$dim}{'questiontext'}); |
&Apache::scripttag::xmlparse($dimension{$dim}{'questiontext'}); |
} else { |
} else { |
# any other targets no output |
# any other targets no output |
undef($result); |
undef($result); |
} |
} |
|
pop(@Apache::bridgetask::dimension); |
return $result; |
return $result; |
} |
} |
} |
} |
Line 2256 sub start_IntroParagraph {
|
Line 2290 sub start_IntroParagraph {
|
my $dim = &get_dim_id(); |
my $dim = &get_dim_id(); |
if ($target eq 'grade' || $target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'grade' || $target eq 'web' || $target eq 'webgrade') { |
if ($tagstack->[-2] eq 'Dimension' || $tagstack->[-2] eq 'Question' ) { |
if ($tagstack->[-2] eq 'Dimension' || $tagstack->[-2] eq 'Question' ) { |
$dimension_info{$dim}{'intro'}= |
$dimension{$dim}{'intro'}= |
&Apache::lonxml::get_all_text('/introparagraph', |
&Apache::lonxml::get_all_text('/introparagraph', |
$parser,$style); |
$parser,$style); |
} elsif ($tagstack->[-2] eq 'Task' && $target eq 'webgrade') { |
} elsif ($tagstack->[-2] eq 'Task' && $target eq 'webgrade') { |
Line 2278 sub start_Instance {
|
Line 2312 sub start_Instance {
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my $dim = &get_dim_id(); |
my $dim = &get_dim_id(); |
my $id = &get_id($parstack,$safeeval); |
my $id = &get_id($parstack,$safeeval); |
push(@{$dimension_info{$dim}{'instances'}},$id); |
push(@{$dimension{$dim}{'instances'}},$id); |
push(@{$Apache::bridgetask::instance{$dim}},$id); |
push(@{$Apache::bridgetask::instance{$dim}},$id); |
push(@Apache::bridgetask::instancelist,$id); |
push(@Apache::bridgetask::instancelist,$id); |
$dimension_info{$dim}{$id.'.optionalrequired'}= |
$dimension{$dim}{$id.'.optionalrequired'}= |
&Apache::lonxml::get_param('OptionalRequired',$parstack,$safeeval); |
&Apache::lonxml::get_param('OptionalRequired',$parstack,$safeeval); |
my $disabled = &Apache::lonxml::get_param('Disabled',$parstack,$safeeval); |
my $disabled = &Apache::lonxml::get_param('Disabled',$parstack,$safeeval); |
if (lc($disabled) eq 'yes') { |
if (lc($disabled) eq 'yes') { |
$dimension_info{$dim}{$id.'.disabled'}='1'; |
$dimension{$dim}{$id.'.disabled'}='1'; |
} |
} |
return ''; |
return ''; |
} |
} |
Line 2299 sub start_InstanceText {
|
Line 2333 sub start_InstanceText {
|
my $instance_id=$Apache::bridgetask::instance{$dim}[-1]; |
my $instance_id=$Apache::bridgetask::instance{$dim}[-1]; |
my $text=&Apache::lonxml::get_all_text('/instancetext',$parser,$style); |
my $text=&Apache::lonxml::get_all_text('/instancetext',$parser,$style); |
if ($target eq 'grade' || $target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'grade' || $target eq 'web' || $target eq 'webgrade') { |
$dimension_info{$dim}{$instance_id.'.text'}=$text; |
$dimension{$dim}{$instance_id.'.text'}=$text; |
} |
} |
return ''; |
return ''; |
} |
} |
Line 2314 sub start_Criteria {
|
Line 2348 sub start_Criteria {
|
if ($target eq 'web' || $target eq 'webgrade' || $target eq 'grade') { |
if ($target eq 'web' || $target eq 'webgrade' || $target eq 'grade') { |
my $dim = &get_dim_id(); |
my $dim = &get_dim_id(); |
my $id=&get_id($parstack,$safeeval); |
my $id=&get_id($parstack,$safeeval); |
|
&Apache::lonxml::debug("Criteria $id with $dim"); |
if (&Apache::londefdef::is_inside_of($tagstack,'Instance')) { |
if (&Apache::londefdef::is_inside_of($tagstack,'Instance')) { |
my $instance_id=$Apache::bridgetask::instance{$dim}[-1]; |
my $instance_id=$Apache::bridgetask::instance{$dim}[-1]; |
$dimension_info{$dim}{"criteria.$instance_id.$id"}=$criteria; |
$dimension{$dim}{"criteria.$instance_id.$id"}=$criteria; |
$dimension_info{$dim}{"criteria.$instance_id.$id.mandatory"}= |
$dimension{$dim}{"criteria.$instance_id.$id.type"}='criteria'; |
|
$dimension{$dim}{"criteria.$instance_id.$id.mandatory"}= |
&Apache::lonxml::get_param('Mandatory',$parstack,$safeeval); |
&Apache::lonxml::get_param('Mandatory',$parstack,$safeeval); |
push(@{$dimension_info{$dim}{$instance_id.'.criterias'}},"$instance_id.$id"); |
push(@{$dimension{$dim}{$instance_id.'.criterias'}},"$instance_id.$id"); |
} else { |
} else { |
$dimension_info{$dim}{'criteria.'.$id}=$criteria; |
$dimension{$dim}{'criteria.'.$id}=$criteria; |
$dimension_info{$dim}{'criteria.'.$id.'.mandatory'}= |
$dimension{$dim}{'criteria.'.$id.'.type'}='criteria'; |
|
$dimension{$dim}{'criteria.'.$id.'.mandatory'}= |
&Apache::lonxml::get_param('Mandatory',$parstack,$safeeval); |
&Apache::lonxml::get_param('Mandatory',$parstack,$safeeval); |
push(@{$dimension_info{$dim}{'criterias'}},$id); |
push(@{$dimension{$dim}{'criterias'}},$id); |
} |
} |
} |
} |
return ''; |
return ''; |