Monday, August 15, 2016¶
Oops, in yesterday’s version there was still a bug which caused the Lino Presto test suite to break:
Exception: tickets.MyTickets.param_defaults() returned invalid keyword 'user'
Now the bug is fixed, and the Lino Noi test suite also covers it.
Increase test coverage¶
I “accidentally” worked on #835:
inv clean
now accepts a--batch
option.I added a new configuration option
inv.coverage_command
The
source
option in.coveragerc
is a multi-valued string
And the tasks.py
of Developer Guide now defines
inv.coverage_command
to do the equivalent of:
pp inv prep test clean --batch bd
Result: you can now run inv cov
in Developer Guide to make a
coverage report which includes all projects. The process takes more
than half an hour to complete.
But the big problem is that I get:
Coverage.py warning: Module lino_xl was never imported.
Coverage.py warning: Module lino_book was never imported.
Coverage.py warning: Module lino_noi was never imported.
Coverage.py warning: Module lino_cosi was never imported.
Coverage.py warning: Module lino_voga was never imported.
Coverage.py warning: Module lino_presto was never imported.
Coverage.py warning: Module lino_welfare was never imported.
Note that with the current solution, coverage result will depend on
the list of projects defined in your ~/.atelier/config.py
.
Lino and the new ExtJS 6 Grid panel¶
I continued to work on ticket #1072 after three weeks of other (more urgent) things.
Once more I dived into the guides about Grids page. I noted that it speaks about setting selType which is deprecated since ExtJS 5. So maybe the whole document is not trustworthy.
Bon. Lino, until now, added a custom handleKeyDown event handler to the Ext.selection.CellModel in order to add modifications to the standard behaviour.
Question: What’s the difference between:
Ext.override(Ext.selection.CellModel, {...});
and:
Ext.define('Lino.selection.CellModel', {
override : 'Ext.selection.CellModel',
...});
Theoretically I think that we want the first variant (Ext.override). Hamza, did you change this? Why?
But this question is no longer relevant, since I decided to completely remove this custom event handler because:
Anyway the handleKeyDown is never called because ExtJS 6 has a changed API there.
The ENTER and F2 keys are handled correctly (as we want it) by adding the
celledit
plugin.I connected celldblclick to call
on_celldblclick()
which needed a new signature.Many of these key combinations were not much used anyway (TAB, PgDn, PgUp, Ctrl+Home, …)
I added a handler for cellkeydown which currently is empty (just logs to the console) but should probably handle any special keys.
I am going to push these changes because I believe that it is the right direction… but there is much to do:
When editing a cell, e.g. END doesn’t move to the end of the cell but to the last page of the grid. Not really what we want…
The afteredit handler seems to be broken. It does not save objects.
handle INSERT and DELETE in on_cellkeydown
handle any normal key in on_cellkeydown so that it starts editing.
we need to redefine what happens when user edits the phantom record. This is buggy also when using ExtJS3.
When working on this, I am currently using mysite:
$ cd lino_extjs/projects/mysite
$ touch manage.py ; runserver
And then click on [Tickets] to have a normal grid with more than one page.