Tuesday, July 28, 2015

Changes in Lino Noi

I worked on #358 because I need to write a time estimation for a wishlist with a dozen of tickets.


  • New ticket state Talk.

  • New field deadline (DateField)

  • TicketsToDo, TicketsToTalk, TicketsToTriage

  • New settings module lino_noi.settings.public provides readonly access under public URL.

  • added a field “priority” (integer 0…100)

  • added a field lino.modlib.tickets.models.Project.assign_to. PublicTickets now shows only unassigned tickets.


  • Remove field modified because that information is irrelevant. Add a field touched : the last time somebody worked on this ticket. This is either created or, if at least one session exists, the end_time of that session. And then a table RecentTickets makes sense.

  • Remove field private because all tickets assigned to somebody become “private”. Even assigned tickets should never contain private data in their description because the public interface just doesn’t list them, it may still show them e.g. when they are referred to by a public ticket.

Releases to PyPI

I released Lino Noi for the first time on PyPI. Which requires new newest Lino version, so I released also Lino 1.6.18

What the hell is a BooleanStoreField?

I was notified that Tim Graham finally closed Django ticket #15497 (BooleanField should work for all PostgreSQL expressions) which I opened four years ago. Unfortunately I did not manage to find a good formulation and to write a pull request quickly enough, so the docstring of Field.to_python() continues to fail to mention that is limited to SQL expressions. Maybe Tim is right when he says that this is obvious. I adapted my docstring for lino.core.store.BooleanStoreField to no longer refer to this ticket because it is obviously unrelated.

I noticed that if ever some Django developer stumbles over this, they will maybe ask “What the hell is a BooleanStoreField?” And they would be right: the whole lino.core.store module is highly subtle and poorly documented code. So I tried to change its docstring into something which has at least a chance to make sense to interested developers.