Opened 16 years ago

Closed 12 years ago

#8273 closed Cleanup/optimization (wontfix)

Reduce amount of redundant code in django.contrib.localflavor

Reported by: Piotr Lewandowski <django@…> Owned by: nobody
Component: contrib.localflavor Version: dev
Severity: Normal Keywords:
Cc: jwilk@… Triage Stage: Accepted
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: yes
Easy pickings: no UI/UX: no


There is a plenty of somehow redundant code in django.contrib.localflavor which leads to potentially more bugs and what is quite inconvenient -- many translation strings.

I would like to propose the patch that handles all fields with a checksum verification.


  • a lot fewer translation strings, which is more consistent and means less work when translating Django to 50 languages,
  • DRY compatible (and all benefits that it implies).


  • backwards incompatible,
  • new code may contain bugs (although all tests were OK).

I volunteer for further modifications of django.contrib.localflavor code to use NumberWithChecksumField if this patch is accepted.

Attachments (1)

localflavor-numberwithchecksumfield.patch (19.6 KB ) - added by Piotr Lewandowski <django@…> 16 years ago.

Download all attachments as: .zip

Change History (11)

by Piotr Lewandowski <django@…>, 16 years ago

comment:1 by Piotr Lewandowski <django@…>, 16 years ago

I forgot to mention that this patch also fixes a bug in PLNationalBusinessRegisterField. This field should accept also 14-digit numbers (see for reference).

comment:2 by Malcolm Tredinnick, 16 years ago

milestone: post-1.0
Triage Stage: UnreviewedAccepted

It should be possible to do this in a backwards-compatible fashion by declaring specific classes in each localflavor that are specific cases of a parameterised parent class. The intention here is good, since there is some quite apparent duplication, but right now isn't the time to be shuffling this code around. Let's table until after 1.0.

comment:3 by Jakub Wilk <ubanus@…>, 16 years ago

Cc: ubanus@… added

comment:4 by (none), 15 years ago

milestone: post-1.0

Milestone post-1.0 deleted

comment:5 by Luke Plant, 13 years ago

Severity: Normal
Type: Cleanup/optimization

comment:6 by Julien Phalip, 13 years ago

Easy pickings: unset
Patch needs improvement: set

Patch needs improvement as per Malcolm's comment.

comment:7 by Jakub Wilk, 13 years ago

Cc: jwilk@… added

comment:8 by ubanus@…, 13 years ago

Cc: ubanus@… removed

comment:9 by Aymeric Augustin, 12 years ago

UI/UX: unset

Change UI/UX from NULL to False.

comment:10 by Aymeric Augustin, 12 years ago

Resolution: wontfix
Status: newclosed

Localflavor has just been split in distinct repositories, making this refactoring significantly harder and less likely to happen.

Besides, I think that descriptive error messages are important for usability, even if they come at the cost of more translation strings.

Note: See TracTickets for help on using tickets.
Back to Top