Skip to content

Commit 557505c

Browse files
committed
Only show the archive file name for archive files that contain duplicate course ids.
1 parent 6f6aa10 commit 557505c

3 files changed

Lines changed: 28 additions & 5 deletions

File tree

lib/WeBWorK/Utils/CourseManagement.pm

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ sub listArchivedCourses {
135135
my $archiveDataFile = $archivesDir->child('archive-cache.json');
136136
my $archiveData = eval { decode_json($archiveDataFile->slurp) } || {};
137137

138+
my %seenCourseIDs;
138139
my %updatedArchiveData;
139140
my %return;
140141
for (@$archives) {
@@ -143,7 +144,16 @@ sub listArchivedCourses {
143144

144145
if ($archiveData->{$basename} && $archiveData->{$basename}{lastModified} >= $lastModified) {
145146
$updatedArchiveData{$basename} = $archiveData->{$basename};
146-
$return{$basename} = $updatedArchiveData{$basename} if defined $archiveData->{$basename}{courseID};
147+
if (defined $archiveData->{$basename}{courseID}) {
148+
$return{$basename} = $updatedArchiveData{$basename};
149+
150+
if ($seenCourseIDs{ $updatedArchiveData{$basename}{courseID} }) {
151+
$return{$basename}{duplicateCourseID} = 1;
152+
$return{ $seenCourseIDs{ $updatedArchiveData{$basename}{courseID} } }{duplicateCourseID} = 1;
153+
} else {
154+
$seenCourseIDs{ $updatedArchiveData{$basename}{courseID} } = $basename;
155+
}
156+
}
147157
next;
148158
}
149159

@@ -164,6 +174,13 @@ sub listArchivedCourses {
164174
$updatedArchiveData{$basename}{courseID} = $currCourseID;
165175
$updatedArchiveData{$basename}{size} = getHumanReadableFileSize($_);
166176
$return{$basename} = $updatedArchiveData{$basename};
177+
178+
if ($seenCourseIDs{ $updatedArchiveData{$basename}{courseID} }) {
179+
$return{$basename}{duplicateCourseID} = 1;
180+
$return{ $seenCourseIDs{ $updatedArchiveData{$basename}{courseID} } }{duplicateCourseID} = 1;
181+
} else {
182+
$seenCourseIDs{ $updatedArchiveData{$basename}{courseID} } = $basename;
183+
}
167184
}
168185

169186
$archiveDataFile->spew(encode_json(\%updatedArchiveData));

templates/ContentGenerator/CourseAdmin.html.ep

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,11 @@
6565
<ol>
6666
% my %courseArchives = listArchivedCourses($ce);
6767
% for (sort { lc($a) cmp lc($b) } keys %courseArchives) {
68-
<li><%= "$courseArchives{$_}{courseID} ($_, $courseArchives{$_}{size})" %></li>
68+
<li>
69+
<%= "$courseArchives{$_}{courseID} ("
70+
. ($courseArchives{$_}{duplicateCourseID} ? "$_, " : "")
71+
. "$courseArchives{$_}{size})" %>
72+
</li>
6973
% }
7074
</ol>
7175
% }

templates/ContentGenerator/CourseAdmin/unarchive_course_form.html.ep

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,11 @@
2020
class => 'col-md-2 pe-0 col-form-label fw-bold' =%>
2121
<div class="col-lg-9 col-md-8">
2222
<%= select_field
23-
unarchive_courseID =>
24-
[ map { [ "$courseArchives{$_}{courseID} ($_, $courseArchives{$_}{size})" => $_ ] }
25-
@archiveFiles ],
23+
unarchive_courseID => [
24+
map { [ "$courseArchives{$_}{courseID} ("
25+
. ($courseArchives{$_}{duplicateCourseID} ? "$_, " : "")
26+
. "$courseArchives{$_}{size})" => $_ ] } @archiveFiles
27+
],
2628
id => 'unarchive_courseID',
2729
class => 'form-select',
2830
size => 10 =%>

0 commit comments

Comments
 (0)