Added the French vehicles.

master
Pacman Ghost 6 years ago
parent 66ae337454
commit 287bccc498
  1. 2
      vasl_templates/webapp/data/default-template-pack/ob_vehicles.j2
  2. 291
      vasl_templates/webapp/data/vehicles/french.json
  3. 12
      vasl_templates/webapp/static/snippets.js
  4. 7
      vasl_templates/webapp/templates/vo-report.html
  5. 54
      vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/french/1940.txt
  6. 54
      vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/french/1941.txt
  7. 54
      vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/french/1942.txt
  8. 54
      vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/french/1943.txt
  9. 54
      vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/french/1944.txt
  10. 54
      vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/french/1945.txt
  11. 2
      vasl_templates/webapp/tests/test_vo_reports.py

@ -33,7 +33,7 @@ td { margin: 0 ; padding: 0 ; }
</div>
<td valign="top" style="padding:2px 5px;">
{%if veh.no_radio%} <div> {{veh.no_radio}} </div> {%endif%}
{%if veh.no_if%} <div> no IF </div> {%endif%}
{%if veh.no_if%} <div> {{veh.no_if}} </div> {%endif%}
{%for cap in veh.capabilities%} <div> {{cap}} </div> {%endfor%}
{%if veh.crew_survival%} <div> {{veh.crew_survival}} </div> {%endif%}
{%endfor%}

@ -0,0 +1,291 @@
[
{ "name": "FT-17M",
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "1\u2020",
"notes": [ "C" ]
},
{ "name": "FT-17C",
"no_radio": "\u00ae",
"CS#": 2,
"capabilities2": { "AP": 9 },
"note_number": "1\u2020",
"notes": [ "C" ]
},
{ "name": "FT-17 75BS",
"no_radio": "\u00ae",
"CS#": "3:brewup",
"no_if": true,
"note_number": "1\u2020",
"notes": [ "C" ]
},
{ "name": "AMR 33",
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "2\u2020",
"notes": [ "E" ]
},
{ "name": "AMR 35",
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "3\u2020",
"notes": [ "E" ]
},
{ "name": "AMR 35(L)",
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "3\u2020",
"notes": [ "E" ]
},
{ "name": "R35",
"no_radio": "\u00ae",
"CS#": 2,
"capabilities2": { "AP": 10 },
"note_number": "4\u2020",
"notes": [ "A\u2020<sup>1</sup>", "C" ]
},
{ "name": "H35",
"no_radio": "\u00ae",
"CS#": 2,
"capabilities2": { "AP": 10 },
"note_number": "5\u2020",
"notes": [ "A\u2020<sup>1</sup>", "C", "E" ]
},
{ "name": "FCM 36",
"no_radio": "\u00ae",
"CS#": 2,
"capabilities2": { "AP": 10 },
"note_number": "6\u2020",
"notes": [ "C", "E", "I\u2020<sup>1</sup>" ]
},
{ "name": "H39",
"no_radio": "\u00ae",
"CS#": 2,
"capabilities2": { "AP": 10 },
"note_number": "7\u2020",
"notes": [ "A\u2020<sup>1</sup>", "C", "F" ]
},
{ "name": "H39(L)",
"no_radio": "\u00ae",
"CS#": 2,
"capabilities2": { "AP": 10 },
"note_number": "8\u2020",
"notes": [ "A\u2020<sup>1</sup>", "C", "E", "F" ]
},
{ "name": "H35(L)",
"no_radio": "\u00ae",
"CS#": 2,
"capabilities2": { "AP": 10 },
"note_number": "8\u2020",
"notes": [ "A\u2020<sup>1</sup>", "C", "E" ]
},
{ "name": "R35(L)",
"no_radio": "\u00ae",
"CS#": 2,
"capabilities2": { "AP": 10 },
"note_number": "8\u2020",
"notes": [ "A\u2020<sup>1</sup>", "C", "E", "F" ]
},
{ "name": "R40",
"no_radio": "\u00ae",
"CS#": 2,
"capabilities2": { "AP": 10 },
"note_number": "9",
"notes": [ "A\u2020<sup>1</sup>", "C", "E", "I\u2020" ]
},
{ "name": "D1",
"no_radio": "\u00ae9\u2020<sup>1</sup>",
"CS#": 3,
"note_number": "10\u2020",
"notes": [ "B\u2020<sup>3</sup>", "C", "I\u2020<sup>2</sup>", "R\u2020<sup>1</sup>" ]
},
{ "name": "D2",
"no_radio": "\u00ae9\u2020<sup>1</sup>",
"CS#": 3,
"note_number": "11\u2020",
"notes": [ "B\u2020<sup>3</sup>", "C", "E", "I\u2020<sup>2</sup>", "R\u2020<sup>1</sup>" ]
},
{ "name": "D2(L)",
"no_radio": "\u00ae9\u2020<sup>1</sup>",
"CS#": 3,
"note_number": "11\u2020",
"notes": [ "A\u2020<sup>4</sup>", "B\u2020<sup>3</sup>", "C", "E", "I\u2020<sup>2</sup>", "R\u2020<sup>1</sup>" ]
},
{ "name": "S35",
"no_radio": "\u00ae9\u2020<sup>1</sup>",
"CS#": 4,
"note_number": "12\u2020",
"notes": [ "A\u2020<sup>3</sup>", "C", "F", "I\u2020<sup>2</sup>", "R\u2020<sup>1</sup>" ]
},
{ "name": "B1-bis",
"no_radio": "\u00ae9\u2020<sup>1</sup>",
"CS#": "5:brewup",
"no_if": "75\u2020",
"capabilities": [ "AP9<sup>75</sup>\u2020" ],
"note_number": "13\u2020",
"notes": [ "A\u2020<sup>4</sup>", "B\u2020<sup>3</sup>", "C", "E", "F", "I\u2020<sup>2</sup>", "R\u2020<sup>1</sup>" ]
},
{ "name": "Valentine V(b)",
"CS#": 4,
"capabilities2": { "sM": 8 },
"note_number": "14\u2020",
"notes": [ "F" ]
},
{ "name": "AM Dodge(a)",
"CS#": "6\u2020",
"capabilities2": { "AP": 10 },
"note_number": "15\u2020",
"notes": [ "F" ]
},
{ "name": "AMD 20 cv TOE",
"no_radio": "\u00ae9\u2020<sup>1</sup>",
"CS#": 4,
"capabilities2": { "AP": 9 },
"note_number": "16\u2020",
"notes": [ "D\u2020<sup>2</sup>", "R\u2020<sup>1</sup>" ]
},
{ "name": "AMD 50 AM",
"no_radio": "\u00ae",
"CS#": 4,
"capabilities2": { "AP": 9 },
"note_number": "17\u2020",
"notes": [ "D\u2020<sup>1</sup>" ]
},
{ "name": "AMD 80 AM",
"no_radio": "\u00ae",
"CS#": 4,
"note_number": "17\u2020",
"notes": [ "D\u2020<sup>1</sup>" ]
},
{ "name": "AMD 35",
"no_radio": "\u00ae",
"CS#": 4,
"note_number": "18\u2020",
"notes": [ "E" ]
},
{ "name": "Laffly W15T CC",
"CS#": 3,
"note_number": "19\u2020",
"notes": [ "E", "J\u2020<sup>1</sup>" ]
},
{ "name": "Ac de 75 Conus(b)",
"CS#": 5,
"capabilities2": { "s": 8 },
"note_number": "20\u2020",
"notes": [ "F", "M\u2020<sup>1</sup>" ]
},
{ "name": "Ac de 75 mle 97",
"CS#": 4,
"capabilities2": { "s": 8 },
"note_number": "20\u2020",
"notes": [ "M\u2020<sup>1</sup>" ]
},
{ "name": "Camion de Mitr. CA",
"CS#": 4,
"note_number": "21\u2020"
},
{ "name": "Camion de 13.2 CAJ",
"CS#": 4,
"note_number": "21\u2020",
"notes": [ "AA\u2020<sup>1</sup>" ]
},
{ "name": "Camion de 20 CA",
"CS#": 4,
"note_number": "21\u2020",
"notes": [ "AA\u2020<sup>1</sup>" ]
},
{ "name": "Ac de 25 CA",
"CS#": 4,
"note_number": "21\u2020",
"notes": [ "F", "AA\u2020<sup>1</sup>" ]
},
{ "name": "Ac de 40 CA(a)",
"CS#": 4,
"note_number": "22",
"notes": [ "E", "F", "M\u2020", "AA\u2020<sup>1</sup>" ]
},
{ "name": "Ac de 75 mle 13/34",
"CS#": 7,
"note_number": "23\u2020",
"notes": [ "D\u2020<sup>1</sup>", "F", "AA\u2020<sup>2</sup>" ]
},
{ "name": "AMC 29",
"no_radio": "\u00ae",
"CS#": 3,
"capabilities2": { "AP": 9 },
"note_number": "24\u2020"
},
{ "name": "C-K P17",
"cs#": 4,
"note_number": "25\u2020"
},
{ "name": "C-K P19",
"cs#": 5,
"note_number": "25\u2020",
"notes": [ "H\u2020<sup>1</sup>" ]
},
{ "name": "SOMUA MCG",
"cs#": 4,
"note_number": "26\u2020"
},
{ "name": "Unic P107",
"cs#": 5,
"note_number": "27\u2020",
"notes": [ "L\u2020<sup>1</sup>" ]
},
{ "name": "Renault UE",
"cs#": "2\u2020<sup>1</sup>",
"note_number": "28\u2020",
"notes": [ "G\u2020<sup>1</sup>", "K" ]
},
{ "name": "Lorraine 38L",
"cs#": "3/2\u2020",
"note_number": "29\u2020",
"notes": [ "E", "H\u2020" ]
},
{ "name": "Lorraine 37L 44",
"CS#": 3,
"note_number": "30\u2020",
"notes": [ "E", "K" ]
},
{ "name": "Carrier AC(b)",
"CS#": 3,
"note_number": "31\u2020",
"notes": [ "F", "M\u2020<sup>1</sup>" ]
},
{ "name": "Latil TAR H2",
"cs#": 5,
"note_number": "32\u2020",
"notes": [ "J\u2020<sup>1</sup>" ]
},
{ "name": "Laffly S15T",
"cs#": 5,
"note_number": "33\u2020",
"notes": [ "J\u2020<sup>1</sup>", "L\u2020<sup>2</sup>" ]
},
{ "name": "Laffly S20TL",
"cs#": 5,
"note_number": "34\u2020",
"notes": [ "E", "J\u2020<sup>1</sup>" ]
},
{ "name": "Laffly V15T",
"cs#": 5,
"note_number": "35",
"notes": [ "E", "J\u2020" ]
},
{ "name": "Peugeot 202",
"cs#": "2\u2020<sup>1</sup>",
"note_number": "36\u2020",
"notes": [ "G\u2020<sup>1</sup>" ]
},
{ "name": "Citro\u00ebn 23",
"cs#": 5,
"note_number": "36\u2020"
},
{ "name": "Renault AGR2",
"cs#": 7,
"note_number": "36\u2020"
}
]

@ -219,8 +219,16 @@ function unload_snippet_params( params, check_date_capabilities )
} ;
if ( entry.no_radio )
obj.no_radio = entry.no_radio ;
if ( entry.no_if )
obj.no_if = entry.no_if ;
if ( entry.no_if ) {
obj.no_if = "no IF" ;
if ( typeof(entry.no_if) === "string" ) { // nb: only for the French B1-bis :-/
var no_if = entry.no_if ;
if ( no_if.substring(no_if.length-1) == "\u2020" )
obj.no_if += "<sup>"+no_if.substring(0,no_if.length-1)+"</sup>\u2020" ;
else
obj.no_if += "<sup>"+no_if+"</sup>" ;
}
}
// NOTE: It would be nice to have a Jinja2 filter that inserted the raw capabilities or selected
// the correct one for the scenario date e.g.
// {% for c in veh.capabilities %} {{c|selcap}} {%endif%}}

@ -71,7 +71,12 @@ function load_vo_listings( objs )
buf.push( "<td>", fmtval(obj.name) ) ;
if ( "{{VO_TYPE}}" === "vehicles" ) {
buf.push( "<td>", fmtval(obj.no_radio) ) ;
buf.push( "<td>", fmtval( obj.no_if ? "" : "&#10003;" ) ) ;
var has_if = "&#10003;" ;
if ( typeof(obj.no_if) === "string" ) // nb: only for the French B1-bis :-/
has_if = "(" + obj.no_if + ")" ;
else if ( obj.no_if )
has_if = null ;
buf.push( "<td>", fmtval(has_if) ) ;
buf.push( "<td>", fmtval(make_crew_survival(obj)) ) ;
}
var capabilities = make_capabilities( obj, theater, year, month, true, true ) ;

@ -0,0 +1,54 @@
=== vehicles/french/1940 ===
Name Radio IF Crew survival Capabilities (effective) # Notes
------------------ --------------- ----- ------------------------------------ -------------- ------------- --- -----------------------------------------------------------------
FT-17M ® yes CS 2 n/a n/a 1† C
FT-17C ® yes CS 2 AP9 AP9 1† C
FT-17 75BS ® n/a CS 3 <small><i>(brew up)</i></small> n/a n/a 1† C
AMR 33 ® yes CS 2 n/a n/a 2† E
AMR 35 ® yes CS 2 n/a n/a 3† E
AMR 35(L) ® yes CS 2 n/a n/a 3† E
R35 ® yes CS 2 AP10 AP10 4† A†<sup>1</sup> C
H35 ® yes CS 2 AP10 AP10 5† A†<sup>1</sup> C E
FCM 36 ® yes CS 2 AP10 AP10 6† C E I†<sup>1</sup>
H39 ® yes CS 2 AP10 AP10 7† A†<sup>1</sup> C F
H39(L) ® yes CS 2 AP10 AP10 8† A†<sup>1</sup> C E F
H35(L) ® yes CS 2 AP10 AP10 8† A†<sup>1</sup> C E
R35(L) ® yes CS 2 AP10 AP10 8† A†<sup>1</sup> C E F
R40 ® yes CS 2 AP10 AP10 9 A†<sup>1</sup> C E I†
D1 ®9†<sup>1</sup> yes CS 3 n/a n/a 10† B†<sup>3</sup> C I†<sup>2</sup> R†<sup>1</sup>
D2 ®9†<sup>1</sup> yes CS 3 n/a n/a 11† B†<sup>3</sup> C E I†<sup>2</sup> R†<sup>1</sup>
D2(L) ®9†<sup>1</sup> yes CS 3 n/a n/a 11† A†<sup>4</sup> B†<sup>3</sup> C E I†<sup>2</sup> R†<sup>1</sup>
S35 ®9†<sup>1</sup> yes CS 4 n/a n/a 12† A†<sup>3</sup> C F I†<sup>2</sup> R†<sup>1</sup>
B1-bis ®9†<sup>1</sup> (75†) CS 5 <small><i>(brew up)</i></small> AP9[75]† AP9[75]† 13† A†<sup>4</sup> B†<sup>3</sup> C E F I†<sup>2</sup> R†<sup>1</sup>
Valentine V(b) n/a yes CS 4 sM8 sM8 14† F
AM Dodge(a) n/a yes CS 6† AP10 AP10 15† F
AMD 20 cv TOE ®9†<sup>1</sup> yes CS 4 AP9 AP9 16† D†<sup>2</sup> R†<sup>1</sup>
AMD 50 AM ® yes CS 4 AP9 AP9 17† D†<sup>1</sup>
AMD 80 AM ® yes CS 4 n/a n/a 17† D†<sup>1</sup>
AMD 35 ® yes CS 4 n/a n/a 18† E
Laffly W15T CC n/a yes CS 3 n/a n/a 19† E J†<sup>1</sup>
Ac de 75 Conus(b) n/a yes CS 5 s8 s8 20† F M†<sup>1</sup>
Ac de 75 mle 97 n/a yes CS 4 s8 s8 20† M†<sup>1</sup>
Camion de Mitr. CA n/a yes CS 4 n/a n/a 21† n/a
Camion de 13.2 CAJ n/a yes CS 4 n/a n/a 21† AA†<sup>1</sup>
Camion de 20 CA n/a yes CS 4 n/a n/a 21† AA†<sup>1</sup>
Ac de 25 CA n/a yes CS 4 n/a n/a 21† F AA†<sup>1</sup>
Ac de 40 CA(a) n/a yes CS 4 n/a n/a 22 E F M† AA†<sup>1</sup>
Ac de 75 mle 13/34 n/a yes CS 7 n/a n/a 23† D†<sup>1</sup> F AA†<sup>2</sup>
AMC 29 ® yes CS 3 AP9 AP9 24† n/a
C-K P17 n/a yes cs 4 n/a n/a 25† n/a
C-K P19 n/a yes cs 5 n/a n/a 25† H†<sup>1</sup>
SOMUA MCG n/a yes cs 4 n/a n/a 26† n/a
Unic P107 n/a yes cs 5 n/a n/a 27† L†<sup>1</sup>
Renault UE n/a yes cs 2†<sup>1</sup> n/a n/a 28† G†<sup>1</sup> K
Lorraine 38L n/a yes cs 3/2† n/a n/a 29† E H†
Lorraine 37L 44 n/a yes CS 3 n/a n/a 30† E K
Carrier AC(b) n/a yes CS 3 n/a n/a 31† F M†<sup>1</sup>
Latil TAR H2 n/a yes cs 5 n/a n/a 32† J†<sup>1</sup>
Laffly S15T n/a yes cs 5 n/a n/a 33† J†<sup>1</sup> L†<sup>2</sup>
Laffly S20TL n/a yes cs 5 n/a n/a 34† E J†<sup>1</sup>
Laffly V15T n/a yes cs 5 n/a n/a 35 E J†
Peugeot 202 n/a yes cs 2†<sup>1</sup> n/a n/a 36† G†<sup>1</sup>
Citro&#235;n 23 n/a yes cs 5 n/a n/a 36† n/a
Renault AGR2 n/a yes cs 7 n/a n/a 36† n/a

@ -0,0 +1,54 @@
=== vehicles/french/1941 ===
Name Radio IF Crew survival Capabilities (effective) # Notes
------------------ --------------- ----- ------------------------------------ -------------- ------------- --- -----------------------------------------------------------------
FT-17M ® yes CS 2 n/a n/a 1† C
FT-17C ® yes CS 2 AP9 AP9 1† C
FT-17 75BS ® n/a CS 3 <small><i>(brew up)</i></small> n/a n/a 1† C
AMR 33 ® yes CS 2 n/a n/a 2† E
AMR 35 ® yes CS 2 n/a n/a 3† E
AMR 35(L) ® yes CS 2 n/a n/a 3† E
R35 ® yes CS 2 AP10 AP10 4† A†<sup>1</sup> C
H35 ® yes CS 2 AP10 AP10 5† A†<sup>1</sup> C E
FCM 36 ® yes CS 2 AP10 AP10 6† C E I†<sup>1</sup>
H39 ® yes CS 2 AP10 AP10 7† A†<sup>1</sup> C F
H39(L) ® yes CS 2 AP10 AP10 8† A†<sup>1</sup> C E F
H35(L) ® yes CS 2 AP10 AP10 8† A†<sup>1</sup> C E
R35(L) ® yes CS 2 AP10 AP10 8† A†<sup>1</sup> C E F
R40 ® yes CS 2 AP10 AP10 9 A†<sup>1</sup> C E I†
D1 ®9†<sup>1</sup> yes CS 3 n/a n/a 10† B†<sup>3</sup> C I†<sup>2</sup> R†<sup>1</sup>
D2 ®9†<sup>1</sup> yes CS 3 n/a n/a 11† B†<sup>3</sup> C E I†<sup>2</sup> R†<sup>1</sup>
D2(L) ®9†<sup>1</sup> yes CS 3 n/a n/a 11† A†<sup>4</sup> B†<sup>3</sup> C E I†<sup>2</sup> R†<sup>1</sup>
S35 ®9†<sup>1</sup> yes CS 4 n/a n/a 12† A†<sup>3</sup> C F I†<sup>2</sup> R†<sup>1</sup>
B1-bis ®9†<sup>1</sup> (75†) CS 5 <small><i>(brew up)</i></small> AP9[75]† AP9[75]† 13† A†<sup>4</sup> B†<sup>3</sup> C E F I†<sup>2</sup> R†<sup>1</sup>
Valentine V(b) n/a yes CS 4 sM8 sM8 14† F
AM Dodge(a) n/a yes CS 6† AP10 AP10 15† F
AMD 20 cv TOE ®9†<sup>1</sup> yes CS 4 AP9 AP9 16† D†<sup>2</sup> R†<sup>1</sup>
AMD 50 AM ® yes CS 4 AP9 AP9 17† D†<sup>1</sup>
AMD 80 AM ® yes CS 4 n/a n/a 17† D†<sup>1</sup>
AMD 35 ® yes CS 4 n/a n/a 18† E
Laffly W15T CC n/a yes CS 3 n/a n/a 19† E J†<sup>1</sup>
Ac de 75 Conus(b) n/a yes CS 5 s8 s8 20† F M†<sup>1</sup>
Ac de 75 mle 97 n/a yes CS 4 s8 s8 20† M†<sup>1</sup>
Camion de Mitr. CA n/a yes CS 4 n/a n/a 21† n/a
Camion de 13.2 CAJ n/a yes CS 4 n/a n/a 21† AA†<sup>1</sup>
Camion de 20 CA n/a yes CS 4 n/a n/a 21† AA†<sup>1</sup>
Ac de 25 CA n/a yes CS 4 n/a n/a 21† F AA†<sup>1</sup>
Ac de 40 CA(a) n/a yes CS 4 n/a n/a 22 E F M† AA†<sup>1</sup>
Ac de 75 mle 13/34 n/a yes CS 7 n/a n/a 23† D†<sup>1</sup> F AA†<sup>2</sup>
AMC 29 ® yes CS 3 AP9 AP9 24† n/a
C-K P17 n/a yes cs 4 n/a n/a 25† n/a
C-K P19 n/a yes cs 5 n/a n/a 25† H†<sup>1</sup>
SOMUA MCG n/a yes cs 4 n/a n/a 26† n/a
Unic P107 n/a yes cs 5 n/a n/a 27† L†<sup>1</sup>
Renault UE n/a yes cs 2†<sup>1</sup> n/a n/a 28† G†<sup>1</sup> K
Lorraine 38L n/a yes cs 3/2† n/a n/a 29† E H†
Lorraine 37L 44 n/a yes CS 3 n/a n/a 30† E K
Carrier AC(b) n/a yes CS 3 n/a n/a 31† F M†<sup>1</sup>
Latil TAR H2 n/a yes cs 5 n/a n/a 32† J†<sup>1</sup>
Laffly S15T n/a yes cs 5 n/a n/a 33† J†<sup>1</sup> L†<sup>2</sup>
Laffly S20TL n/a yes cs 5 n/a n/a 34† E J†<sup>1</sup>
Laffly V15T n/a yes cs 5 n/a n/a 35 E J†
Peugeot 202 n/a yes cs 2†<sup>1</sup> n/a n/a 36† G†<sup>1</sup>
Citro&#235;n 23 n/a yes cs 5 n/a n/a 36† n/a
Renault AGR2 n/a yes cs 7 n/a n/a 36† n/a

@ -0,0 +1,54 @@
=== vehicles/french/1942 ===
Name Radio IF Crew survival Capabilities (effective) # Notes
------------------ --------------- ----- ------------------------------------ -------------- ------------- --- -----------------------------------------------------------------
FT-17M ® yes CS 2 n/a n/a 1† C
FT-17C ® yes CS 2 AP9 AP9 1† C
FT-17 75BS ® n/a CS 3 <small><i>(brew up)</i></small> n/a n/a 1† C
AMR 33 ® yes CS 2 n/a n/a 2† E
AMR 35 ® yes CS 2 n/a n/a 3† E
AMR 35(L) ® yes CS 2 n/a n/a 3† E
R35 ® yes CS 2 AP10 AP10 4† A†<sup>1</sup> C
H35 ® yes CS 2 AP10 AP10 5† A†<sup>1</sup> C E
FCM 36 ® yes CS 2 AP10 AP10 6† C E I†<sup>1</sup>
H39 ® yes CS 2 AP10 AP10 7† A†<sup>1</sup> C F
H39(L) ® yes CS 2 AP10 AP10 8† A†<sup>1</sup> C E F
H35(L) ® yes CS 2 AP10 AP10 8† A†<sup>1</sup> C E
R35(L) ® yes CS 2 AP10 AP10 8† A†<sup>1</sup> C E F
R40 ® yes CS 2 AP10 AP10 9 A†<sup>1</sup> C E I†
D1 ®9†<sup>1</sup> yes CS 3 n/a n/a 10† B†<sup>3</sup> C I†<sup>2</sup> R†<sup>1</sup>
D2 ®9†<sup>1</sup> yes CS 3 n/a n/a 11† B†<sup>3</sup> C E I†<sup>2</sup> R†<sup>1</sup>
D2(L) ®9†<sup>1</sup> yes CS 3 n/a n/a 11† A†<sup>4</sup> B†<sup>3</sup> C E I†<sup>2</sup> R†<sup>1</sup>
S35 ®9†<sup>1</sup> yes CS 4 n/a n/a 12† A†<sup>3</sup> C F I†<sup>2</sup> R†<sup>1</sup>
B1-bis ®9†<sup>1</sup> (75†) CS 5 <small><i>(brew up)</i></small> AP9[75]† AP9[75]† 13† A†<sup>4</sup> B†<sup>3</sup> C E F I†<sup>2</sup> R†<sup>1</sup>
Valentine V(b) n/a yes CS 4 sM8 sM8 14† F
AM Dodge(a) n/a yes CS 6† AP10 AP10 15† F
AMD 20 cv TOE ®9†<sup>1</sup> yes CS 4 AP9 AP9 16† D†<sup>2</sup> R†<sup>1</sup>
AMD 50 AM ® yes CS 4 AP9 AP9 17† D†<sup>1</sup>
AMD 80 AM ® yes CS 4 n/a n/a 17† D†<sup>1</sup>
AMD 35 ® yes CS 4 n/a n/a 18† E
Laffly W15T CC n/a yes CS 3 n/a n/a 19† E J†<sup>1</sup>
Ac de 75 Conus(b) n/a yes CS 5 s8 s8 20† F M†<sup>1</sup>
Ac de 75 mle 97 n/a yes CS 4 s8 s8 20† M†<sup>1</sup>
Camion de Mitr. CA n/a yes CS 4 n/a n/a 21† n/a
Camion de 13.2 CAJ n/a yes CS 4 n/a n/a 21† AA†<sup>1</sup>
Camion de 20 CA n/a yes CS 4 n/a n/a 21† AA†<sup>1</sup>
Ac de 25 CA n/a yes CS 4 n/a n/a 21† F AA†<sup>1</sup>
Ac de 40 CA(a) n/a yes CS 4 n/a n/a 22 E F M† AA†<sup>1</sup>
Ac de 75 mle 13/34 n/a yes CS 7 n/a n/a 23† D†<sup>1</sup> F AA†<sup>2</sup>
AMC 29 ® yes CS 3 AP9 AP9 24† n/a
C-K P17 n/a yes cs 4 n/a n/a 25† n/a
C-K P19 n/a yes cs 5 n/a n/a 25† H†<sup>1</sup>
SOMUA MCG n/a yes cs 4 n/a n/a 26† n/a
Unic P107 n/a yes cs 5 n/a n/a 27† L†<sup>1</sup>
Renault UE n/a yes cs 2†<sup>1</sup> n/a n/a 28† G†<sup>1</sup> K
Lorraine 38L n/a yes cs 3/2† n/a n/a 29† E H†
Lorraine 37L 44 n/a yes CS 3 n/a n/a 30† E K
Carrier AC(b) n/a yes CS 3 n/a n/a 31† F M†<sup>1</sup>
Latil TAR H2 n/a yes cs 5 n/a n/a 32† J†<sup>1</sup>
Laffly S15T n/a yes cs 5 n/a n/a 33† J†<sup>1</sup> L†<sup>2</sup>
Laffly S20TL n/a yes cs 5 n/a n/a 34† E J†<sup>1</sup>
Laffly V15T n/a yes cs 5 n/a n/a 35 E J†
Peugeot 202 n/a yes cs 2†<sup>1</sup> n/a n/a 36† G†<sup>1</sup>
Citro&#235;n 23 n/a yes cs 5 n/a n/a 36† n/a
Renault AGR2 n/a yes cs 7 n/a n/a 36† n/a

@ -0,0 +1,54 @@
=== vehicles/french/1943 ===
Name Radio IF Crew survival Capabilities (effective) # Notes
------------------ --------------- ----- ------------------------------------ -------------- ------------- --- -----------------------------------------------------------------
FT-17M ® yes CS 2 n/a n/a 1† C
FT-17C ® yes CS 2 AP9 AP9 1† C
FT-17 75BS ® n/a CS 3 <small><i>(brew up)</i></small> n/a n/a 1† C
AMR 33 ® yes CS 2 n/a n/a 2† E
AMR 35 ® yes CS 2 n/a n/a 3† E
AMR 35(L) ® yes CS 2 n/a n/a 3† E
R35 ® yes CS 2 AP10 AP10 4† A†<sup>1</sup> C
H35 ® yes CS 2 AP10 AP10 5† A†<sup>1</sup> C E
FCM 36 ® yes CS 2 AP10 AP10 6† C E I†<sup>1</sup>
H39 ® yes CS 2 AP10 AP10 7† A†<sup>1</sup> C F
H39(L) ® yes CS 2 AP10 AP10 8† A†<sup>1</sup> C E F
H35(L) ® yes CS 2 AP10 AP10 8† A†<sup>1</sup> C E
R35(L) ® yes CS 2 AP10 AP10 8† A†<sup>1</sup> C E F
R40 ® yes CS 2 AP10 AP10 9 A†<sup>1</sup> C E I†
D1 ®9†<sup>1</sup> yes CS 3 n/a n/a 10† B†<sup>3</sup> C I†<sup>2</sup> R†<sup>1</sup>
D2 ®9†<sup>1</sup> yes CS 3 n/a n/a 11† B†<sup>3</sup> C E I†<sup>2</sup> R†<sup>1</sup>
D2(L) ®9†<sup>1</sup> yes CS 3 n/a n/a 11† A†<sup>4</sup> B†<sup>3</sup> C E I†<sup>2</sup> R†<sup>1</sup>
S35 ®9†<sup>1</sup> yes CS 4 n/a n/a 12† A†<sup>3</sup> C F I†<sup>2</sup> R†<sup>1</sup>
B1-bis ®9†<sup>1</sup> (75†) CS 5 <small><i>(brew up)</i></small> AP9[75]† AP9[75]† 13† A†<sup>4</sup> B†<sup>3</sup> C E F I†<sup>2</sup> R†<sup>1</sup>
Valentine V(b) n/a yes CS 4 sM8 sM8 14† F
AM Dodge(a) n/a yes CS 6† AP10 AP10 15† F
AMD 20 cv TOE ®9†<sup>1</sup> yes CS 4 AP9 AP9 16† D†<sup>2</sup> R†<sup>1</sup>
AMD 50 AM ® yes CS 4 AP9 AP9 17† D†<sup>1</sup>
AMD 80 AM ® yes CS 4 n/a n/a 17† D†<sup>1</sup>
AMD 35 ® yes CS 4 n/a n/a 18† E
Laffly W15T CC n/a yes CS 3 n/a n/a 19† E J†<sup>1</sup>
Ac de 75 Conus(b) n/a yes CS 5 s8 s8 20† F M†<sup>1</sup>
Ac de 75 mle 97 n/a yes CS 4 s8 s8 20† M†<sup>1</sup>
Camion de Mitr. CA n/a yes CS 4 n/a n/a 21† n/a
Camion de 13.2 CAJ n/a yes CS 4 n/a n/a 21† AA†<sup>1</sup>
Camion de 20 CA n/a yes CS 4 n/a n/a 21† AA†<sup>1</sup>
Ac de 25 CA n/a yes CS 4 n/a n/a 21† F AA†<sup>1</sup>
Ac de 40 CA(a) n/a yes CS 4 n/a n/a 22 E F M† AA†<sup>1</sup>
Ac de 75 mle 13/34 n/a yes CS 7 n/a n/a 23† D†<sup>1</sup> F AA†<sup>2</sup>
AMC 29 ® yes CS 3 AP9 AP9 24† n/a
C-K P17 n/a yes cs 4 n/a n/a 25† n/a
C-K P19 n/a yes cs 5 n/a n/a 25† H†<sup>1</sup>
SOMUA MCG n/a yes cs 4 n/a n/a 26† n/a
Unic P107 n/a yes cs 5 n/a n/a 27† L†<sup>1</sup>
Renault UE n/a yes cs 2†<sup>1</sup> n/a n/a 28† G†<sup>1</sup> K
Lorraine 38L n/a yes cs 3/2† n/a n/a 29† E H†
Lorraine 37L 44 n/a yes CS 3 n/a n/a 30† E K
Carrier AC(b) n/a yes CS 3 n/a n/a 31† F M†<sup>1</sup>
Latil TAR H2 n/a yes cs 5 n/a n/a 32† J†<sup>1</sup>
Laffly S15T n/a yes cs 5 n/a n/a 33† J†<sup>1</sup> L†<sup>2</sup>
Laffly S20TL n/a yes cs 5 n/a n/a 34† E J†<sup>1</sup>
Laffly V15T n/a yes cs 5 n/a n/a 35 E J†
Peugeot 202 n/a yes cs 2†<sup>1</sup> n/a n/a 36† G†<sup>1</sup>
Citro&#235;n 23 n/a yes cs 5 n/a n/a 36† n/a
Renault AGR2 n/a yes cs 7 n/a n/a 36† n/a

@ -0,0 +1,54 @@
=== vehicles/french/1944 ===
Name Radio IF Crew survival Capabilities (effective) # Notes
------------------ --------------- ----- ------------------------------------ -------------- ------------- --- -----------------------------------------------------------------
FT-17M ® yes CS 2 n/a n/a 1† C
FT-17C ® yes CS 2 AP9 AP9 1† C
FT-17 75BS ® n/a CS 3 <small><i>(brew up)</i></small> n/a n/a 1† C
AMR 33 ® yes CS 2 n/a n/a 2† E
AMR 35 ® yes CS 2 n/a n/a 3† E
AMR 35(L) ® yes CS 2 n/a n/a 3† E
R35 ® yes CS 2 AP10 AP10 4† A†<sup>1</sup> C
H35 ® yes CS 2 AP10 AP10 5† A†<sup>1</sup> C E
FCM 36 ® yes CS 2 AP10 AP10 6† C E I†<sup>1</sup>
H39 ® yes CS 2 AP10 AP10 7† A†<sup>1</sup> C F
H39(L) ® yes CS 2 AP10 AP10 8† A†<sup>1</sup> C E F
H35(L) ® yes CS 2 AP10 AP10 8† A†<sup>1</sup> C E
R35(L) ® yes CS 2 AP10 AP10 8† A†<sup>1</sup> C E F
R40 ® yes CS 2 AP10 AP10 9 A†<sup>1</sup> C E I†
D1 ®9†<sup>1</sup> yes CS 3 n/a n/a 10† B†<sup>3</sup> C I†<sup>2</sup> R†<sup>1</sup>
D2 ®9†<sup>1</sup> yes CS 3 n/a n/a 11† B†<sup>3</sup> C E I†<sup>2</sup> R†<sup>1</sup>
D2(L) ®9†<sup>1</sup> yes CS 3 n/a n/a 11† A†<sup>4</sup> B†<sup>3</sup> C E I†<sup>2</sup> R†<sup>1</sup>
S35 ®9†<sup>1</sup> yes CS 4 n/a n/a 12† A†<sup>3</sup> C F I†<sup>2</sup> R†<sup>1</sup>
B1-bis ®9†<sup>1</sup> (75†) CS 5 <small><i>(brew up)</i></small> AP9[75]† AP9[75]† 13† A†<sup>4</sup> B†<sup>3</sup> C E F I†<sup>2</sup> R†<sup>1</sup>
Valentine V(b) n/a yes CS 4 sM8 sM8 14† F
AM Dodge(a) n/a yes CS 6† AP10 AP10 15† F
AMD 20 cv TOE ®9†<sup>1</sup> yes CS 4 AP9 AP9 16† D†<sup>2</sup> R†<sup>1</sup>
AMD 50 AM ® yes CS 4 AP9 AP9 17† D†<sup>1</sup>
AMD 80 AM ® yes CS 4 n/a n/a 17† D†<sup>1</sup>
AMD 35 ® yes CS 4 n/a n/a 18† E
Laffly W15T CC n/a yes CS 3 n/a n/a 19† E J†<sup>1</sup>
Ac de 75 Conus(b) n/a yes CS 5 s8 s8 20† F M†<sup>1</sup>
Ac de 75 mle 97 n/a yes CS 4 s8 s8 20† M†<sup>1</sup>
Camion de Mitr. CA n/a yes CS 4 n/a n/a 21† n/a
Camion de 13.2 CAJ n/a yes CS 4 n/a n/a 21† AA†<sup>1</sup>
Camion de 20 CA n/a yes CS 4 n/a n/a 21† AA†<sup>1</sup>
Ac de 25 CA n/a yes CS 4 n/a n/a 21† F AA†<sup>1</sup>
Ac de 40 CA(a) n/a yes CS 4 n/a n/a 22 E F M† AA†<sup>1</sup>
Ac de 75 mle 13/34 n/a yes CS 7 n/a n/a 23† D†<sup>1</sup> F AA†<sup>2</sup>
AMC 29 ® yes CS 3 AP9 AP9 24† n/a
C-K P17 n/a yes cs 4 n/a n/a 25† n/a
C-K P19 n/a yes cs 5 n/a n/a 25† H†<sup>1</sup>
SOMUA MCG n/a yes cs 4 n/a n/a 26† n/a
Unic P107 n/a yes cs 5 n/a n/a 27† L†<sup>1</sup>
Renault UE n/a yes cs 2†<sup>1</sup> n/a n/a 28† G†<sup>1</sup> K
Lorraine 38L n/a yes cs 3/2† n/a n/a 29† E H†
Lorraine 37L 44 n/a yes CS 3 n/a n/a 30† E K
Carrier AC(b) n/a yes CS 3 n/a n/a 31† F M†<sup>1</sup>
Latil TAR H2 n/a yes cs 5 n/a n/a 32† J†<sup>1</sup>
Laffly S15T n/a yes cs 5 n/a n/a 33† J†<sup>1</sup> L†<sup>2</sup>
Laffly S20TL n/a yes cs 5 n/a n/a 34† E J†<sup>1</sup>
Laffly V15T n/a yes cs 5 n/a n/a 35 E J†
Peugeot 202 n/a yes cs 2†<sup>1</sup> n/a n/a 36† G†<sup>1</sup>
Citro&#235;n 23 n/a yes cs 5 n/a n/a 36† n/a
Renault AGR2 n/a yes cs 7 n/a n/a 36† n/a

@ -0,0 +1,54 @@
=== vehicles/french/1945 ===
Name Radio IF Crew survival Capabilities (effective) # Notes
------------------ --------------- ----- ------------------------------------ -------------- ------------- --- -----------------------------------------------------------------
FT-17M ® yes CS 2 n/a n/a 1† C
FT-17C ® yes CS 2 AP9 AP9 1† C
FT-17 75BS ® n/a CS 3 <small><i>(brew up)</i></small> n/a n/a 1† C
AMR 33 ® yes CS 2 n/a n/a 2† E
AMR 35 ® yes CS 2 n/a n/a 3† E
AMR 35(L) ® yes CS 2 n/a n/a 3† E
R35 ® yes CS 2 AP10 AP10 4† A†<sup>1</sup> C
H35 ® yes CS 2 AP10 AP10 5† A†<sup>1</sup> C E
FCM 36 ® yes CS 2 AP10 AP10 6† C E I†<sup>1</sup>
H39 ® yes CS 2 AP10 AP10 7† A†<sup>1</sup> C F
H39(L) ® yes CS 2 AP10 AP10 8† A†<sup>1</sup> C E F
H35(L) ® yes CS 2 AP10 AP10 8† A†<sup>1</sup> C E
R35(L) ® yes CS 2 AP10 AP10 8† A†<sup>1</sup> C E F
R40 ® yes CS 2 AP10 AP10 9 A†<sup>1</sup> C E I†
D1 ®9†<sup>1</sup> yes CS 3 n/a n/a 10† B†<sup>3</sup> C I†<sup>2</sup> R†<sup>1</sup>
D2 ®9†<sup>1</sup> yes CS 3 n/a n/a 11† B†<sup>3</sup> C E I†<sup>2</sup> R†<sup>1</sup>
D2(L) ®9†<sup>1</sup> yes CS 3 n/a n/a 11† A†<sup>4</sup> B†<sup>3</sup> C E I†<sup>2</sup> R†<sup>1</sup>
S35 ®9†<sup>1</sup> yes CS 4 n/a n/a 12† A†<sup>3</sup> C F I†<sup>2</sup> R†<sup>1</sup>
B1-bis ®9†<sup>1</sup> (75†) CS 5 <small><i>(brew up)</i></small> AP9[75]† AP9[75]† 13† A†<sup>4</sup> B†<sup>3</sup> C E F I†<sup>2</sup> R†<sup>1</sup>
Valentine V(b) n/a yes CS 4 sM8 sM8 14† F
AM Dodge(a) n/a yes CS 6† AP10 AP10 15† F
AMD 20 cv TOE ®9†<sup>1</sup> yes CS 4 AP9 AP9 16† D†<sup>2</sup> R†<sup>1</sup>
AMD 50 AM ® yes CS 4 AP9 AP9 17† D†<sup>1</sup>
AMD 80 AM ® yes CS 4 n/a n/a 17† D†<sup>1</sup>
AMD 35 ® yes CS 4 n/a n/a 18† E
Laffly W15T CC n/a yes CS 3 n/a n/a 19† E J†<sup>1</sup>
Ac de 75 Conus(b) n/a yes CS 5 s8 s8 20† F M†<sup>1</sup>
Ac de 75 mle 97 n/a yes CS 4 s8 s8 20† M†<sup>1</sup>
Camion de Mitr. CA n/a yes CS 4 n/a n/a 21† n/a
Camion de 13.2 CAJ n/a yes CS 4 n/a n/a 21† AA†<sup>1</sup>
Camion de 20 CA n/a yes CS 4 n/a n/a 21† AA†<sup>1</sup>
Ac de 25 CA n/a yes CS 4 n/a n/a 21† F AA†<sup>1</sup>
Ac de 40 CA(a) n/a yes CS 4 n/a n/a 22 E F M† AA†<sup>1</sup>
Ac de 75 mle 13/34 n/a yes CS 7 n/a n/a 23† D†<sup>1</sup> F AA†<sup>2</sup>
AMC 29 ® yes CS 3 AP9 AP9 24† n/a
C-K P17 n/a yes cs 4 n/a n/a 25† n/a
C-K P19 n/a yes cs 5 n/a n/a 25† H†<sup>1</sup>
SOMUA MCG n/a yes cs 4 n/a n/a 26† n/a
Unic P107 n/a yes cs 5 n/a n/a 27† L†<sup>1</sup>
Renault UE n/a yes cs 2†<sup>1</sup> n/a n/a 28† G†<sup>1</sup> K
Lorraine 38L n/a yes cs 3/2† n/a n/a 29† E H†
Lorraine 37L 44 n/a yes CS 3 n/a n/a 30† E K
Carrier AC(b) n/a yes CS 3 n/a n/a 31† F M†<sup>1</sup>
Latil TAR H2 n/a yes cs 5 n/a n/a 32† J†<sup>1</sup>
Laffly S15T n/a yes cs 5 n/a n/a 33† J†<sup>1</sup> L†<sup>2</sup>
Laffly S20TL n/a yes cs 5 n/a n/a 34† E J†<sup>1</sup>
Laffly V15T n/a yes cs 5 n/a n/a 35 E J†
Peugeot 202 n/a yes cs 2†<sup>1</sup> n/a n/a 36† G†<sup>1</sup>
Citro&#235;n 23 n/a yes cs 5 n/a n/a 36† n/a
Renault AGR2 n/a yes cs 7 n/a n/a 36† n/a

@ -36,7 +36,7 @@ def test_vo_reports( webapp, webdriver ):
)
# check each vehicle/ordnance report
for nat in ["german","russian","american","british","italian","japanese","chinese"]:
for nat in ["german","russian","american","british","italian","japanese","chinese","french"]:
for vo_type in ["vehicles","ordnance"]:
for year in range(1940,1945+1):

Loading…
Cancel
Save