--- loncom/interface/lonparmset.pm 2009/03/01 01:12:20 1.436 +++ loncom/interface/lonparmset.pm 2009/05/08 22:47:01 1.445 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set parameters for assessments # -# $Id: lonparmset.pm,v 1.436 2009/03/01 01:12:20 raeburn Exp $ +# $Id: lonparmset.pm,v 1.445 2009/05/08 22:47:01 neumanie Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1076,12 +1076,20 @@ sub print_td { my ($r,$which,$defbg,$result,$outpar,$mprefix,$value,$typeoutpar,$display)=@_; $r->print('
');
+
+ $r->print(' ');
+ $r->print(' Step 1'); + $r->print('' );
+ $r->print(&Apache::lonhtmlcommon::start_pick_box());
+
&levelmenu($r,\%alllevs,$parmlev);
- $r->print(' | ');
- if ($parmlev ne 'general') {
- $r->print(''); - &mapmenu($r,\%allmaps,$pschp,\%maptitles); - $r->print(' | '); - } - $r->print('
'.$message.'
'); @@ -2457,9 +2511,6 @@ sub crsenv { } } - my $start_table =&Apache::loncommon::start_data_table(); - my $start_header_row=&Apache::loncommon::start_data_table_header_row(); - my $end_header_row =&Apache::loncommon::end_data_table_header_row(); # ------------------------- Re-init course environment entries for this session &Apache::lonnet::coursedescription($env{'request.course.id'}, @@ -2471,7 +2522,14 @@ sub crsenv { my $SelectStyleFile=&mt('Select Style File'); my $SelectSpreadsheetFile=&mt('Select Spreadsheet File'); my $output=''; + my $output_SB = ''; # will be replaced by "$output" when all changes are done my $can_categorize; + my %lt=&Apache::lonlocal::texthash( + 'par' => 'Parameter', + 'val' => 'Value', + 'set' => 'Set?', + 'sav' => 'Save', + ); if (! exists($values{'con_lost'})) { my %descriptions= ('url' => ''.&mt('Top Level Map').'');
+ #$r->print('
');
+ $r->print(' ');
+
$r->print('');
-
+
# Build the list data hash from the specified parms
my $listdata;
@@ -4392,12 +4604,12 @@ ENDINPUTDATE
} elsif ($defkeytype{$tempkey} eq 'string_yesno') {
my $yeschecked='';
my $nochecked='';
- if (&rulescache($tempkey.'_value') eq 'yes') { $yeschecked='checked="checked"'; }
- if (&rulescache($tempkey.'_value') eq 'no') { $nochecked='checked="checked"'; }
+ if (&rulescache($tempkey.'_value') eq 'yes') { $yeschecked=' checked="checked"'; }
+ if (&rulescache($tempkey.'_value') eq 'no') { $nochecked=' checked="checked"'; }
$r->print(<' );
my $sortorder=$env{'form.sortorder'};
unless ($sortorder) { $sortorder='realmstudent'; }
&sortmenu($r,$sortorder);
-
+ $r->print(' - + + ENDYESNO } else { $r->print(''); @@ -4642,6 +4854,94 @@ sub parm_change_log { $r->print(&Apache::loncommon::end_page()); } +sub update_slots { + my ($slot_name,$cdom,$cnum,$symb,$uname,$udom) = @_; + my %slot=&Apache::lonnet::get_slot($slot_name); + if (!keys(%slot)) { + return 'error: slot does not exist'; + } + my $max=$slot{'maxspace'}; + if (!defined($max)) { $max=99999; } + + my %consumed=&Apache::lonnet::dump('slot_reservations',$cdom,$cnum, + "^$slot_name\0"); + my ($tmp)=%consumed; + if ($tmp=~/^error: 2 / ) { + return 'error: unable to determine current slot status'; + } + my $last=0; + foreach my $key (keys(%consumed)) { + my $num=(split('\0',$key))[1]; + if ($num > $last) { $last=$num; } + if ($consumed{$key}->{'name'} eq $uname.':'.$udom) { + return 'ok'; + } + } + + if (scalar(keys(%consumed)) >= $max) { + return 'error: no space left in slot'; + } + my $wanted=$last+1; + + my %reservation=('name' => $uname.':'.$udom, + 'timestamp' => time, + 'symb' => $symb); + + my $success=&Apache::lonnet::newput('slot_reservations', + {"$slot_name\0$wanted" => + \%reservation}, + $cdom, $cnum); + if ($success eq 'ok') { + my %storehash = ( + symb => $symb, + slot => $slot_name, + action => 'reserve', + context => 'parameter', + ); + &Apache::lonnet::instructor_log('slotreservationslog',\%storehash, + '',$uname,$udom,$cnum,$cdom); + + &Apache::lonnet::instructor_log($cdom.'_'.$cnum.'_slotlog',\%storehash, + '',$uname,$udom,$uname,$udom); + } + return $success; +} + +sub delete_slots { + my ($slot_name,$cdom,$cnum,$uname,$udom,$symb) = @_; + my $delresult; + my %consumed = &Apache::lonnet::dump('slot_reservations',$cdom, + $cnum, "^$slot_name\0"); + if (&Apache::lonnet::error(%consumed)) { + return 'error: unable to determine current slot status'; + } + my ($tmp)=%consumed; + if ($tmp=~/^error: 2 /) { + return 'error: unable to determine current slot status'; + } + foreach my $key (keys(%consumed)) { + if ($consumed{$key}->{'name'} eq $uname.':'.$udom) { + my $num=(split('\0',$key))[1]; + my $entry = $slot_name.'\0'.$num; + $delresult = &Apache::lonnet::del('slot_reservations',[$entry], + $cdom,$cnum); + if ($delresult eq 'ok') { + my %storehash = ( + symb => $symb, + slot => $slot_name, + action => 'release', + context => 'parameter', + ); + &Apache::lonnet::instructor_log('slotreservationslog',\%storehash, + 1,$uname,$udom,$cnum,$cdom); + &Apache::lonnet::instructor_log($cdom.'_'.$cnum.'_slotlog',\%storehash, + 1,$uname,$udom,$uname,$udom); + } + } + } + return $delresult; +} + sub check_for_course_info { my $navmap = Apache::lonnavmaps::navmap->new(); return 1 if ($navmap); @@ -4671,7 +4971,8 @@ sub handler { text=>"Parameter Manager", faq=>10, bug=>'Instructor Interface', - help => 'Parameter_Manager'}); + help => + 'Parameter_Manager,Course_Environment,Parameter_Helper,Parameter_Overview,Table_Mode'}); # ----------------------------------------------------- Needs to be in a course my $parm_permission = |