From 4e5b20e1ca6c84591fcd647b5b3308191424d0b9 Mon Sep 17 00:00:00 2001 From: Taka Date: Tue, 11 Sep 2018 03:39:07 +0000 Subject: [PATCH] Re-organized the Allied Minor vehicle/ordnance data files. --- .../ordnance/{ => allied-minor}/belgian.json | 0 .../common.json} | 0 .../ordnance/{ => allied-minor}/danish.json | 0 .../ordnance/{ => allied-minor}/dutch.json | 0 .../ordnance/{ => allied-minor}/greek.json | 0 .../ordnance/{ => allied-minor}/polish.json | 0 .../{ => allied-minor}/yugoslavian.json | 0 .../vehicles/{ => allied-minor}/belgian.json | 0 .../common.json} | 0 .../vehicles/{ => allied-minor}/danish.json | 0 .../vehicles/{ => allied-minor}/dutch.json | 0 .../vehicles/{ => allied-minor}/greek.json | 0 .../vehicles/{ => allied-minor}/polish.json | 0 .../{ => allied-minor}/yugoslavian.json | 0 .../webapp/templates/vo-report.html | 4 +-- vasl_templates/webapp/vo.py | 30 +++++++++++++++---- 16 files changed, 26 insertions(+), 8 deletions(-) rename vasl_templates/webapp/data/ordnance/{ => allied-minor}/belgian.json (100%) rename vasl_templates/webapp/data/ordnance/{allied-minor-common.json => allied-minor/common.json} (100%) rename vasl_templates/webapp/data/ordnance/{ => allied-minor}/danish.json (100%) rename vasl_templates/webapp/data/ordnance/{ => allied-minor}/dutch.json (100%) rename vasl_templates/webapp/data/ordnance/{ => allied-minor}/greek.json (100%) rename vasl_templates/webapp/data/ordnance/{ => allied-minor}/polish.json (100%) rename vasl_templates/webapp/data/ordnance/{ => allied-minor}/yugoslavian.json (100%) rename vasl_templates/webapp/data/vehicles/{ => allied-minor}/belgian.json (100%) rename vasl_templates/webapp/data/vehicles/{allied-minor-common.json => allied-minor/common.json} (100%) rename vasl_templates/webapp/data/vehicles/{ => allied-minor}/danish.json (100%) rename vasl_templates/webapp/data/vehicles/{ => allied-minor}/dutch.json (100%) rename vasl_templates/webapp/data/vehicles/{ => allied-minor}/greek.json (100%) rename vasl_templates/webapp/data/vehicles/{ => allied-minor}/polish.json (100%) rename vasl_templates/webapp/data/vehicles/{ => allied-minor}/yugoslavian.json (100%) diff --git a/vasl_templates/webapp/data/ordnance/belgian.json b/vasl_templates/webapp/data/ordnance/allied-minor/belgian.json similarity index 100% rename from vasl_templates/webapp/data/ordnance/belgian.json rename to vasl_templates/webapp/data/ordnance/allied-minor/belgian.json diff --git a/vasl_templates/webapp/data/ordnance/allied-minor-common.json b/vasl_templates/webapp/data/ordnance/allied-minor/common.json similarity index 100% rename from vasl_templates/webapp/data/ordnance/allied-minor-common.json rename to vasl_templates/webapp/data/ordnance/allied-minor/common.json diff --git a/vasl_templates/webapp/data/ordnance/danish.json b/vasl_templates/webapp/data/ordnance/allied-minor/danish.json similarity index 100% rename from vasl_templates/webapp/data/ordnance/danish.json rename to vasl_templates/webapp/data/ordnance/allied-minor/danish.json diff --git a/vasl_templates/webapp/data/ordnance/dutch.json b/vasl_templates/webapp/data/ordnance/allied-minor/dutch.json similarity index 100% rename from vasl_templates/webapp/data/ordnance/dutch.json rename to vasl_templates/webapp/data/ordnance/allied-minor/dutch.json diff --git a/vasl_templates/webapp/data/ordnance/greek.json b/vasl_templates/webapp/data/ordnance/allied-minor/greek.json similarity index 100% rename from vasl_templates/webapp/data/ordnance/greek.json rename to vasl_templates/webapp/data/ordnance/allied-minor/greek.json diff --git a/vasl_templates/webapp/data/ordnance/polish.json b/vasl_templates/webapp/data/ordnance/allied-minor/polish.json similarity index 100% rename from vasl_templates/webapp/data/ordnance/polish.json rename to vasl_templates/webapp/data/ordnance/allied-minor/polish.json diff --git a/vasl_templates/webapp/data/ordnance/yugoslavian.json b/vasl_templates/webapp/data/ordnance/allied-minor/yugoslavian.json similarity index 100% rename from vasl_templates/webapp/data/ordnance/yugoslavian.json rename to vasl_templates/webapp/data/ordnance/allied-minor/yugoslavian.json diff --git a/vasl_templates/webapp/data/vehicles/belgian.json b/vasl_templates/webapp/data/vehicles/allied-minor/belgian.json similarity index 100% rename from vasl_templates/webapp/data/vehicles/belgian.json rename to vasl_templates/webapp/data/vehicles/allied-minor/belgian.json diff --git a/vasl_templates/webapp/data/vehicles/allied-minor-common.json b/vasl_templates/webapp/data/vehicles/allied-minor/common.json similarity index 100% rename from vasl_templates/webapp/data/vehicles/allied-minor-common.json rename to vasl_templates/webapp/data/vehicles/allied-minor/common.json diff --git a/vasl_templates/webapp/data/vehicles/danish.json b/vasl_templates/webapp/data/vehicles/allied-minor/danish.json similarity index 100% rename from vasl_templates/webapp/data/vehicles/danish.json rename to vasl_templates/webapp/data/vehicles/allied-minor/danish.json diff --git a/vasl_templates/webapp/data/vehicles/dutch.json b/vasl_templates/webapp/data/vehicles/allied-minor/dutch.json similarity index 100% rename from vasl_templates/webapp/data/vehicles/dutch.json rename to vasl_templates/webapp/data/vehicles/allied-minor/dutch.json diff --git a/vasl_templates/webapp/data/vehicles/greek.json b/vasl_templates/webapp/data/vehicles/allied-minor/greek.json similarity index 100% rename from vasl_templates/webapp/data/vehicles/greek.json rename to vasl_templates/webapp/data/vehicles/allied-minor/greek.json diff --git a/vasl_templates/webapp/data/vehicles/polish.json b/vasl_templates/webapp/data/vehicles/allied-minor/polish.json similarity index 100% rename from vasl_templates/webapp/data/vehicles/polish.json rename to vasl_templates/webapp/data/vehicles/allied-minor/polish.json diff --git a/vasl_templates/webapp/data/vehicles/yugoslavian.json b/vasl_templates/webapp/data/vehicles/allied-minor/yugoslavian.json similarity index 100% rename from vasl_templates/webapp/data/vehicles/yugoslavian.json rename to vasl_templates/webapp/data/vehicles/allied-minor/yugoslavian.json diff --git a/vasl_templates/webapp/templates/vo-report.html b/vasl_templates/webapp/templates/vo-report.html index ff032ee..e8e5122 100644 --- a/vasl_templates/webapp/templates/vo-report.html +++ b/vasl_templates/webapp/templates/vo-report.html @@ -25,9 +25,9 @@ $(document).ready( function () { // get the vehicle listings var url ; if ( "{{VO_TYPE}}" == "vehicles" ) - url = "{{url_for( 'get_vehicle_listings', report=1 )}}" + url = "{{url_for( 'get_vehicle_listings', report=1, no_merge_common=1 ) | safe}}" else - url = "{{url_for( 'get_ordnance_listings', report=1 )}}" ; + url = "{{url_for( 'get_ordnance_listings', report=1, no_merge_common=1 ) | safe}}" ; $.getJSON( url, function(data) { load_vo_listings( data ) ; } ).fail( function( xhr, status, errorMsg ) { diff --git a/vasl_templates/webapp/vo.py b/vasl_templates/webapp/vo.py index 0e1574c..d273d93 100644 --- a/vasl_templates/webapp/vo.py +++ b/vasl_templates/webapp/vo.py @@ -2,7 +2,6 @@ import os import json -import glob from flask import request, render_template, jsonify, abort @@ -23,7 +22,7 @@ def get_ordnance_listings(): # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -def _do_get_listings( listings_type ): +def _do_get_listings( listings_type ): #pylint: disable=too-many-branches """Load the vehicle/ordnance listings.""" # locate the data directory @@ -37,10 +36,29 @@ def _do_get_listings( listings_type ): # load the listings listings = {} - for fname in glob.glob( os.path.join( dname, "*.json" ) ): - nat = os.path.splitext( os.path.split(fname)[1] )[ 0 ] - with open( fname, "r" ) as fp: - listings[nat] = json.load( fp ) + minor_nats = { "allied-minor": set(), "axis-minor": set() } + for root,_,fnames in os.walk(dname): + for fname in fnames: + if os.path.splitext(fname)[1] != ".json": + continue + nat = os.path.splitext( os.path.split(fname)[1] )[ 0 ] + if os.path.split(root)[1] in ("allied-minor","axis-minor"): + minor_type = os.path.split( root )[1] + if nat == "common": + nat = minor_type + "-common" + else: + minor_nats[minor_type].add( nat ) + with open( os.path.join(root,fname), "r" ) as fp: + listings[nat] = json.load( fp ) + + # merge the common entries into each Allied/Axis Minor listing + if not request.args.get( "no_merge_common" ): + for minor_type in ("allied-minor","axis-minor"): + if minor_type+"-common" not in listings: + continue + for nat in minor_nats[minor_type]: + listings[nat].extend( listings[minor_type+"-common"] ) + del listings[ minor_type+"-common" ] return jsonify( listings )