20120921

DiffingMixin replaced by lino.core.changes

If an application wanted database changes to be logged, it had to subclass DiffingMixin when declaring a Model.

This approach was used by lino.modlib.notes.models.Note, lino_welfare.modlib.pcsw.models.Partner and lino_welfare.modlib.isip.models.ContractBase.

It had certain disadvantages and limits: no hook to locally change the rules, it didn’t allow to watch only the changes to certain fields, the user couldn’t easily see the history of changes to a given object.

That’s why we now have the new module lino.core.changes which replaces lino.utils.dblogger.

Instead of inheriting from DiffingMixin, application programmers now define an pre_site_startup method for their lino.Lino where they call watch_changes.

Example usage see lino_welfare.settings.Lino.pre_site_startup().

Continued on lino.apps.presto

There’s still much to do.