Wednesday, May 14, 2014

Tried to solve docs/tickets/97. A real solution would require changes in and, 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 developer environment. Main difficulties where pip itself, pycrypto and pylibtidy. The latter produced an OSError: Could not libtidy using any of these names: libtidy,,,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.