version 1.6, 2009/12/21 15:51:29
|
version 1.9, 2010/01/05 23:54:31
|
Line 58 my @bins;
|
Line 58 my @bins;
|
my @optional; |
my @optional; |
my %mandatory; |
my %mandatory; |
my @development; |
my @development; |
my %developmentitems; |
|
|
|
sub setdefaults { |
sub setdefaults { |
$path='/res/gci/gci'; |
$path='/res/gci/gci'; |
Line 116 sub setdefaults {
|
Line 115 sub setdefaults {
|
$revreqs{$prereqs{$item}} = $item; |
$revreqs{$prereqs{$item}} = $item; |
} |
} |
@defchosen=('01','02','03','07','12','18','26','32','37','38','47','54','63','66','2004_73'); |
@defchosen=('01','02','03','07','12','18','26','32','37','38','47','54','63','66','2004_73'); |
@development = ('100','101','102'); |
@development = ('001','002','003','004','005','006','007','008','009','010','011','012','013','014'); |
%developmentitems = ('100' => 1, '101' => '1', '102' => '1'); |
|
} |
} |
|
|
sub checkvalid { |
sub checkvalid { |
Line 152 sub checkvalid {
|
Line 150 sub checkvalid {
|
} |
} |
|
|
sub fullurl { |
sub fullurl { |
my ($item)=@_; |
my ($item,$catname)=@_; |
unless ($item=~/^\_/) { $item='_'.$item; } |
unless ($item=~/\_/) { $item='_'.$item; } |
|
if ($catname eq 'development') { |
|
return $path.'/pilot/pilot'.$item.'.problem'; |
|
} |
return $path.'/'.$version.'/GCI'.$item.'.problem'; |
return $path.'/'.$version.'/GCI'.$item.'.problem'; |
} |
} |
|
|
sub item_from_url { |
sub item_from_url { |
my ($url)=@_; |
my ($url)=@_; |
if ($url =~ m{\Q$path\E/\Q$version\E/GCI_([^.]+)\.problem$}) { |
if ($url =~ m{\Q$path\E/\Q$version\E/GCI_?([^.]+)\.problem$}) { |
return $1; |
return $1; |
} |
} |
} |
} |
Line 181 sub validcheck {
|
Line 182 sub validcheck {
|
sub listresources { |
sub listresources { |
my ($r,$context,$cdom,$cnum)=@_; |
my ($r,$context,$cdom,$cnum)=@_; |
my $numchosen = scalar(@chosen); |
my $numchosen = scalar(@chosen); |
|
my $multipart = 0; |
|
my $composites; |
|
if ($numchosen > 0) { |
|
foreach my $key (keys(%prereqs)) { |
|
if (grep(/^\Q$key\E/,@chosen)) { |
|
$multipart ++; |
|
$numchosen --; |
|
} |
|
} |
|
if ($multipart) { |
|
$composites = &mt(' (of which [quant,_1,is a combination question,are combination questions] in which students select both an answer, and the reasoning used).',$multipart).'<br />'; |
|
} else { |
|
$composites = '. '; |
|
} |
|
} |
unless ($numchosen > 0) { |
unless ($numchosen > 0) { |
$r->print('<h3>'.&mt('Create a Concept Test').'</h3>'. |
$r->print('<h3>'.&mt('Create a Concept Test').'</h3>'. |
'<p>'.&mt('Choose how the test should be built:').'<br />'. |
'<p>'.&mt('Choose how the test should be built:').'<br />'. |
Line 196 sub listresources {
|
Line 212 sub listresources {
|
} else { |
} else { |
my $numsub = &get_submissions_count($cdom,$cnum); |
my $numsub = &get_submissions_count($cdom,$cnum); |
unless ($env{'form.phase'} eq 'storemap') { |
unless ($env{'form.phase'} eq 'storemap') { |
$r->print('<p>'.&mt('This course contains a valid concept test which includes [quant,_1,question].',$numchosen).' <a href="/adm/navmaps" target="_coursecontents">'.&mt('Display Contents').'</a><br />'); |
$r->print('<p>'.&mt('This course contains a valid concept test which includes [quant,_1,question]',$numchosen).$composites.'<a href="/adm/navmaps" target="_coursecontents">'.&mt('Display Contents').'</a><br />'); |
} |
} |
if ($numsub > 0) { |
if ($numsub > 0) { |
$r->print(&mt('As there are existing student submissions, modification of the [_1]contents[_2] of the Concept Test will result in loss of student performance data, and is [_3]not[_4] permitted.','<i>','</i>','<b>','</b>').'<br />'.&mt('Modification of open and close dates [_1]is[_2] permitted.','<b>','</b>').'</p>'); |
$r->print(&mt('As there are existing student submissions, modification of the [_1]contents[_2] of the Concept Test will result in loss of student performance data, and is [_3]not[_4] permitted.','<i>','</i>','<b>','</b>').'<br />'.&mt('Modification of open and close dates [_1]is[_2] permitted.','<b>','</b>').'</p>'); |
Line 309 sub display_questions {
|
Line 325 sub display_questions {
|
'</th><th>'.&mt('Preview').'</th>'. |
'</th><th>'.&mt('Preview').'</th>'. |
&Apache::loncommon::end_data_table_header_row(); |
&Apache::loncommon::end_data_table_header_row(); |
foreach my $item (@{$questions}) { |
foreach my $item (@{$questions}) { |
my $url = &fullurl($item); |
my $url = &fullurl($item,$catname); |
my $title = &Apache::lonnet::metadata($url,'title'); |
my $title = &Apache::lonnet::metadata($url,'title'); |
$output .= &Apache::loncommon::start_data_table_row().'<td>'; |
$output .= &Apache::loncommon::start_data_table_row().'<td>'; |
if (($catname eq 'mandatory') || ($catname eq 'development')) { |
if ($catname eq 'mandatory') { |
$output .= '<input type="hidden" name="item'.$item.'" value="checked" />'; |
$output .= '<input type="hidden" name="item'.$item.'" value="checked" />'; |
|
} elsif ($catname eq 'development') { |
|
$output .= '<input type="hidden" name="pilot'.$item.'" value="checked" />'; |
} else { |
} else { |
$output .= '<input type="checkbox" name="item'.$item.'"'; |
$output .= '<input type="checkbox" name="item'.$item.'"'; |
if ($chosenitems->{$item}) { $output .= ' checked="checked"'; } |
if ($chosenitems->{$item}) { $output .= ' checked="checked"'; } |
Line 402 sub chosen_to_map {
|
Line 420 sub chosen_to_map {
|
@LONCAPA::map::order=(); |
@LONCAPA::map::order=(); |
@LONCAPA::map::resources=(); |
@LONCAPA::map::resources=(); |
my $counter = 0; |
my $counter = 0; |
|
my $residx; |
for (my $idx=0;$idx<=$#allprobs;$idx++) { |
for (my $idx=0;$idx<=$#allprobs;$idx++) { |
my $residx=$idx+1; |
$residx=$idx+1; |
if ($chosenproblems{$allprobs[$idx]}) { |
if ($chosenproblems{$allprobs[$idx]}) { |
my $url = &LONCAPA::map::qtunescape(&fullurl($allprobs[$idx])); |
my $url = &LONCAPA::map::qtunescape(&fullurl($allprobs[$idx])); |
if (($revreqs{$allprobs[$idx]}) && |
if (($revreqs{$allprobs[$idx]}) && |
($chosenproblems{$revreqs{$allprobs[$idx]}})) { |
($chosenproblems{$revreqs{$allprobs[$idx]}})) { |
my $probnum = $allprobs[$idx].'_'.$revreqs{$allprobs[$idx]}; |
my $probnum = '_'.$allprobs[$idx].'_'.$revreqs{$allprobs[$idx]}; |
$url = &LONCAPA::map::qtunescape(&fullurl($probnum)); |
$url = &LONCAPA::map::qtunescape(&fullurl($probnum)); |
} elsif ($prereqs{$allprobs[$idx]}) { |
} elsif ($prereqs{$allprobs[$idx]}) { |
next; |
next; |
Line 419 sub chosen_to_map {
|
Line 438 sub chosen_to_map {
|
$LONCAPA::map::resources[$residx]=join(':', ($name, $url, 'false', 'normal', 'res')); |
$LONCAPA::map::resources[$residx]=join(':', ($name, $url, 'false', 'normal', 'res')); |
} |
} |
} |
} |
|
foreach my $devitem (@development) { |
|
if ($env{'form.pilot'.$devitem}) { |
|
my $url = &LONCAPA::map::qtunescape(&fullurl($devitem,'development')); |
|
$residx ++; |
|
push(@LONCAPA::map::order,$residx); |
|
$counter ++; |
|
my $name = &LONCAPA::map::qtunescape('Problem '.$counter); |
|
$LONCAPA::map::resources[$residx]=join(':', ($name, $url, 'false', 'normal', 'res')); |
|
} |
|
} |
} |
} |
|
|
sub map_to_chosen { |
sub map_to_chosen { |