Wednesday, February 8, 2017


More changes in #1466. I am still fiddling with presences and who is responsible for the generated events. I had to extend the EventGenerator API (adding a method eventgen_user). I started a new specs document Courses in Lino Avanti.

I moved the workflows module from Voga to XL because I want to use that workflow in Avanti as well.


A stupid UnicodeException took me 1h30:

AjaxExceptionResponse UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 2: ordinal not in range(128)

in request PUT /api/tickets/AllTickets/1473 (data: <QueryDict: {u'end_user': [u'Select a User...'], u'duplicate_of': [u'Select a Ticket...'], u'ticket_type': [u'Select a Ticket type...'], u'site': [u'welcht'], u'private': [u'off'], u'an': [u'submit_de...)
  File ".../lino/lino/modlib/notify/", line 89, in msg
    subject = self.get_change_subject(ar, cw)
  File ".../lino/lino/modlib/notify/", line 28, in get_change_subject
    return "{} {}".format(self, msg)

The error itself was evident: it came because I did not from __future__ import unicode_literals in that file (lino.modlib.notify.mixins). The difficulty was to reproduce it. But finally I got it… (in

Working with Tonis

We added the RecentComments table.

As a side effect, Comment.owner is no longer a GFK but configurable as commentable_model. Renamed RFC to Commentable.


  • Adapt test suite and verify that no comments on private tickets are
  • Rename get_slave_summary() to get_table_summary() or something similar.