From: Mike G. v. a. <we...@ma...> - 2005-02-06 15:31:02
|
Log Message: ----------- Backporting updates: Maintain displayOptions when following links. Allows one to view the default set headers in the PG editor. From there one can save the header locally and edit it. Tags: ---- rel-2-1-patches Modified Files: -------------- webwork2/lib/WeBWorK/ContentGenerator: ProblemSet.pm ProblemSets.pm Revision Data ------------- Index: ProblemSet.pm =================================================================== RCS file: /webwork/cvs/system/webwork2/lib/WeBWorK/ContentGenerator/ProblemSet.pm,v retrieving revision 1.58 retrieving revision 1.58.2.1 diff -Llib/WeBWorK/ContentGenerator/ProblemSet.pm -Llib/WeBWorK/ContentGenerator/ProblemSet.pm -u -r1.58 -r1.58.2.1 --- lib/WeBWorK/ContentGenerator/ProblemSet.pm +++ lib/WeBWorK/ContentGenerator/ProblemSet.pm @@ -29,6 +29,7 @@ use CGI qw(*ul *li); use WeBWorK::PG; use WeBWorK::Timing; +use URI::Escape; use WeBWorK::Utils qw(sortByName); sub initialize { @@ -50,7 +51,11 @@ die "effective user $effectiveUserName not found. One 'acts as' the effective user." unless $effectiveUser; # FIXME: some day it would be nice to take out this code and consolidate the two checks - + + # get result and send to message + my $status_message = $r->param("status_message"); + $self->addmessage(CGI::p("$status_message")) if $status_message; + # because of the database fix, we have to split our invalidSet check into two parts # First, if $set is undefined then $setName was never valid $self->{invalidSet} = not defined $set; @@ -94,9 +99,11 @@ my $problemSetsPage = $urlpath->parent; my @links = ("Problem Sets" , $r->location . $problemSetsPage->path, "navUp"); - return $self->navMacro($args, "", @links); + my $tail = "&displayMode=".$self->{displayMode}."&showOldAnswers=".$self->{will}->{showOldAnswers}; + return $self->navMacro($args, $tail, @links); } + sub siblings { my ($self) = @_; my $r = $self->r; @@ -124,7 +131,11 @@ foreach my $setID (@setIDs) { my $setPage = $urlpath->newFromModule("WeBWorK::ContentGenerator::ProblemSet", courseID => $courseID, setID => $setID); - print CGI::li(CGI::a({href=>$self->systemLink($setPage)}, $setID)) ; + print CGI::li(CGI::a({href=>$self->systemLink($setPage), + params=>{ displayMode => $self->{displayMode}, + showOldAnswers => $self->{will}->{showOldAnswers} + }}, $setID) + ) ; } $WeBWorK::timer->continue("End printing sets from listUserSets()") if defined $WeBWorK::timer; @@ -205,11 +216,11 @@ }, ); - if (defined($set) and $set->set_header and $authz->hasPermissions($userID, "modify_problem_sets")) { + if (defined($set) and $authz->hasPermissions($userID, "modify_problem_sets")) { #FIXME ? can't edit the default set header this way my $editorPage = $urlpath->newFromModule("WeBWorK::ContentGenerator::Instructor::PGProblemEditor", courseID => $courseID, setID => $set->set_id, problemID => 0); - my $editorURL = $self->systemLink($editorPage); + my $editorURL = $self->systemLink($editorPage, params => { file_type => 'set_header'}); print CGI::p(CGI::b("Set Info"), " ", CGI::a({href=>$editorURL}, "[edit]")); @@ -336,7 +347,11 @@ my $interactiveURL = $self->systemLink( $urlpath->newFromModule("WeBWorK::ContentGenerator::Problem", - courseID => $courseID, setID => $setID, problemID => $problemID) + courseID => $courseID, setID => $setID, problemID => $problemID + ), + params=>{ displayMode => $self->{displayMode}, + showOldAnswers => $self->{will}->{showOldAnswers} + } ); my $interactive = CGI::a({-href=>$interactiveURL}, "Problem $problemID"); Index: ProblemSets.pm =================================================================== RCS file: /webwork/cvs/system/webwork2/lib/WeBWorK/ContentGenerator/ProblemSets.pm,v retrieving revision 1.56 retrieving revision 1.56.2.1 diff -Llib/WeBWorK/ContentGenerator/ProblemSets.pm -Llib/WeBWorK/ContentGenerator/ProblemSets.pm -u -r1.56 -r1.56.2.1 --- lib/WeBWorK/ContentGenerator/ProblemSets.pm +++ lib/WeBWorK/ContentGenerator/ProblemSets.pm @@ -61,8 +61,12 @@ } else { print CGI::p(CGI::b("Course Info")); } - - if (-f $course_info_path) { + unless (-e $course_info_path) { # FIXME + `echo "" >$course_info_path`; # we seem to need to have this file + # around to prevent + # spurious errors when editing it. + } + if (-f $course_info_path) { #check that it's a plain file my $text = eval { readFile($course_info_path) }; if ($@) { print CGI::div({class=>"ResultsWithError"}, @@ -84,6 +88,26 @@ $name =~ s/\s/_/g; $self->helpMacro($name); } +sub initialize { + + + +# get result and send to message + my ($self) = @_; + my $r = $self->r; + my $authz = $r->authz; + my $urlpath = $r->urlpath; + + my $user = $r->param("user"); + my $effectiveUser = $r->param("effectiveUser"); + if ($authz->hasPermissions($user, "access_instructor_tools")) { + # get result and send to message + my $status_message = $r->param("status_message"); + $self->addmessage(CGI::p("$status_message")) if $status_message; + + + } +} sub body { my ($self) = @_; my $r = $self->r; @@ -202,7 +226,11 @@ my $problemSetPage = $urlpath->newFromModule("WeBWorK::ContentGenerator::ProblemSet", courseID => $courseName, setID => $name); - my $interactiveURL = $self->systemLink($problemSetPage); + my $interactiveURL = $self->systemLink($problemSetPage, + params=>{ displayMode => $self->{displayMode}, + showOldAnswers => $self->{will}->{showOldAnswers} + } + ); my $openDate = $self->formatDateTime($set->open_date); my $dueDate = $self->formatDateTime($set->due_date); |