# Wednesday, May 14, 2014¶

Tried to solve docs/tickets/97. A real solution would require changes in store.py and elems.py, take much more time than I currently have and would bring unstability.

I finally ended up by simply extending the workaround: the GFK_HACK regular expression used by lino.utils.instantiator.GenericForeignKeyConverter didn’t work when the value had been rendered by a request with a known requesting panel.

The “Manage addresses” button is cool, but (1) it should be next to the address, not after the eid_info. And (2) we want it for every site where lino.modlib.addresses is installed. So I moved this code from lino_welfare.modlib.pcsw to lino.modlib.contacts.

The test suite had some minor failures.

Deleting a primary address now will clear the address fields of the partner.

## First session with Taavi¶

Getting Lino development version to run on Windows.

• The first thing he did was Installing a Lino development environment. Main difficulties where pip itself, pycrypto and pylibtidy. The latter produced an OSError: Could not libtidy using any of these names: libtidy,libtidy.so,libtidy-0.99.so.0,cygtidy-0-99-0,tidylib,libtidy.dylib,tidy traceback.
• The Lino test suite then failed because atelier.utils.SubProcessParent had from __future__ import unicode_literals, which caused a traceback TypeError: environment can only contain strings in the Python subprocess module.
• Updated The Lino Polls tutorial.
• lino.modlib.humanlinks requires ml.contacts.Person to be lino.mixins.human.Born. But it wasn’t. Because at some moment I thought that the default ml.contacts.Person should be minimal. But meanwhile I’d say that indeed most contact managers have a birth date for their persons.
• Taavi’s first Lino application will have 3 models: Song, Concert and Performance

## Continued on docs/tickets/93¶

• The DELETE key failed to invoke the DeleteSelected action (after converting this to a customizable action). Now it works again. And Lino is now able for the first time to handle custom hotkey definitions using Lino.GridPanel.handle_key_event(). The system is not yet stable and cannot yet handle modifiers, but I am glad that a beginning is finally there.
• The IBAN number of a ml.sepa.Account was indeed not validated. Simply because I forgot to call super() in its dd.Model.full_clean() method.