20130329 (Friday, 29 March 2013)¶
Released Lino-Welfare 1.1.1 & Co¶
Added a test in French to Debts mediation.
“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 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 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
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 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 lino.core.kernel.set_default_verbose_name()
is now also being used for ForeignKey fields in an Actor’s parameter panel
(lino.core.actors.Actor.parameters
).
Yet another JobsOverview¶
Wrote a new version of lino_welfare.modlib.debts.NewJobsOverview
.