Skip to content

Commit 400e8a1

Browse files
committed
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 b9aa3b8 commit 400e8a1

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
@@ -272,7 +272,12 @@ sub formatRenderedProblem {
272272

273273
return $ws->c->render(%template_params) if $formatName eq 'json' || !$ws->{inputs_ref}{send_pg_flags};
274274
return $ws->c->render(
275-
json => { html => $ws->c->render_to_string(%template_params)->to_string, pg_flags => $rh_result->{flags} });
275+
json => {
276+
html => $ws->c->render_to_string(%template_params)->to_string,
277+
pg_flags => $rh_result->{flags},
278+
deprecated_macros => $rh_result->{deprecated_macros}
279+
}
280+
);
276281
}
277282

278283
sub saveGradeToLTI {

lib/WeBWorK/Utils/Rendering.pm

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,7 @@ sub renderPG ($c, $effectiveUser, $set, $problem, $psvn, $formFields, $translati
257257
$ret->{internal_debug_messages} = $pg->{pgcore}->get_internal_debug_messages;
258258
$ret->{warning_messages} = $pg->{pgcore}->get_warning_messages();
259259
$ret->{debug_messages} = $pg->{pgcore}->get_debug_messages();
260+
$ret->{deprecated_macros} = $pg->{pgcore}{PG_loadMacros}{deprecated_macros};
260261
$ret->{PG_ANSWERS_HASH} = {
261262
map {
262263
$_ => {

lib/WebworkWebservice/RenderProblem.pm

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -264,8 +264,9 @@ async sub renderProblem {
264264
psvn => $psvn,
265265
problem_seed => $problemSeed,
266266
resource_list => $pg->{resource_list},
267-
warning_messages => ref $pg->{warning_messages} eq 'ARRAY' ? $pg->{warning_messages} : [],
268-
debug_messages => ref $pg->{debug_messages} eq 'ARRAY' ? $pg->{debug_messages} : [],
267+
warning_messages => ref $pg->{warning_messages} eq 'ARRAY' ? $pg->{warning_messages} : [],
268+
debug_messages => ref $pg->{debug_messages} eq 'ARRAY' ? $pg->{debug_messages} : [],
269+
deprecated_macros => ref $pg->{deprecated_macros} eq 'ARRAY' ? $pg->{deprecated_macros} : [],
269270
internal_debug_messages => ref $pg->{internal_debug_messages} eq 'ARRAY'
270271
? $pg->{internal_debug_messages}
271272
: [],

0 commit comments

Comments
 (0)