diff --git a/vasl_templates/webapp/data/default-template-pack/nationalities.json b/vasl_templates/webapp/data/default-template-pack/nationalities.json
index 5287410..be627e4 100644
--- a/vasl_templates/webapp/data/default-template-pack/nationalities.json
+++ b/vasl_templates/webapp/data/default-template-pack/nationalities.json
@@ -43,6 +43,11 @@
"chinese": {
"display_name": "Chinese",
"ob_colors": [ "#d3edfc","#91cdf5", "#e0a22b" ]
+},
+
+"polish": {
+ "display_name": "Polish",
+ "ob_colors": [ "#a3ecd1","#82e3bd", "#61d8a6" ]
}
}
diff --git a/vasl_templates/webapp/data/ordnance/polish.json b/vasl_templates/webapp/data/ordnance/polish.json
new file mode 100644
index 0000000..4f74c9b
--- /dev/null
+++ b/vasl_templates/webapp/data/ordnance/polish.json
@@ -0,0 +1,30 @@
+[
+
+{ "name": "46mm granatnik wz. 36",
+ "capabilities_other": [ "4PP" ],
+ "note_number": "1",
+ "notes": [ "A", "P" ]
+},
+{ "name": "Ur. wz. 35",
+ "capabilities_other": [ "1PP" ],
+ "note_number": "2",
+ "notes": [ "P" ]
+},
+{ "name": "75mm wz. 02/26",
+ "capabilities": [ "NT", "QSU", "h-d" ],
+ "capabilities2": { "s": 6 },
+ "note_number": "3",
+ "notes": [ "P" ]
+},
+{ "name": "100mm wz. 14/19",
+ "capabilities": [ "NT" ],
+ "note_number": "4",
+ "notes": [ "A", "P" ]
+},
+{ "name": "75mm wz. 97/25",
+ "capabilities": [ "T", "NM" ],
+ "note_number": "5\u2020",
+ "notes": [ "P" ]
+}
+
+]
diff --git a/vasl_templates/webapp/data/vehicles/polish.json b/vasl_templates/webapp/data/vehicles/polish.json
new file mode 100644
index 0000000..0ce5166
--- /dev/null
+++ b/vasl_templates/webapp/data/vehicles/polish.json
@@ -0,0 +1,93 @@
+[
+
+{ "name": "TKS",
+ "no_radio": "\u00ae",
+ "CS#": 2,
+ "note_number": "1\u2020",
+ "notes": [ "D" ]
+},
+{ "name": "TKS(L)",
+ "no_radio": "\u00ae",
+ "CS#": 2,
+ "note_number": "1\u2020",
+ "notes": [ "D" ]
+},
+{ "name": "Vickers Edw(b)",
+ "no_radio": "\u00ae",
+ "CS#": 3,
+ "note_number": "2\u2020",
+ "notes": [ "A", "K\u20201" ]
+},
+{ "name": "Vickers Ejw(b)",
+ "no_radio": "\u00ae",
+ "CS#": 3,
+ "note_number": "2",
+ "notes": [ "A" ]
+},
+{ "name": "7TPdw",
+ "no_radio": "\u00ae",
+ "CS#": 3,
+ "note_number": "3\u2020",
+ "notes": [ "K\u20201" ]
+},
+{ "name": "7TPjw",
+ "CS#": 3,
+ "note_number": "3"
+},
+{ "name": "H35(f)",
+ "no_radio": "\u00ae",
+ "CS#": 2,
+ "capabilities2": { "AP": 10 },
+ "note_number": "4",
+ "notes": [ "A", "E\u2020", "F" ]
+},
+{ "name": "Peugeot 1918(f)",
+ "no_radio": "\u00ae",
+ "CS#": 4,
+ "note_number": "5",
+ "notes": [ "A", "D", "G\u2020" ]
+},
+{ "name": "wz.29 \"Ursus\"",
+ "no_radio": "\u00ae",
+ "CS#": 5,
+ "note_number": "6\u2020"
+},
+{ "name": "wz.34-I",
+ "no_radio": "\u00ae",
+ "CS#": 2,
+ "note_number": "7"
+},
+{ "name": "wz.34-II",
+ "no_radio": "\u00ae",
+ "CS#": 2,
+ "note_number": "7"
+},
+{ "name": "De Dion-Bouton(f)",
+ "CS#": 7,
+ "note_number": "8\u2020",
+ "notes": [ "A", "Q\u20201", "AA\u20202" ]
+},
+{ "name": "PF 621L SPAA",
+ "CS#": 5,
+ "note_number": "9\u2020",
+ "notes": [ "G\u20201", "Q\u20202", "AA\u20203" ]
+},
+{ "name": "302T",
+ "CS#": 3,
+ "note_number": "10\u2020"
+},
+{ "name": "C2P",
+ "cs#": 4,
+ "note_number": "11"
+},
+{ "name": "C4P",
+ "cs#": 5,
+ "note_number": "12"
+},
+{ "name": "\"Taczanka\"",
+ "cs#": 3,
+ "note_number": "13\u2020",
+ "notes": [ "Q\u20201" ]
+}
+
+]
diff --git a/vasl_templates/webapp/static/images/flags/allied-minor.png b/vasl_templates/webapp/static/images/flags/polish.png
similarity index 100%
rename from vasl_templates/webapp/static/images/flags/allied-minor.png
rename to vasl_templates/webapp/static/images/flags/polish.png
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/polish/1940.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/polish/1940.txt
new file mode 100644
index 0000000..e1fb527
--- /dev/null
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/polish/1940.txt
@@ -0,0 +1,9 @@
+=== ordnance/polish/1940 ===
+
+Name Capabilities (effective) # Notes
+--------------------- -------------- ------------- --- -------
+46mm granatnik wz. 36 4PP 4PP 1 A P
+Ur. wz. 35 1PP 1PP 2 P
+75mm wz. 02/26 NT QSU h-d s6 NT QSU h-d s6 3 P
+100mm wz. 14/19 NT NT 4 A P
+75mm wz. 97/25 T NM T NM 5† P
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/polish/1941.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/polish/1941.txt
new file mode 100644
index 0000000..219826b
--- /dev/null
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/polish/1941.txt
@@ -0,0 +1,9 @@
+=== ordnance/polish/1941 ===
+
+Name Capabilities (effective) # Notes
+--------------------- -------------- ------------- --- -------
+46mm granatnik wz. 36 4PP 4PP 1 A P
+Ur. wz. 35 1PP 1PP 2 P
+75mm wz. 02/26 NT QSU h-d s6 NT QSU h-d s6 3 P
+100mm wz. 14/19 NT NT 4 A P
+75mm wz. 97/25 T NM T NM 5† P
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/polish/1942.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/polish/1942.txt
new file mode 100644
index 0000000..03e3bc0
--- /dev/null
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/polish/1942.txt
@@ -0,0 +1,9 @@
+=== ordnance/polish/1942 ===
+
+Name Capabilities (effective) # Notes
+--------------------- -------------- ------------- --- -------
+46mm granatnik wz. 36 4PP 4PP 1 A P
+Ur. wz. 35 1PP 1PP 2 P
+75mm wz. 02/26 NT QSU h-d s6 NT QSU h-d s6 3 P
+100mm wz. 14/19 NT NT 4 A P
+75mm wz. 97/25 T NM T NM 5† P
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/polish/1943.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/polish/1943.txt
new file mode 100644
index 0000000..57204e6
--- /dev/null
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/polish/1943.txt
@@ -0,0 +1,9 @@
+=== ordnance/polish/1943 ===
+
+Name Capabilities (effective) # Notes
+--------------------- -------------- ------------- --- -------
+46mm granatnik wz. 36 4PP 4PP 1 A P
+Ur. wz. 35 1PP 1PP 2 P
+75mm wz. 02/26 NT QSU h-d s6 NT QSU h-d s6 3 P
+100mm wz. 14/19 NT NT 4 A P
+75mm wz. 97/25 T NM T NM 5† P
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/polish/1944.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/polish/1944.txt
new file mode 100644
index 0000000..53271ce
--- /dev/null
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/polish/1944.txt
@@ -0,0 +1,9 @@
+=== ordnance/polish/1944 ===
+
+Name Capabilities (effective) # Notes
+--------------------- -------------- ------------- --- -------
+46mm granatnik wz. 36 4PP 4PP 1 A P
+Ur. wz. 35 1PP 1PP 2 P
+75mm wz. 02/26 NT QSU h-d s6 NT QSU h-d s6 3 P
+100mm wz. 14/19 NT NT 4 A P
+75mm wz. 97/25 T NM T NM 5† P
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/polish/1945.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/polish/1945.txt
new file mode 100644
index 0000000..4504efa
--- /dev/null
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/polish/1945.txt
@@ -0,0 +1,9 @@
+=== ordnance/polish/1945 ===
+
+Name Capabilities (effective) # Notes
+--------------------- -------------- ------------- --- -------
+46mm granatnik wz. 36 4PP 4PP 1 A P
+Ur. wz. 35 1PP 1PP 2 P
+75mm wz. 02/26 NT QSU h-d s6 NT QSU h-d s6 3 P
+100mm wz. 14/19 NT NT 4 A P
+75mm wz. 97/25 T NM T NM 5† P
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/polish/1940.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/polish/1940.txt
new file mode 100644
index 0000000..33bcae8
--- /dev/null
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/polish/1940.txt
@@ -0,0 +1,21 @@
+=== vehicles/polish/1940 ===
+
+Name Radio IF Crew survival Capabilities (effective) # Notes
+----------------- ------- ---- --------------- -------------- ------------- --- ---------------------------------------------
+TKS ® yes CS 2 n/a n/a 1† D
+TKS(L) ® yes CS 2 n/a n/a 1† D
+Vickers Edw(b) ® yes CS 3 n/a n/a 2† A K†1
+Vickers Ejw(b) ® yes CS 3 n/a n/a 2 A
+7TPdw ® yes CS 3 n/a n/a 3† K†1
+7TPjw n/a yes CS 3 n/a n/a 3 n/a
+H35(f) ® yes CS 2 AP10 AP10 4 A E† F
+Peugeot 1918(f) ® yes CS 4 n/a n/a 5 A D G†
+wz.29 "Ursus" ® yes CS 5 n/a n/a 6† n/a
+wz.34-I ® yes CS 2 n/a n/a 7 n/a
+wz.34-II ® yes CS 2 n/a n/a 7 n/a
+De Dion-Bouton(f) n/a yes CS 7 n/a n/a 8† A Q†1 AA†2
+PF 621L SPAA n/a yes CS 5 n/a n/a 9† G†1 Q†2 AA†3
+302T n/a yes CS 3 n/a n/a 10† n/a
+C2P n/a yes cs 4 n/a n/a 11 n/a
+C4P n/a yes cs 5 n/a n/a 12 n/a
+"Taczanka" n/a yes cs 3 n/a n/a 13† Q†1
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/polish/1941.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/polish/1941.txt
new file mode 100644
index 0000000..dd86e54
--- /dev/null
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/polish/1941.txt
@@ -0,0 +1,21 @@
+=== vehicles/polish/1941 ===
+
+Name Radio IF Crew survival Capabilities (effective) # Notes
+----------------- ------- ---- --------------- -------------- ------------- --- ---------------------------------------------
+TKS ® yes CS 2 n/a n/a 1† D
+TKS(L) ® yes CS 2 n/a n/a 1† D
+Vickers Edw(b) ® yes CS 3 n/a n/a 2† A K†1
+Vickers Ejw(b) ® yes CS 3 n/a n/a 2 A
+7TPdw ® yes CS 3 n/a n/a 3† K†1
+7TPjw n/a yes CS 3 n/a n/a 3 n/a
+H35(f) ® yes CS 2 AP10 AP10 4 A E† F
+Peugeot 1918(f) ® yes CS 4 n/a n/a 5 A D G†
+wz.29 "Ursus" ® yes CS 5 n/a n/a 6† n/a
+wz.34-I ® yes CS 2 n/a n/a 7 n/a
+wz.34-II ® yes CS 2 n/a n/a 7 n/a
+De Dion-Bouton(f) n/a yes CS 7 n/a n/a 8† A Q†1 AA†2
+PF 621L SPAA n/a yes CS 5 n/a n/a 9† G†1 Q†2 AA†3
+302T n/a yes CS 3 n/a n/a 10† n/a
+C2P n/a yes cs 4 n/a n/a 11 n/a
+C4P n/a yes cs 5 n/a n/a 12 n/a
+"Taczanka" n/a yes cs 3 n/a n/a 13† Q†1
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/polish/1942.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/polish/1942.txt
new file mode 100644
index 0000000..f1ab891
--- /dev/null
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/polish/1942.txt
@@ -0,0 +1,21 @@
+=== vehicles/polish/1942 ===
+
+Name Radio IF Crew survival Capabilities (effective) # Notes
+----------------- ------- ---- --------------- -------------- ------------- --- ---------------------------------------------
+TKS ® yes CS 2 n/a n/a 1† D
+TKS(L) ® yes CS 2 n/a n/a 1† D
+Vickers Edw(b) ® yes CS 3 n/a n/a 2† A K†1
+Vickers Ejw(b) ® yes CS 3 n/a n/a 2 A
+7TPdw ® yes CS 3 n/a n/a 3† K†1
+7TPjw n/a yes CS 3 n/a n/a 3 n/a
+H35(f) ® yes CS 2 AP10 AP10 4 A E† F
+Peugeot 1918(f) ® yes CS 4 n/a n/a 5 A D G†
+wz.29 "Ursus" ® yes CS 5 n/a n/a 6† n/a
+wz.34-I ® yes CS 2 n/a n/a 7 n/a
+wz.34-II ® yes CS 2 n/a n/a 7 n/a
+De Dion-Bouton(f) n/a yes CS 7 n/a n/a 8† A Q†1 AA†2
+PF 621L SPAA n/a yes CS 5 n/a n/a 9† G†1 Q†2 AA†3
+302T n/a yes CS 3 n/a n/a 10† n/a
+C2P n/a yes cs 4 n/a n/a 11 n/a
+C4P n/a yes cs 5 n/a n/a 12 n/a
+"Taczanka" n/a yes cs 3 n/a n/a 13† Q†1
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/polish/1943.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/polish/1943.txt
new file mode 100644
index 0000000..8bfcb20
--- /dev/null
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/polish/1943.txt
@@ -0,0 +1,21 @@
+=== vehicles/polish/1943 ===
+
+Name Radio IF Crew survival Capabilities (effective) # Notes
+----------------- ------- ---- --------------- -------------- ------------- --- ---------------------------------------------
+TKS ® yes CS 2 n/a n/a 1† D
+TKS(L) ® yes CS 2 n/a n/a 1† D
+Vickers Edw(b) ® yes CS 3 n/a n/a 2† A K†1
+Vickers Ejw(b) ® yes CS 3 n/a n/a 2 A
+7TPdw ® yes CS 3 n/a n/a 3† K†1
+7TPjw n/a yes CS 3 n/a n/a 3 n/a
+H35(f) ® yes CS 2 AP10 AP10 4 A E† F
+Peugeot 1918(f) ® yes CS 4 n/a n/a 5 A D G†
+wz.29 "Ursus" ® yes CS 5 n/a n/a 6† n/a
+wz.34-I ® yes CS 2 n/a n/a 7 n/a
+wz.34-II ® yes CS 2 n/a n/a 7 n/a
+De Dion-Bouton(f) n/a yes CS 7 n/a n/a 8† A Q†1 AA†2
+PF 621L SPAA n/a yes CS 5 n/a n/a 9† G†1 Q†2 AA†3
+302T n/a yes CS 3 n/a n/a 10† n/a
+C2P n/a yes cs 4 n/a n/a 11 n/a
+C4P n/a yes cs 5 n/a n/a 12 n/a
+"Taczanka" n/a yes cs 3 n/a n/a 13† Q†1
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/polish/1944.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/polish/1944.txt
new file mode 100644
index 0000000..f94b30e
--- /dev/null
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/polish/1944.txt
@@ -0,0 +1,21 @@
+=== vehicles/polish/1944 ===
+
+Name Radio IF Crew survival Capabilities (effective) # Notes
+----------------- ------- ---- --------------- -------------- ------------- --- ---------------------------------------------
+TKS ® yes CS 2 n/a n/a 1† D
+TKS(L) ® yes CS 2 n/a n/a 1† D
+Vickers Edw(b) ® yes CS 3 n/a n/a 2† A K†1
+Vickers Ejw(b) ® yes CS 3 n/a n/a 2 A
+7TPdw ® yes CS 3 n/a n/a 3† K†1
+7TPjw n/a yes CS 3 n/a n/a 3 n/a
+H35(f) ® yes CS 2 AP10 AP10 4 A E† F
+Peugeot 1918(f) ® yes CS 4 n/a n/a 5 A D G†
+wz.29 "Ursus" ® yes CS 5 n/a n/a 6† n/a
+wz.34-I ® yes CS 2 n/a n/a 7 n/a
+wz.34-II ® yes CS 2 n/a n/a 7 n/a
+De Dion-Bouton(f) n/a yes CS 7 n/a n/a 8† A Q†1 AA†2
+PF 621L SPAA n/a yes CS 5 n/a n/a 9† G†1 Q†2 AA†3
+302T n/a yes CS 3 n/a n/a 10† n/a
+C2P n/a yes cs 4 n/a n/a 11 n/a
+C4P n/a yes cs 5 n/a n/a 12 n/a
+"Taczanka" n/a yes cs 3 n/a n/a 13† Q†1
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/polish/1945.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/polish/1945.txt
new file mode 100644
index 0000000..ed76354
--- /dev/null
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/polish/1945.txt
@@ -0,0 +1,21 @@
+=== vehicles/polish/1945 ===
+
+Name Radio IF Crew survival Capabilities (effective) # Notes
+----------------- ------- ---- --------------- -------------- ------------- --- ---------------------------------------------
+TKS ® yes CS 2 n/a n/a 1† D
+TKS(L) ® yes CS 2 n/a n/a 1† D
+Vickers Edw(b) ® yes CS 3 n/a n/a 2† A K†1
+Vickers Ejw(b) ® yes CS 3 n/a n/a 2 A
+7TPdw ® yes CS 3 n/a n/a 3† K†1
+7TPjw n/a yes CS 3 n/a n/a 3 n/a
+H35(f) ® yes CS 2 AP10 AP10 4 A E† F
+Peugeot 1918(f) ® yes CS 4 n/a n/a 5 A D G†
+wz.29 "Ursus" ® yes CS 5 n/a n/a 6† n/a
+wz.34-I ® yes CS 2 n/a n/a 7 n/a
+wz.34-II ® yes CS 2 n/a n/a 7 n/a
+De Dion-Bouton(f) n/a yes CS 7 n/a n/a 8† A Q†1 AA†2
+PF 621L SPAA n/a yes CS 5 n/a n/a 9† G†1 Q†2 AA†3
+302T n/a yes CS 3 n/a n/a 10† n/a
+C2P n/a yes cs 4 n/a n/a 11 n/a
+C4P n/a yes cs 5 n/a n/a 12 n/a
+"Taczanka" n/a yes cs 3 n/a n/a 13† Q†1
diff --git a/vasl_templates/webapp/tests/test_vo_reports.py b/vasl_templates/webapp/tests/test_vo_reports.py
index 611c3b5..0efcaf6 100644
--- a/vasl_templates/webapp/tests/test_vo_reports.py
+++ b/vasl_templates/webapp/tests/test_vo_reports.py
@@ -36,7 +36,11 @@ def test_vo_reports( webapp, webdriver ):
)
# check each vehicle/ordnance report
- for nat in ["german","russian","american","british","italian","japanese","chinese","french"]:
+ nationalities = [
+ "german", "russian", "american", "british", "italian", "japanese", "chinese", "french",
+ "polish"
+ ]
+ for nat in nationalities:
for vo_type in ["vehicles","ordnance"]:
for year in range(1940,1945+1):