Added the real default template pack.

master
Pacman Ghost 6 years ago
parent 57ba72724d
commit d7cd599cbf
  1. 38
      vasl_templates/webapp/data/default-template-pack/atmm.j2
  2. 80
      vasl_templates/webapp/data/default-template-pack/baz.j2
  3. 63
      vasl_templates/webapp/data/default-template-pack/mol-p.j2
  4. 43
      vasl_templates/webapp/data/default-template-pack/mol.j2
  5. 18
      vasl_templates/webapp/data/default-template-pack/nationalities.json
  6. 18
      vasl_templates/webapp/data/default-template-pack/ob_setup.j2
  7. 64
      vasl_templates/webapp/data/default-template-pack/pf.j2
  8. 52
      vasl_templates/webapp/data/default-template-pack/piat.j2
  9. 22
      vasl_templates/webapp/data/default-template-pack/players.j2
  10. 54
      vasl_templates/webapp/data/default-template-pack/psk.j2
  11. 28
      vasl_templates/webapp/data/default-template-pack/scenario.j2
  12. 26
      vasl_templates/webapp/data/default-template-pack/ssr.j2
  13. 23
      vasl_templates/webapp/data/default-template-pack/victory_conditions.j2
  14. 5
      vasl_templates/webapp/snippets.py
  15. 4
      vasl_templates/webapp/tests/conftest.py
  16. 1
      vasl_templates/webapp/tests/fixtures/data/default-template-pack/atmm.j2
  17. 1
      vasl_templates/webapp/tests/fixtures/data/default-template-pack/baz.j2
  18. 1
      vasl_templates/webapp/tests/fixtures/data/default-template-pack/mol-p.j2
  19. 1
      vasl_templates/webapp/tests/fixtures/data/default-template-pack/mol.j2
  20. 43
      vasl_templates/webapp/tests/fixtures/data/default-template-pack/nationalities.json
  21. 1
      vasl_templates/webapp/tests/fixtures/data/default-template-pack/ob_setup.j2
  22. 1
      vasl_templates/webapp/tests/fixtures/data/default-template-pack/pf.j2
  23. 1
      vasl_templates/webapp/tests/fixtures/data/default-template-pack/piat.j2
  24. 2
      vasl_templates/webapp/tests/fixtures/data/default-template-pack/players.j2
  25. 1
      vasl_templates/webapp/tests/fixtures/data/default-template-pack/psk.j2
  26. 4
      vasl_templates/webapp/tests/fixtures/data/default-template-pack/scenario.j2
  27. 2
      vasl_templates/webapp/tests/fixtures/data/default-template-pack/ssr.j2
  28. 1
      vasl_templates/webapp/tests/fixtures/data/default-template-pack/victory_conditions.j2

@ -1 +1,37 @@
Kaboom!!! ; col=[{{OB_COLOR}}]/[{{OB_COLOR_2}}]
<html>
<head>
<style>
td { margin: 0 ; padding: 0 ; }
</style>
</head>
<table>
<tr>
<td colspan="2" style="
background: #{{OB_COLOR}} ;
border-bottom: 1px solid #{{OB_COLOR_2}} ;
padding: 2px 5px ;
font-weight: bold ;
">
Anti-Tank Magnetic Mines
<tr>
<td style="padding:2px 5px;">
ATMM check: dr &le; 3 (&#9651;) <br>
<table style="margin-left:10px;">
<tr>
<td style="width:20px;"> +1 <td> HS/crew
<tr>
<td> +2 <td> SMC
<tr>
<td> +1 <td> CX
<tr>
<td> +1 <td> vs. non-armored vehicle
</table>
original 6 = pinned (CCV reduced by 1)
</table>
</html>

@ -1 +1,79 @@
BAZ: {%if BAZ_TYPE%}'{{BAZ_TYPE}} ; range=[{{BAZ_RANGE}}] ; X#=[{{BAZ_BREAKDOWN}}] ; TK#=[{{BAZ_TOKILL}}]{%if BAZ_WP%} ; WP#=[{{BAZ_WP}}]{%endif%} ; col=[{{OB_COLOR}}]/[{{OB_COLOR_2}}]{%else%}none{%endif%}
<html>
<head>
<style>
td { margin: 0 ; padding: 0 ; }
td.c { text-align: center ; }
td.r { text-align: right ; }
</style>
</head>
<table>
<tr>
<td colspan="2" style="
background: #{{OB_COLOR}} ;
border-bottom: 1px solid #{{OB_COLOR_2}} ;
padding: 2px 5px ;
font-weight: bold ;
">
Bazooka {%if BAZ_TYPE%} ('{{BAZ_TYPE}}) {%endif%}
<tr>
<td style="padding:0 3px;">
<table>
<tr>
<td> <b>Range</b> <td> <b>TH#</b>
{%if BAZ_TYPE == 45 %}
<tr>
<td class="c"> 0 <td class="c"> 11
<tr>
<td class="c"> 1 <td class="c"> 10
<tr>
<td class="c"> 2 <td class="c"> 9
<tr>
<td class="c"> 3 <td class="c"> 8
<tr>
<td class="c"> 4 <td class="c"> 6
<tr>
<td class="c"> 5 <td class="c"> 4
{%else%}
<tr>
<td class="c"> 0 <td class="c"> 11
<tr>
<td class="c"> 1 <td class="c"> 9
<tr>
<td class="c"> 2 <td class="c"> 8
<tr>
<td class="c"> 3 <td class="c"> 7
<tr>
<td class="c"> 4 <td class="c"> 4
{%endif%}
</table>
<td valign="top" style="padding:0 3px;">
<table>
{%if BAZ_BREAKDOWN%}
<tr>
<td> <b>X#:</b>
<td class="r"> {{BAZ_BREAKDOWN}}
{%endif%}
{%if BAZ_WP%}
<tr>
<td> <b>WP#:</b>
<td class="r"> {{BAZ_WP}}
{%endif%}
{%if BAZ_TOKILL%}
<tr>
<td> <b>TK#:</b>
<td class="r"> {{BAZ_TOKILL}}
{%endif%}
{%if BAZ_RANGE%}
<tr>
<td colspan="2" class="r"> 8-{{BAZ_RANGE}}
{%endif%}
</table>
</table>
</html>

@ -1 +1,62 @@
mol-p template ; col=[{{OB_COLOR}}]/[{{OB_COLOR_2}}]
<html>
<head>
<style>
td { margin: 0 ; padding: 0 ; }
td.c { text-align: center ; }
td.r { text-align: right ; }
ul { margin: 0 0 0 10px ; padding: 0 ; }
</style>
</head>
<table>
<tr>
<td colspan="2" style="
background: #{{OB_COLOR}} ;
border-bottom: 1px solid #{{OB_COLOR_2}} ;
padding: 2px 5px ;
font-weight: bold ;
">
MOL Projector
<tr>
<td style="padding:0 3px;width:1%;">
<table>
<tr>
<td> <b>Range</b> <td> <b>TH#</b>
<tr>
<td class="c"> 0 <td class="c"> 10
<tr>
<td class="c"> 1 <td class="c"> 9
<tr>
<td class="c"> 2 <td class="c"> 8
<tr>
<td class="c"> 3 <td class="c"> 6
<tr>
<td class="c"> 4 <td class="c"> 4
</table>
<td valign="top" style="padding:0 3px;">
<table>
<tr>
<td> <b>X#:</b>
<td class="r"> 12
<tr>
<td> <b>B#:</b>
<td class="r"> 11
<tr>
<td colspan="2" class="r"> 4-4
</table>
<tr>
<td colspan="2">
IFT DR original colored dr:
<ul>
<li> 1 = Flame in target Location
<li> 6 = thrower breaks, Flame in their Location
</ul>
</table>
</html>

@ -1 +1,42 @@
Burn, baby, burn! ; col=[{{OB_COLOR}}]/[{{OB_COLOR_2}}]
<html>
<head>
<style>
td { margin: 0 ; padding: 0 ; }
ul { margin: 0 0 0 10px ; padding: 0 ; }
</style>
</head>
<table>
<tr>
<td colspan="2" style="
background: #{{OB_COLOR}} ;
border-bottom: 1px solid #{{OB_COLOR_2}} ;
padding: 2px 5px ;
font-weight: bold ;
">
Molotov Cocktail
<tr>
<td style="padding:0 5px;">
MOL check: dr &le; 3 (&#9651;) <br>
<table style="margin-left:10px;">
<tr>
<td style="width:20px;"> +1 <td> HS/crew
<tr>
<td> +2 <td> SMC
<tr>
<td> +1 <td> CX
<tr>
<td> +1 <td> non-AFV target
</table>
IFT DR original colored dr:
<ul>
<li> 1 = Flame in target Location
<li> 6 = thrower breaks, Flame in their Location
</ul>
Kindling Attempt: +2 DRM
</table>
</html>

@ -2,42 +2,42 @@
"german": {
"display_name": "German",
"ob_colors": [ "OBCOL:german", "OBCOL2:german" ]
"ob_colors": [ "d3edfc", "91cdf5" ]
},
"russian": {
"display_name": "Russian",
"ob_colors": [ "OBCOL:russian", "OBCOL2:russian" ]
"ob_colors": [ "eabe51", "d68d1a" ]
},
"american": {
"display_name": "American",
"ob_colors": [ "OBCOL:american", "OBCOL2:american" ]
"ob_colors": [ "e5f700", "cdf000" ]
},
"british": {
"display_name": "British",
"ob_colors": [ "OBCOL:british", "OBCOL2:british" ]
"ob_colors": [ "f6edda", "e5cea0" ]
},
"french": {
"display_name": "French",
"ob_colors": [ "OBCOL:french", "OBCOL2:french" ]
"ob_colors": [ "a2ddff", "41a5ff" ]
},
"italian": {
"display_name": "Italian",
"ob_colors": [ "OBCOL:italian", "OBCOL2:italian" ]
"ob_colors": [ "dde0e2", "a6adb2" ]
},
"finnish": {
"display_name": "Finnish",
"ob_colors": [ "OBCOL:finns", "OBCOL2:finns" ]
"ob_colors": [ "edefef", "ced3d3" ]
},
"japanese": {
"display_name": "Japanese",
"ob_colors": [ "OBCOL:japanese", "OBCOL2:japanese" ]
"ob_colors": [ "fff200", "ffdb00" ]
}
}
}

@ -1 +1,17 @@
[{{OB_SETUP}}] (col=[{{OB_COLOR}}/{{OB_COLOR_2}}]){%if OB_SETUP_WIDTH%} (width=[{{OB_SETUP_WIDTH}}]){%endif%}
<html>
<table>
<tr>
<td style="
background: #{{OB_COLOR}} ;
border-bottom: 1px solid #{{OB_COLOR_2}} ;
padding: 2px 5px ;
font-weight: bold ;
{%if OB_SETUP_WIDTH%} width: {{OB_SETUP_WIDTH}} ; {%endif%}
">
{{OB_SETUP}}
</table>
</html>

@ -1 +1,63 @@
PF: range=[{{PF_RANGE}}] ; check=[{{PF_CHECK_DR}}]{%if PF_CHECK_DRM%} (drm=[{{PF_CHECK_DRM}}]){%endif%} ; col=[{{OB_COLOR}}]/[{{OB_COLOR_2}}]
<html>
<head>
<style>
td { margin: 0 ; padding: 0 ; }
td.c { text-align: center ; }
td.r { text-align: right ; }
</style>
</head>
<table>
<tr>
<td colspan="3" style="
background: #{{OB_COLOR}} ;
border-bottom: 1px solid #{{OB_COLOR_2}} ;
padding: 2px 5px ;
font-weight: bold ;
">
Panzerfaust
<tr>
<td rowspan="2" style="padding:0 3px;">
<div style="margin-bottom:5px;">
range: {{PF_RANGE}} {%if PF_RANGE == 1%} hex {%else%} hexes {%endif%}
</div>
PF check: dr &le; {{PF_CHECK_DR}} (&#9651;)
<table style="margin-left:10px;">
<tr>
<td style="width:20px;"> +1 <td> HS/crew
<tr>
<td> +2 <td> SMC
<tr>
<td> +1 <td> CX
<tr>
<td> +1 <td> non-AFV target
</table>
original 6 = pinned
<td valign="top" style="padding:0 3px;">
<table>
<tr>
<td> <b>Range</b> <td> <b>TH#</b>
<tr>
<td class="c"> 0 <td class="c"> 10
<tr>
<td class="c"> 1 <td class="c"> 8
<tr>
<td class="c"> 2 <td class="c"> 6
<tr>
<td class="c"> 3 <td class="c"> 4
</table>
<tr>
<td style="padding:0 3px;text-align:right;">
<b>TK#:</b> 31 <br>
16-3
</table>
</html>

@ -1 +1,51 @@
piat template ; col=[{{OB_COLOR}}]/[{{OB_COLOR_2}}]
<html>
<head>
<style>
td { margin: 0 ; padding: 0 ; }
td.c { text-align: center ; }
td.r { text-align: right ; }
</style>
</head>
<table>
<tr>
<td colspan="2" style="
background: #{{OB_COLOR}} ;
border-bottom: 1px solid #{{OB_COLOR_2}} ;
padding: 2px 5px ;
font-weight: bold ;
">
PIAT
<tr>
<td style="padding:0 3px;">
<table>
<tr>
<td> <b>Range</b> <td> <b>TH#</b>
<tr>
<td class="c"> 0 <td class="c"> 11
<tr>
<td class="c"> 1 <td class="c"> 9
<tr>
<td class="c"> 2 <td class="c"> 7
<tr>
<td class="c"> 3 <td class="c"> 5
</table>
<td valign="top" style="padding:0 3px;">
<table>
<tr>
<td> <b>B#:</b>
<td class="r"> 10
<tr>
<td> <b>TK#:</b>
<td class="r"> 15
<tr>
<td colspan="2" class="r"> 8-3
</table>
</table>
</html>

@ -1,2 +1,20 @@
player1=[{{PLAYER_1}}:{{PLAYER_1_NAME}}] ; ELR=[{{PLAYER_1_ELR}}] ; SAN=[{{PLAYER_1_SAN}}]
player2=[{{PLAYER_2}}:{{PLAYER_2_NAME}}] ; ELR=[{{PLAYER_2_ELR}}] ; SAN=[{{PLAYER_2_SAN}}]
<html>
<table style="
border: 1px solid #c0c0c0 ;
background: #f0f0f0 ;
">
<td style="font-weight:bold;">
{{PLAYER_1_NAME}}: <br>
{{PLAYER_2_NAME}}:
<td>
ELR: {{PLAYER_1_ELR}} <br>
ELR: {{PLAYER_2_ELR}}
<td>
SAN: {{PLAYER_1_SAN}} <br>
SAN: {{PLAYER_2_SAN}}
</table>
</html>

@ -1 +1,53 @@
====> whoosh! ; col=[{{OB_COLOR}}]/[{{OB_COLOR_2}}]
<html>
<head>
<style>
td { margin: 0 ; padding: 0 ; }
td.c { text-align: center ; }
td.r { text-align: right ; }
</style>
</head>
<table>
<tr>
<td colspan="2" style="
background: #{{OB_COLOR}} ;
border-bottom: 1px solid #{{OB_COLOR_2}} ;
padding: 2px 5px ;
font-weight: bold ;
">
Panzerschrek
<tr>
<td style="padding:0 3px;">
<table>
<tr>
<td> <b>Range</b> <td> <b>TH#</b>
<tr>
<td class="c"> 0 <td class="c"> 11
<tr>
<td class="c"> 1 <td class="c"> 9
<tr>
<td class="c"> 2 <td class="c"> 8
<tr>
<td class="c"> 3 <td class="c"> 7
<tr>
<td class="c"> 4 <td class="c"> 4
</table>
<td valign="top" style="padding:0 3px;">
<table>
<tr>
<td> <b>X#:</b>
<td class="r"> 10
<tr>
<td> <b>TK#:</b>
<td class="r"> 26
<tr>
<td colspan="2" class="r"> 12-4
</table>
</table>
</html>

@ -1,4 +1,24 @@
name = [{{SCENARIO_NAME}}]
loc = [{{SCENARIO_LOCATION}}]
date = [{{SCENARIO_DATE}}]{%if SCENARIO_DATE%} aka "{{SCENARIO_DAY_OF_MONTH}} {{SCENARIO_MONTH_NAME}}, {{SCENARIO_YEAR}}"{%endif%}
{%if SCENARIO_WIDTH%}width = [{{SCENARIO_WIDTH}}]{%endif%}
<html>
<table style="
{%if SCENARIO_WIDTH%} width: {{SCENARIO_WIDTH}} ; {%endif%}
">
<tr>
<td style="
background: #f0f0f0 ;
border-bottom: 1px solid #c0c0c0 ;
padding: 5px 10px 5px 10px ;
">
<span style="font-size:150%;font-weight:bold;">
{%if SCENARIO_NAME%} {{SCENARIO_NAME}} {%else%} Untitled scenario {%endif%}
</span>
{%if SCENARIO_LOCATION%} ({{SCENARIO_LOCATION}}) {%endif%}
{%if SCENARIO_DATE%}
<small><i>({{SCENARIO_MONTH_NAME}} {{SCENARIO_DAY_OF_MONTH}}, {{SCENARIO_YEAR}})</i></small>
{%endif%}
</div>
</table>
</html>

@ -1,2 +1,24 @@
{% for ssr in SSR %}(*) [{{ssr}}]
{% endfor %}{%if SSR_WIDTH%}width = [{{SSR_WIDTH}}]{%endif%}
<html>
<table style="
{%if SSR_WIDTH%} width: {{SSR_WIDTH}} ; {%endif%}
">
<tr>
<td style="
background: #f0f0f0 ;
border-bottom: 1px solid #c0c0c0 ;
">
<b>Scenario Special Rules</b>
<tr>
<td>
<ul style="margin:0 0 0 10px;">
{% for ssr in SSR %}
<li> {{ssr}}
{% endfor %}
</ul>
</table>
</html>

@ -1 +1,22 @@
VC: [{{VICTORY_CONDITIONS}}]{%if VICTORY_CONDITIONS_WIDTH%} ; width=[{{VICTORY_CONDITIONS_WIDTH}}]{%endif%}
<html>
<table style="
{%if VICTORY_CONDITIONS_WIDTH%} width: {{VICTORY_CONDITIONS_WIDTH}} ; {%endif%}
">
<tr>
<td style="
background: #f0f0f0 ;
border-bottom: 1px solid #c0c0c0 ;
padding: 2px 5px ;
font-weight: bold ;
">
Victory Conditions
<tr>
<td style="padding:0 3px;">
{{VICTORY_CONDITIONS}}
</table>
</html>

@ -26,7 +26,10 @@ def get_template_pack():
# initialize
# NOTE: We always start with the default nationalities data. Unlike template files,
# user-defined template packs can add to it, or modify existing entries, but not replace it.
base_dir = os.path.join( DATA_DIR, "default-template-pack/" )
base_dir = os.path.join(
app.config.get( "DATA_DIR", DATA_DIR ),
"default-template-pack/"
)
data = { "templates": {} }
fname = os.path.join( base_dir, "nationalities.json" )
with open(fname,"r") as fp:

@ -30,6 +30,10 @@ def webapp():
return url.replace( "localhost/", "localhost:{}/".format(FLASK_WEBAPP_PORT) )
app.url_for = make_webapp_url
# configure the webapp to use our test data
# NOTE: Can't seem to change constants.DATA_DIR (probably some pytest funkiness :-/)
app.config["DATA_DIR"] = os.path.join( os.path.split(__file__)[0], "fixtures/data" )
# start the webapp server (in a background thread)
logging.disable( logging.CRITICAL )
thread = threading.Thread(

@ -0,0 +1 @@
Kaboom!!! ; col=[{{OB_COLOR}}]/[{{OB_COLOR_2}}]

@ -0,0 +1 @@
BAZ: {%if BAZ_TYPE%}'{{BAZ_TYPE}} ; range=[{{BAZ_RANGE}}] ; X#=[{{BAZ_BREAKDOWN}}] ; TK#=[{{BAZ_TOKILL}}]{%if BAZ_WP%} ; WP#=[{{BAZ_WP}}]{%endif%} ; col=[{{OB_COLOR}}]/[{{OB_COLOR_2}}]{%else%}none{%endif%}

@ -0,0 +1 @@
mol-p template ; col=[{{OB_COLOR}}]/[{{OB_COLOR_2}}]

@ -0,0 +1 @@
Burn, baby, burn! ; col=[{{OB_COLOR}}]/[{{OB_COLOR_2}}]

@ -0,0 +1,43 @@
{
"german": {
"display_name": "German",
"ob_colors": [ "OBCOL:german", "OBCOL2:german" ]
},
"russian": {
"display_name": "Russian",
"ob_colors": [ "OBCOL:russian", "OBCOL2:russian" ]
},
"american": {
"display_name": "American",
"ob_colors": [ "OBCOL:american", "OBCOL2:american" ]
},
"british": {
"display_name": "British",
"ob_colors": [ "OBCOL:british", "OBCOL2:british" ]
},
"french": {
"display_name": "French",
"ob_colors": [ "OBCOL:french", "OBCOL2:french" ]
},
"italian": {
"display_name": "Italian",
"ob_colors": [ "OBCOL:italian", "OBCOL2:italian" ]
},
"finnish": {
"display_name": "Finnish",
"ob_colors": [ "OBCOL:finns", "OBCOL2:finns" ]
},
"japanese": {
"display_name": "Japanese",
"ob_colors": [ "OBCOL:japanese", "OBCOL2:japanese" ]
}
}

@ -0,0 +1 @@
[{{OB_SETUP}}] (col=[{{OB_COLOR}}/{{OB_COLOR_2}}]){%if OB_SETUP_WIDTH%} (width=[{{OB_SETUP_WIDTH}}]){%endif%}

@ -0,0 +1 @@
PF: range=[{{PF_RANGE}}] ; check=[{{PF_CHECK_DR}}]{%if PF_CHECK_DRM%} (drm=[{{PF_CHECK_DRM}}]){%endif%} ; col=[{{OB_COLOR}}]/[{{OB_COLOR_2}}]

@ -0,0 +1 @@
piat template ; col=[{{OB_COLOR}}]/[{{OB_COLOR_2}}]

@ -0,0 +1,2 @@
player1=[{{PLAYER_1}}:{{PLAYER_1_NAME}}] ; ELR=[{{PLAYER_1_ELR}}] ; SAN=[{{PLAYER_1_SAN}}]
player2=[{{PLAYER_2}}:{{PLAYER_2_NAME}}] ; ELR=[{{PLAYER_2_ELR}}] ; SAN=[{{PLAYER_2_SAN}}]

@ -0,0 +1 @@
====> whoosh! ; col=[{{OB_COLOR}}]/[{{OB_COLOR_2}}]

@ -0,0 +1,4 @@
name = [{{SCENARIO_NAME}}]
loc = [{{SCENARIO_LOCATION}}]
date = [{{SCENARIO_DATE}}]{%if SCENARIO_DATE%} aka "{{SCENARIO_DAY_OF_MONTH}} {{SCENARIO_MONTH_NAME}}, {{SCENARIO_YEAR}}"{%endif%}
{%if SCENARIO_WIDTH%}width = [{{SCENARIO_WIDTH}}]{%endif%}

@ -0,0 +1,2 @@
{% for ssr in SSR %}(*) [{{ssr}}]
{% endfor %}{%if SSR_WIDTH%}width = [{{SSR_WIDTH}}]{%endif%}

@ -0,0 +1 @@
VC: [{{VICTORY_CONDITIONS}}]{%if VICTORY_CONDITIONS_WIDTH%} ; width=[{{VICTORY_CONDITIONS_WIDTH}}]{%endif%}
Loading…
Cancel
Save