version 1.257, 2010/12/31 02:40:14
|
version 1.264.4.1, 2017/06/21 19:55:00
|
Line 199 sub get_version {
|
Line 199 sub get_version {
|
|
|
sub add_previous_version_button { |
sub add_previous_version_button { |
my ($status)=@_; |
my ($status)=@_; |
|
my (undef,undef,$udom,$uname)=&Apache::lonnet::whichuser(); |
|
if (($uname ne $env{'user.name'}) || ($udom ne $env{'user.domain'})) { |
|
return; |
|
} |
my $result; |
my $result; |
if ($Apache::lonhomework::history{'resource.0.version'} eq '') { |
if ($Apache::lonhomework::history{'resource.0.version'} eq '') { |
return ''; |
return ''; |
Line 235 sub add_previous_version_button {
|
Line 239 sub add_previous_version_button {
|
} |
} |
|
|
sub add_grading_button { |
sub add_grading_button { |
my (undef,$cid)=&Apache::lonnet::whichuser(); |
my (undef,$cid,$udom,$uname)=&Apache::lonnet::whichuser(); |
|
if (($uname ne $env{'user.name'}) || ($udom ne $env{'user.domain'})) { |
|
return; |
|
} |
my $cnum=$env{'course.'.$cid.'.num'}; |
my $cnum=$env{'course.'.$cid.'.num'}; |
my $cdom=$env{'course.'.$cid.'.domain'}; |
my $cdom=$env{'course.'.$cid.'.domain'}; |
my %sections = &Apache::loncommon::get_sections($cdom,$cnum); |
my %sections = &Apache::loncommon::get_sections($cdom,$cnum); |
Line 245 sub add_grading_button {
|
Line 252 sub add_grading_button {
|
$size=scalar(keys(%sections))+2; |
$size=scalar(keys(%sections))+2; |
} |
} |
my $sec_select = "\n".'<select multiple="multiple" name="chosensections" size="'.$size.'">'."\n"; |
my $sec_select = "\n".'<select multiple="multiple" name="chosensections" size="'.$size.'">'."\n"; |
$sec_select .= "\t<option value='all' selected='selected'>all</option>\n"; |
$sec_select .= "\t".'<option value="all" selected="selected">'.&mt('all')."</option>\n"; |
foreach my $sec (sort {lc($a) cmp lc($b)} (keys(%sections))) { |
foreach my $sec (sort {lc($a) cmp lc($b)} (keys(%sections))) { |
$sec_select .= "\t<option value=\"$sec\">$sec</option>\n"; |
$sec_select .= "\t<option value=\"$sec\">$sec</option>\n"; |
} |
} |
$sec_select .= "\t<option value='none'>none</option>\n</select>\n"; |
$sec_select .= "\t".'<option value="none">'.&mt('none')."</option>\n</select>\n"; |
|
|
my $result="\n\t".'<input type="submit" name="gradeasubmission" value="'. |
my $uri=$env{'request.uri'}; |
&mt("Get a submission to grade").'" />'; |
if ($env{'request.enc'}) { $uri=&Apache::lonenc::encrypted($uri); } |
$result.="\n\t".'<input type="hidden" name="grade_target" value="webgrade" />'; |
my $result = |
|
'<form name="gradesubmission" method="post" action="'.$uri.'">'. |
|
"\n\t".'<input type="submit" name="gradeasubmission" value="'. |
|
&mt("Get a submission to grade").'" />'. |
|
"\n\t".'<input type="hidden" name="grade_target" value="webgrade" />'; |
my $see_all = &Apache::lonnet::allowed('mgq',$env{'request.course.id'}); |
my $see_all = &Apache::lonnet::allowed('mgq',$env{'request.course.id'}); |
my $see_sec = &Apache::lonnet::allowed('mgq',$env{'request.course.id'}. |
my $see_sec = &Apache::lonnet::allowed('mgq',$env{'request.course.id'}. |
'/'.$env{'request.course.sec'}); |
'/'.$env{'request.course.sec'}); |
Line 299 sub add_grading_button {
|
Line 310 sub add_grading_button {
|
$result.=&Apache::loncommon::studentbrowser_javascript(); |
$result.=&Apache::loncommon::studentbrowser_javascript(); |
$result.= '</p>'."\n"; |
$result.= '</p>'."\n"; |
} |
} |
|
$result .= '</form>'."\n"; |
|
return $result; |
|
} |
|
|
|
sub add_slotlist_button { |
|
my (undef,$cid,$udom,$uname)=&Apache::lonnet::whichuser(); |
|
if (($uname ne $env{'user.name'}) || ($udom ne $env{'user.domain'})) { |
|
return; |
|
} |
|
my $symb=&Apache::lonnet::symbread(); |
|
my $result; |
|
if (&Apache::lonnet::allowed('mgq',$env{'request.course.id'}) || |
|
&Apache::lonnet::allowed('mgq',$env{'request.course.id'}.'/'.$env{'request.course.sec'})) { |
|
$result = '<form method="post" name="slotrequest" action="/adm/slotrequest">'. |
|
'<input type="hidden" name="symb" value="'.$symb.'" />'. |
|
'<input type="hidden" name="command" value="showslots" />'. |
|
'<input type="submit" name="requestattempt" value="'. |
|
&mt('Show Slot list').'" />'. |
|
'</form>'; |
|
my $target_id = |
|
&Apache::lonstathelpers::make_target_id({symb => $symb, |
|
part => '0'}); |
|
if (!§ion_restricted()) { |
|
$result.='<form method="post" name="gradingstatus" action="/adm/statistics">'. |
|
'<input type="hidden" name="problemchoice" value="'.$target_id.'" />'. |
|
'<input type="hidden" name="reportSelected" value="grading_analysis" />'. |
|
'<input type="submit" name="grading" value="'. |
|
&mt('Show Grading Status').'" />'. |
|
'</form>'; |
|
} |
|
} |
return $result; |
return $result; |
} |
} |
|
|
sub add_request_another_attempt_button { |
sub add_request_another_attempt_button { |
my ($text)=@_; |
my ($text)=@_; |
|
my (undef,$cid,$udom,$uname)=&Apache::lonnet::whichuser(); |
|
if (($uname ne $env{'user.name'}) || ($udom ne $env{'user.domain'})) { |
|
return; |
|
} |
if (!$text) { $text=&mt('Request another attempt'); } |
if (!$text) { $text=&mt('Request another attempt'); } |
my $result; |
my $result; |
my $symb=&Apache::lonnet::symbread(); |
my $symb=&Apache::lonnet::symbread(); |
Line 635 sub start_Task {
|
Line 681 sub start_Task {
|
$target eq 'tex') { |
$target eq 'tex') { |
if ($env{'form.markaccess'}) { |
if ($env{'form.markaccess'}) { |
my @interval=&Apache::lonnet::EXT("resource.0.interval"); |
my @interval=&Apache::lonnet::EXT("resource.0.interval"); |
&Apache::lonnet::set_first_access($interval[1]); |
my ($timelimit) = ($interval[0] =~ /^(\d+)/); |
|
&Apache::lonnet::set_first_access($interval[1],$timelimit); |
} |
} |
} |
} |
|
|
if ($target eq 'web' && $env{'request.state'} ne 'construct') { |
if ($target eq 'web' && $env{'request.state'} ne 'construct') { |
if ($Apache::lonhomework::queuegrade |
if ($Apache::lonhomework::queuegrade |
|| $Apache::lonhomework::modifygrades) { |
|| $Apache::lonhomework::modifygrades) { |
$result.='<form name="gradesubmission" method="post" action="'; |
$result .= &add_grading_button(); |
my $uri=$env{'request.uri'}; |
|
if ($env{'request.enc'}) { $uri=&Apache::lonenc::encrypted($uri); } |
|
$result.=$uri.'">'.&add_grading_button()."</form>\n"; |
|
my $symb=&Apache::lonnet::symbread(); |
my $symb=&Apache::lonnet::symbread(); |
if (&Apache::lonnet::allowed('mgq',$env{'request.course.id'}) |
if (&Apache::lonnet::allowed('mgq',$env{'request.course.id'}) |
|| &Apache::lonnet::allowed('mgq',$env{'request.course.id'}.'/'.$env{'request.course.sec'})) { |
|| &Apache::lonnet::allowed('mgq',$env{'request.course.id'}.'/'.$env{'request.course.sec'})) { |
$result.='<form method="post" name="slotrequest" action="/adm/slotrequest">'. |
$result .= &add_slotlist_button(); |
'<input type="hidden" name="symb" value="'.$symb.'" />'. |
|
'<input type="hidden" name="command" value="showslots" />'. |
|
'<input type="submit" name="requestattempt" value="'. |
|
&mt('Show Slot list').'" />'. |
|
'</form>'; |
|
my $target_id = |
|
&Apache::lonstathelpers::make_target_id({symb => $symb, |
|
part => '0'}); |
|
if (!§ion_restricted()) { |
|
$result.='<form method="post" name="gradingstatus" action="/adm/statistics">'. |
|
'<input type="hidden" name="problemchoice" value="'.$target_id.'" />'. |
|
'<input type="hidden" name="reportSelected" value="grading_analysis" />'. |
|
'<input type="submit" name="grading" value="'. |
|
&mt('Show Grading Status').'" />'. |
|
'</form>'; |
|
} |
|
} |
} |
} |
} |
} |
} |
Line 692 sub start_Task {
|
Line 720 sub start_Task {
|
'slot' => $slot_name}); |
'slot' => $slot_name}); |
($version,$previous)=&get_version(); |
($version,$previous)=&get_version(); |
} |
} |
|
if (($target eq 'web') && ($version ne '') && ($slot_name ne '')) { |
my $status_id = |
if (ref($slot) eq 'HASH') { |
($previous || $status eq 'SHOW_ANSWER') ? 'LC_task_feedback' |
if ($slot->{'endtime'} > time()) { |
: 'LC_task_take'; |
$result .= |
|
&Apache::lonhtmlcommon::set_due_date($slot->{'endtime'}); |
|
} |
|
} |
|
} |
|
|
|
my $status_id = 'LC_task_take'; |
|
if ($previous && $target eq 'answer') { |
|
$status_id = 'LC_task_answer'; |
|
} elsif ($previous || $status eq 'SHOW_ANSWER') { |
|
$status_id = 'LC_task_feedback'; |
|
} |
$result .= '<div class="LC_task" id="'.$status_id.'">'."\n"; |
$result .= '<div class="LC_task" id="'.$status_id.'">'."\n"; |
|
|
push(@Apache::inputtags::status,$status); |
push(@Apache::inputtags::status,$status); |
Line 713 sub start_Task {
|
Line 752 sub start_Task {
|
} |
} |
my $msg; |
my $msg; |
if ($status eq 'UNAVAILABLE') { |
if ($status eq 'UNAVAILABLE') { |
$msg.='<h1>'.&mt('Unable to determine if this resource is open due to network problems. Please try again later.').'</h1>'; |
$msg.='<p class="LC_error">'.&mt('Unable to determine if this resource is open due to network problems. Please try again later.').'</p>'; |
} elsif ($status eq 'NOT_IN_A_SLOT') { |
} elsif ($status eq 'NOT_IN_A_SLOT') { |
$msg.='<h1>'.&mt('You are not currently signed up to work at this time and/or place.').'</h1>'; |
$msg.='<p class="LC_warning">'.&mt('You are not currently signed up to work at this time and/or place.').'</p>'; |
$msg.=&add_request_another_attempt_button("Sign up for time to work"); |
$msg.=&add_request_another_attempt_button("Sign up for time to work"); |
} elsif ($status eq 'NEEDS_CHECKIN') { |
} elsif ($status eq 'NEEDS_CHECKIN') { |
$msg.='<h1>'.&mt('You need the Proctor to validate you.'). |
$msg.='<p class="LC_warning">'.&mt('You need the Proctor to validate you.'). |
'</h1>'.&proctor_validation_screen($slot); |
'</p>'.&proctor_validation_screen($slot); |
} elsif ($status eq 'WAITING_FOR_GRADE') { |
} elsif ($status eq 'WAITING_FOR_GRADE') { |
$msg.='<h1>'.&mt('Your submission is in the grading queue.').'</h1>'; |
$msg.='<p class="LC_info">'.&mt('Your submission is in the grading queue.').'</p>'; |
} elsif ($env{'form.donescreen'}) { |
} elsif ($env{'form.donescreen'}) { |
$result .= &done_screen($version); |
$result .= &done_screen($version); |
} elsif ($status eq 'NOT_YET_VIEWED') { |
} elsif ($status eq 'NOT_YET_VIEWED') { |
my $symb=&Apache::lonnet::symbread(); |
my $symb=&Apache::lonnet::symbread(); |
$msg.=&Apache::structuretags::firstaccess_msg($accessmsg,$symb); |
$msg.=&Apache::structuretags::firstaccess_msg($accessmsg,$symb); |
} else { |
} else { |
$msg.='<h1>'.&mt('Not open to be viewed').'</h1>'; |
$msg.='<p class="LC_warning">'.&mt('Not open to be viewed').'</p>'; |
} |
} |
if ($status eq 'CLOSED' || $status eq 'INVALID_ACCESS') { |
if ($status eq 'CLOSED' || $status eq 'INVALID_ACCESS') { |
$msg.='The problem '.$accessmsg; |
$msg.='The problem '.$accessmsg; |
Line 958 sub get_key_todo {
|
Line 997 sub get_key_todo {
|
my $classlist=&get_limited_classlist(); |
my $classlist=&get_limited_classlist(); |
if (!&allow_grade_user($classlist->{$uname.':'.$udom})) { |
if (!&allow_grade_user($classlist->{$uname.':'.$udom})) { |
return (undef,'not_allowed', |
return (undef,'not_allowed', |
&mt('Requested student ([_1]) is in a section you aren\'t allowed to grade.',$uname.':'.$udom)); |
&mt("Requested student ([_1]) is in a section you aren't allowed to grade.",$uname.':'.$udom)); |
} |
} |
} |
} |
my $gradingkey=&encode_queue_key($symb,$udom,$uname); |
my $gradingkey=&encode_queue_key($symb,$udom,$uname); |
Line 1214 DONEBUTTON
|
Line 1253 DONEBUTTON
|
} |
} |
$result.="\n</div>\n". |
$result.="\n</div>\n". |
&Apache::loncommon::end_page({'discussion' => 1}); |
&Apache::loncommon::end_page({'discussion' => 1}); |
} |
} elsif ($target eq 'answer') { |
|
$result.="\n</div>\n"; |
|
} |
} |
} |
|
|
my $useslots = &Apache::lonnet::EXT("resource.0.useslots"); |
my $useslots = &Apache::lonnet::EXT("resource.0.useslots"); |
Line 1225 DONEBUTTON
|
Line 1266 DONEBUTTON
|
} elsif (defined($Apache::lonhomework::history{"resource.$version.0.checkedin.slot"})) { |
} elsif (defined($Apache::lonhomework::history{"resource.$version.0.checkedin.slot"})) { |
$queue_data{'slot'} = $Apache::lonhomework::history{"resource.$version.0.checkedin.slot"}; |
$queue_data{'slot'} = $Apache::lonhomework::history{"resource.$version.0.checkedin.slot"}; |
} |
} |
|
|
|
|
if ($target eq 'grade' && !$env{'form.webgrade'} && !$previous |
if ($target eq 'grade' && !$env{'form.webgrade'} && !$previous |
&& $status eq 'CAN_ANSWER') { |
&& $status eq 'CAN_ANSWER') { |
Line 1367 DONEBUTTON
|
Line 1408 DONEBUTTON
|
if ($canstore) { |
if ($canstore) { |
&Apache::structuretags::finalize_storage(); |
&Apache::structuretags::finalize_storage(); |
my @interval = &Apache::lonnet::EXT("resource.0.interval"); |
my @interval = &Apache::lonnet::EXT("resource.0.interval"); |
if ($interval[0] =~ /^\d+$/ && $interval[1] eq 'resource') { |
if ($interval[0] =~ /^\d+/ && $interval[1] eq 'resource') { |
my $key=$courseid."\0".$symb; |
my $key=$courseid."\0".$symb; |
my %times=&Apache::lonnet::get('firstaccesstimes', |
my %times=&Apache::lonnet::get('firstaccesstimes', |
[$key],$domain,$name); |
[$key],$domain,$name); |
Line 1756 sub show_queue {
|
Line 1797 sub show_queue {
|
$result.=(<<FORM); |
$result.=(<<FORM); |
<td>$status</td> |
<td>$status</td> |
<td> |
<td> |
<form style="display: inline" method="post"> |
<form style="display: inline" method="post" action=""> |
<input type="hidden" name="gradingkey" value="$ekey" /> |
<input type="hidden" name="gradingkey" value="$ekey" /> |
<input type="hidden" name="queue" value="$queue" /> |
<input type="hidden" name="queue" value="$queue" /> |
<input type="hidden" name="gradingaction" value="$action" /> |
<input type="hidden" name="gradingaction" value="$action" /> |
Line 2175 sub select_user {
|
Line 2216 sub select_user {
|
$result.=&Apache::loncommon::start_data_table_row(); |
$result.=&Apache::loncommon::start_data_table_row(); |
$result.=<<RESULT; |
$result.=<<RESULT; |
<td> |
<td> |
<form style="display: inline" method="post"> |
<form style="display: inline" method="post" action=""> |
<input type="hidden" name="gradingkey" value="$todo" /> |
<input type="hidden" name="gradingkey" value="$todo" /> |
<input type="hidden" name="queue" value="$queue" /> |
<input type="hidden" name="queue" value="$queue" /> |
<input type="hidden" name="webgrade" value="no" /> |
<input type="hidden" name="webgrade" value="no" /> |