Log Message:
-----------
SetMaker: update to make problems that are "tried" display according
to the assignment type of the selected set. We may want to back this
change out at some point: because the set type is determined when the
page is built, changing the selected set doesn't change how viewed
problems are displayed until the page is reloaded. I think the
behavior introduced by this patch is better than showing all problems
as homework problems, but it may be otherwise.
Modified Files:
--------------
webwork2/lib/WeBWorK/ContentGenerator/Instructor:
SetMaker.pm
Revision Data
-------------
Index: SetMaker.pm
===================================================================
RCS file: /webwork/cvs/system/webwork2/lib/WeBWorK/ContentGenerator/Instructor/SetMaker.pm,v
retrieving revision 1.84
retrieving revision 1.85
diff -Llib/WeBWorK/ContentGenerator/Instructor/SetMaker.pm -Llib/WeBWorK/ContentGenerator/Instructor/SetMaker.pm -u -r1.84 -r1.85
--- lib/WeBWorK/ContentGenerator/Instructor/SetMaker.pm
+++ lib/WeBWorK/ContentGenerator/Instructor/SetMaker.pm
@@ -843,6 +843,19 @@
$sourceFileName =~ s|^./||; # clean up top ugliness
my $urlpath = $self->r->urlpath;
+ my $db = $self->r->db;
+
+ ## to set up edit and try links elegantly we want to know if
+ ## any target set is a gateway assignment or not
+ my $localSet = $self->r->param('local_sets');
+ my $setRecord;
+ if ( defined($localSet) && $localSet ne SELECT_SET_STRING &&
+ $localSet ne NO_LOCAL_SET_STRING ) {
+ $setRecord = $db->getGlobalSet( $localSet );
+ }
+ my $isGatewaySet = ( defined($setRecord) &&
+ $setRecord->assignment_type =~ /gateway/ );
+
my $problem_output = $pg->{flags}->{error_flag} ?
CGI::div({class=>"ResultsWithError"}, CGI::em("This problem produced an error"))
: CGI::div({class=>"RenderSolo"}, $pg->{body_text});
@@ -862,19 +875,22 @@
my $displayMode = $self->r->param("mydisplayMode");
$displayMode = $self->r->ce->{pg}->{options}->{displayMode}
if not defined $displayMode or $displayMode eq "None";
+ my $module = ( $isGatewaySet ) ? "GatewayQuiz" : "Problem";
+ my %pathArgs = ( courseID =>$urlpath->arg("courseID"),
+ setID=>"Undefined_Set" );
+ $pathArgs{problemID} = "1" if ( ! $isGatewaySet );
+
my $try_link = CGI::a({href=>$self->systemLink(
- $urlpath->newFromModule("WeBWorK::ContentGenerator::Problem",
- courseID =>$urlpath->arg("courseID"),
- setID=>"Undefined_Set",
- problemID=>"1"),
- params =>{
- effectiveUser => scalar($self->r->param('user')),
- editMode => "SetMaker",
- problemSeed=> $problem_seed,
- sourceFilePath => "$sourceFileName",
- displayMode => $displayMode,
- }
- ), target=>"WW_View"}, "Try it");
+ $urlpath->newFromModule("WeBWorK::ContentGenerator::$module",
+ %pathArgs ),
+ params =>{
+ effectiveUser => scalar($self->r->param('user')),
+ editMode => "SetMaker",
+ problemSeed=> $problem_seed,
+ sourceFilePath => "$sourceFileName",
+ displayMode => $displayMode,
+ }
+ ), target=>"WW_View"}, "Try it");
my %add_box_data = ( -name=>"trial$cnt",-value=>1,-label=>"Add this problem to the target set on the next update");
if($mark & SUCCESS) {
|