Commit c3697a09 authored by Aymeric Augustin's avatar Aymeric Augustin
Browse files

Fixed #10756 -- Error in the formats accepted by PLNIPField. Thanks remik for...

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


git-svn-id: http://code.djangoproject.com/svn/django/trunk@17346 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent 56b37bf1
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -122,18 +122,18 @@ class PLNationalIDCardNumberField(RegexField):
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):
+2 −2
Original line number Diff line number Diff line
@@ -960,8 +960,8 @@ Poland (``pl``)

.. 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
+4 −2
Original line number Diff line number Diff line
@@ -420,14 +420,16 @@ class PLLocalFlavorTests(SimpleTestCase):
        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)