view 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
line wrap: on
line source
"""
This module contains country flag data & functions.

"""
import json
import os.path
import locale
import logging


# Read flag data from external JSON file:

FLAG_DATA = {}

datafile = os.path.join(os.path.split(__file__)[0], 'flag_data.json')

try:
    with open(datafile, 'r') as fp:
        FLAG_DATA = json.load(fp, encoding='utf-8')
except IOError:
    FLAG_DATA = {}
    logging.error("Could not load flag_data.json")

# Build a choices list for use with Django models, etc.
# The locale is set in order to sort the place names correctly:

locale.setlocale(locale.LC_ALL, '')

FLAG_CHOICES = sorted(FLAG_DATA.items(),
        cmp=lambda lhs, rhs: locale.strcoll(lhs[1], rhs[1]))