20131207 (Saturday, 07 December 2013)¶
As another proof of concept for the new plugins concept using ad.App, I want to convert the use_extensible setting into a plugin. This got a large step further but is not finished.
I also moved the cal
app from lino.modlib
to lino.apps
.
(Which caused rather many code changes;
next time I should do this in a separate branch.)
Concretely:
the lino_xl.lib.cal
app has been moved
to lino.apps.cal
,
and the use_extensible functionality has been encapsulated
into a new app lino.apps.extensible
.
Both apps are now plugins.
One eureka effect was when I moved get_patterns and related methods from Site to Kernel.
djangosite.djangosite_site
: override_modlib_models
is
now a dict, no longer a simple set. Because when somethings is wrong,
the error message should be able to tell me which plugin was wrong.
I wrote some more about Plugin inheritance.
I upgraded the Django of my default development environment
from 1.5.1 to 1.6.0.
This revealed some missing default=False on BooleanField
in Lino Welfare.
And it caused a new exception (TransactionManagementError:
This is forbidden when an ‘atomic’ block is active)
due to a hackerish method
bulk_create_with_manual_ids
in lino_welfare.modlib.debts.models
.
fab initdb
failed for belref and presto because
I had removed the SITE instantiation from their settings module.
TODO:
CalendarAction
should be defined inlino.apps.extensible.models
, butlino.extjs.ext_renderer
currently still needs it because it handles this action very specially. We need to generalize this special handling.Find a better name for
lino.core.kernel.Kernel
What about the name for
djangosite.djangosite_site.App
? Wouldn’t be “Plugin” better? Answer: yes.