version 1.596.2.12.2.60, 2022/02/09 23:50:00
|
version 1.596.2.12.2.61, 2024/07/01 22:51:46
|
Line 2178 sub files_exist {
|
Line 2178 sub files_exist {
|
my ($uname,$udom,$fullname) = split(/:/,$student); |
my ($uname,$udom,$fullname) = split(/:/,$student); |
my %record = &Apache::lonnet::restore($symb,$env{'request.course.id'}, |
my %record = &Apache::lonnet::restore($symb,$env{'request.course.id'}, |
$udom,$uname); |
$udom,$uname); |
my ($string,$timestamp)= &get_last_submission(\%record); |
my ($string)= &get_last_submission(\%record); |
foreach my $submission (@$string) { |
foreach my $submission (@$string) { |
my ($partid,$respid) = |
my ($partid,$respid) = |
($submission =~ /^resource\.([^\.]*)\.([^\.]*)\.submission/); |
($submission =~ /^resource\.([^\.]*)\.([^\.]*)\.submission/); |
Line 2523 sub submission {
|
Line 2523 sub submission {
|
# (3) All transactions (by date) |
# (3) All transactions (by date) |
# (4) The whole record (with detailed information for all transactions) |
# (4) The whole record (with detailed information for all transactions) |
|
|
my ($string,$timestamp)= &get_last_submission(\%record); |
my ($string,$timestamp,$lastgradetime,$lastsubmittime) = |
|
&get_last_submission(\%record); |
|
|
my $lastsubonly; |
my $lastsubonly; |
|
|
if ($$timestamp eq '') { |
if ($timestamp eq '') { |
$lastsubonly.='<div class="LC_grade_submissions_body">'.$$string[0].'</div>'; |
$lastsubonly.='<div class="LC_grade_submissions_body">'.$string->[0].'</div>'; |
} else { |
} else { |
|
my ($shownsubmdate,$showngradedate); |
|
if ($lastsubmittime && $lastgradetime) { |
|
$shownsubmdate = &Apache::lonlocal::locallocaltime($lastsubmittime); |
|
if ($lastgradetime > $lastsubmittime) { |
|
$showngradedate = &Apache::lonlocal::locallocaltime($lastgradetime); |
|
} |
|
} else { |
|
$shownsubmdate = $timestamp; |
|
} |
$lastsubonly = |
$lastsubonly = |
'<div class="LC_grade_submissions_body">' |
'<div class="LC_grade_submissions_body">' |
.'<b>'.&mt('Date Submitted:').'</b> '.$$timestamp."\n"; |
.'<b>'.&mt('Date Submitted:').'</b> '.$shownsubmdate."\n"; |
|
if ($showngradedate) { |
|
$lastsubonly .= '<br /><b>'.&mt('Date Graded:').'</b> '.$showngradedate."\n"; |
|
} |
|
|
my %seenparts; |
my %seenparts; |
my @part_response_id = &flatten_responseType($responseType); |
my @part_response_id = &flatten_responseType($responseType); |
Line 2857 sub check_collaborators {
|
Line 2870 sub check_collaborators {
|
#--- Retrieve the last submission for all the parts |
#--- Retrieve the last submission for all the parts |
sub get_last_submission { |
sub get_last_submission { |
my ($returnhash)=@_; |
my ($returnhash)=@_; |
my (@string,$timestamp,%lasthidden); |
my (@string,$timestamp,$lastgradetime,$lastsubmittime); |
if ($$returnhash{'version'}) { |
if ($$returnhash{'version'}) { |
my %lasthash=(); |
my %lasthash=(); |
my ($version); |
my %prevsolved=(); |
|
my %solved=(); |
|
my $version; |
for ($version=1;$version<=$$returnhash{'version'};$version++) { |
for ($version=1;$version<=$$returnhash{'version'};$version++) { |
|
my %handgraded = (); |
foreach my $key (sort(split(/\:/, |
foreach my $key (sort(split(/\:/, |
$$returnhash{$version.':keys'}))) { |
$$returnhash{$version.':keys'}))) { |
$lasthash{$key}=$$returnhash{$version.':'.$key}; |
$lasthash{$key}=$$returnhash{$version.':'.$key}; |
$timestamp = |
if ($key =~ /\.([^.]+)\.regrader$/) { |
&Apache::lonlocal::locallocaltime($$returnhash{$version.':timestamp'}); |
$handgraded{$1} = 1; |
|
} elsif ($key =~ /\.portfiles$/) { |
|
if (($$returnhash{$version.':'.$key} ne '') && |
|
($$returnhash{$version.':'.$key} !~ /\.\d+\.\w+$/)) { |
|
$lastsubmittime = $$returnhash{$version.':timestamp'}; |
|
} |
|
} elsif ($key =~ /\.submission$/) { |
|
if ($$returnhash{$version.':'.$key} ne '') { |
|
$lastsubmittime = $$returnhash{$version.':timestamp'}; |
|
} |
|
} elsif ($key =~ /\.([^.]+)\.solved$/) { |
|
$prevsolved{$1} = $solved{$1}; |
|
$solved{$1} = $lasthash{$key}; |
|
} |
} |
} |
|
foreach my $partid (keys(%handgraded)) { |
|
if (($prevsolved{$partid} eq 'ungraded_attempted') && |
|
(($solved{$partid} eq 'incorrect_by_override') || |
|
($solved{$partid} eq 'correct_by_override'))) { |
|
$lastgradetime = $$returnhash{$version.':timestamp'}; |
|
} |
|
if ($solved{$partid} ne '') { |
|
$prevsolved{$partid} = $solved{$partid}; |
|
} |
|
} |
} |
} |
|
# |
|
# Timestamp is for last transaction for this resource, which does not |
|
# necessarily correspond to the time of last submission for problem (or part). |
|
# |
|
if ($lasthash{'timestamp'} ne '') { |
|
$timestamp = &Apache::lonlocal::locallocaltime($lasthash{'timestamp'}); |
|
} |
my (%typeparts,%randombytry); |
my (%typeparts,%randombytry); |
my $showsurv = |
my $showsurv = |
&Apache::lonnet::allowed('vas',$env{'request.course.id'}); |
&Apache::lonnet::allowed('vas',$env{'request.course.id'}); |
Line 2925 sub get_last_submission {
|
Line 2971 sub get_last_submission {
|
$string[0] = |
$string[0] = |
'<span class="LC_warning">'.&mt('Nothing submitted - no attempts.').'</span>'; |
'<span class="LC_warning">'.&mt('Nothing submitted - no attempts.').'</span>'; |
} |
} |
return (\@string,\$timestamp); |
return (\@string,$timestamp,$lastgradetime,$lastsubmittime); |
} |
} |
|
|
#--- High light keywords, with style choosen by user. |
#--- High light keywords, with style choosen by user. |
Line 3760 sub version_portfiles {
|
Line 3806 sub version_portfiles {
|
$$record{$key} = join(',',@versioned_portfiles); |
$$record{$key} = join(',',@versioned_portfiles); |
push(@returned_keys,$key); |
push(@returned_keys,$key); |
} |
} |
} |
} |
return (@returned_keys); |
return (@returned_keys); |
} |
} |
|
|
sub get_next_version { |
sub get_next_version { |