20140306 (Thursday, 06 March 2014)

The mergedata management command

The new management command mergedata takes the full name of a python module as argument. It then imports this module and expects it to define a function objects in its global namespace. It calls this function and expects it to yield a series of Django instance objects which have not yet been saved. It then compares these objects with the “corresponding data” in the database and prints a summary to stdout. It then suggests to merge the new data into the database.

  • It never deletes any stored records.
  • All incoming objects either replace an existing (stored) object, or will be added to the database.
  • If an incoming object has a non-empty primary key, then it replaces the corresponding stored object. Otherwise, if the model has unique fields, then these cause potential replacement.

Upgrade in Châtelet

  • lino.modlib.statbel.fixtures.inscodes now gives more helpful error report when Place.MultipleObjectsReturned occurs.
  • props was lacking in the demo_fixtures of lino_welfare.settings.fr.
  • translations

sphinx-build gettext very slow

I want to write and maintain multilingual end-user documentation for my software applications using “sphinx-build gettext”. For example, here is the source of one of my doctrees: https://github.com/lsaffre/lino-welfare/tree/master/userdocs

I noticed that, already on a medium-sized doctree, a build can become very slow. By inserting print statements at different places I found out that the slowness is due to the calculations done in sphinx.versioning (called by Environment.read_doc) where it merges doctrees for each document.

Is there hope that I can get it accelerated? Am I doing something wrong?

‘module’ object has no attribute ‘CoachingEvents’

Fixed a bug: Trying to get a welfare.integ.ActivityReport failed with an AttributeError ‘module’ object has no attribute ‘CoachingEvents’.

Also fixed another bug “ERROR ‘NoneType’ object has no attribute ‘PendingCourseRequests’” which occured only when courses not installed.