Code

Ticket #8210: 8210-2.diff

File 8210-2.diff, 8.2 KB (added by mattmcc, 6 years ago)
Line 
1Index: django/db/models/fields/__init__.py
2===================================================================
3--- django/db/models/fields/__init__.py (revision 8777)
4+++ django/db/models/fields/__init__.py (working copy)
5@@ -866,16 +866,6 @@
6         defaults.update(kwargs)
7         return super(URLField, self).formfield(**defaults)
8 
9-class USStateField(Field):
10-    def get_internal_type(self):
11-        return "USStateField"
12-
13-    def formfield(self, **kwargs):
14-        from django.contrib.localflavor.us.forms import USStateSelect
15-        defaults = {'widget': USStateSelect}
16-        defaults.update(kwargs)
17-        return super(USStateField, self).formfield(**defaults)
18-
19 class XMLField(TextField):
20     def __init__(self, verbose_name=None, name=None, schema_path=None, **kwargs):
21         self.schema_path = schema_path
22Index: django/db/backends/postgresql/creation.py
23===================================================================
24--- django/db/backends/postgresql/creation.py   (revision 8777)
25+++ django/db/backends/postgresql/creation.py   (working copy)
26@@ -28,7 +28,6 @@
27         'SmallIntegerField': 'smallint',
28         'TextField':         'text',
29         'TimeField':         'time',
30-        'USStateField':      'varchar(2)',
31     }
32 
33     def sql_table_creation_suffix(self):
34Index: django/db/backends/sqlite3/creation.py
35===================================================================
36--- django/db/backends/sqlite3/creation.py      (revision 8777)
37+++ django/db/backends/sqlite3/creation.py      (working copy)
38@@ -29,7 +29,6 @@
39         'SmallIntegerField':            'smallint',
40         'TextField':                    'text',
41         'TimeField':                    'time',
42-        'USStateField':                 'varchar(2)',
43     }
44     
45     def sql_for_pending_references(self, model, style, pending_references):
46Index: django/db/backends/mysql/creation.py
47===================================================================
48--- django/db/backends/mysql/creation.py        (revision 8777)
49+++ django/db/backends/mysql/creation.py        (working copy)
50@@ -28,7 +28,6 @@
51         'SmallIntegerField': 'smallint',
52         'TextField':         'longtext',
53         'TimeField':         'time',
54-        'USStateField':      'varchar(2)',
55     }
56 
57     def sql_table_creation_suffix(self):
58Index: django/db/backends/oracle/creation.py
59===================================================================
60--- django/db/backends/oracle/creation.py       (revision 8777)
61+++ django/db/backends/oracle/creation.py       (working copy)
62@@ -38,7 +38,6 @@
63         'TextField':                    'NCLOB',
64         'TimeField':                    'TIMESTAMP',
65         'URLField':                     'VARCHAR2(%(max_length)s)',
66-        'USStateField':                 'CHAR(2)',
67     }
68 
69     remember = {}
70Index: django/contrib/gis/utils/layermapping.py
71===================================================================
72--- django/contrib/gis/utils/layermapping.py    (revision 8777)
73+++ django/contrib/gis/utils/layermapping.py    (working copy)
74@@ -118,6 +118,7 @@
75     OFTDate, OFTDateTime, OFTInteger, OFTReal, OFTString, OFTTime
76 from django.contrib.gis.models import GeometryColumns, SpatialRefSys
77 from django.db import models, transaction
78+from django.contrib.localflavor.us.models import USStateField
79 
80 # LayerMapping exceptions.
81 class LayerMapError(Exception): pass
82@@ -150,7 +151,7 @@
83         models.SlugField : OFTString,
84         models.TextField : OFTString,
85         models.URLField : OFTString,
86-        models.USStateField : OFTString,
87+        USStateField : OFTString,
88         models.XMLField : OFTString,
89         models.SmallIntegerField : (OFTInteger, OFTReal, OFTString),
90         models.PositiveSmallIntegerField : (OFTInteger, OFTReal, OFTString),
91Index: django/contrib/gis/tests/relatedapp/models.py
92===================================================================
93--- django/contrib/gis/tests/relatedapp/models.py       (revision 8777)
94+++ django/contrib/gis/tests/relatedapp/models.py       (working copy)
95@@ -1,4 +1,5 @@
96 from django.contrib.gis.db import models
97+from django.contrib.localflavor.us.models import USStateField
98 
99 class Location(models.Model):
100     name = models.CharField(max_length=50)
101@@ -7,6 +8,6 @@
102 
103 class City(models.Model):
104     name = models.CharField(max_length=50)
105-    state = models.USStateField()
106+    state = USStateField()
107     location = models.ForeignKey(Location)
108     objects = models.GeoManager()
109Index: tests/regressiontests/serializers_regress/models.py
110===================================================================
111--- tests/regressiontests/serializers_regress/models.py (revision 8777)
112+++ tests/regressiontests/serializers_regress/models.py (working copy)
113@@ -8,6 +8,7 @@
114 from django.db import models
115 from django.contrib.contenttypes import generic
116 from django.contrib.contenttypes.models import ContentType
117+from django.contrib.localflavor.us.models import USStateField
118 
119 # The following classes are for testing basic data
120 # marshalling, including NULL values.
121@@ -73,7 +74,7 @@
122     data = models.TimeField(null=True)
123 
124 class USStateData(models.Model):
125-    data = models.USStateField(null=True)
126+    data = USStateField(null=True)
127 
128 class XMLData(models.Model):
129     data = models.XMLField(null=True)
130@@ -209,7 +210,7 @@
131 #    data = models.TimeField(primary_key=True)
132 
133 class USStatePKData(models.Model):
134-    data = models.USStateField(primary_key=True)
135+    data = USStateField(primary_key=True)
136 
137 # class XMLPKData(models.Model):
138 #     data = models.XMLField(primary_key=True)
139Index: docs/topics/db/models.txt
140===================================================================
141--- docs/topics/db/models.txt   (revision 8777)
142+++ docs/topics/db/models.txt   (working copy)
143@@ -617,13 +617,14 @@
144 
145 For example, this model has a few custom methods::
146 
147+    from django.contrib.localflavor.us.models import USStateField
148     class Person(models.Model):
149         first_name = models.CharField(max_length=50)
150         last_name = models.CharField(max_length=50)
151         birth_date = models.DateField()
152         address = models.CharField(max_length=100)
153         city = models.CharField(max_length=50)
154-        state = models.USStateField() # Yes, this is America-centric...
155+        state = USStateField() # Yes, this is America-centric...
156 
157         def baby_boomer_status(self):
158             "Returns the person's baby-boomer status."
159Index: docs/topics/forms/modelforms.txt
160===================================================================
161--- docs/topics/forms/modelforms.txt    (revision 8777)
162+++ docs/topics/forms/modelforms.txt    (working copy)
163@@ -73,10 +73,6 @@
164     ``TimeField``                    ``TimeField``
165     ``URLField``                     ``URLField`` with ``verify_exists`` set
166                                      to the model field's ``verify_exists``
167-    ``USStateField``                 ``CharField`` with
168-                                     ``widget=USStateSelect``
169-                                     (``USStateSelect`` is from
170-                                     ``django.contrib.localflavor.us``)
171     ``XMLField``                     ``CharField`` with ``widget=Textarea``
172     ===============================  ========================================
173 
174Index: docs/ref/contrib/localflavor.txt
175===================================================================
176--- docs/ref/contrib/localflavor.txt    (revision 8777)
177+++ docs/ref/contrib/localflavor.txt    (working copy)
178@@ -649,3 +649,8 @@
179 
180     A form ``Select`` widget that uses a list of U.S. states/territories as its
181     choices.
182+
183+.. class:: us.models.USStateField
184+
185+    A model field that forms represent as a ``forms.USStateField`` field and
186+    stores the two-letter U.S. state abbreviation in the database.
187Index: docs/ref/models/fields.txt
188===================================================================
189--- docs/ref/models/fields.txt  (revision 8777)
190+++ docs/ref/models/fields.txt  (working copy)
191@@ -705,14 +705,6 @@
192 :attr:`~CharField.max_length`argument. If you don't specify
193 :attr:`~CharField.max_length`, a default of 200 is used.
194 
195-``USStateField``
196-----------------
197-
198-.. class:: USStateField([**options])
199-
200-A two-letter U.S. state abbreviation. The admin represents this as an ``<input
201-type="text">`` (a single-line input).
202-
203 ``XMLField``
204 ------------
205