| 
									
										
										
										
											2016-04-23 02:22:44 -05:00
										 |  |  | from django.utils.translation import ugettext as _ | 
					
						
							| 
									
										
										
										
											2016-04-26 01:16:03 -05:00
										 |  |  | from django.db import models | 
					
						
							| 
									
										
										
										
											2016-04-23 02:22:44 -05:00
										 |  |  | from django import forms | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # http://xml.coverpages.org/country3166.html | 
					
						
							|  |  |  | COUNTRIES = ( | 
					
						
							|  |  |  |     ('AD', _('Andorra')), | 
					
						
							|  |  |  |     ('AE', _('United Arab Emirates')), | 
					
						
							|  |  |  |     ('AF', _('Afghanistan')), | 
					
						
							|  |  |  |     ('AG', _('Antigua & Barbuda')), | 
					
						
							|  |  |  |     ('AI', _('Anguilla')), | 
					
						
							|  |  |  |     ('AL', _('Albania')), | 
					
						
							|  |  |  |     ('AM', _('Armenia')), | 
					
						
							|  |  |  |     ('AN', _('Netherlands Antilles')), | 
					
						
							|  |  |  |     ('AO', _('Angola')), | 
					
						
							|  |  |  |     ('AQ', _('Antarctica')), | 
					
						
							|  |  |  |     ('AR', _('Argentina')), | 
					
						
							|  |  |  |     ('AS', _('American Samoa')), | 
					
						
							|  |  |  |     ('AT', _('Austria')), | 
					
						
							|  |  |  |     ('AU', _('Australia')), | 
					
						
							|  |  |  |     ('AW', _('Aruba')), | 
					
						
							|  |  |  |     ('AZ', _('Azerbaijan')), | 
					
						
							|  |  |  |     ('BA', _('Bosnia and Herzegovina')), | 
					
						
							|  |  |  |     ('BB', _('Barbados')), | 
					
						
							|  |  |  |     ('BD', _('Bangladesh')), | 
					
						
							|  |  |  |     ('BE', _('Belgium')), | 
					
						
							|  |  |  |     ('BF', _('Burkina Faso')), | 
					
						
							|  |  |  |     ('BG', _('Bulgaria')), | 
					
						
							|  |  |  |     ('BH', _('Bahrain')), | 
					
						
							|  |  |  |     ('BI', _('Burundi')), | 
					
						
							|  |  |  |     ('BJ', _('Benin')), | 
					
						
							|  |  |  |     ('BM', _('Bermuda')), | 
					
						
							|  |  |  |     ('BN', _('Brunei Darussalam')), | 
					
						
							|  |  |  |     ('BO', _('Bolivia')), | 
					
						
							|  |  |  |     ('BR', _('Brazil')), | 
					
						
							|  |  |  |     ('BS', _('Bahama')), | 
					
						
							|  |  |  |     ('BT', _('Bhutan')), | 
					
						
							|  |  |  |     ('BV', _('Bouvet Island')), | 
					
						
							|  |  |  |     ('BW', _('Botswana')), | 
					
						
							|  |  |  |     ('BY', _('Belarus')), | 
					
						
							|  |  |  |     ('BZ', _('Belize')), | 
					
						
							|  |  |  |     ('CA', _('Canada')), | 
					
						
							|  |  |  |     ('CC', _('Cocos (Keeling) Islands')), | 
					
						
							|  |  |  |     ('CF', _('Central African Republic')), | 
					
						
							|  |  |  |     ('CG', _('Congo')), | 
					
						
							|  |  |  |     ('CH', _('Switzerland')), | 
					
						
							|  |  |  |     ('CI', _('Ivory Coast')), | 
					
						
							|  |  |  |     ('CK', _('Cook Iislands')), | 
					
						
							|  |  |  |     ('CL', _('Chile')), | 
					
						
							|  |  |  |     ('CM', _('Cameroon')), | 
					
						
							|  |  |  |     ('CN', _('China')), | 
					
						
							|  |  |  |     ('CO', _('Colombia')), | 
					
						
							|  |  |  |     ('CR', _('Costa Rica')), | 
					
						
							|  |  |  |     ('CU', _('Cuba')), | 
					
						
							|  |  |  |     ('CV', _('Cape Verde')), | 
					
						
							|  |  |  |     ('CX', _('Christmas Island')), | 
					
						
							|  |  |  |     ('CY', _('Cyprus')), | 
					
						
							|  |  |  |     ('CZ', _('Czech Republic')), | 
					
						
							|  |  |  |     ('DE', _('Germany')), | 
					
						
							|  |  |  |     ('DJ', _('Djibouti')), | 
					
						
							|  |  |  |     ('DK', _('Denmark')), | 
					
						
							|  |  |  |     ('DM', _('Dominica')), | 
					
						
							|  |  |  |     ('DO', _('Dominican Republic')), | 
					
						
							|  |  |  |     ('DZ', _('Algeria')), | 
					
						
							|  |  |  |     ('EC', _('Ecuador')), | 
					
						
							|  |  |  |     ('EE', _('Estonia')), | 
					
						
							|  |  |  |     ('EG', _('Egypt')), | 
					
						
							|  |  |  |     ('EH', _('Western Sahara')), | 
					
						
							|  |  |  |     ('ER', _('Eritrea')), | 
					
						
							|  |  |  |     ('ES', _('Spain')), | 
					
						
							|  |  |  |     ('ET', _('Ethiopia')), | 
					
						
							|  |  |  |     ('FI', _('Finland')), | 
					
						
							|  |  |  |     ('FJ', _('Fiji')), | 
					
						
							|  |  |  |     ('FK', _('Falkland Islands (Malvinas)')), | 
					
						
							|  |  |  |     ('FM', _('Micronesia')), | 
					
						
							|  |  |  |     ('FO', _('Faroe Islands')), | 
					
						
							|  |  |  |     ('FR', _('France')), | 
					
						
							|  |  |  |     ('FX', _('France, Metropolitan')), | 
					
						
							|  |  |  |     ('GA', _('Gabon')), | 
					
						
							|  |  |  |     ('GB', _('United Kingdom (Great Britain)')), | 
					
						
							|  |  |  |     ('GD', _('Grenada')), | 
					
						
							|  |  |  |     ('GE', _('Georgia')), | 
					
						
							|  |  |  |     ('GF', _('French Guiana')), | 
					
						
							|  |  |  |     ('GH', _('Ghana')), | 
					
						
							|  |  |  |     ('GI', _('Gibraltar')), | 
					
						
							|  |  |  |     ('GL', _('Greenland')), | 
					
						
							|  |  |  |     ('GM', _('Gambia')), | 
					
						
							|  |  |  |     ('GN', _('Guinea')), | 
					
						
							|  |  |  |     ('GP', _('Guadeloupe')), | 
					
						
							|  |  |  |     ('GQ', _('Equatorial Guinea')), | 
					
						
							|  |  |  |     ('GR', _('Greece')), | 
					
						
							|  |  |  |     ('GS', _('South Georgia and the South Sandwich Islands')), | 
					
						
							|  |  |  |     ('GT', _('Guatemala')), | 
					
						
							|  |  |  |     ('GU', _('Guam')), | 
					
						
							|  |  |  |     ('GW', _('Guinea-Bissau')), | 
					
						
							|  |  |  |     ('GY', _('Guyana')), | 
					
						
							|  |  |  |     ('HK', _('Hong Kong')), | 
					
						
							|  |  |  |     ('HM', _('Heard & McDonald Islands')), | 
					
						
							|  |  |  |     ('HN', _('Honduras')), | 
					
						
							|  |  |  |     ('HR', _('Croatia')), | 
					
						
							|  |  |  |     ('HT', _('Haiti')), | 
					
						
							|  |  |  |     ('HU', _('Hungary')), | 
					
						
							|  |  |  |     ('ID', _('Indonesia')), | 
					
						
							|  |  |  |     ('IE', _('Ireland')), | 
					
						
							|  |  |  |     ('IL', _('Israel')), | 
					
						
							|  |  |  |     ('IN', _('India')), | 
					
						
							|  |  |  |     ('IO', _('British Indian Ocean Territory')), | 
					
						
							|  |  |  |     ('IQ', _('Iraq')), | 
					
						
							|  |  |  |     ('IR', _('Islamic Republic of Iran')), | 
					
						
							|  |  |  |     ('IS', _('Iceland')), | 
					
						
							|  |  |  |     ('IT', _('Italy')), | 
					
						
							|  |  |  |     ('JM', _('Jamaica')), | 
					
						
							|  |  |  |     ('JO', _('Jordan')), | 
					
						
							|  |  |  |     ('JP', _('Japan')), | 
					
						
							|  |  |  |     ('KE', _('Kenya')), | 
					
						
							|  |  |  |     ('KG', _('Kyrgyzstan')), | 
					
						
							|  |  |  |     ('KH', _('Cambodia')), | 
					
						
							|  |  |  |     ('KI', _('Kiribati')), | 
					
						
							|  |  |  |     ('KM', _('Comoros')), | 
					
						
							|  |  |  |     ('KN', _('St. Kitts and Nevis')), | 
					
						
							|  |  |  |     ('KP', _('Korea, Democratic People\'s Republic of')), | 
					
						
							|  |  |  |     ('KR', _('Korea, Republic of')), | 
					
						
							|  |  |  |     ('KW', _('Kuwait')), | 
					
						
							|  |  |  |     ('KY', _('Cayman Islands')), | 
					
						
							|  |  |  |     ('KZ', _('Kazakhstan')), | 
					
						
							|  |  |  |     ('LA', _('Lao People\'s Democratic Republic')), | 
					
						
							|  |  |  |     ('LB', _('Lebanon')), | 
					
						
							|  |  |  |     ('LC', _('Saint Lucia')), | 
					
						
							|  |  |  |     ('LI', _('Liechtenstein')), | 
					
						
							|  |  |  |     ('LK', _('Sri Lanka')), | 
					
						
							|  |  |  |     ('LR', _('Liberia')), | 
					
						
							|  |  |  |     ('LS', _('Lesotho')), | 
					
						
							|  |  |  |     ('LT', _('Lithuania')), | 
					
						
							|  |  |  |     ('LU', _('Luxembourg')), | 
					
						
							|  |  |  |     ('LV', _('Latvia')), | 
					
						
							|  |  |  |     ('LY', _('Libyan Arab Jamahiriya')), | 
					
						
							|  |  |  |     ('MA', _('Morocco')), | 
					
						
							|  |  |  |     ('MC', _('Monaco')), | 
					
						
							|  |  |  |     ('MD', _('Moldova, Republic of')), | 
					
						
							|  |  |  |     ('MG', _('Madagascar')), | 
					
						
							|  |  |  |     ('MH', _('Marshall Islands')), | 
					
						
							|  |  |  |     ('ML', _('Mali')), | 
					
						
							|  |  |  |     ('MN', _('Mongolia')), | 
					
						
							|  |  |  |     ('MM', _('Myanmar')), | 
					
						
							|  |  |  |     ('MO', _('Macau')), | 
					
						
							|  |  |  |     ('MP', _('Northern Mariana Islands')), | 
					
						
							|  |  |  |     ('MQ', _('Martinique')), | 
					
						
							|  |  |  |     ('MR', _('Mauritania')), | 
					
						
							|  |  |  |     ('MS', _('Monserrat')), | 
					
						
							|  |  |  |     ('MT', _('Malta')), | 
					
						
							|  |  |  |     ('MU', _('Mauritius')), | 
					
						
							|  |  |  |     ('MV', _('Maldives')), | 
					
						
							|  |  |  |     ('MW', _('Malawi')), | 
					
						
							|  |  |  |     ('MX', _('Mexico')), | 
					
						
							|  |  |  |     ('MY', _('Malaysia')), | 
					
						
							|  |  |  |     ('MZ', _('Mozambique')), | 
					
						
							|  |  |  |     ('NA', _('Namibia')), | 
					
						
							|  |  |  |     ('NC', _('New Caledonia')), | 
					
						
							|  |  |  |     ('NE', _('Niger')), | 
					
						
							|  |  |  |     ('NF', _('Norfolk Island')), | 
					
						
							|  |  |  |     ('NG', _('Nigeria')), | 
					
						
							|  |  |  |     ('NI', _('Nicaragua')), | 
					
						
							|  |  |  |     ('NL', _('Netherlands')), | 
					
						
							|  |  |  |     ('NO', _('Norway')), | 
					
						
							|  |  |  |     ('NP', _('Nepal')), | 
					
						
							|  |  |  |     ('NR', _('Nauru')), | 
					
						
							|  |  |  |     ('NU', _('Niue')), | 
					
						
							|  |  |  |     ('NZ', _('New Zealand')), | 
					
						
							|  |  |  |     ('OM', _('Oman')), | 
					
						
							|  |  |  |     ('PA', _('Panama')), | 
					
						
							|  |  |  |     ('PE', _('Peru')), | 
					
						
							|  |  |  |     ('PF', _('French Polynesia')), | 
					
						
							|  |  |  |     ('PG', _('Papua New Guinea')), | 
					
						
							|  |  |  |     ('PH', _('Philippines')), | 
					
						
							|  |  |  |     ('PK', _('Pakistan')), | 
					
						
							|  |  |  |     ('PL', _('Poland')), | 
					
						
							|  |  |  |     ('PM', _('St. Pierre & Miquelon')), | 
					
						
							|  |  |  |     ('PN', _('Pitcairn')), | 
					
						
							|  |  |  |     ('PR', _('Puerto Rico')), | 
					
						
							|  |  |  |     ('PT', _('Portugal')), | 
					
						
							|  |  |  |     ('PW', _('Palau')), | 
					
						
							|  |  |  |     ('PY', _('Paraguay')), | 
					
						
							|  |  |  |     ('QA', _('Qatar')), | 
					
						
							|  |  |  |     ('RE', _('Reunion')), | 
					
						
							|  |  |  |     ('RO', _('Romania')), | 
					
						
							|  |  |  |     ('RU', _('Russian Federation')), | 
					
						
							|  |  |  |     ('RW', _('Rwanda')), | 
					
						
							|  |  |  |     ('SA', _('Saudi Arabia')), | 
					
						
							|  |  |  |     ('SB', _('Solomon Islands')), | 
					
						
							|  |  |  |     ('SC', _('Seychelles')), | 
					
						
							|  |  |  |     ('SD', _('Sudan')), | 
					
						
							|  |  |  |     ('SE', _('Sweden')), | 
					
						
							|  |  |  |     ('SG', _('Singapore')), | 
					
						
							|  |  |  |     ('SH', _('St. Helena')), | 
					
						
							|  |  |  |     ('SI', _('Slovenia')), | 
					
						
							|  |  |  |     ('SJ', _('Svalbard & Jan Mayen Islands')), | 
					
						
							|  |  |  |     ('SK', _('Slovakia')), | 
					
						
							|  |  |  |     ('SL', _('Sierra Leone')), | 
					
						
							|  |  |  |     ('SM', _('San Marino')), | 
					
						
							|  |  |  |     ('SN', _('Senegal')), | 
					
						
							|  |  |  |     ('SO', _('Somalia')), | 
					
						
							|  |  |  |     ('SR', _('Suriname')), | 
					
						
							|  |  |  |     ('ST', _('Sao Tome & Principe')), | 
					
						
							|  |  |  |     ('SV', _('El Salvador')), | 
					
						
							|  |  |  |     ('SY', _('Syrian Arab Republic')), | 
					
						
							|  |  |  |     ('SZ', _('Swaziland')), | 
					
						
							|  |  |  |     ('TC', _('Turks & Caicos Islands')), | 
					
						
							|  |  |  |     ('TD', _('Chad')), | 
					
						
							|  |  |  |     ('TF', _('French Southern Territories')), | 
					
						
							|  |  |  |     ('TG', _('Togo')), | 
					
						
							|  |  |  |     ('TH', _('Thailand')), | 
					
						
							|  |  |  |     ('TJ', _('Tajikistan')), | 
					
						
							|  |  |  |     ('TK', _('Tokelau')), | 
					
						
							|  |  |  |     ('TM', _('Turkmenistan')), | 
					
						
							|  |  |  |     ('TN', _('Tunisia')), | 
					
						
							|  |  |  |     ('TO', _('Tonga')), | 
					
						
							|  |  |  |     ('TP', _('East Timor')), | 
					
						
							|  |  |  |     ('TR', _('Turkey')), | 
					
						
							|  |  |  |     ('TT', _('Trinidad & Tobago')), | 
					
						
							|  |  |  |     ('TV', _('Tuvalu')), | 
					
						
							|  |  |  |     ('TW', _('Taiwan, Province of China')), | 
					
						
							|  |  |  |     ('TZ', _('Tanzania, United Republic of')), | 
					
						
							|  |  |  |     ('UA', _('Ukraine')), | 
					
						
							|  |  |  |     ('UG', _('Uganda')), | 
					
						
							|  |  |  |     ('UM', _('United States Minor Outlying Islands')), | 
					
						
							|  |  |  |     ('US', _('United States of America')), | 
					
						
							|  |  |  |     ('UY', _('Uruguay')), | 
					
						
							|  |  |  |     ('UZ', _('Uzbekistan')), | 
					
						
							|  |  |  |     ('VA', _('Vatican City State (Holy See)')), | 
					
						
							|  |  |  |     ('VC', _('St. Vincent & the Grenadines')), | 
					
						
							|  |  |  |     ('VE', _('Venezuela')), | 
					
						
							|  |  |  |     ('VG', _('British Virgin Islands')), | 
					
						
							|  |  |  |     ('VI', _('United States Virgin Islands')), | 
					
						
							|  |  |  |     ('VN', _('Viet Nam')), | 
					
						
							|  |  |  |     ('VU', _('Vanuatu')), | 
					
						
							|  |  |  |     ('WF', _('Wallis & Futuna Islands')), | 
					
						
							|  |  |  |     ('WS', _('Samoa')), | 
					
						
							|  |  |  |     ('YE', _('Yemen')), | 
					
						
							|  |  |  |     ('YT', _('Mayotte')), | 
					
						
							|  |  |  |     ('YU', _('Yugoslavia')), | 
					
						
							|  |  |  |     ('ZA', _('South Africa')), | 
					
						
							|  |  |  |     ('ZM', _('Zambia')), | 
					
						
							|  |  |  |     ('ZR', _('Zaire')), | 
					
						
							|  |  |  |     ('ZW', _('Zimbabwe')), | 
					
						
							|  |  |  |     ('ZZ', _('Unknown or unspecified country')), | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-26 01:16:03 -05:00
										 |  |  | class CountryField(models.CharField): | 
					
						
							| 
									
										
										
										
											2016-04-23 02:22:44 -05:00
										 |  |  |     def __init__(self, *args, **kwargs): | 
					
						
							|  |  |  |         kwargs.setdefault('choices', COUNTRIES) | 
					
						
							| 
									
										
										
										
											2016-04-26 01:16:03 -05:00
										 |  |  |         kwargs.setdefault('default', 'CH') | 
					
						
							|  |  |  |         kwargs.setdefault('max_length', 2) | 
					
						
							| 
									
										
										
										
											2016-04-23 02:22:44 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |         super(CountryField, self).__init__(*args, **kwargs) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def get_internal_type(self): | 
					
						
							|  |  |  |         return "CharField" |