1. Luke Plant
  2. django

Commits

aaug...@bcc190cf-cafb-0310-a4f2-bffc1f526a37  committed a9daa0f

Fixed #10756 -- Error in the formats accepted by PLNIPField. Thanks remik for the report, michalm for the patch and claudep for the review.

  • Participants
  • Parent commits 62b64f1
  • Branches default

Comments (0)

Files changed (3)

File django/contrib/localflavor/pl/forms.py

View file
 class PLNIPField(RegexField):
     """
     A form field that validates as Polish Tax Number (NIP).
-    Valid forms are: XXX-XXX-YY-YY or XX-XX-YYY-YYY.
+    Valid forms are: XXX-YYY-YY-YY, XXX-YY-YY-YYY or XXXYYYYYYY.
 
     Checksum algorithm based on documentation at
     http://wipos.p.lodz.pl/zylla/ut/nip-rego.html
     """
     default_error_messages = {
-        'invalid': _(u'Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX.'),
+        'invalid': _(u'Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or XXXXXXXXXX.'),
         'checksum': _(u'Wrong checksum for the Tax Number (NIP).'),
     }
 
     def __init__(self, max_length=None, min_length=None, *args, **kwargs):
-        super(PLNIPField, self).__init__(r'^\d{3}-\d{3}-\d{2}-\d{2}$|^\d{2}-\d{2}-\d{3}-\d{3}$',
+        super(PLNIPField, self).__init__(r'^\d{3}-\d{3}-\d{2}-\d{2}$|^\d{3}-\d{2}-\d{2}-\d{3}$|^\d{10}$',
             max_length, min_length, *args, **kwargs)
 
     def clean(self,value):

File docs/ref/contrib/localflavor.txt

View file
 
 .. class:: pl.forms.PLNIPField
 
-    A form field that validates input as a Polish Tax Number (NIP). Valid
-    formats are XXX-XXX-XX-XX or XX-XX-XXX-XXX. The checksum algorithm used
+    A form field that validates input as a Polish Tax Number (NIP). Valid formats
+    are XXX-XXX-XX-XX, XXX-XX-XX-XXX or XXXXXXXXXX. The checksum algorithm used
     for NIPs is documented at http://wipos.p.lodz.pl/zylla/ut/nip-rego.html.
 
 .. class:: pl.forms.PLCountySelect

File tests/regressiontests/localflavor/pl/tests.py

View file
         self.assertFieldOutput(PLPostalCodeField, valid, invalid)
 
     def test_PLNIPField(self):
-        error_format = [u'Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX.']
+        error_format = [u'Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or XXXXXXXXXX.']
         error_checksum = [u'Wrong checksum for the Tax Number (NIP).']
         valid = {
-            '64-62-414-124': '6462414124',
             '646-241-41-24': '6462414124',
+            '646-24-14-124': '6462414124',
+            '6462414124': '6462414124',
         }
         invalid = {
             '43-343-234-323': error_format,
+	    '64-62-414-124': error_format,
             '646-241-41-23': error_checksum,
         }
         self.assertFieldOutput(PLNIPField, valid, invalid)