[system] / trunk / webwork-modperl / lib / WeBWorK / ContentGenerator / Instructor / PGProblemEditor.pm Repository:
ViewVC logotype

Diff of /trunk/webwork-modperl/lib/WeBWorK/ContentGenerator/Instructor/PGProblemEditor.pm

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

Revision 925 Revision 928
41 my $hostname = $r->hostname(); 41 my $hostname = $r->hostname();
42 my $port = $r->get_server_port(); 42 my $port = $r->get_server_port();
43 my $uri = $r->uri; 43 my $uri = $r->uri;
44 my $courseName = $self->{ce}->{courseName}; 44 my $courseName = $self->{ce}->{courseName};
45 my $editFileSuffix = $self->{ce}->{editFileSuffix}; 45 my $editFileSuffix = $self->{ce}->{editFileSuffix};
46 my $seed = ($r->param('seed')) ? $r->param('seed') : ''; 46 my $problemSeed = ($r->param('problemSeed')) ? $r->param('problemSeed') : '';
47 my $displayMode = ($r->param('displayMode')) ? $r->param('displayMode') : ''; 47 my $displayMode = ($r->param('displayMode')) ? $r->param('displayMode') : '';
48 48
49 my $viewURL = "http://$hostname:$port"; 49 my $viewURL = "http://$hostname:$port";
50 $viewURL .= "/webwork/$courseName/$setName/$problemNumber/?"; 50 $viewURL .= "/webwork/$courseName/$setName/$problemNumber/?";
51 $viewURL .= $self->url_authen_args; 51 $viewURL .= $self->url_authen_args;
52 $viewURL .= "&displayMode=$displayMode&seed=$seed"; # optional displayMode and seed overrides 52 $viewURL .= "&displayMode=$displayMode&problemSeed=$problemSeed"; # optional displayMode and problemSeed overrides
53 $viewURL .= "&editMode=temporaryFile"; 53 $viewURL .= "&editMode=temporaryFile";
54 $viewURL .= '&sourceFilePath='.$self->{ce}->{currentSourceFilePath}; # path to pg text for viewing 54 $viewURL .= '&sourceFilePath='.$self->{ce}->{currentSourceFilePath}; # path to pg text for viewing
55 $viewURL .= "&submit_button=$submit_button"; # allows Problem.pg to recognize state 55 $viewURL .= "&submit_button=$submit_button"; # allows Problem.pg to recognize state
56 $viewURL .= '&editErrors='.$self->{ce}->{editErrors}; # of problem being viewed. 56 $viewURL .= '&editErrors='.$self->{ce}->{editErrors}; # of problem being viewed.
57 $r->header_out(Location => $viewURL ); 57 $r->header_out(Location => $viewURL );
127 127
128 ######################################################################### 128 #########################################################################
129 # Format the page 129 # Format the page
130 ######################################################################### 130 #########################################################################
131 # Define parameters for textarea 131 # Define parameters for textarea
132 # FIXME these parameters should be capable of being updated dynamically. 132 # FIXME
133 # Should the seed be set from some particular user instance??
134 # The mode list should be obtained from global.conf ultimately
133 my $rows = 20; 135 my $rows = 20;
134 my $columns = 80; 136 my $columns = 80;
135 my $mode_list = ['HTML', 'HTML_tth','HTML_dpng', 'Latex2HTML']; 137 my $mode_list = ['plainText','formattedText','images'];
136 my $mode = ( defined($r->param('mode')) ) ? $r->param('mode') : 'HTML_tth'; 138 my $displayMode = $self->{displayMode};
137 my $seed = ( defined($r->param('seed')) ) ? $r->param('seed') : '1234'; 139 my $problemSeed = $self->{problemSeed};
138 my $uri = $r->uri; 140 my $uri = $r->uri;
139 ######################################################################## 141 ########################################################################
140 # Define a link to view the problem 142 # Define a link to view the problem
141 #FIXME 143 #FIXME
142 144
149 return CGI::p($header), 151 return CGI::p($header),
150 #CGI::start_form("POST",$r->uri,-target=>'_problem'), doesn't pass on the target parameter??? 152 #CGI::start_form("POST",$r->uri,-target=>'_problem'), doesn't pass on the target parameter???
151 qq!<form method="POST" action="$uri" enctype="application/x-www-form-urlencoded", target="_problem">!, 153 qq!<form method="POST" action="$uri" enctype="application/x-www-form-urlencoded", target="_problem">!,
152 $self->hidden_authen_fields, 154 $self->hidden_authen_fields,
153 CGI::div( 155 CGI::div(
154 CGI::textfield(-name=>'seed',-value=>$seed), 156 CGI::textfield(-name=>'problemSeed',-value=>$problemSeed),
155 'Mode: ', 157 'Mode: ',
156 CGI::popup_menu(-name=>'mode', -'values'=>$mode_list, 158 CGI::popup_menu(-name=>'displayMode', -'values'=>$mode_list,
157 -default=>$mode), 159 -default=>$displayMode),
158 CGI::a( 160 CGI::a(
159 {-href=>'http://webwork.math.rochester.edu/docs/docs/pglanguage/manpages/',-target=>"manpage_window"}, 161 {-href=>'http://webwork.math.rochester.edu/docs/docs/pglanguage/manpages/',-target=>"manpage_window"},
160 'Manpages', 162 'Manpages',
161 ) 163 )
162 ), 164 ),
198 my $path_info = $r->path_info || ""; 200 my $path_info = $r->path_info || "";
199 my $db = $self->{db}; 201 my $db = $self->{db};
200 my $user = $r->param('user'); 202 my $user = $r->param('user');
201 my $effectiveUserName = $r->param('effectiveUser'); 203 my $effectiveUserName = $r->param('effectiveUser');
202 my $courseName = $ce->{courseName}; 204 my $courseName = $ce->{courseName};
203 205
206# FIXME -- sometimes this doesn't find a set
204 my $set = $db->getGlobalUserSet($effectiveUserName, $setName); 207# my $set = $db->getGlobalUserSet($effectiveUserName, $setName);
205 my $setID = $set->set_id; 208# my $setID = $set->set_id;
206 209
207 # Find URL for viewing problem 210 # Find URL for viewing problem
208# my $viewProblemURL = "/webwork/$courseName/".join("/",$setID,$problemNumber)."?" .$self->url_authen_args();
209 211
210 # find path to pg file for the problem 212 # find path to pg file for the problem
211 # FIXME there is a descrepency in the way that the problems are found. 213 # FIXME there is a discrepancy in the way that the problems are found.
214 # FIXME more error checking is needed in case the problem doesn't exist.
212 # my $problem_record = $db->getUserProblem($user,$setID,1); 215 # my $problem_record = $db->getUserProblem($user,$setID,1);
213 my $problem_record = $db->getGlobalUserProblem($effectiveUserName, $setName, $problemNumber); 216 my $problem_record = $db->getGlobalUserProblem($effectiveUserName, $setName, $problemNumber);
214 my $templateDirectory = $ce->{courseDirs}->{templates}; 217 my $templateDirectory = $ce->{courseDirs}->{templates};
215 my $problemPath = $templateDirectory."/".$problem_record->source_file; 218 my $problemPath = $templateDirectory."/".$problem_record->source_file;
216 my $editFileSuffix = 'tmp'; 219 my $editFileSuffix = 'tmp';
217 my $submit_button = $r->param('submit'); 220 my $submit_button = $r->param('submit');
221
222 my $displayMode = ( defined($r->param('displayMode')) ) ? $r->param('displayMode') : $ce->{pg}->{options}->{displayMode};
223 my $problemSeed = ( defined($r->param('problemSeed')) ) ? $r->param('problemSeed') : $problem_record->problem_seed;
224 $problemSeed = '1234' unless defined($problemSeed) and $problemSeed =~/\S/;
218 225
219 my $problemContents = ''; 226 my $problemContents = '';
220 my $currentSourceFilePath = ''; 227 my $currentSourceFilePath = '';
221 # update the .pg and .pg.tmp files in the directory 228 # update the .pg and .pg.tmp files in the directory
222 if (not defined($submit_button) ) { 229 if (not defined($submit_button) ) {
269 276
270 }; 277 };
271 278
272 279
273 # return values. FIXME -- is this the right way to pass the values to body?? 280 # return values. FIXME -- is this the right way to pass the values to body??
281 # Should temporary results be passed in self or in ce??
274 # $ce->{viewProblemURL} = $viewProblemURL; 282 # $ce->{viewProblemURL} = $viewProblemURL;
275 $ce->{problemPath} = $problemPath; 283 $ce->{problemPath} = $problemPath;
284 $self->{displayMode} = $displayMode;
285 $self->{problemSeed} = $problemSeed;
276 $ce->{path_components} = join("/",$setID,$problemNumber); 286# $ce->{path_components} = join("/",$setID,$problemNumber);
277 287
278 # FIXME there is no way to edit in a temporary file -- all editing takes place on disk!!! 288 # FIXME there is no way to edit in a temporary file -- all editing takes place on disk!!!
279 289
280 290
281 291

Legend:
Removed from v.925  
changed lines
  Added in v.928

aubreyja at gmail dot com
ViewVC Help
Powered by ViewVC 1.0.9