@@ -102,7 +102,7 @@ sub formatRenderedProblem {
102
102
my $problemHeadText = $rh_result -> {header_text }//' ' ; # #head_text vs header_text
103
103
my $problemPostHeaderText = $rh_result -> {post_header_text }//' ' ;
104
104
my $rh_answers = $rh_result -> {answers }//{};
105
- my $answerOrder = $rh_result -> {flags }-> {ANSWER_ENTRY_ORDER }; # [sort keys %{ $rh_result->{answers} }];
105
+ my $answerOrder = $rh_result -> {flags }-> {ANSWER_ENTRY_ORDER }//[] ; # [sort keys %{ $rh_result->{answers} }];
106
106
my $encoded_source = $self -> encoded_source//' ' ;
107
107
my $sourceFilePath = $self -> {sourceFilePath }//' ' ;
108
108
my $problemSourceURL = $self -> {inputs_ref }-> {problemSourceURL };
@@ -166,9 +166,9 @@ sub formatRenderedProblem {
166
166
my $sessionJWT = $self -> {return_object }{sessionJWT } // ' ' ;
167
167
168
168
my $previewMode = defined ( $self -> {inputs_ref }{previewAnswers } ) || 0;
169
- my $checkMode = defined ( $self -> {inputs_ref }{checkAnswers } ) || 0;
170
- my $submitMode = defined ( $self -> {inputs_ref }{submitAnswers } ) || 0;
169
+ # showCorrectMode needs more security -- ww2 uses want/can/will
171
170
my $showCorrectMode = defined ( $self -> {inputs_ref }{showCorrectAnswers } ) || 0;
171
+ my $submitMode = defined ($self -> {inputs_ref }{submitAnswers }) || $self -> {inputs_ref }{answersSubmitted } || 0;
172
172
173
173
# problemUUID can be added to the request as a parameter. It adds a prefix
174
174
# to the identifier used by the format so that several different problems
@@ -180,6 +180,8 @@ sub formatRenderedProblem {
180
180
// $rh_result -> {flags }{showPartialCorrectAnswers };
181
181
my $showSummary = $self -> {inputs_ref }{showSummary } // 1; # default to show summary for the moment
182
182
my $formLanguage = $self -> {inputs_ref }{language } // ' en' ;
183
+ my $showTable = $self -> {inputs_ref }{hideAttemptsTable } ? 0 : 1;
184
+ my $showMessages = $self -> {inputs_ref }{hideMessages } ? 0 : 1;
183
185
my $scoreSummary = ' ' ;
184
186
185
187
my $COURSE_LANG_AND_DIR = get_lang_and_dir($formLanguage );
@@ -191,24 +193,27 @@ sub formatRenderedProblem {
191
193
my $PROBLEM_LANG_AND_DIR = join (" " , map { qq{ $_ ="$PROBLEM_LANG_AND_DIR {$_ }"} } keys %PROBLEM_LANG_AND_DIR );
192
194
my $mt = WeBWorK::Localize::getLangHandle($self -> {inputs_ref }{language } // ' en' );
193
195
194
- my $tbl = WeBWorK::Utils::AttemptsTable-> new(
195
- $rh_answers ,
196
- answersSubmitted => $self -> {inputs_ref }{answersSubmitted }//0,
197
- answerOrder => $answerOrder //[],
198
- displayMode => $self -> {inputs_ref }{displayMode },
199
- showAnswerNumbers => 0,
200
- showAttemptAnswers => 0,
201
- showAttemptPreviews => ($previewMode or $submitMode or $showCorrectMode ),
202
- showAttemptResults => ($submitMode and $showPartialCorrectAnswers ),
203
- showCorrectAnswers => ($showCorrectMode ),
204
- showMessages => ($previewMode or $submitMode or $showCorrectMode ),
205
- showSummary => ( ($showSummary and ($submitMode or $showCorrectMode ) )//0 )?1:0,
206
- maketext => WeBWorK::Localize::getLoc($formLanguage //' en' ),
207
- summary => $problemResult -> {summary } //' ' , # can be set by problem grader???
208
- );
209
-
210
- my $answerTemplate = $tbl -> answerTemplate;
211
- $tbl -> imgGen-> render(body_text => \$answerTemplate ) if $tbl -> displayMode eq ' images' ;
196
+ my $answerTemplate = ' ' ;
197
+ if ($submitMode && $showTable ) {
198
+ my $tbl = WeBWorK::Utils::AttemptsTable-> new(
199
+ $rh_answers ,
200
+ answersSubmitted => 1,
201
+ answerOrder => $answerOrder ,
202
+ displayMode => $displayMode ,
203
+ showAnswerNumbers => 0,
204
+ showAttemptAnswers => 0,
205
+ showAttemptPreviews => 1,
206
+ showAttemptResults => $showPartialCorrectAnswers ,
207
+ showCorrectAnswers => $showCorrectMode ,
208
+ showMessages => $showMessages ,
209
+ showSummary => $showSummary ,
210
+ maketext => WeBWorK::Localize::getLoc($formLanguage ),
211
+ summary => $problemResult -> {summary } // ' ' , # can be set by problem grader???
212
+ );
213
+
214
+ $answerTemplate = $tbl -> answerTemplate;
215
+ $tbl -> imgGen-> render(body_text => \$answerTemplate ) if $tbl -> displayMode eq ' images' ;
216
+ }
212
217
213
218
# warn "imgGen is ", $tbl->imgGen;
214
219
# warn "answerOrder ", $tbl->answerOrder;
0 commit comments