From ebceef846ac95884d9d497fe40c6a9dee9e3ed34 Mon Sep 17 00:00:00 2001 From: "igor.zelenberg@gmail.com" Date: Wed, 10 Dec 2014 13:49:20 -0500 Subject: [PATCH 1/3] Adding New York State Added forms, models and test for New York State --- docs/localflavor/us/ny.rst | 21 ++++++++++ localflavor/us/ny/__init__.py | 0 localflavor/us/ny/forms.py | 19 +++++++++ localflavor/us/ny/models.py | 18 +++++++++ localflavor/us/ny/nys_detail.py | 72 +++++++++++++++++++++++++++++++++ tests/test_us/test_ny/tests.py | 72 +++++++++++++++++++++++++++++++++ 6 files changed, 202 insertions(+) create mode 100644 docs/localflavor/us/ny.rst create mode 100644 localflavor/us/ny/__init__.py create mode 100644 localflavor/us/ny/forms.py create mode 100644 localflavor/us/ny/models.py create mode 100644 localflavor/us/ny/nys_detail.py create mode 100644 tests/test_us/test_ny/tests.py diff --git a/docs/localflavor/us/ny.rst b/docs/localflavor/us/ny.rst new file mode 100644 index 000000000..4c481b1cb --- /dev/null +++ b/docs/localflavor/us/ny.rst @@ -0,0 +1,21 @@ +United States of America (``us``) +================================= + +Forms +----- + +.. automodule:: localflavor.us.ny.forms + :members: + +Models +------ + +.. automodule:: localflavor.us.ny.models + :members: + +Data +---- + +.. autodata:: localflavor.us.us_states.NYS_COUNTIES + +.. autodata:: localflavor.us.us_states.NYS_COUNTY_CHOICES diff --git a/localflavor/us/ny/__init__.py b/localflavor/us/ny/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/localflavor/us/ny/forms.py b/localflavor/us/ny/forms.py new file mode 100644 index 000000000..0d3b209ce --- /dev/null +++ b/localflavor/us/ny/forms.py @@ -0,0 +1,19 @@ +""" +New York State Form helpers +""" + +from __future__ import absolute_import, unicode_literals + +from django.core.validators import EMPTY_VALUES +from django.forms import ValidationError +from django.forms.fields import Field, RegexField, Select, CharField +from django.utils.encoding import smart_text +from django.utils.translation import ugettext_lazy as _ + +class NYSCountySelect(Select): + """ + A Select widget that uses a list of U.S. states/territories as its choices. + """ + def __init__(self, attrs=None): + from .nys_detail import NYS_COUNTY_CHOICES + super(NYSCountySelect, self).__init__(attrs, choices=NYS_COUNTY_CHOICES) diff --git a/localflavor/us/ny/models.py b/localflavor/us/ny/models.py new file mode 100644 index 000000000..647602031 --- /dev/null +++ b/localflavor/us/ny/models.py @@ -0,0 +1,18 @@ +from django.utils.translation import ugettext_lazy as _ +from django.db.models.fields import CharField + +from . import forms +from .nys_detail import NYS_COUNTY_CHOICES + + +class NYSCountyField(CharField): + """ + A model field that forms represent as a ``forms.NYSCountyField`` field and + stores the three-digit county code. + """ + description = _("New York State County Three-Digit Codes") + + def __init__(self, *args, **kwargs): + kwargs['choices'] = NYS_COUNTY_CHOICES + kwargs['max_length'] = 3 + super(NYSCountyField, self).__init__(*args, **kwargs) diff --git a/localflavor/us/ny/nys_detail.py b/localflavor/us/ny/nys_detail.py new file mode 100644 index 000000000..6de6aacff --- /dev/null +++ b/localflavor/us/ny/nys_detail.py @@ -0,0 +1,72 @@ +""" +File for mapping of New York State counties, and cities. +""" + +# County codes for each county +NYS_COUNTIES = ( + ('001', 'Albany'), + ('003', 'Allegany'), + ('005', 'Bronx'), + ('007', 'Broome'), + ('009', 'Cattaraugus'), + ('011', 'Cayuga'), + ('013', 'Chautauqua'), + ('015', 'Chemung'), + ('017', 'Chenango'), + ('019', 'Clinton'), + ('021', 'Columbia'), + ('023', 'Cortland'), + ('025', 'Delaware'), + ('027', 'Dutchess'), + ('029', 'Erie'), + ('031', 'Essex'), + ('033', 'Franklin'), + ('035', 'Fulton'), + ('037', 'Genesee'), + ('039', 'Greene'), + ('041', 'Hamilton'), + ('043', 'Herkimer'), + ('045', 'Jefferson'), + ('047', 'Kings'), + ('049', 'Lewis'), + ('051', 'Livingston'), + ('053', 'Madison'), + ('055', 'Monroe'), + ('057', 'Montgomery'), + ('059', 'Nassau'), + ('061', 'New York'), + ('063', 'Niagara'), + ('065', 'Oneida'), + ('067', 'Onondaga'), + ('069', 'Ontario'), + ('071', 'Orange'), + ('073', 'Orleans'), + ('075', 'Oswego'), + ('077', 'Otsego'), + ('079', 'Putnam'), + ('081', 'Queens'), + ('083', 'Rensselaer'), + ('085', 'Richmond'), + ('087', 'Rockland'), + ('091', 'Saratoga'), + ('093', 'Schenectady'), + ('095', 'Schoharie'), + ('097', 'Schuyler'), + ('099', 'Seneca'), + ('089', 'St. Lawrence'), + ('101', 'Steuben'), + ('103', 'Suffolk'), + ('105', 'Sullivan'), + ('107', 'Tioga'), + ('109', 'Tompkins'), + ('111', 'Ulster'), + ('113', 'Warren'), + ('115', 'Washington'), + ('117', 'Wayne'), + ('119', 'Westchester'), + ('121', 'Wyoming'), + ('123', 'Yates'), +) + +#: All NY State Counties +NYS_COUNTY_CHOICES = tuple(sorted(NYS_COUNTIES, key=lambda obj: obj[1])) diff --git a/tests/test_us/test_ny/tests.py b/tests/test_us/test_ny/tests.py new file mode 100644 index 000000000..058b03412 --- /dev/null +++ b/tests/test_us/test_ny/tests.py @@ -0,0 +1,72 @@ +from __future__ import unicode_literals +from django.test import SimpleTestCase +from localflavor.us.ny.forms import NYSCountySelect + +class US_NYSLocalFlavorTests(SimpleTestCase): + def test_NYSCountySelect(self): + f = NYSCountySelect() + out = '''''' + self.assertHTMLEqual(f.render('counties', '061'), out) From 655ccbaf6071719330f1b50f13361716752ecf26 Mon Sep 17 00:00:00 2001 From: "igor.zelenberg@gmail.com" Date: Wed, 10 Dec 2014 13:56:10 -0500 Subject: [PATCH 2/3] Changing heading in ny.rst file Changed heading in ny.rst file --- docs/localflavor/us/ny.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/localflavor/us/ny.rst b/docs/localflavor/us/ny.rst index 4c481b1cb..13981f7fe 100644 --- a/docs/localflavor/us/ny.rst +++ b/docs/localflavor/us/ny.rst @@ -1,4 +1,4 @@ -United States of America (``us``) +New York State (``us.ny``) ================================= Forms From 44a7a85259c09271ce4c46a8310a92bf4f735677 Mon Sep 17 00:00:00 2001 From: "igor.zelenberg@gmail.com" Date: Thu, 11 Dec 2014 10:02:27 -0500 Subject: [PATCH 3/3] Fixing build errors for unused imports and docs --- docs/index.rst | 1 + docs/localflavor/{us/ny.rst => us_ny.rst} | 4 ++-- localflavor/us/ny/forms.py | 7 ++----- localflavor/us/ny/models.py | 1 - 4 files changed, 5 insertions(+), 8 deletions(-) rename docs/localflavor/{us/ny.rst => us_ny.rst} (64%) diff --git a/docs/index.rst b/docs/index.rst index 001ff75ec..8c822d508 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -73,6 +73,7 @@ validate Finnish social security numbers. * :doc:`localflavor/sk` * :doc:`localflavor/tr` * :doc:`localflavor/us` + * :doc:`localflavor/us_ny` * :doc:`localflavor/uy` * :doc:`localflavor/za` diff --git a/docs/localflavor/us/ny.rst b/docs/localflavor/us_ny.rst similarity index 64% rename from docs/localflavor/us/ny.rst rename to docs/localflavor/us_ny.rst index 13981f7fe..e0a09c303 100644 --- a/docs/localflavor/us/ny.rst +++ b/docs/localflavor/us_ny.rst @@ -16,6 +16,6 @@ Models Data ---- -.. autodata:: localflavor.us.us_states.NYS_COUNTIES +.. autodata:: localflavor.us.ny.nys_detail.NYS_COUNTIES -.. autodata:: localflavor.us.us_states.NYS_COUNTY_CHOICES +.. autodata:: localflavor.us.ny.nys_detail.NYS_COUNTY_CHOICES diff --git a/localflavor/us/ny/forms.py b/localflavor/us/ny/forms.py index 0d3b209ce..158939aca 100644 --- a/localflavor/us/ny/forms.py +++ b/localflavor/us/ny/forms.py @@ -4,11 +4,8 @@ from __future__ import absolute_import, unicode_literals -from django.core.validators import EMPTY_VALUES -from django.forms import ValidationError -from django.forms.fields import Field, RegexField, Select, CharField -from django.utils.encoding import smart_text -from django.utils.translation import ugettext_lazy as _ +from django.forms.fields import Select + class NYSCountySelect(Select): """ diff --git a/localflavor/us/ny/models.py b/localflavor/us/ny/models.py index 647602031..73904ef66 100644 --- a/localflavor/us/ny/models.py +++ b/localflavor/us/ny/models.py @@ -1,7 +1,6 @@ from django.utils.translation import ugettext_lazy as _ from django.db.models.fields import CharField -from . import forms from .nys_detail import NYS_COUNTY_CHOICES