annotate bio/flags.py @ 917:0365fdbb4d78

Fix app conflict with messages. Django's messages app label conflicts with our messages app. We can't easily rename our label as that will make us rename database tables. Since our app came first we'll just customize Django messages label. For Django 1.7.7 upgrade.
author Brian Neal <bgneal@gmail.com>
date Mon, 06 Apr 2015 20:02:25 -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]))