20140221 (Friday, 21 February 2014)

First Lino Application Developer Workshop

With Manuel we are creating “Lino Sunto”, an application to manage products and vendors:


Our application is to be run on an intranet where no authentication is required. Thus user_model can remain empty, and lino.modlib.users is not installed.

After having added a detail_layout to our Products table, we were no longer allowed to add rows. The insert window showed up, but all entry fields were disabled and the SubmitInsert and SubmitInsertAndStay buttons were missing. That was because we had no users. I fixed this by removing the required = dict(user_level='user') that was defined on lino.core.actions.SubmitDetail and subclasses.

While discovering the above, I tried to activate authentication by user_model to "users.User" and adding lino.modlib.users to my get_installed_apps, just for testing whether it works then. This revealed another series of subtle problems:

The fixtures demo and demo2 who create Robin Rood, Rolf Rompen their friends have been until now in lino.modlib.system for some subtle historical reason. Now they are in lino.modlib.users.

These fixtures din’t work when languages was not set (because apply_languages did not call setup_languages in that case.)

Lino also required lino.modlib.system to be installed when user_model was non-empty. No longer.

Moved two doctest cases from the Lino blog to General overview of Lino Welfare because they caused the Lino test suite to fail on a system without Lino Welfare installed.

Restored some failing test cases in the north test suite.

Lino in Châtelet

  • lino.core.kernel now logs more debug messages.
  • The French demo fixtures required a few bits of fiddling.