20130717 (Wednesday, 17 July 2013)

Update your get_installed_apps

After yesterday’s changes, some tests were failing because lino.ui is no longer automatically being yielded by lino.ui.Site.get_installed_apps().

This change was necessary because otherwise it was impossible to override the “ui” app (and lino_welfare now does exactly that).

This forced me to tidy up a few things. I decided that lino.ui is no longer an app. The models SiteConfig, HelpText and TextFieldTemplate and some system fixtures and tests are now defined in a new module lino.modlib.system. References to these models have now the app_label “system” and no longer “ui”.

The lino.ui module remains, but it is no longer a Django app. It is an important core module. lino.ui.Site is the base for all Lino Site classes. The separation between lino.Site and lino.ui.Site is currently not important. It exists theoretically in case one day somebody comes who wants Lino, but wants to write her own user interface.

Existing Lino applications must add lino.modlib.system to the list of apps yielded by lino.ui.Site.get_installed_apps().

More detailed instructions in /changes.

Klientengespräche und Gäste in Lino-Welfare (weiter)

So. Nachdem wir die oben beschriebenen “kleinen technischen Details” geregelt haben, können wir weitermachen mit dem Empfangsmodul bzw. den Neuerungen im Kalendermodul.

welfare.cal.Calendar hat jetzt ein neues Feld invite_client, welches für Klientengespräche angekreuzt ist (zumindest in der Demo-Datenbank. Produktionsdaten nach Release manuell anpassen).

Die Demo-Termine hatten keinen Klienten. Jetzt wohl.

Die Tabelle der Gäste eines Termins hat jetzt ein Detail-Layout.

CreateMail didn’t work.

New setting lino.ui.Site.demo_email used by lino.modlib.system.fixtures.demo and lino_welfare.fixtures.demo

Lino-Welfare has two new SiteConfig fields client_guestrole and team_guestrole.

In der Demo-Datenbank gibt es jetzt sinnvolere Gastrollen. “Reiseführer” und “Teilnehmer” sind raus. Neue Rollen sind “Besucher” und “Kollege”. Von der Gastrolle hängt die Formulierung der Einladung ab.

TODO: Templates “Visitor.eml.html” und “Colleague.eml.html”

jinja_templates directories versus config directories

Until now, all Jinja templates were in jinja_templates directories while “config files” (such as .odt templates for lino.mixins.printable) were in config directories. Now these trees are merged: existing applications must rename each jinja_templates directory to config (or, if a sibling config directory already exists, merge the jinja_templates content to content).

These directory trees work like Django’s templates loading algorithm but with subtle differences, the biggerst one being that you can have “per-setting” and “local” config trees.

For both types of files Lino has a separate algorithm to load these trees at startup. These algorithms are in lino.core.web for Jinja templates and in lino.utils.config for config files directories.