Monday, April 15, 2019

A calendar view for Presto

I started the last big part of the prototype for Lino Presto : the calendar views. The extensible plugin is not configurable enough and not future-proof. And anyway the Lino way of doing calendar views is mostly done. Some subtle tricks were missing however.

Excerpts from their requirements document:

Mindestens 3 visuelle Kalendertypen, wie Sie im Transport und Supply Sektor zu Planung genutzt werden, sind für die dynamische Planung unabdingbar.

Alle Kalendertypen sollen recht frei filterbar und ausdruckbar sein.

Weekly view per worker

Weekdays/Worker

Mon 12.01.

Tue 13.01.

Wed 14.01.

User A

User B

User C

This weekend I got a new lino_xl.lib.cal.DailyView table to work. It shows a basic calendar navigator. Looks promising, though there is more to do. For example we also need a WeeklyView and a MonthlyView. They will share the same navigator. This required a little change in Lino:

New method requests.BaseRequest.goto_pk(). This required a change in linoweb.js where I add a global Lino.goto_record_id() function.

I moved handle_uploaded_files from dbtables to actors because it is also possible on a virtual table like DailyView.

Before doing the weekly and month views (and connecting them in the navigator) I’d like to think with Tonis and Hamza about better implementations. How to do it in react. I noted that the instance_handler() method on renderer.Renderer has a sub-optimal API which will be inefficient when generating many links to individual day views. Also the API for defining

Also the DailyView is currently limited to dates betwen -30 and +60. It should work for any date. But ATM I am afraid that request_queryset() is being called for the detail view as well, generating a useless list of volatile Day objects for each request.

I am still having #2957 (and this keeps me from running the test suite). Exploring. But I will nevertheless push my work to master.

Standup meeting

Changes in Lino Così. Hamza finished some tickets for Mads Michael. We should do manual tests now. I must not do this alone but with Hamza. Because he wants to learn, and there is much to learn.

Tonis, please try to get the new cal.DailyView to run under React as well and optimize the API.

Tonis is working on the specs about lino.modlib.summaries. One question is how to link to the ESF plugin in Welfare. The specs for Welfare are now in their own doctree (part of the welfare repo). The Welfare docs want to refer to book, so we cannot use intersphinx for linking from the book to the welfare docs. Intersphinx itself would allow it, but it would create a circular dependency when building the docs.

This morning the link was https://welfare.lino-framework.org/specs/welcht/esf.html.html

But later I reviewed this page and moved it to https://welfare.lino-framework.org/specs/esf.html.html

Because when a plugin library defines a plugin named “xxx”, it should have at least a page docs/specs/xxx independently of which demo project is being used in that page.

Note that from my blog I can refer to this page (here is the proof esf : European Social Fund) because my blog is one of the last doctrees in the dependency list.

What an aging project manager should keep in mind

A friend of mine left a good job after 25 years. I asked why. He told me that the main reason was the attitude or behaviour of their boss:

  • Not listening to team members, or ignoring their opinion.

  • Getting old but not realizing it

  • Not recognizing colleagues who give their best, or even signal the opposite of gratefulness.

  • Not trying to help conflicting colleagues to reconcile

  • Not reacting to Schlamperei and Gammelei of some, while others work hard to get things running.

Lack of social competence? But has he always been like this? Why then didn’t they complain earlier? Does age and power change humans and lets them become like this?