--- loncom/interface/slotrequest.pm 2008/12/11 14:55:15 1.84 +++ loncom/interface/slotrequest.pm 2009/05/17 21:03:16 1.88.2.1 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler for requesting to have slots added to a students record # -# $Id: slotrequest.pm,v 1.84 2008/12/11 14:55:15 bisitz Exp $ +# $Id: slotrequest.pm,v 1.88.2.1 2009/05/17 21:03:16 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -165,6 +165,9 @@ sub check_for_reservation { sub get_consumed_uniqueperiods { my ($slots) = @_; my $navmap=Apache::lonnavmaps::navmap->new; + if (!defined($navmap)) { + return 'error: Unable to determine current status'; + } my @problems = $navmap->retrieveResources(undef, sub { $_[0]->is_problem() },1,0); my %used_slots; @@ -214,9 +217,13 @@ sub check_for_conflict { if (!ref($consumed_uniqueperiods)) { $consumed_uniqueperiods = &get_consumed_uniqueperiods($slots); - if (&Apache::lonnet::error(%$consumed_uniqueperiods)) { - return 'error: Unable to determine current status'; - } + if (ref($consumed_uniqueperiods) eq 'HASH') { + if (&Apache::lonnet::error(%$consumed_uniqueperiods)) { + return 'error: Unable to determine current status'; + } + } else { + return 'error: Unable to determine current status'; + } } my ($new_uniq_start,$new_uniq_end) = @{$new_slot->{'uniqueperiod'}}; @@ -229,7 +236,6 @@ sub check_for_conflict { } } return undef; - } sub make_reservation { @@ -339,8 +345,8 @@ sub remove_registration { return; } if (!%consumed) { - $r->print("
".&mt('Slot [_1] has no reservations.', - $slot_name)."
"); + $r->print(''.&mt('Slot [_1] has no reservations.', + ''.$slot_name.'').'
'); return; } @@ -413,7 +419,11 @@ sub release_all_slot { my ($result,$msg) = &release_reservation($slot_name,$uname,$udom, $consumed{$entry}{'symb'},$mgr); - $r->print("$msg
"); + if (!$result) { + $r->print(''.&mt($msg).'
'); + } else { + $r->print("$msg
"); + } $r->rflush(); } $r->print(''.
@@ -439,7 +449,11 @@ sub release_slot {
my ($result,$msg) =
&release_reservation($slot_name,$uname,$udom,$symb,$mgr);
- $r->print(" $msg '.&mt($msg).' $msg
-or +$lt{'or'}
- -or STUFF - if (!$inhibit_return_link) { &return_link($r); } + if (!$inhibit_return_link) { + $r->print(&mt('or').''); + &return_link($r); + } else { + $r->print(''); + } return 0; } @@ -737,7 +758,9 @@ sub allowed_slot { my $conflict = &check_for_conflict($symb,$slot_name,$slot,$slots, $consumed_uniqueperiods); - if ($conflict) { + if ($conflict =~ /^error: /) { + return 0; + } elsif ($conflict ne '') { if ($slots->{$conflict}{'starttime'} < time) { return 0; } @@ -763,10 +786,29 @@ sub show_choices { my ($cnum,$cdom)=&get_course(); my %slots=&Apache::lonnet::dump('slots',$cdom,$cnum); my $consumed_uniqueperiods = &get_consumed_uniqueperiods(\%slots); + if (ref($consumed_uniqueperiods) eq 'HASH') { + if (&Apache::lonnet::error(%$consumed_uniqueperiods)) { + $r->print(''. + &mt('An error occurred determining slot availability'). + ''); + return; + } + } elsif ($consumed_uniqueperiods =~ /^error: /) { + $r->print(''. + &mt('An error occurred determining slot availability'). + ''); + return; + } my $available; - $r->print('' + .&mt('Slot: [_1] has unknown status.',$description) + .' | |
No available times. '.
+ $r->print(''.&mt('No available times.').
+ ' '.
&mt('Return to last resource').' | |
Created $countdone slots\n
"); + $r->print(''.&mt('Created [quant,_1,slot]',$countdone)."\n".'
'); foreach my $error (@errors) { - $r->print("$error
\n"); + $r->print(''.$error.'
'."\n"); } &show_table($r,$mgr); return ''; @@ -1655,7 +1705,7 @@ sub handler { &release_slot($r,$symb,$env{'form.releaseslot'}); } } else { - $r->print("Unknown command: ".$env{'form.command'}."
"); + $r->print(''.&mt('Unknown command: [_1]',$env{'form.command'}).'
'); } } &end_page($r);