==================================
20140405 (Saturday, 05 April 2014)
==================================

custom fields
-------------

When manually entering IBAN and BIC fields, users can now type
lowercase characters. These are automatically converted to uppercase.

This was not trivial.

One problem with a first (internal) implementation was that it made
the whole framework depend on `django-iban
<https://pypi.python.org/pypi/django-iban>`_ .  `django-iban` is very
good, but only people who use :mod:`lino.modlib.sepa` will want to
install it.

To solve this, I added a new feature to Lino: apps can now define
their own custom fields. This is of course just an extension to
Django's philosophy.  For Lino we just needed to add a
:class:`CustomField <lino.core.fields.CustomField>`.

Usage example see :class:`UppercaseTextField
<lino.modlib.sepa.models.UppercaseTextField>`
and its subclasses :class:`IBANField <lino.modlib.sepa.models.IBANField>` and
:class:`SWIFTBICField <lino.modlib.sepa.models.SWIFTBICField>`.

The problem of the `change` and `afteredit` events remains. In fact
the EditorGridPanel needs a thorough revision. But for the moment we
can continue to live with a workaround: added a `to_python` method to
:class:`UppercaseTextField
<lino.modlib.sepa.models.UppercaseTextField>`.