Skip to content

Commit ceed876

Browse files
committed
Make sure that if the viewable_sections and viewable_recitations arrays
are not defined, then the or in the where clause in SendMail.pm is not added.
1 parent acc5a45 commit ceed876

File tree

1 file changed

+49
-35
lines changed

1 file changed

+49
-35
lines changed

lib/WeBWorK/ContentGenerator/Instructor/UserDetail.pm

Lines changed: 49 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -226,24 +226,6 @@ sub body {
226226
);
227227
my $userDetailUrl = $self->systemLink($userDetailPage, authen => 0);
228228

229-
my %GlobalSetRecords = map { $_->set_id => $_ } @{ $self->{setRecords} };
230-
my %UserSetRecords =
231-
map { $_->set_id => $_ } $db->getUserSetsWhere({ user_id => $editForUserID, set_id => { not_like => '%,v%' } });
232-
my %MergedSetRecords = map { $_->set_id => $_ } $db->getMergedSetsWhere({ user_id => $editForUserID });
233-
234-
# get set versions of versioned sets
235-
my %UserSetVersionRecords;
236-
my %UserSetMergedVersionRecords;
237-
foreach my $setid (keys(%UserSetRecords)) {
238-
if ($GlobalSetRecords{$setid}->assignment_type =~ /gateway/) {
239-
my @setVersionRefs = map { [ $editForUserID, $setid, $_ ] } $db->listSetVersions($editForUserID, $setid);
240-
if (@setVersionRefs) {
241-
$UserSetVersionRecords{$setid} = [ $db->getSetVersions(@setVersionRefs) ];
242-
$UserSetMergedVersionRecords{$setid} = [ $db->getMergedSetVersions(@setVersionRefs) ];
243-
}
244-
}
245-
}
246-
247229
########################################
248230
# Assigned sets form
249231
########################################
@@ -295,27 +277,55 @@ sub body {
295277
print CGI::Tr(CGI::th({ class => 'text-center', colspan => 3 }, "Sets assigned to $userName ($editForUserID)"));
296278
print CGI::Tr(CGI::th({ class => 'text-center' }, [ 'Assigned', "Edit set for $editForUserID", 'Dates', ]));
297279

280+
my %GlobalSetRecords = map { $_->set_id => $_ } @{ $self->{setRecords} };
281+
my %UserSetRecords =
282+
map { $_->set_id => $_ } $db->getUserSetsWhere({ user_id => $editForUserID, set_id => { not_like => '%,v%' } });
283+
my %MergedSetRecords = map { $_->set_id => $_ } $db->getMergedSetsWhere({ user_id => $editForUserID });
284+
285+
# get set versions of versioned sets
286+
my %UserSetVersionRecords;
287+
my %UserSetMergedVersionRecords;
288+
foreach my $setid (keys(%UserSetRecords)) {
289+
if ($GlobalSetRecords{$setid}->assignment_type =~ /gateway/) {
290+
my @setVersionRefs = map { [ $editForUserID, $setid, $_ ] } $db->listSetVersions($editForUserID, $setid);
291+
if (@setVersionRefs) {
292+
$UserSetVersionRecords{$setid} = [ $db->getSetVersions(@setVersionRefs) ];
293+
$UserSetMergedVersionRecords{$setid} = [ $db->getMergedSetVersions(@setVersionRefs) ];
294+
}
295+
}
296+
}
297+
298298
# Create a list of sets to show
299-
my @setsToShow = map { $_->set_id } @{ $self->{setRecords} };
299+
#my @setsToShow = map { $_->set_id } @{ $self->{setRecords} };
300300

301301
# insert any set versions that we have
302-
if (@setsToShow) {
303-
my $i = $#setsToShow;
304-
if (defined($UserSetVersionRecords{ $setsToShow[$i] })) {
305-
push(@setsToShow,
306-
map { $_->set_id . ",v" . $_->version_id } @{ $UserSetVersionRecords{ $setsToShow[$i] } });
307-
}
308-
$i--;
309-
while ($i >= 0) {
310-
if (defined($UserSetVersionRecords{ $setsToShow[$i] })) {
311-
splice(@setsToShow, $i + 1, 0,
312-
map { $_->set_id . ",v" . $_->version_id } @{ $UserSetVersionRecords{ $setsToShow[$i] } });
302+
#if (@setsToShow) {
303+
# my $i = $#setsToShow;
304+
# if (defined($UserSetVersionRecords{ $setsToShow[$i] })) {
305+
# push(@setsToShow,
306+
# map { $_->set_id . ",v" . $_->version_id } @{ $UserSetVersionRecords{ $setsToShow[$i] } });
307+
# }
308+
# $i--;
309+
# while ($i >= 0) {
310+
# if (defined($UserSetVersionRecords{ $setsToShow[$i] })) {
311+
# splice(@setsToShow, $i + 1, 0,
312+
# map { $_->set_id . ",v" . $_->version_id } @{ $UserSetVersionRecords{ $setsToShow[$i] } });
313+
# }
314+
# $i--;
315+
# }
316+
#}
317+
318+
for my $set (@{ $self->{setRecords} }) {
319+
my $setID = $set->set_id;
320+
321+
if (defined $UserSetVersionRecords{$setID}) {
322+
for my $version (@{ $UserSetVersionRecords{$setID} }) {
323+
my $setVersion = $version->version_id;
324+
my $versionSetID = "$setID,v$setVersion";
325+
warn $versionSetID;
313326
}
314-
$i--;
315327
}
316-
}
317328

318-
for my $setID (@setsToShow) {
319329
# catch the versioned sets that we just added
320330
my $setVersion = 0;
321331
my $fullSetID = $setID;
@@ -324,7 +334,7 @@ sub body {
324334
$setID =~ s/,v\d+$//;
325335
}
326336

327-
my $GlobalSetRecord = $GlobalSetRecords{$setID};
337+
my $GlobalSetRecord = $set;
328338
my $UserSetRecord =
329339
(!$setVersion) ? $UserSetRecords{$setID} : $UserSetVersionRecords{$setID}->[ $setVersion - 1 ];
330340
my $MergedSetRecord =
@@ -359,7 +369,7 @@ sub body {
359369
labelattributes => { class => 'form-check-label' }
360370
}),
361371
defined($MergedSetRecord) ? CGI::b(CGI::a({ href => $url }, $setName)) : CGI::b($setID),
362-
join "\n",
372+
join "",
363373
$self->DBFieldTable(
364374
$GlobalSetRecord, $UserSetRecord, $MergedSetRecord, 'set',
365375
$setID, \@dateFields, $rh_dateFieldLabels
@@ -387,6 +397,10 @@ sub body {
387397
return '';
388398
}
389399

400+
sub outputSetRow {
401+
my $self = shift;
402+
}
403+
390404
sub checkDates {
391405
my $self = shift;
392406
my $setRecord = shift;

0 commit comments

Comments
 (0)