======================= Sunday, October 5, 2014 ======================= Final sprint for ticket :srcref:`docs/tickets/122` : repaired the test suite of :ref:`welfare` which was broken after recent changes. A last change to :meth:`lino_welafre.migrate.Migrator.migrate_from_1_1_16`. Data migration on the production site. Seems that everything went well. Discovered and fixed a minor Javascript-releated bug: `ExtRenderer.action_call_on_instance` generated the action call to :class:`welfare.reception.CreateCoachingVisit` as:: Lino.pcsw.Coachings.create_visit(...) which was wrong, it must be:: Lino.pcsw.Coachings.create_visit.run(...) Discovered and fixed an AttributeError "'NoneType' object has no attribute 'model'" when trying to select `body_template` on an AidType with empty `confirmation_type` (e.g. "Erstattung"). The `excerpts/base.body.html` had a nonsense default title block ``{{this}}`` which renderd to "Unprinted Excerpt #7". What we want there is rather ``{{this.excerpt_type}}``. Presence certificate (`presence_certificate.body.html` template) did not print correctly. - The "We certify that ..." block was missing - New method :meth:`ml.addresses.Address.living_at_text` used in both :meth:`welfare.aids.Confirmation.confirmation_address` and the `presence_certificate.body.html` template:: {{obj.client.get_primary_address().living_at_text()}} - New method :func:`dd.strftime`. - :class:`VirtualGetter ` now has a ``__getattr__`` method which makes it possible to write:: {{obj.client.national_id}} - Should the default value for the `nominative` argument to :func:`lino.mixins.human.get_salutation` be `True` or `False`?