Mercurial > public > sg101
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])) |