================================ 20130329 (Friday, 29 March 2013) ================================ Released :ref:`welfare.1.1.1` & Co ---------------------------------- - Added a test in French to :ref:`welfare.specs.debts`. - "Inactive" wasn't yet translated to German. - Upgrading a Lino site that hasn't installed pip requires quite some manual work. Here is an excerpt:: $ cd /var/snapshots/ $ wget http://www.lino-framework.org/dl/lino/lino-1.6.4.tar.gz $ wget http://www.lino-framework.org/dl/North/North-0.1.1.tar.gz $ wget http://www.lino-framework.org/dl/djangosite/djangosite-0.1.1.tar.gz $ wget http://www.lino-framework.org/dl/lino-welfare/lino-welfare-1.1.1.tar.gz $ tar xvzf djangosite-0.1.1.tar.gz $ tar xvzf North-0.1.1.tar.gz $ tar xvzf lino-1.6.4.tar.gz $ tar xvzf lino-welfare-1.1.1.tar.gz $ cd /usr/local/django/mysite/using $ ll total 0 lrwxrwxrwx 1 lsaffre www-data 25 Mar 17 19:06 lino -> /var/snapshots/lino-1.6.3 lrwxrwxrwx 1 lsaffre www-data 26 Mar 27 20:45 north -> /var/snapshots/North-0.1.0 lrwxrwxrwx 1 lsaffre www-data 31 Mar 17 19:05 site -> /var/snapshots/djangosite-0.1.0 lrwxrwxrwx 1 lsaffre www-data 33 Mar 17 19:06 welfare -> /var/snapshots/lino-welfare-1.1.0 $ rm * $ ln -s /var/snapshots/lino-1.6.4 lino $ ln -s /var/snapshots/North-0.1.1 north $ ln -s /var/snapshots/djangosite-0.1.1 site $ ln -s /var/snapshots/lino-welfare-1.1.1 welfare sphinx-apidoc and the `__init__.py` files ----------------------------------------- `sphinx-apidoc `__ generates the wrong automodule directive for the `__init__.py` file of a package. For example, here is an excerpt of the file `/docs/api/djangosite.rst`, as it was generated for my for :mod:`djangosite` package before I patched my copy of `sphinx-apidoc`:: :mod:`djangosite` Package ------------------------- \.. automodule:: djangosite.__init__ <<<------------- PROBLEM :members: :show-inheritance: :mod:`dbutils` Module --------------------- \.. automodule:: djangosite.dbutils :members: :show-inheritance: (In case you noticed it, I had specified `os.environ.update(SPHINX_APIDOC_OPTIONS="members,show-inheritance")` while running sphinx-apidoc) The problem is that a ``:class:`` reference to ``djangosite.Site`` didn't work, I had to write ``djangosite.__init__.Site``. I solved this for myself by finding the following function definition in the `apidoc.py` file:: def format_directive(module, package=None): """Create the automodule directive and add the options.""" directive = '.. automodule:: %s\n' % makename(package, module) for option in OPTIONS: directive += ' :%s:\n' % option return directive And adding a ``.replace('.__init__','')`` to the following line:: directive = '.. automodule:: %s\n' % makename(package, module).replace('.__init__','') Now a reference to :class:`djangosite.Site` works. A selection list for number fields ---------------------------------- One customer request is about the "Amount" field of a Budget Entry. This field ist filled with a default value that comes from `Account.default_amount` (a field that is injected into the Account model by :func:`lino_welfare.modlib.debts.models.customize_accounts`). Here is the request: The default amount works well, but for certain accounts I'd like to configure not only one default amount but a list of a few possible amounts to choose from. The Lino part is easy: just write a :func:`lino.core.chooser` method for this field:: @chooser(simple_values=True) def amount_choices(cls,account): return account.default.amount.split(';') But the problem is how to render such a field! ExtJS has no "NumberComboBox". Ext.form.ComboBox extends Ext.form.TriggerField which extends Ext.form.TextField, but Ext.form.NumberField also just extends Ext.form.TextField. You cannot configure a ComboBox to use a displayField which is a NumberField and not a TextField. To implement a "NumberComboBox" we would have to duplicate a lot of ExtJS JavaScript code. No I refuse to do that for the moment, at least as long as we didn't migrate to ExtJS4. A workaround (admittedly a suboptimal one) is to define several accounts in that case. Default verbose_name for ForeignKey parameter fields ---------------------------------------------------- The :func:`lino.core.kernel.set_default_verbose_name` is now also being used for ForeignKey fields in an Actor's parameter panel (:attr:`lino.core.actors.Actor.parameters`). Yet another JobsOverview ------------------------ Wrote a new version of :class:`lino_welfare.modlib.debts.NewJobsOverview`.