# Tuesday, February 28, 2017¶

## An urgent upgrade for Roger¶

I finished two urgent tickets #780 and #1428 and then deployed to Die Eiche. #780 required a few new user role definitions. #1428 required a new virtual field trying on a course.

After upgrading on the server Lino reported Exception: <class 'lino_voga.lib.sales.models.InvoiceItem'> has bleached fields but bleach is not installed.. Oops, aha, so lino.utils.bleached is being used in Lino Voga, I had forgotten that. Maybe we would have done more testing if we had known that. But don’t worry, they almost never write anything themselves in the descriptions of their invoice items.

Of course I had to update bleach as described on Saturday, February 25, 2017,

And then I still had the problem under Apache and not when running on the command line:

\$ python
Python 2.7.9 (default, Mar  1 2015, 12:57:24)
[GCC 4.9.2] on linux2
>>> import bleach


This was caused by a missing python-path spec in their WSGIDaemonProcess directive.

I did a few optimization for #1513 in lino.core.auth: The user message should state clearly that authentication is failing because the IP has been blacklisted. Unfortunately this is not trivial, so I abandoned for today. At least users now get an “Ajax communication failed”, and Lino logs a PermissionDenied when it happens.

## Writing service reports in Lino Noi¶

The idea of #1526 is that we can throw away what we currently call service reports, and then we implement them correctly using Invoiceable.

First code changes are in a branch named invoiceable_clocking_Session.

It also caused a few optimizations in Lino Così.

## A review of authenticate¶

Tonis and I had a hangout where we accidentally started to write a new plugin lino.modlib.ipdict.