20130425 (Thursday, 25 April 2013)

Choosing the company of a ClientContact

It was not possible to choose a company in welfare.pcsw.ClientContact. (Already in the last release?). The reason was a double bug:

  • company_choices still used the old interface where any additional keywords were interpreted as known_values.

  • Finding the default contact person for a company failed when the modlib Person model was overridden, raising an AttributeError “type object ‘Person’ has no attribute ‘objects’”:

    File "/home/luc/pythonenvs/py27/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 115, in get_response
    File "/home/luc/hgwork/lino/lino/modlib/contacts/models.py", line 792, in full_clean
    qs = self.contact_person_choices_queryset(self.company)
    File "/home/luc/hgwork/lino/lino/modlib/contacts/models.py", line 787, in contact_person_choices_queryset
    return Person.objects.filter(rolesbyperson__company=company).distinct()

lino.utils.ajax now also logs a warning on the development server. Much easier to read than opening firebug and look at the response.

Added new testcase to lino_welfare.tests.pcsw_demo_tests for the above bug.

One of these cases discovered another bug and is still failing because /choices ignores the “query=mutu” string.

master_instance of a VirtualTable

Another bug was reported by Uwe: Tabelle “Resultat” einer Tx25 ist leer.

This was because of a syntactical mousetrap: TableRequest.parse_req(…,**kw) does:

if not kw.has_key('master_instance'): ...

but AbstractTable.request did:

def request(self,master_instance=None,**kw):
    # WRONG:
    # kw.update(master_instance=master_instance)
    # CORRECT:
    if master_instance is not None:
    ar = TableRequest(**kw)

References to the userdocs

References to the userdocs of http://welfare-user.lino-framework.org were broken because in atelier.sphinxconf the intersphinx_mapping was wrong. (TODO: These values of course should be configurable…)

Last-minute changes

  • Im Kontext Sprachkurse wurde “Register” versehentlich durch “Registrieren” statt “Eintragen” übersetzt.
  • CandidatesByCourse und ParticipantsByCourse:

welfare.jobs.NewJobsOverview : Kolonnen “Probezeit” und “Kandidate” ausgetauscht


  • Added another new testcase to lino_welfare.tests.pcsw_demo_tests for the master_instance of a VirtualTable bug. Now “fab test” fails with “There’s no RetrieveTIGroupsRequest with primary key u‘16’”. But “python manage.py test lino_welfare.DemoTest” runs it successfully. I guess some setUp/tearDown problem.