annotate bio/flags.py @ 821:71db8076dc3d

Bandmap WIP: geocoding integrated with add form. Add form works. Before submitting the form, client side JS makes a geocode request to Google and populates hidden lat/lon fields with the result. Successfully created a model instance on the server side. Still need to update admin dashboard, admin approval, and give out badges for adding bands to the map. Once that is done, then work on displaying the map with filtering.
author Brian Neal <bgneal@gmail.com>
date Tue, 23 Sep 2014 20:40:31 -0500
parents 89b240fe9297
children
rev   line source
bgneal@609 1 """
bgneal@609 2 This module contains country flag data & functions.
bgneal@609 3
bgneal@609 4 """
bgneal@679 5 import json
bgneal@609 6 import os.path
bgneal@609 7 import locale
bgneal@609 8 import logging
bgneal@609 9
bgneal@609 10
bgneal@609 11 # Read flag data from external JSON file:
bgneal@609 12
bgneal@609 13 FLAG_DATA = {}
bgneal@609 14
bgneal@609 15 datafile = os.path.join(os.path.split(__file__)[0], 'flag_data.json')
bgneal@609 16
bgneal@609 17 try:
bgneal@609 18 with open(datafile, 'r') as fp:
bgneal@609 19 FLAG_DATA = json.load(fp, encoding='utf-8')
bgneal@609 20 except IOError:
bgneal@609 21 FLAG_DATA = {}
bgneal@609 22 logging.error("Could not load flag_data.json")
bgneal@609 23
bgneal@609 24 # Build a choices list for use with Django models, etc.
bgneal@609 25 # The locale is set in order to sort the place names correctly:
bgneal@609 26
bgneal@609 27 locale.setlocale(locale.LC_ALL, '')
bgneal@609 28
bgneal@609 29 FLAG_CHOICES = sorted(FLAG_DATA.items(),
bgneal@609 30 cmp=lambda lhs, rhs: locale.strcoll(lhs[1], rhs[1]))