Skip to content

Commit ff1e10d

Browse files
somiajpstaabp
authored andcommitted
Warn instructors if using deprecated_macros.
This adds a warning next to the problem comment on the PGProblemEditor, Library Browser (and maybe other places that use the Library Browser render) right before any instructor problem if deprecated macros are used in the problem.
1 parent 94e796e commit ff1e10d

File tree

5 files changed

+32
-3
lines changed

5 files changed

+32
-3
lines changed

htdocs/js/PGProblemEditor/pgproblemeditor.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -512,6 +512,17 @@
512512
container.innerHTML = data.pg_flags.comment;
513513
iframe.after(container);
514514
}
515+
if (data.deprecated_macros?.length) {
516+
const container = document.createElement('div');
517+
container.classList.add('alert', 'alert-danger', 'mx-2');
518+
container.innerHTML =
519+
'Warning!! This problem uses the following deprecated macros:' +
520+
'<ul class="mb-0">' +
521+
data.deprecated_macros.reduce((acc, item) => `${acc}<li>${item}</li>`, '') +
522+
'</ul>If this is an OPL problem, please report this issue to the OPL. ' +
523+
'If this is a custom problem, please update the problem to use modern macros.';
524+
iframe.after(container);
525+
}
515526

516527
iframe.addEventListener(
517528
'load',

htdocs/js/RenderProblem/renderproblem.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,17 @@
7777
container.innerHTML = data.pg_flags.comment;
7878
iframe.after(container);
7979
}
80+
if (data.deprecated_macros?.length) {
81+
const container = document.createElement('div');
82+
container.classList.add('alert', 'alert-danger');
83+
container.innerHTML =
84+
'Warning!! This problem uses the following deprecated macros:' +
85+
'<ul class="mb-0">' +
86+
data.deprecated_macros.reduce((acc, item) => `${acc}<li>${item}</li>`, '') +
87+
'</ul>If this is an OPL problem, please report this issue to the OPL. ' +
88+
'If this is a custom problem, please update the problem to use modern macros.';
89+
iframe.after(container);
90+
}
8091
iFrameResize(
8192
{
8293
checkOrigin: false,

lib/FormatRenderedProblem.pm

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,12 @@ sub formatRenderedProblem {
286286

287287
return $ws->c->render(%template_params) if $formatName eq 'json' || !$ws->{inputs_ref}{send_pg_flags};
288288
return $ws->c->render(
289-
json => { html => $ws->c->render_to_string(%template_params)->to_string, pg_flags => $rh_result->{flags} });
289+
json => {
290+
html => $ws->c->render_to_string(%template_params)->to_string,
291+
pg_flags => $rh_result->{flags},
292+
deprecated_macros => $rh_result->{deprecated_macros}
293+
}
294+
);
290295
}
291296

292297
sub saveGradeToLTI {

lib/WeBWorK/Utils/Rendering.pm

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,7 @@ sub renderPG ($c, $effectiveUser, $set, $problem, $psvn, $formFields, $translati
272272
$ret->{internal_debug_messages} = $pg->{pgcore}->get_internal_debug_messages;
273273
$ret->{warning_messages} = $pg->{pgcore}->get_warning_messages();
274274
$ret->{debug_messages} = $pg->{pgcore}->get_debug_messages();
275+
$ret->{deprecated_macros} = $pg->{pgcore}{PG_loadMacros}{deprecated_macros};
275276
$ret->{PG_ANSWERS_HASH} = {
276277
map {
277278
$_ => {

lib/WebworkWebservice/RenderProblem.pm

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -279,8 +279,9 @@ async sub renderProblem {
279279
psvn => $psvn,
280280
problem_seed => $problemSeed,
281281
resource_list => $pg->{resource_list},
282-
warning_messages => ref $pg->{warning_messages} eq 'ARRAY' ? $pg->{warning_messages} : [],
283-
debug_messages => ref $pg->{debug_messages} eq 'ARRAY' ? $pg->{debug_messages} : [],
282+
warning_messages => ref $pg->{warning_messages} eq 'ARRAY' ? $pg->{warning_messages} : [],
283+
debug_messages => ref $pg->{debug_messages} eq 'ARRAY' ? $pg->{debug_messages} : [],
284+
deprecated_macros => ref $pg->{deprecated_macros} eq 'ARRAY' ? $pg->{deprecated_macros} : [],
284285
internal_debug_messages => ref $pg->{internal_debug_messages} eq 'ARRAY'
285286
? $pg->{internal_debug_messages}
286287
: [],

0 commit comments

Comments
 (0)