20111229 ======== - Wrote the migration handler :func:`lino.apps.dsbe.migrate.migrate_from_1_3_2` which sets the new `build_time` fields on existing data. - Added a new test "Overlapping contracts" to :meth:`lino.apps.dsbe.models.Person.data_control`. On result is that the preview takes now quite some time and should be cached. One surprise while working on the migration handler:: Problem installing fixture '/usr/local/django/dsbe_eupen/fixtures/d20111229.py': Traceback (most recent call last): ... File "/usr/local/django/dsbe_eupen/fixtures/d20111229.py", line 266, in lino_datacontrollisting_objects yield create_lino_datacontrollisting(1,True,None) File "/var/snapshots/lino/lino/apps/dsbe/migrate.py", line 908, in create_lino_datacontrollisting obj.build_time = obj.get_cache_mtime() File "/var/snapshots/lino/lino/mixins/printable.py", line 705, in get_cache_mtime filename = self.get_cache_filename() File "/var/snapshots/lino/lino/mixins/printable.py", line 701, in get_cache_filename bm = get_build_method(self) File "/var/snapshots/lino/lino/mixins/printable.py", line 453, in get_build_method bmname = elem.get_build_method() File "/var/snapshots/lino/lino/mixins/printable.py", line 694, in get_build_method return settings.LINO.config.default_build_method AttributeError: 'Lino' object has no attribute 'config' Explanation: the dpy fixtures are of course executed before any the kernel setup has been done. That's why there was no `config` object jetzt in the :class:`lino.Lino` instance. And the site's :attr:`lino.models.SiteConfig.default_build_method` has not yet been restored. Solution: new configuration parameter :attr:`lino.Lino.site_config_defaults`. And instead of setting a `config` instance variable during kernel setup, we now have a property `site_config` which lazily calls `get_site_config`.