version 1.274, 2005/06/05 06:12:16
|
version 1.281, 2005/08/30 14:52:51
|
Line 743 LISTJAVASCRIPT
|
Line 743 LISTJAVASCRIPT
|
if ($env{'form.showgrading'} eq 'yes' && $submitonly ne 'all') { |
if ($env{'form.showgrading'} eq 'yes' && $submitonly ne 'all') { |
foreach (sort keys(%status)) { |
foreach (sort keys(%status)) { |
next if (/^resource.*?submitted_by$/); |
next if (/^resource.*?submitted_by$/); |
$gradeTable.='<td align="middle"> '.$status{$_}.' </td>'."\n"; |
$gradeTable.='<td align="center"> '.$status{$_}.' </td>'."\n"; |
} |
} |
} |
} |
# $gradeTable.='<td></td>' if ($ctr%2 ==1); |
# $gradeTable.='<td></td>' if ($ctr%2 ==1); |
Line 2293 sub version_portfiles {
|
Line 2293 sub version_portfiles {
|
my $portfolio_root = &Apache::loncommon::propath($domain, |
my $portfolio_root = &Apache::loncommon::propath($domain, |
$stuname). |
$stuname). |
'/userfiles/portfolio'; |
'/userfiles/portfolio'; |
foreach my $key(keys %$record) { |
foreach my $key (keys(%$record)) { |
my $new_portfiles; |
my $new_portfiles; |
|
|
if ($key =~ /^resource\.($version_parts)\./ && $key =~ /\.portfiles$/ ) { |
if ($key =~ /^resource\.($version_parts)\./ && $key =~ /\.portfiles$/ ) { |
my @v_portfiles; |
my @v_portfiles; |
my @portfiles = split(/,/,$$record{$key}); |
my @portfiles = split(/,/,$$record{$key}); |
# &Apache::lonnet::logthis("should be unmarking and remarking"); |
&Apache::lonnet::logthis("should be unmarking and remarking $key",@portfiles); |
foreach my $file (@portfiles) { |
foreach my $file (@portfiles) { |
&Apache::lonnet::unmark_as_readonly($domain,$stuname,[$symb,$env{'request.course.id'}],$file); |
&Apache::lonnet::unmark_as_readonly($domain,$stuname,[$symb,$env{'request.course.id'}],$file); |
my ($directory,$answer_file) =($file =~ /^(.*?)([^\/]*$)/); |
my ($directory,$answer_file) =($file =~ /^(.*?)([^\/]*$)/); |
Line 2321 sub version_portfiles {
|
Line 2322 sub version_portfiles {
|
} |
} |
} |
} |
$version++; |
$version++; |
my $home_server = &Apache::lonnet::homeserver($stuname,$domain,undef); |
|
$env{'form.copy'} = &Apache::lonnet::getfile("/uploaded/$domain/$stuname/portfolio$directory$answer_file"); |
$env{'form.copy'} = &Apache::lonnet::getfile("/uploaded/$domain/$stuname/portfolio$directory$answer_file"); |
if($env{'form.copy'} eq '-1') { |
if($env{'form.copy'} eq '-1') { |
&Apache::lonnet::logthis('problem getting file '.$directory.$answer_file); |
&Apache::lonnet::logthis('problem getting file '.$directory.$answer_file); |
} else { |
} else { |
my $copy_result = &Apache::lonnet::finishuserfileupload($stuname,$domain,$home_server,'copy', |
my $copy_result = &Apache::lonnet::finishuserfileupload($stuname,$domain,'copy', |
'/portfolio'.$directory.$answer_file_parts[0].'.'.$version.'.'.$answer_file_parts[-1]); |
'/portfolio'.$directory.$answer_file_parts[0].'.'.$version.'.'.$answer_file_parts[-1]); |
push(@v_portfiles, $answer_file_parts[0].'.'.$version.'.'.$answer_file_parts[-1]); |
push(@v_portfiles, $answer_file_parts[0].'.'.$version.'.'.$answer_file_parts[-1]); |
&Apache::lonnet::mark_as_readonly($domain,$stuname, |
&Apache::lonnet::mark_as_readonly($domain,$stuname, |
Line 2656 sub viewgrades {
|
Line 2656 sub viewgrades {
|
sub viewstudentgrade { |
sub viewstudentgrade { |
my ($url,$symb,$courseid,$student,$fullname,$parts,$weight,$ctr,$last_resets) = @_; |
my ($url,$symb,$courseid,$student,$fullname,$parts,$weight,$ctr,$last_resets) = @_; |
my ($uname,$udom) = split(/:/,$student); |
my ($uname,$udom) = split(/:/,$student); |
$student=~s/:/_/; |
|
my %record=&Apache::lonnet::restore($symb,$courseid,$udom,$uname); |
my %record=&Apache::lonnet::restore($symb,$courseid,$udom,$uname); |
my %aggregates = (); |
my %aggregates = (); |
my $result='<tr bgcolor="#ffffdd"><td align="right">'. |
my $result='<tr bgcolor="#ffffdd"><td align="right">'. |
Line 2665 sub viewstudentgrade {
|
Line 2664 sub viewstudentgrade {
|
'<a href="javascript:viewOneStudent(\''.$uname.'\',\''.$udom. |
'<a href="javascript:viewOneStudent(\''.$uname.'\',\''.$udom. |
'\')"; TARGET=_self>'.$fullname.'</a> '. |
'\')"; TARGET=_self>'.$fullname.'</a> '. |
'<font color="#999999">('.$uname.($env{'user.domain'} eq $udom ? '' : ':'.$udom).')</font></td>'."\n"; |
'<font color="#999999">('.$uname.($env{'user.domain'} eq $udom ? '' : ':'.$udom).')</font></td>'."\n"; |
|
$student=~s/:/_/; # colon doen't work in javascript for names |
foreach my $apart (@$parts) { |
foreach my $apart (@$parts) { |
my ($part,$type) = &split_part_type($apart); |
my ($part,$type) = &split_part_type($apart); |
my $score=$record{"resource.$part.$type"}; |
my $score=$record{"resource.$part.$type"}; |
$result.='<td align="middle">'; |
$result.='<td align="center">'; |
my ($aggtries,$totaltries); |
my ($aggtries,$totaltries); |
unless (exists($aggregates{$part})) { |
unless (exists($aggregates{$part})) { |
$totaltries = $record{'resource.'.$part.'.tries'}; |
$totaltries = $record{'resource.'.$part.'.tries'}; |
Line 2786 sub editgrades {
|
Line 2786 sub editgrades {
|
for ($i=0; $i<$env{'form.total'}; $i++) { |
for ($i=0; $i<$env{'form.total'}; $i++) { |
my $line; |
my $line; |
my $user = $env{'form.ctr'.$i}; |
my $user = $env{'form.ctr'.$i}; |
my $usercolon = $user; |
my ($uname,$udom)=split(/:/,$user); |
$usercolon =~s/_/:/; |
|
my ($uname,$udom)=split(/_/,$user); |
|
my %newrecord; |
my %newrecord; |
my $updateflag = 0; |
my $updateflag = 0; |
$line .= '<td>'.&nameUserString(undef,$$fullname{$usercolon},$uname,$udom).'</td>'; |
$line .= '<td>'.&nameUserString(undef,$$fullname{$user},$uname,$udom).'</td>'; |
my $usec=$classlist->{"$uname:$udom"}[5]; |
my $usec=$classlist->{"$uname:$udom"}[5]; |
if (!&canmodify($usec)) { |
if (!&canmodify($usec)) { |
my $numcols=scalar(@partid)*4+2; |
my $numcols=scalar(@partid)*4+2; |
Line 2800 sub editgrades {
|
Line 2798 sub editgrades {
|
} |
} |
my %aggregate = (); |
my %aggregate = (); |
my $aggregateflag = 0; |
my $aggregateflag = 0; |
|
$user=~s/:/_/; # colon doen't work in javascript for names |
foreach (@partid) { |
foreach (@partid) { |
my $old_aw = $env{'form.GD_'.$user.'_'.$_.'_awarded_s'}; |
my $old_aw = $env{'form.GD_'.$user.'_'.$_.'_awarded_s'}; |
my $old_part_pcr = $old_aw/($weight{$_} ne '0' ? $weight{$_}:1); |
my $old_part_pcr = $old_aw/($weight{$_} ne '0' ? $weight{$_}:1); |
Line 3865 sub scantron_CODElist {
|
Line 3864 sub scantron_CODElist {
|
my $namechoice='<option></option>'; |
my $namechoice='<option></option>'; |
foreach my $name (sort {uc($a) cmp uc($b)} @names) { |
foreach my $name (sort {uc($a) cmp uc($b)} @names) { |
if ($name =~ /^error: 2 /) { next; } |
if ($name =~ /^error: 2 /) { next; } |
|
if ($name =~ /^type\0/) { next; } |
$namechoice.='<option value="'.$name.'">'.$name.'</option>'; |
$namechoice.='<option value="'.$name.'">'.$name.'</option>'; |
} |
} |
$namechoice='<select name="scantron_CODElist">'.$namechoice.'</select>'; |
$namechoice='<select name="scantron_CODElist">'.$namechoice.'</select>'; |
Line 4140 sub scantron_parse_scanline {
|
Line 4140 sub scantron_parse_scanline {
|
my %record; |
my %record; |
my $questions=substr($line,$$scantron_config{'Qstart'}-1); |
my $questions=substr($line,$$scantron_config{'Qstart'}-1); |
my $data=substr($line,0,$$scantron_config{'Qstart'}-1); |
my $data=substr($line,0,$$scantron_config{'Qstart'}-1); |
if ($$scantron_config{'CODElocation'} ne 0) { |
if (!($$scantron_config{'CODElocation'} eq 0 || |
if ($$scantron_config{'CODElocation'} < 0) { |
$$scantron_config{'CODElocation'} eq 'none')) { |
|
if ($$scantron_config{'CODElocation'} < 0 || |
|
$$scantron_config{'CODElocation'} eq 'letter' || |
|
$$scantron_config{'CODElocation'} eq 'number') { |
$record{'scantron.CODE'}=substr($data, |
$record{'scantron.CODE'}=substr($data, |
$$scantron_config{'CODEstart'}-1, |
$$scantron_config{'CODEstart'}-1, |
$$scantron_config{'CODElength'}); |
$$scantron_config{'CODElength'}); |
Line 4580 sub lonnet_putfile {
|
Line 4583 sub lonnet_putfile {
|
my ($contents,$filename)=@_; |
my ($contents,$filename)=@_; |
my $docuname=$env{'course.'.$env{'request.course.id'}.'.num'}; |
my $docuname=$env{'course.'.$env{'request.course.id'}.'.num'}; |
my $docudom=$env{'course.'.$env{'request.course.id'}.'.domain'}; |
my $docudom=$env{'course.'.$env{'request.course.id'}.'.domain'}; |
my $docuhome=$env{'course.'.$env{'request.course.id'}.'.home'}; |
|
$env{'form.sillywaytopassafilearound'}=$contents; |
$env{'form.sillywaytopassafilearound'}=$contents; |
&Apache::lonnet::finishuserfileupload($docuname,$docudom,$docuhome,'sillywaytopassafilearound',$filename); |
&Apache::lonnet::finishuserfileupload($docuname,$docudom,'sillywaytopassafilearound',$filename); |
|
|
} |
} |
|
|
Line 4753 sub scantron_get_correction {
|
Line 4755 sub scantron_get_correction {
|
if ($error eq 'incorrectCODE' |
if ($error eq 'incorrectCODE' |
&& $$scan_record{'scantron.CODE'}=~/\S/ ) { |
&& $$scan_record{'scantron.CODE'}=~/\S/ ) { |
my ($max,$closest)=&scantron_get_closely_matching_CODEs($arg,$$scan_record{'scantron.CODE'}); |
my ($max,$closest)=&scantron_get_closely_matching_CODEs($arg,$$scan_record{'scantron.CODE'}); |
foreach my $testcode (@{$closest}) { |
if ($closest > 0) { |
my $checked=''; |
foreach my $testcode (@{$closest}) { |
if (!$i) { $checked=' checked="on" '; } |
my $checked=''; |
$r->print("<label><input type='radio' name='scantron_CODE_resolution' value='use_closest_$i' $checked /> Use the similar CODE <b><tt>".$testcode."</tt></b> instead.</label><input type='hidden' name='scantron_CODE_closest_$i' value='$testcode' />"); |
if (!$i) { $checked=' checked="on" '; } |
$r->print("\n<br />"); |
$r->print("<label><input type='radio' name='scantron_CODE_resolution' value='use_closest_$i' $checked /> Use the similar CODE <b><tt>".$testcode."</tt></b> instead.</label><input type='hidden' name='scantron_CODE_closest_$i' value='$testcode' />"); |
$i++; |
$r->print("\n<br />"); |
|
$i++; |
|
} |
} |
} |
} |
} |
if ($$scan_record{'scantron.CODE'}=~/\S/ ) { |
if ($$scan_record{'scantron.CODE'}=~/\S/ ) { |
Line 4864 sub scantron_get_closely_matching_CODEs
|
Line 4868 sub scantron_get_closely_matching_CODEs
|
} |
} |
|
|
sub get_codes { |
sub get_codes { |
my $old_name=$env{'form.scantron_CODElist'}; |
my ($old_name, $cdom, $cnum) = @_; |
my $cdom =$env{'course.'.$env{'request.course.id'}.'.domain'}; |
if (!$old_name) { |
my $cnum =$env{'course.'.$env{'request.course.id'}.'.num'}; |
$old_name=$env{'form.scantron_CODElist'}; |
my %result=&Apache::lonnet::get('CODEs',[$old_name],$cdom,$cnum); |
} |
my %allcodes=map {(&Apache::lonprintout::num_to_letters($_),1)} split(',',$result{$old_name}); |
if (!$cdom) { |
|
$cdom =$env{'course.'.$env{'request.course.id'}.'.domain'}; |
|
} |
|
if (!$cnum) { |
|
$cnum =$env{'course.'.$env{'request.course.id'}.'.num'}; |
|
} |
|
my %result=&Apache::lonnet::get('CODEs',[$old_name,"type\0$old_name"], |
|
$cdom,$cnum); |
|
my %allcodes; |
|
if ($result{"type\0$old_name"} eq 'number') { |
|
%allcodes=map {($_,1)} split(',',$result{$old_name}); |
|
} else { |
|
%allcodes=map {(&Apache::lonprintout::num_to_letters($_),1)} split(',',$result{$old_name}); |
|
} |
return %allcodes; |
return %allcodes; |
} |
} |
|
|
Line 5158 sub scantron_upload_scantron_data_save {
|
Line 5175 sub scantron_upload_scantron_data_save {
|
} |
} |
my %coursedata=&Apache::lonnet::coursedescription($env{'form.domainid'}.'_'.$env{'form.courseid'}); |
my %coursedata=&Apache::lonnet::coursedescription($env{'form.domainid'}.'_'.$env{'form.courseid'}); |
$r->print("Doing upload to ".$coursedata{'description'}." <br />"); |
$r->print("Doing upload to ".$coursedata{'description'}." <br />"); |
my $home=&Apache::lonnet::homeserver($env{'form.courseid'}, |
|
$env{'form.domainid'}); |
|
my $fname=$env{'form.upfile.filename'}; |
my $fname=$env{'form.upfile.filename'}; |
#FIXME |
#FIXME |
#copied from lonnet::userfileupload() |
#copied from lonnet::userfileupload() |
Line 5179 sub scantron_upload_scantron_data_save {
|
Line 5194 sub scantron_upload_scantron_data_save {
|
if (length($env{'form.upfile'}) < 2) { |
if (length($env{'form.upfile'}) < 2) { |
$r->print("<font color='red'>Error:</font> The file you attempted to upload, <tt>".&HTML::Entities::encode($env{'form.upfile.filename'},'<>&"')."</tt>, contained no information. Please check that you entered the correct filename."); |
$r->print("<font color='red'>Error:</font> The file you attempted to upload, <tt>".&HTML::Entities::encode($env{'form.upfile.filename'},'<>&"')."</tt>, contained no information. Please check that you entered the correct filename."); |
} else { |
} else { |
my $result=&Apache::lonnet::finishuserfileupload($env{'form.courseid'},$env{'form.domainid'},$home,'upfile',$fname); |
my $result=&Apache::lonnet::finishuserfileupload($env{'form.courseid'},$env{'form.domainid'},'upfile',$fname); |
if ($result =~ m|^/uploaded/|) { |
if ($result =~ m|^/uploaded/|) { |
$r->print("<font color='green'>Success:</font> Successfully uploaded ".(length($env{'form.upfile'})-1)." bytes of data into location <tt>".$result."</tt>"); |
$r->print("<font color='green'>Success:</font> Successfully uploaded ".(length($env{'form.upfile'})-1)." bytes of data into location <tt>".$result."</tt>"); |
} else { |
} else { |
Line 5403 GRADINGMENUJS
|
Line 5418 GRADINGMENUJS
|
$result.='<tr bgcolor="#ffffe6"valign="top"><td colspan="2">'. |
$result.='<tr bgcolor="#ffffe6"valign="top"><td colspan="2">'. |
'<input type="button" onClick="javascript:this.form.action=\'/adm/helper/resettimes.helper\';this.form.submit();'. |
'<input type="button" onClick="javascript:this.form.action=\'/adm/helper/resettimes.helper\';this.form.submit();'. |
'" value="'.&mt('Manage').'" /> access times.</td></tr>'."\n"; |
'" value="'.&mt('Manage').'" /> access times.</td></tr>'."\n"; |
|
$result.='<tr bgcolor="#ffffe6"valign="top"><td colspan="2">'. |
|
'<input type="button" onClick="javascript:this.form.command.value=\'codelist\';this.form.action=\'/adm/pickcode\';this.form.submit();'. |
|
'" value="'.&mt('View').'" /> saved CODEs.</td></tr>'."\n"; |
|
|
$result.='</form></td></tr></table>'."\n". |
$result.='</form></td></tr></table>'."\n". |
'</td></tr></table>'."\n". |
'</td></tr></table>'."\n". |