version 1.987, 2010/11/28 00:04:05
|
version 1.991, 2010/12/30 19:35:28
|
Line 3421 sub get_previous_attempt {
|
Line 3421 sub get_previous_attempt {
|
my ($ign,@parts) = split(/\./,$key); |
my ($ign,@parts) = split(/\./,$key); |
if ($#parts > 0) { |
if ($#parts > 0) { |
my $data=$parts[-1]; |
my $data=$parts[-1]; |
|
next if ($data eq 'foilorder'); |
pop(@parts); |
pop(@parts); |
if ($data eq 'type') { |
if ($data eq 'type') { |
unless ($showsurv) { |
unless ($showsurv) { |
Line 3457 sub get_previous_attempt {
|
Line 3458 sub get_previous_attempt {
|
'<td>'.&mt('Transaction [_1]',$version).'</td>'; |
'<td>'.&mt('Transaction [_1]',$version).'</td>'; |
if (@hidden) { |
if (@hidden) { |
foreach my $key (sort(keys(%lasthash))) { |
foreach my $key (sort(keys(%lasthash))) { |
|
next if ($key =~ /\.foilorder$/); |
my $hide; |
my $hide; |
foreach my $id (@hidden) { |
foreach my $id (@hidden) { |
if ($key =~ /^\Q$id\E/) { |
if ($key =~ /^\Q$id\E/) { |
Line 3485 sub get_previous_attempt {
|
Line 3487 sub get_previous_attempt {
|
} |
} |
} else { |
} else { |
foreach my $key (sort(keys(%lasthash))) { |
foreach my $key (sort(keys(%lasthash))) { |
|
next if ($key =~ /\.foilorder$/); |
my $value = &format_previous_attempt_value($key, |
my $value = &format_previous_attempt_value($key, |
$returnhash{$version.':'.$key}); |
$returnhash{$version.':'.$key}); |
$prevattempts.='<td>'.$value.' </td>'; |
$prevattempts.='<td>'.$value.' </td>'; |
Line 3496 sub get_previous_attempt {
|
Line 3499 sub get_previous_attempt {
|
my @currhidden = keys(%lasthidden); |
my @currhidden = keys(%lasthidden); |
$prevattempts.=&start_data_table_row().'<td>'.&mt('Current').'</td>'; |
$prevattempts.=&start_data_table_row().'<td>'.&mt('Current').'</td>'; |
foreach my $key (sort(keys(%lasthash))) { |
foreach my $key (sort(keys(%lasthash))) { |
|
next if ($key =~ /\.foilorder$/); |
if (%typeparts) { |
if (%typeparts) { |
my $hidden; |
my $hidden; |
foreach my $id (@currhidden) { |
foreach my $id (@currhidden) { |
Line 3551 sub format_previous_attempt_value {
|
Line 3555 sub format_previous_attempt_value {
|
$value = &Apache::lonlocal::locallocaltime($value); |
$value = &Apache::lonlocal::locallocaltime($value); |
} elsif (ref($value) eq 'ARRAY') { |
} elsif (ref($value) eq 'ARRAY') { |
$value = '('.join(', ', @{ $value }).')'; |
$value = '('.join(', ', @{ $value }).')'; |
|
} elsif ($key =~ /answerstring$/) { |
|
my %answers = &Apache::lonnet::str2hash($value); |
|
my @anskeys = sort(keys(%answers)); |
|
if (@anskeys == 1) { |
|
my $answer = $answers{$anskeys[0]}; |
|
if ($answer =~ m{\Q\0\E}) { |
|
$answer =~ s{\Q\0\E}{, }g; |
|
} |
|
my $tag_internal_answer_name = 'INTERNAL'; |
|
if ($anskeys[0] eq $tag_internal_answer_name) { |
|
$value = $answer; |
|
} else { |
|
$value = $anskeys[0].'='.$answer; |
|
} |
|
} else { |
|
foreach my $ans (@anskeys) { |
|
my $answer = $answers{$ans}; |
|
if ($answer =~ m{\Q\0\E}) { |
|
$answer =~ s{\Q\0\E}{, }g; |
|
} |
|
$value .= $ans.'='.$answer.'<br />';; |
|
} |
|
} |
} else { |
} else { |
$value = &unescape($value); |
$value = &unescape($value); |
} |
} |
Line 8730 sub upload_embedded {
|
Line 8757 sub upload_embedded {
|
if ($context eq 'portfolio') { |
if ($context eq 'portfolio') { |
$output .= '<p>'.&mt('or').'</p>'; |
$output .= '<p>'.&mt('or').'</p>'; |
} elsif ($context eq 'testbank') { |
} elsif ($context eq 'testbank') { |
$output .= '<p>'.&mt('Or [_1]continue[_2] the testbank import without modifying the references(s).','<a href="javascript:document.testbankForm.submit();">','</a>').'</p>'; |
$output .= '<p>'.&mt('Or [_1]continue[_2] the testbank import without modifying the reference(s).','<a href="javascript:document.testbankForm.submit();">','</a>').'</p>'; |
$returnflag = 'modify_orightml'; |
$returnflag = 'modify_orightml'; |
} |
} |
} |
} |
Line 8930 sub check_for_upload {
|
Line 8957 sub check_for_upload {
|
$getpropath); |
$getpropath); |
my $found_file = 0; |
my $found_file = 0; |
my $locked_file = 0; |
my $locked_file = 0; |
|
my @lockers; |
|
my $navmap; |
|
if ($env{'request.course.id'}) { |
|
$navmap = Apache::lonnavmaps::navmap->new(); |
|
} |
foreach my $line (@dir_list) { |
foreach my $line (@dir_list) { |
my ($file_name,$rest)=split(/\&/,$line,2); |
my ($file_name,$rest)=split(/\&/,$line,2); |
if ($file_name eq $fname){ |
if ($file_name eq $fname){ |
Line 8938 sub check_for_upload {
|
Line 8970 sub check_for_upload {
|
$file_name = $group.$file_name; |
$file_name = $group.$file_name; |
} |
} |
$found_file = 1; |
$found_file = 1; |
if (&Apache::lonnet::is_locked($file_name,$udom,$uname) eq 'true') { |
if (&Apache::lonnet::is_locked($file_name,$udom,$uname,\@lockers) eq 'true') { |
$locked_file = 1; |
foreach my $lock (@lockers) { |
|
if (ref($lock) eq 'ARRAY') { |
|
my ($symb,$crsid) = @{$lock}; |
|
if ($crsid eq $env{'request.course.id'}) { |
|
if (ref($navmap)) { |
|
my $res = $navmap->getBySymb($symb); |
|
foreach my $part (@{$res->parts()}) { |
|
my ($slot_status,$slot_time,$slot_name)=$res->check_for_slot($part); |
|
unless (($slot_status == $res->RESERVED) || |
|
($slot_status == $res->RESERVED_LOCATION)) { |
|
$locked_file = 1; |
|
} |
|
} |
|
} else { |
|
$locked_file = 1; |
|
} |
|
} else { |
|
$locked_file = 1; |
|
} |
|
} |
|
} |
} else { |
} else { |
my @info = split(/\&/,$rest); |
my @info = split(/\&/,$rest); |
my $currsize = $info[6]/1000; |
my $currsize = $info[6]/1000; |
Line 11244 sub clean_symb {
|
Line 11296 sub clean_symb {
|
return ($symb,$enc); |
return ($symb,$enc); |
} |
} |
|
|
|
sub build_release_hashes { |
|
my ($checkparms,$checkresponsetypes,$checkcrstypes,$anonsurvey,$randomizetry) = @_; |
|
return unless((ref($checkparms) eq 'HASH') && (ref($checkresponsetypes) eq 'HASH') && |
|
(ref($checkcrstypes) eq 'HASH') && (ref($anonsurvey) eq 'HASH') && |
|
(ref($randomizetry) eq 'HASH')); |
|
foreach my $key (keys(%Apache::lonnet::needsrelease)) { |
|
my ($item,$name,$value) = split(/:/,$key); |
|
if ($item eq 'parameter') { |
|
if (ref($checkparms->{$name}) eq 'ARRAY') { |
|
unless(grep(/^\Q$name\E$/,@{$checkparms->{$name}})) { |
|
push(@{$checkparms->{$name}},$value); |
|
} |
|
} else { |
|
push(@{$checkparms->{$name}},$value); |
|
} |
|
} elsif ($item eq 'resourcetag') { |
|
if ($name eq 'responsetype') { |
|
$checkresponsetypes->{$value} = $Apache::lonnet::needsrelease{$key} |
|
} |
|
} elsif ($item eq 'course') { |
|
if ($name eq 'crstype') { |
|
$checkcrstypes->{$value} = $Apache::lonnet::needsrelease{$key}; |
|
} |
|
} |
|
} |
|
($anonsurvey->{major},$anonsurvey->{minor}) = split(/\./,$Apache::lonnet::needsrelease{'parameter:type:anonsurvey'}); |
|
($randomizetry->{major},$randomizetry->{minor}) = split(/\./,$Apache::lonnet::needsrelease{'parameter:type:randomizetry'}); |
|
return; |
|
} |
|
|
=pod |
=pod |
|
|
=back |
=back |