Tuesday, April 4, 2017

Lino Vilma workshop with Jüri and Tanel

Yesterday we had a workshop about Lino Vilma with Tanel and Jüri. I had invited four other people (Liina, Ilona, Krista, Anneli), but these are very busy people and my invitation was sent out too late so that none of them was able to assist. So we were only three and only men: Tanel, Jüri and me. But actually three people was enough.

In the invitation I formulated our goal:

Talgude eesmärk : Paneme paika, millised funktioonid on mõttekas hakkata kasutama. Hakkame kirjutama käsiraamat tulevastele kasutajatele (jätta endale selle lingi igaks juhuks kuskil meelde)

It turned out that we don’t need to write a user’s manual (käsiraamat) because normal users don’t read manuals. Yes I knew this before, but I needed Tanel to realize it.

We don’t need a user’s manual but a trainer’s manual (koolitaja käsiraamat). We need a “book” to be used and maintained by the people who are going to train future Lino Vilma users. This tutorial is currently in a document on Google Drive:

It makes no sense to have this document only on my machine because we must find a team of persons who take responsibility for this document. Tanel will also need this document in order to understand what we are doing and why we do it, in order to explain it to stakeholders. Wow, what a big project!

I then explained Lino Vilma to Jüri. A summary of what I explained to Jüri (and what I suggest that future trainers should explain to their trainees) is currently in that document on Google Drive. I updated that document this morning. Jüri later suggested that we might record my talk next time, cut it into pieces and build a virtual training.

And, as expected, a tangible result of our meeting is another nice list of little code changes to do:

DONE (Luc):

“Lipikuliiged” –> “Lipikuolekud”
  • translations: “Calendar entry” = Sündmus “Calendar entry types” = Sündmuste liigid
  • “Lipikuliiged” is used for both Ticket states and ticket types
  • WishesByTicket : label should be “agenda item in:” (“Päevakorras üritustel:”)
  • the “Summary” of a calendar entry should rather be labelled “Short description”

TODO (Tonis):

  • It should be possible to directly add uploads and comments to something else than a ticket. For example to an activity (courses.Course), to a person, to a company.
  • jane#1654 (has two votes, one invited and one watching) : “Cannot Refused because there is no vote marked as set([]) .”, “Cannot Closed because there is no vote marked as set([<VoteStates.done:40>, <VoteStates.cancelled:60>]) .”
  • Switch back from “Event” to “Activity” as the general term for courses.Course. Because “event” implies a known date, but there are avtivities for which we want to collect enrolments or wishes before we know a date.
  • MyEnrolments - shows my enrolments in some (active) activity
  • summary panel of WishesByTicket : do not show closed activities, just an indication “+ N closed activities”.
  • Change Extensible Calendar configuration : 24h and 6h-22h
  • cal.Guest.partner : should be a pointer to Person, not to Partner.
  • topics.Topic should be Hierarchical (and then in configuration menu two entries AllTopics and TopLevelTopics as e.g. in lino_xl.lib.faculties)
  • DuplicatesByTicket : readonly and with summary panel
  • Show uploads in the list of comments. That is, the insert dialog for uploads should have an additional text field, and if the user writes something in that field, Lino stores that text as a comment.
  • Activity line (ürituste sari) : should not be mandatory. e.g. a default value if empty. Courses.insert_layout should rather include the name of the course.
  • UpdateVote and CreateVote : these detail windows should close afer every save
  • VoteDetail should not have a (+) button (insert_action)
  • Add a field cal.Room.place (FK to countries.Place). If this field is empty and partner isn’t (i.e. either company or contact_person), then fill it from partner.

TALK (next time):

  • UserTypes designations
  • Voting workflow is not yet finished.
  • Do we need a visual tool for moving tickets around (like Google Keep)?
  • How to send a photo from phone to Vilma (waiting for #1556)
  • How to publish calendar entries (waiting for #1201 )
  • cal.Room doesn’t need to be Hierarchical because every room will have a company or at least a place
  • verbose_name of topics.Topic should not be “Topic”, but rather “News channel” in Vilma and “Component” in Team.

Repaired test suites

I must now adapt the test suites to my changes of the last days so that Tonis can start the stable branches. Currently he is locked because it is difficult for him to decide whether a failure is mine or not.

En passant I also integrated the specs of cosi into book, as I did with noi some days ago. Tonis and I have the impression that this is the right direction. It is possible that we don’t need to do this also for voga and welfare and presto and avanti because noi and cosi already provide a nice “demo context” for explaining the Lino framework. Okay Voga and Presto might be interesting to also integrate, but Welfare and Avanti are quite specific to Belgian public administrations (which is not bad, but at the worldwide level it is not much).

So e.g. lino_noi.lib and lino_cosi.lib now point to the API section of the Lino Book. And Financial vouchers or The apc demo project point to the Specs section of the Lino Book.

I am not yet decided what to do with Lino Noi and Lino Così. Actually they should be available only in my blog and point to the end-user docs.

Oops, when I had the test suite passing, I realized that I had been doing this in the mailbox branches in xl and noi. (Sigh… I have the feeling that I will never get used to working in multiple branches).

So I think the best is now to head on and merge mailbox branch into master.

Getting the repositories to pass on Travis

Tonis and I had our next hangout. I showed Tonis my work on #1201 and #1556. Together we did several checkins and optimizations. We merged thw two mailbox branches into master.

I will now continue to get master to pass on my machine at least.

Here is how to run the wholte test suite of the Lino SDK:

$ pp inv clean -b
$ time pp inv prep bd test

The whole process takes 37 minutes on my machine.