Thursday, June 30, 2016

Open knowledge

The latest EFF newsletter made me stumble over Open access: All human knowledge is there—so why can’t everybody access it? and I could not resist from integrating this truly excellent report into my opinion about Copyright.

The paging toolbar of a grid panel

I started to work on #1001.

In Lino.GridPanel.initComponent I create an Ext.toolbar.Paging instance.

  • I now call this.callParent() in all initCompnent methods

  • I changed the name of the variable where I store this instance from tbar to paging_toolbar. Because tbar is a config option of Ext.grid.Panel, and it seems that ExtJS deletes these when the component has been initialized.

    Interesting discussion:

  • Ext.toolbar.Paging no longer has a method changePage(). I replaced paging_toolbar.changePage(x) by

No success so far…

Cannot resolve keyword ‘name_fr’ into field

I found the reason for #1005 and #971 and fixed it. It was a bug in the quick_search_filter() method of lino.mixins.Referrable which caused it to ignore the prefix argument. Here is the buggy code. (Do you see the bug?):

def quick_search_filter(cls, search_text, prefix=''):
    if search_text.isdigit():
        return models.Q(**{prefix+'ref__icontains': search_text})
    return super(Referrable, cls).quick_search_filter(
        search_text, prefix='')

The whole thing took me more than two hours. I had to write a test case in Partners in Lino Voga, and then I fixed some secondary bugs:

  • all participants had their pupil_type field empty in the Voga demo database

  • lino.utils.core.get_field caused a RemovedInDjango110Warning: ‘get_field_by_name is an unofficial API that has been deprecated. You may be able to replace it with

Ticket #1002

Que les ateliers soient actifs ou non, ils se retrouvent dans toutes les catégories (actifs/inactifs/terminés)

This was a bug in

Boolean fields are not summable

A little optimization which I did some time ago (Friday, April 1, 2016) in lino.modlib.extjs was not yet done in lino_extjs6.extjs6: boolean fields should no longer be considered as summable fields. I now removed the BooleanMixin class completely since it was no longer used.

I discovered this bug because tickets (Ticket management in Noi) failed when default_ui in was locally set to lino_extjs6.extjs6.

Another problem when switching back and forth between lino.modlib.extjs and lino_extjs6.extjs6 is the fact that lino.modlib.tinymce currently must get removed explicitly. This plugin works only with ExtJS 3, and we currently believe that we will never need it in ExtJS 6. So Lino should remove it automatically when extJS 6 is being used. I am still meditating about how we must solve this. My current favourite idea is to add a new attribute lino.core.plugin.Plugin.ignore_plugins.