Log Message:
-----------
ContentGenerator: clean up and collect sidebar links for gateway
assignments.
Modified Files:
--------------
webwork2/lib/WeBWorK:
ContentGenerator.pm
Revision Data
-------------
Index: ContentGenerator.pm
===================================================================
RCS file: /webwork/cvs/system/webwork2/lib/WeBWorK/ContentGenerator.pm,v
retrieving revision 1.193
retrieving revision 1.194
diff -Llib/WeBWorK/ContentGenerator.pm -Llib/WeBWorK/ContentGenerator.pm -u -r1.193 -r1.194
--- lib/WeBWorK/ContentGenerator.pm
+++ lib/WeBWorK/ContentGenerator.pm
@@ -657,8 +657,17 @@
if (defined $setID) {
print CGI::start_ul();
print CGI::start_li(); # $setID
- print &$makelink("${pfx}ProblemSet", text=>"$prettySetID", urlpath_args=>{%args,setID=>$setID}, systemlink_args=>\%systemlink_args);
- # FIXME i think we only want this if the problem set is not a gateway quiz
+ # show a link if we're displaying a homework set, or a version
+ # of a gateway assignment; to know if it's a gateway
+ # assignment, we have to get the set record.
+ my ($globalSetID) = ( $setID =~ /(.+?)(,v\d+)?$/ );
+ my $setRecord = $db->getGlobalSet( $globalSetID );
+ if ( $setRecord->assignment_type !~ /gateway/ ) {
+ print &$makelink("${pfx}ProblemSet", text=>"$prettySetID", urlpath_args=>{%args,setID=>$setID}, systemlink_args=>\%systemlink_args);
+ } elsif ($setID =~ /,v(\d)+$/) {
+ print &$makelink("${pfx}GatewayQuiz", text=>"$prettySetID", urlpath_args=>{%args,setID=>$setID}, systemlink_args=>\%systemlink_args);
+ }
+
if (defined $problemID) {
print CGI::start_ul();
print CGI::start_li(); # $problemID
@@ -689,7 +698,8 @@
print CGI::start_li(); # Homework Set Editor
print &$makelink("${pfx}ProblemSetList", urlpath_args=>{%args}, systemlink_args=>\%systemlink_args);
- if (defined $setID) {
+ ## only show editor link for non-versioned sets
+ if (defined $setID && $setID !~ /,v\d+$/ ) {
print CGI::start_ul();
print CGI::start_li(); # $setID
print &$makelink("${pfx}ProblemSetDetail", text=>"$prettySetID", urlpath_args=>{%args,setID=>$setID}, systemlink_args=>\%systemlink_args);
@@ -715,7 +725,11 @@
print CGI::li(&$makelink("${pfx}Stats", text=>"$eUserID", urlpath_args=>{%args,statType=>"student",userID=>$eUserID}, systemlink_args=>\%systemlink_args));
}
if (defined $setID) {
- print CGI::li(&$makelink("${pfx}Stats", text=>"$prettySetID", urlpath_args=>{%args,statType=>"set",setID=>$setID}, systemlink_args=>\%systemlink_args));
+ # make sure we don't try to send a versioned
+ # set id in to the stats link
+ my ( $nvSetID ) = ( $setID =~ /(.+?)(,v\d+)?$/ );
+ my ( $nvPretty ) = ( $prettySetID =~ /(.+?)(,v\d+)?$/ );
+ print CGI::li(&$makelink("${pfx}Stats", text=>"$nvPretty", urlpath_args=>{%args,statType=>"set",setID=>$nvSetID}, systemlink_args=>\%systemlink_args));
}
print CGI::end_ul();
}
@@ -729,7 +743,11 @@
print CGI::li(&$makelink("${pfx}StudentProgress", text=>"$eUserID", urlpath_args=>{%args,statType=>"student",userID=>$eUserID}, systemlink_args=>\%systemlink_args));
}
if (defined $setID) {
- print CGI::li(&$makelink("${pfx}StudentProgress", text=>"$prettySetID", urlpath_args=>{%args,statType=>"set",setID=>$setID}, systemlink_args=>\%systemlink_args));
+ # make sure we don't try to send a versioned
+ # set id in to the stats link
+ my ( $nvSetID ) = ( $setID =~ /(.+?)(,v\d+)?$/ );
+ my ( $nvPretty ) = ( $prettySetID =~ /(.+?)(,v\d+)?$/ );
+ print CGI::li(&$makelink("${pfx}StudentProgress", text=>"$nvPretty", urlpath_args=>{%args,statType=>"set",setID=>$nvSetID}, systemlink_args=>\%systemlink_args));
}
print CGI::end_ul();
}
|