version 1.1, 2009/09/24 22:18:52
|
version 1.4, 2009/12/02 18:35:59
|
Line 50 my %probcat;
|
Line 50 my %probcat;
|
my %prereqs; |
my %prereqs; |
my @defchosen; |
my @defchosen; |
my @chosen; |
my @chosen; |
|
my %mandatory; |
|
|
sub setdefaults { |
sub setdefaults { |
$path='/res/gci/gci'; |
$path='/res/gci/gci'; |
Line 88 sub setdefaults {
|
Line 89 sub setdefaults {
|
'61' => 'I' ,'62' => 'I' ,'63' => 'J' ,'64' => 'J' ,'65' => 'J' ,'66' => 'K' ,'67' => 'K' ,'68' => 'K' ,'69' => 'K' ,'70' => 'K' , |
'61' => 'I' ,'62' => 'I' ,'63' => 'J' ,'64' => 'J' ,'65' => 'J' ,'66' => 'K' ,'67' => 'K' ,'68' => 'K' ,'69' => 'K' ,'70' => 'K' , |
'71' => 'K' , |
'71' => 'K' , |
'2004_73' => 'M4'); |
'2004_73' => 'M4'); |
|
%mandatory=('01' => 1 ,'02' => 1,'37' => 1,'2004_73' => 1); |
%prereqs=('10' => '08', '57' => '52', '69' => '18'); |
%prereqs=('10' => '08', '57' => '52', '69' => '18'); |
@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'); |
} |
} |
Line 106 sub checkvalid {
|
Line 108 sub checkvalid {
|
} |
} |
foreach my $cat (@categories) { |
foreach my $cat (@categories) { |
unless ($covered{$cat}) { |
unless ($covered{$cat}) { |
push(@errors,&mt('Category [_1] not covered.',$cat)); |
push(@errors,&mt('Bin [_1] not covered.',$cat)); |
} |
} |
} |
} |
foreach my $item (@chosen) { |
foreach my $item (@chosen) { |
Line 125 sub fullurl {
|
Line 127 sub fullurl {
|
return $path.'/'.$version.'/GCI'.$item.'.problem'; |
return $path.'/'.$version.'/GCI'.$item.'.problem'; |
} |
} |
|
|
sub listresources { |
sub validcheck { |
my ($r)=@_; |
my ($r)=@_; |
my @errors=&checkvalid(); |
my @errors=&checkvalid(); |
if ($#errors>-1) { |
if ($#errors>-1) { |
Line 134 sub listresources {
|
Line 136 sub listresources {
|
$r->print('<li>'.$message.'</li>'); |
$r->print('<li>'.$message.'</li>'); |
} |
} |
$r->print('</ul></p>'); |
$r->print('</ul></p>'); |
|
return 0; |
|
} |
|
return 1; |
|
} |
|
|
|
sub listresources { |
|
my ($r)=@_; |
|
if ((!&validcheck($r)) || ($env{'form.editmyown'})) { |
|
&editor($r); |
|
} else { |
|
$r->print('<p><form name="choices" method="post">'); |
|
$r->print('<input type="submit" name="editmyown" value="'.&mt('Create Your Own Test').'" />'); |
|
$r->print('</form></p><p><form name="defaulting" method="post">'); |
|
$r->print('<input type="hidden" name="phase" value="storemap" />'); |
|
foreach my $item (@defchosen) { |
|
$r->print('<input type="hidden" name="item'.$item.'" value="checked"'); |
|
} |
|
$r->print('<input type="submit" name="defchosen" value="'.&mt('Let WebCenter Create a Test for You').'" />'); |
|
$r->print('</form><p>'); |
} |
} |
|
} |
|
|
|
sub editor { |
|
my ($r)=@_; |
my %chosen=(); |
my %chosen=(); |
foreach my $item (@chosen) { |
foreach my $item (@chosen) { |
$chosen{$item}=1; |
$chosen{$item}=1; |
} |
} |
$r->print('<form name="selecteditems" method="post">'); |
&Apache::lonnet::appenv({'request.gcicontext' => 'buildtest'}); |
$r->print('<p>'.&mt('You may select test items from the list below and then press "Store Problem Selection" at the bottom of the screen.').'</p>'); |
$r->print('<form name="selecteditems" method="post" action="/adm/coursedocs">'); |
|
$r->print('<p>'.&mt('You may select test items from the list below and then press "Store Problem Selection" at the bottom of the screen.').'</p>'); |
|
$r->print('<p>'.&mt('Tests should have at least one item from each bin and [_1] items total.',$reqnum).'</p>'); |
$r->print(&Apache::loncommon::start_data_table(). |
$r->print(&Apache::loncommon::start_data_table(). |
&Apache::loncommon::start_data_table_header_row(). |
&Apache::loncommon::start_data_table_header_row(). |
'<th>'.&mt('Select').'</th><th>'.&mt('Problem').'</th><th>'.&mt('Category').'</th><th>'.&mt('Preview').'</th>'. |
'<th>'.&mt('Select').'</th><th>'.&mt('Problem').'</th><th>'.&mt('Bin').'</th><th>'.&mt('Preview').'</th>'. |
&Apache::loncommon::end_data_table_header_row()); |
&Apache::loncommon::end_data_table_header_row()); |
foreach my $item (@allprobs) { |
foreach my $item (@allprobs) { |
$r->print(&Apache::loncommon::start_data_table_row()); |
$r->print(&Apache::loncommon::start_data_table_row()); |
$r->print('<td><font size="+3">'); |
$r->print('<td><font size="+3">'); |
$r->print('<input type="checkbox" name="item'.$item.'"'); |
if ($mandatory{$item}) { |
if ($chosen{$item}) { $r->print(' checked="checked"'); } |
$r->print('<input type="hidden" name="item'.$item.'" value="checked"'); |
|
} else { |
|
$r->print('<input type="checkbox" name="item'.$item.'"'); |
|
if ($chosen{$item}) { $r->print(' checked="checked"'); } |
|
} |
$r->print(' /></font></td>'); |
$r->print(' /></font></td>'); |
$r->print('<td><font size="+3">'.$item.'</font></td><td><font size="+3">'.$probcat{$item}.'</font></td>'); |
$r->print('<td><font size="+3">'.$item.'</font></td><td><font size="+3">'.$probcat{$item}.'</font></td>'); |
my $output=&Apache::lonindexer::showpreview(&fullurl($item)); |
my $output=&Apache::lonindexer::showpreview(&fullurl($item)); |
Line 160 sub listresources {
|
Line 191 sub listresources {
|
$r->print(&Apache::loncommon::end_data_table()); |
$r->print(&Apache::loncommon::end_data_table()); |
$r->print('<input type="hidden" name="phase" value="storemap" />'); |
$r->print('<input type="hidden" name="phase" value="storemap" />'); |
$r->print('<input type="submit" value="'.&mt('Store Problem Selection').'" /></form>'); |
$r->print('<input type="submit" value="'.&mt('Store Problem Selection').'" /></form>'); |
|
&Apache::lonnet::delenv('request.gcicontext'); |
} |
} |
|
|
sub evaluate { |
sub evaluate { |
Line 220 sub store {
|
Line 252 sub store {
|
if ($#errors>1) { return; } |
if ($#errors>1) { return; } |
&chosen_to_map(); |
&chosen_to_map(); |
&storemap_gci(); |
&storemap_gci(); |
unless ($#errors>-1) { |
if ($env{'form.phase'} eq 'storemap') { |
$r->print('<p>'.&mt('You have successfully assembled a valid test.'). |
unless ($#errors>-1) { |
|
$r->print('<p>'.&mt('You have successfully assembled a valid test.'). |
'<form name="reinitform" method="post" action="/adm/roles" target="loncapaclient">'. |
'<form name="reinitform" method="post" action="/adm/roles" target="loncapaclient">'. |
'<input type="hidden" name="orgurl" value="/adm/navmaps" /><input type="hidden" name="selectrole" value="1" />'. |
'<input type="hidden" name="orgurl" value="/adm/navmaps" /><input type="hidden" name="selectrole" value="1" />'. |
'<input type="hidden" name="'.$env{'request.role'}.'" value="1" /><input type="submit" value="'. |
'<input type="hidden" name="'.$env{'request.role'}.'" value="1" /><input type="submit" value="'. |
&mt('Activate Current Test').'" /></form></p>'); |
&mt('Activate Current Test').'" /></form></p>'); |
|
} |
} |
} |
} |
} |
|
|