version 1.34, 2005/11/21 19:50:36
|
version 1.36, 2005/11/21 22:16:24
|
Line 524 STUFF
|
Line 524 STUFF
|
} |
} |
|
|
sub to_show { |
sub to_show { |
my ($when,$slot) = @_; |
my ($slot,$when,$deleted) = @_; |
my $time=time; |
my $time=time; |
my $week=60*60*24*7; |
my $week=60*60*24*7; |
if ($when eq 'now') { |
if ($deleted eq 'hide' && $slot->{'type'} eq 'deleted') { |
|
return 0; |
|
} |
|
if ($when eq 'any') { |
|
return 1; |
|
} elsif ($when eq 'now') { |
if ($time > $slot->{'starttime'} && |
if ($time > $slot->{'starttime'} && |
$time < $slot->{'endtime'}) { |
$time < $slot->{'endtime'}) { |
return 1; |
return 1; |
Line 605 sub show_table {
|
Line 610 sub show_table {
|
$r->print('</div>'); |
$r->print('</div>'); |
} |
} |
|
|
my %Saveable_Parameters = ('show' => 'array', |
my %Saveable_Parameters = ('show' => 'array', |
'when' => 'scalar', |
'when' => 'scalar', |
'order' => 'scalar'); |
'order' => 'scalar', |
|
'deleted' => 'scalar', |
|
); |
&Apache::loncommon::store_course_settings('slotrequest',\%Saveable_Parameters); |
&Apache::loncommon::store_course_settings('slotrequest',\%Saveable_Parameters); |
&Apache::loncommon::restore_course_settings('slotrequest',\%Saveable_Parameters); |
&Apache::loncommon::restore_course_settings('slotrequest',\%Saveable_Parameters); |
|
|
Line 634 sub show_table {
|
Line 640 sub show_table {
|
my %show = map { $_ => 1 } (@show); |
my %show = map { $_ => 1 } (@show); |
|
|
my %when_fields=&Apache::lonlocal::texthash( |
my %when_fields=&Apache::lonlocal::texthash( |
'now' => 'Open now', |
'now' => 'Open now', |
'nextweek' => 'Open within the next week', |
'nextweek' => 'Open within the next week', |
'lastweek' => 'Were open last week', |
'lastweek' => 'Were open last week', |
'willopen' => 'Will open later', |
'willopen' => 'Will open later', |
'wereopen' => 'Were open'); |
'wereopen' => 'Were open', |
my @when_order=('now','nextweek','lastweek','willopen','wereopen'); |
'any' => 'Anytime', |
|
); |
|
my @when_order=('any','now','nextweek','lastweek','willopen','wereopen'); |
$when_fields{'select_form_order'} = \@when_order; |
$when_fields{'select_form_order'} = \@when_order; |
my $when = (exists($env{'form.when'})) ? $env{'form.when'} |
my $when = (exists($env{'form.when'})) ? $env{'form.when'} |
: 'now'; |
: 'now'; |
|
|
|
my $hide_radio = |
|
&Apache::lonhtmlcommon::radio('deleted',$env{'form.deleted'},'hide'); |
|
my $show_radio = |
|
&Apache::lonhtmlcommon::radio('deleted',$env{'form.deleted'},'show'); |
|
|
$r->print('<form method="POST" action="/adm/slotrequest"> |
$r->print('<form method="POST" action="/adm/slotrequest"> |
<input type="hidden" name="command" value="showslots" />'); |
<input type="hidden" name="command" value="showslots" />'); |
$r->print('<div>'); |
$r->print('<div>'); |
$r->print('<table class="inline"><tr><th>'.&mt('Show').'</th><th>'.&mt('Open').'</th></tr><tr><td>'.&Apache::loncommon::multiple_select_form('show',\@show,6,\%show_fields,\@show_order). |
$r->print('<table class="inline"> |
'</td><td>'.&Apache::loncommon::select_form($when,'when',%when_fields). |
<tr><th>'.&mt('Show').'</th> |
'</td></tr></table>'); |
<th>'.&mt('Open').'</th> |
|
<th>'.&mt('Options').'</th> |
|
</tr> |
|
<tr><td>'.&Apache::loncommon::multiple_select_form('show',\@show,6,\%show_fields,\@show_order). |
|
'</td> |
|
<td>'.&Apache::loncommon::select_form($when,'when',%when_fields). |
|
'</td> |
|
<td> |
|
<table> |
|
<tr> |
|
<td rowspan="2">Deleted slots:</td> |
|
<td><label>'.$show_radio.'Show</label></td> |
|
</tr> |
|
<tr> |
|
<td><label>'.$hide_radio.'Hide</label></td> |
|
</tr> |
|
</table> |
|
</td> |
|
</tr> |
|
</table>'); |
$r->print('</div>'); |
$r->print('</div>'); |
$r->print('<p><input type="submit" name="start" value="'.&mt('Update Display').'" /></p>'); |
$r->print('<p><input type="submit" name="start" value="'.&mt('Update Display').'" /></p>'); |
my $linkstart='<a href="/adm/slotrequest?command=showslots&order='; |
my $linkstart='<a href="/adm/slotrequest?command=showslots&order='; |
Line 691 sub show_table {
|
Line 723 sub show_table {
|
return $slots{$a}->{'starttime'} <=> $slots{$b}->{'starttime'}; |
return $slots{$a}->{'starttime'} <=> $slots{$b}->{'starttime'}; |
}; |
}; |
foreach my $slot (sort $slotsort (keys(%slots))) { |
foreach my $slot (sort $slotsort (keys(%slots))) { |
if (!&to_show($when,$slots{$slot})) { next; } |
if (!&to_show($slots{$slot},$when,$env{'form.deleted'})) { next; } |
if (defined($slots{$slot}->{'type'}) |
if (defined($slots{$slot}->{'type'}) |
&& $slots{$slot}->{'type'} ne 'schedulable_student') { |
&& $slots{$slot}->{'type'} ne 'schedulable_student') { |
#next; |
#next; |
Line 1097 sub handler {
|
Line 1129 sub handler {
|
} else { |
} else { |
my $symb=&Apache::lonnet::unescape($env{'form.symb'}); |
my $symb=&Apache::lonnet::unescape($env{'form.symb'}); |
my (undef,undef,$res)=&Apache::lonnet::decode_symb($symb); |
my (undef,undef,$res)=&Apache::lonnet::decode_symb($symb); |
if ($res !~ /\.task$/) { |
my $useslots = &Apache::lonnet::EXT("resource.0.useslots",$symb); |
|
if ($useslots ne 'resource') { |
&fail($r,'not_valid'); |
&fail($r,'not_valid'); |
return OK; |
return OK; |
} |
} |
$env{'request.symb'}=$symb; |
$env{'request.symb'}=$symb; |
my ($status) = &Apache::lonhomework::check_task_access('0'); |
my $type = ($res =~ /\.task$/) ? 'Task' |
|
: 'problem'; |
|
my ($status) = &Apache::lonhomework::check_slot_access('0',$type); |
if ($status eq 'CAN_ANSWER' || |
if ($status eq 'CAN_ANSWER' || |
$status eq 'NEEDS_CHECKIN' || |
$status eq 'NEEDS_CHECKIN' || |
$status eq 'WAITING_FOR_GRADE') { |
$status eq 'WAITING_FOR_GRADE') { |