annotate bio/flags.py @ 631:f36d1a168be7

For issue 27, disable login dialog button during POST. This seems to prevent multiple logins most of the time. You can still bang on the enter key and sometimes get more through.
author Brian Neal <bgneal@gmail.com>
date Wed, 14 Nov 2012 20:57:05 -0600
parents 678a1a2ef55a
children 89b240fe9297
rev   line source
bgneal@609 1 """
bgneal@609 2 This module contains country flag data & functions.
bgneal@609 3
bgneal@609 4 """
bgneal@609 5 from __future__ import with_statement
bgneal@609 6 import os.path
bgneal@609 7 import locale
bgneal@609 8 import logging
bgneal@609 9
bgneal@609 10 import django.utils.simplejson as json
bgneal@609 11
bgneal@609 12
bgneal@609 13 # Read flag data from external JSON file:
bgneal@609 14
bgneal@609 15 FLAG_DATA = {}
bgneal@609 16
bgneal@609 17 datafile = os.path.join(os.path.split(__file__)[0], 'flag_data.json')
bgneal@609 18
bgneal@609 19 try:
bgneal@609 20 with open(datafile, 'r') as fp:
bgneal@609 21 FLAG_DATA = json.load(fp, encoding='utf-8')
bgneal@609 22 except IOError:
bgneal@609 23 FLAG_DATA = {}
bgneal@609 24 logging.error("Could not load flag_data.json")
bgneal@609 25
bgneal@609 26 # Build a choices list for use with Django models, etc.
bgneal@609 27 # The locale is set in order to sort the place names correctly:
bgneal@609 28
bgneal@609 29 locale.setlocale(locale.LC_ALL, '')
bgneal@609 30
bgneal@609 31 FLAG_CHOICES = sorted(FLAG_DATA.items(),
bgneal@609 32 cmp=lambda lhs, rhs: locale.strcoll(lhs[1], rhs[1]))