20111014

Manager isn’t accessible via Third instances

Another bug fixed: AttributeError “Manager isn’t accessible via Third instances” at /api/thirds/ThirdsByOwner (when trying to add a new record in ThirdsByOwner.

Continued on BCSS connection

Dave Kuhlmann sent me a first prototype on how he plans to support <any> elements in a XSD schema. It seems that his approach will be a solution for me. I cannot currently say more than “It seems” because now I must first crawl through BCSS documentaton and find out what they actually expect in that <any> element.

Here is what I did: After applying his suggested manual changes to my SSDNRequest.py, I continued to try to get my BCSS request running (file test2.py). Both files are published here: http://code.google.com/p/lino/source/browse/lino/utils/bcss

Check-in 20111014b.

Removed useless assertion in choices_view

Here is the chooser of lino.mixins.Owned.owner_id_choices():

@chooser(instance_values=True)
def owner_id_choices(cls,owner_type):
    if owner_type:
        return owner_type.model_class().objects.all()
    return []

The last line, return [], was missing. lino.ui.extjs3.ext_ui.ExtUI.choices_view() correctly raised an assertion at /choices/cal/TasksByProject/owner_id.

A chooser must always return an iterable. Usually it is either a list or a Django QuerySet. If the chooser decides that there are no choices available, it must return an empty list, not None.

lino.ui.extjs3.ext_ui.ExtUI.choices_view() and other methods might check for None values and substitute them silently by an empty list, but we prefer to avoid bugs caused by code that forgets to return something.

Check-in 20111014c.

Automatic tasks

There was a bug in lino.apps.dsbe.models.Person.update_owned_task(): it did task.person = self instead of task.project = self (and Django doesn’t complain when setting an instance attribute that doesn’t have a corresponding field).

New automatic task on Contracts : “Contract ends”