Wednesday, January 27, 2016

A (hopefully) last thing for #745: One test in Defining holidays passed only yesterday because it mentioned the upper date limit which depends on the current system date at server startup.

To fix this, the default value of ignore_dates_after is no longer “approcimately 5 years after server startup” but “(exactly) 5 years after today.

While I was there, I moved the configuration settings ignore_dates_before and ignore_dates_after from to Because this setting is rather specific and therefore should be in the plugin.

In lino.core.auth I changed a subtle rule: when no “user language” is set, or for anonymous requests, it no longer forces the site’s default language but relies on the language set by Django’s django.middleware.locale.LocaleMiddleware.

And then – instead of working on #584 – I invested some more time into #632 and started to write a function lino.api.doctest.screenshot(). I also optimized the lino.api.selenium API (runserver now automatically starts and stops the firefox driver).

I received ticket #751. Tried to reproduce it (in lino.utils.xmlgen.html and lino.utils.html2odf) without success. The problem is in lino.modlib.appypod which raises an exception because it sees an unknown type name.

A little optimization to the pp command (atelier/scripts/per_project). When I invoke e.g. pp fab initdb test bd in order to run a complete test suite, and if some failure occurs, then it can be difficult to guess in which project it occured.

After 45 minutes with Alexa we found two more optimizations for Lino Voga (#753 and #754) which I fixed quickly. (They are for Lino Voga, but the changes themselves are in Also some German translations.

Another ticket (#752) needs some meditation: When an automatically generated event conflicts with another event, then Lino –until now– tries to find an “alternative” date for the event. We need to think about this rule. We cannot just say “the first event wins”. For example Easter Monday is always on Easter Monday, Lino must not move it to Tuesday just because there is already another accidental calendar event on that date.


I installed my first virtual environment under Python 3 and discovered on my machine the installation was different than what Hamza had written for his machine in Lino and Python 3. Debian has no package “pip3”.

Two new tickets by Aurélie: #755 and #756. #755 was easy, but #756 must wait.


Then I solved ticket #752, and I even wrote a test case (in


A course series in German is not “Kursserie” but “Kursreihe”.