[system] / trunk / webwork2 / lib / WeBWorK / ContentGenerator / Problem.pm Repository:
ViewVC logotype

Diff of /trunk/webwork2/lib/WeBWorK/ContentGenerator/Problem.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 703 Revision 704
22use WeBWorK::Utils qw(writeLog encodeAnswers decodeAnswers ref2string); 22use WeBWorK::Utils qw(writeLog encodeAnswers decodeAnswers ref2string);
23 23
24############################################################ 24############################################################
25# 25#
26# user 26# user
27# effectiveUser
27# key 28# key
28# 29#
29# displayMode 30# displayMode
30# showOldAnswers 31# showOldAnswers
31# showCorrectAnswers 32# showCorrectAnswers
41 42
42sub pre_header_initialize { 43sub pre_header_initialize {
43 my ($self, $setName, $problemNumber) = @_; 44 my ($self, $setName, $problemNumber) = @_;
44 my $courseEnv = $self->{courseEnvironment}; 45 my $courseEnv = $self->{courseEnvironment};
45 my $r = $self->{r}; 46 my $r = $self->{r};
46 my $authUserName = $r->param("user"); 47 my $userName = $r->param('user');
47 my $userName = $r->param("effectiveUser"); 48 my $effectiveUserName = $r->param('effectiveUser');
48 49
49 ##### database setup ##### 50 ##### database setup #####
50 51
51 my $cldb = WeBWorK::DB::Classlist->new($courseEnv); 52 my $cldb = WeBWorK::DB::Classlist->new($courseEnv);
52 my $wwdb = WeBWorK::DB::WW->new($courseEnv); 53 my $wwdb = WeBWorK::DB::WW->new($courseEnv);
53 my $authdb = WeBWorK::DB::Auth->new($courseEnv); 54 my $authdb = WeBWorK::DB::Auth->new($courseEnv);
54 55
55 my $user = $cldb->getUser($userName); 56 my $user = $cldb->getUser($userName);
57 my $effectiveUser = $cldb->getUser($effectiveUserName);
56 my $set = $wwdb->getSet($userName, $setName); 58 my $set = $wwdb->getSet($effectiveUserName, $setName);
57 my $problem = $wwdb->getProblem($userName, $setName, $problemNumber); 59 my $problem = $wwdb->getProblem($effectiveUserName, $setName, $problemNumber);
58 my $psvn = $wwdb->getPSVN($userName, $setName); 60 my $psvn = $wwdb->getPSVN($effectiveUserName, $setName);
59 my $permissionLevel = $authdb->getPermissions($authUserName); 61 my $permissionLevel = $authdb->getPermissions($userName);
60 62
61 ##### form processing ##### 63 ##### form processing #####
62 64
63 # set options from form fields (see comment at top of file for names) 65 # set options from form fields (see comment at top of file for names)
64 my $displayMode = $r->param("displayMode") || $courseEnv->{pg}->{options}->{displayMode}; 66 my $displayMode = $r->param("displayMode") || $courseEnv->{pg}->{options}->{displayMode};
116 118
117 ##### translation ##### 119 ##### translation #####
118 120
119 my $pg = WeBWorK::PG->new( 121 my $pg = WeBWorK::PG->new(
120 $courseEnv, 122 $courseEnv,
121 $user, 123 $effectiveUser,
122 $r->param('key'), 124 $r->param('key'),
123 $set, 125 $set,
124 $problem, 126 $problem,
125 $psvn, 127 $psvn,
126 $formFields, 128 $formFields,
144 $self->{wwdb} = $wwdb; 146 $self->{wwdb} = $wwdb;
145 $self->{authdb} = $authdb; 147 $self->{authdb} = $authdb;
146 148
147 $self->{userName} = $userName; 149 $self->{userName} = $userName;
148 $self->{user} = $user; 150 $self->{user} = $user;
151 $self->{effectiveUser} = $effectiveUser;
149 $self->{set} = $set; 152 $self->{set} = $set;
150 $self->{problem} = $problem; 153 $self->{problem} = $problem;
151 $self->{permissionLevel} = $permissionLevel; 154 $self->{permissionLevel} = $permissionLevel;
152 155
153 $self->{displayMode} = $displayMode; 156 $self->{displayMode} = $displayMode;
207 my $courseName = $ce->{courseName}; 210 my $courseName = $ce->{courseName};
208 211
209 print CGI::strong("Problems"), CGI::br(); 212 print CGI::strong("Problems"), CGI::br();
210 213
211 my $wwdb = $self->{wwdb}; 214 my $wwdb = $self->{wwdb};
212 my $user = $self->{userName}; 215 my $effectiveUser = $self->{r}->param("effectiveUser");
213 my @problems; 216 my @problems;
214 push @problems, $wwdb->getProblem($user, $setName, $_) 217 push @problems, $wwdb->getProblem($effectiveUser, $setName, $_)
215 foreach ($wwdb->getProblems($user, $setName)); 218 foreach ($wwdb->getProblems($effectiveUser, $setName));
216 foreach my $problem (sort { $a->id <=> $b->id } @problems) { 219 foreach my $problem (sort { $a->id <=> $b->id } @problems) {
217 print CGI::a({-href=>"$root/$courseName/$setName/".$problem->id."/?" 220 print CGI::a({-href=>"$root/$courseName/$setName/".$problem->id."/?"
218 . $self->url_authen_args . "&displayMode=" . $self->{displayMode}}, 221 . $self->url_authen_args . "&displayMode=" . $self->{displayMode}},
219 "Problem ".$problem->id), CGI::br(); 222 "Problem ".$problem->id), CGI::br();
220 } 223 }
228 231
229 my $ce = $self->{courseEnvironment}; 232 my $ce = $self->{courseEnvironment};
230 my $root = $ce->{webworkURLs}->{root}; 233 my $root = $ce->{webworkURLs}->{root};
231 my $courseName = $ce->{courseName}; 234 my $courseName = $ce->{courseName};
232 235
233 my $wwdb = $self->{wwdb}; 236 my $wwdb = $self->{wwdb};
234 my $user = $self->{userName}; 237 my $effectiveUser = $self->{r}->param("effectiveUser");
235 my $tail = "&displayMode=".$self->{displayMode}; 238 my $tail = "&displayMode=".$self->{displayMode};
236 239
237 my @links = ("Problem List" => "$root/$courseName/$setName"); 240 my @links = ("Problem List" => "$root/$courseName/$setName");
238 241
239 my $prevProblem = $wwdb->getProblem($user, $setName, $problemNumber-1); 242 my $prevProblem = $wwdb->getProblem($effectiveUser, $setName, $problemNumber-1);
240 my $nextProblem = $wwdb->getProblem($user, $setName, $problemNumber+1); 243 my $nextProblem = $wwdb->getProblem($effectiveUser, $setName, $problemNumber+1);
241 unshift @links, "Previous Problem" => $prevProblem 244 unshift @links, "Previous Problem" => $prevProblem
242 ? "$root/$courseName/$setName/".$prevProblem->id 245 ? "$root/$courseName/$setName/".$prevProblem->id
243 : ""; 246 : "";
244 push @links, "Next Problem" => $nextProblem 247 push @links, "Next Problem" => $nextProblem
245 ? "$root/$courseName/$setName/".$nextProblem->id 248 ? "$root/$courseName/$setName/".$nextProblem->id

Legend:
Removed from v.703  
changed lines
  Added in v.704

aubreyja at gmail dot com
ViewVC Help
Powered by ViewVC 1.0.9