From 54299e17b83e3ae10dd6b1a3ef39481036b09048 Mon Sep 17 00:00:00 2001 From: Taka Date: Thu, 28 May 2020 11:33:23 +0000 Subject: [PATCH] Allow Chapter H multi-applicable notes to be "disabled". --- .../webapp/data/default-template-pack/ob_ma_notes.j2 | 9 +++++++-- vasl_templates/webapp/static/snippets.js | 10 +++++++--- .../fixtures/data/default-template-pack/ob_ma_notes.j2 | 4 ++-- vasl_templates/webapp/tests/test_vasl_extensions.py | 5 +++-- vasl_templates/webapp/vasl_mod.py | 2 +- 5 files changed, 20 insertions(+), 10 deletions(-) diff --git a/vasl_templates/webapp/data/default-template-pack/ob_ma_notes.j2 b/vasl_templates/webapp/data/default-template-pack/ob_ma_notes.j2 index b5421f0..9b28e2e 100644 --- a/vasl_templates/webapp/data/default-template-pack/ob_ma_notes.j2 +++ b/vasl_templates/webapp/data/default-template-pack/ob_ma_notes.j2 @@ -16,6 +16,7 @@ .ma-note table th { padding: 2px 10px 2px 5px ; text-align: left ; background: #f0f0f0 ; } .ma-note table td { padding: 0 10px 0 5px ; } .extra-notes-caption { border: 1px solid #e0e0e0 ; background: #fcfcfc ; font-weight: bold ; padding: 2px 5px ; } +.disabled { color: #808080 ; } .slashed { text-decoration: line-through ; } @@ -36,7 +37,9 @@ {%if OB_MA_NOTES%} {%for ma_note in OB_MA_NOTES%} -
{{ma_note}}
+ {%if not ma_note[0]%}
{%endif%} +
{{ma_note[1]}}
+ {%if not ma_note[0]%}
{%endif%} {%endfor%} {%endif%} @@ -44,7 +47,9 @@ {%if OB_EXTRA_MA_NOTES_CAPTION%}
{{OB_EXTRA_MA_NOTES_CAPTION}}
{%endif%} {%for ma_note in OB_EXTRA_MA_NOTES%} -
{{ma_note}}
+ {%if not ma_note[0]%}
{%endif%} +
{{ma_note[1]}}
+ {%if not ma_note[0]%}
{%endif%} {%endfor%} {%endif%} diff --git a/vasl_templates/webapp/static/snippets.js b/vasl_templates/webapp/static/snippets.js index 892bb94..62eb28b 100644 --- a/vasl_templates/webapp/static/snippets.js +++ b/vasl_templates/webapp/static/snippets.js @@ -254,13 +254,17 @@ function make_snippet( $btn, params, extra_params, show_date_warnings ) key = key.substring( pos+1 ) ; } } - if ( ! ma_note && gUserSettings["hide-unavailable-ma-notes"] ) + if ( !ma_note && gUserSettings["hide-unavailable-ma-notes"] ) continue ; - params[ param_name ].push( + // NOTE: We don't exclude disabled multi-applicable notes, since it can be confusing for + // the user (e.g. a vehicle references note X, but note X is not there), so instead, + // we allow them to be styled to have less visual impact. + var ma_note_enabled = ma_note && ma_note.indexOf( "" ) === -1 ; + params[ param_name ].push( [ ma_note_enabled, extn_marker + "" + key + ":" + " " + (ma_note || "Unavailable.") - ) ; + ] ) ; } } function get_ma_notes( vo_type, player_no, param_name ) { diff --git a/vasl_templates/webapp/tests/fixtures/data/default-template-pack/ob_ma_notes.j2 b/vasl_templates/webapp/tests/fixtures/data/default-template-pack/ob_ma_notes.j2 index 32f1e65..be3f267 100644 --- a/vasl_templates/webapp/tests/fixtures/data/default-template-pack/ob_ma_notes.j2 +++ b/vasl_templates/webapp/tests/fixtures/data/default-template-pack/ob_ma_notes.j2 @@ -1,8 +1,8 @@ -{%for ma_note in OB_MA_NOTES%} [*] {{ma_note}} +{%for ma_note in OB_MA_NOTES%} [*] {{ma_note[1]}} {%endfor%} {%if OB_EXTRA_MA_NOTES%} {%if OB_EXTRA_MA_NOTES_CAPTION%} === {{OB_EXTRA_MA_NOTES_CAPTION}} === {%endif%} -{%for ma_note in OB_EXTRA_MA_NOTES%} [*] {{ma_note}} +{%for ma_note in OB_EXTRA_MA_NOTES%} [*] {{ma_note[1]}} {%endfor%} {%endif%} diff --git a/vasl_templates/webapp/tests/test_vasl_extensions.py b/vasl_templates/webapp/tests/test_vasl_extensions.py index df74f17..ec7c9a8 100644 --- a/vasl_templates/webapp/tests/test_vasl_extensions.py +++ b/vasl_templates/webapp/tests/test_vasl_extensions.py @@ -422,6 +422,7 @@ def _extract_extn_ma_notes( clipboard ): #pylint: disable=missing-docstring # just enough for us to determine whether we're showing the right one or not. for i,ma_note in enumerate(ma_notes): is_extn = "❖" in ma_note - mo = re.search( r"(.+?):(.*)", ma_note ) - ma_notes[i] = is_extn, mo.group(1).strip(), mo.group(2).strip()[:20] + mo = re.search( r"(.+?):(.*)", ma_note, re.DOTALL ) + val = mo.group(2).replace( "", "" ) + ma_notes[i] = is_extn, mo.group(1).strip(), val.strip()[:20] return ma_notes diff --git a/vasl_templates/webapp/vasl_mod.py b/vasl_templates/webapp/vasl_mod.py index 1fa3ae3..c98babc 100644 --- a/vasl_templates/webapp/vasl_mod.py +++ b/vasl_templates/webapp/vasl_mod.py @@ -429,7 +429,7 @@ def get_vo_gpids( vasl_mod ): for vo_type in ("vehicles","ordnance"): for vo_entries in listings[ vo_type ].values(): for vo_entry in vo_entries: - vo_gpids = vo_entry[ "gpid" ] + vo_gpids = vo_entry.get( "gpid" ) if not vo_gpids: continue gpids.update(