Friday, May 27, 2016¶
Presence sheet (HTML)¶
Two days ago Alexa told me that she had asked their system
administrator whether he can convert a pdf file into an Excel
file. And not just some pdf file, but a Presence sheet
generated by Lino! So I wrote a second weasy build method:
WeasyHtmlBuildMethod and told
her to copy the output into LibreOffice or Excel. Her reaction:
During the last days I have been meditating on one of the last challenges for ticket #897: how to implement their “departments” (Abteilungen) in Lino Psico. This morning I finally had the enlightment. Which is also a surprisingly simple solution for #856:
We just use the fact that a
username can be empty (in recent Lino
versions). You cannot log in as such a “user”, but (if it has a
profile and if you
it), then you can act as such a user. Users like Anne-Sopie then have
two records in the
table, one without
username, but linking to the same
partner and having a
profile. Yes, if their email address
changes, we need to update two fields (but not that Anne-Sophie can
have different email addresses depending on her “role”). I think this
is a perfect solution for #856 (but we can start to use it
only after their next deployment).
In Lino Psico we will then introduce the notion of “teams”, They (SPZ Eupen) will have two teams: “Eupen” and “Sankt Vith”. Every user, every partner, every invoice and every time-tracking session (clocking.Session) will point to a team. The verbose_name of the Team model will be changed to “Department” (German Abteilung).
But that’s not all. User teams will also be useful e.g. in Lino Noi.
The common things for all user teams is in the new
In Lino Care we will maybe (not yet sure, it depends on how this
project evolves) have
lino_noi.lib.teams which injects a team
pointer to tickets. This would possibly be a better model for what we
currently call the tickets.Site. The difference between a team and a
site of a ticket would be that the team would virtually split one
database over several organizations (but still leaving common data,
e.g. users of one team can receive invitations to work on tickets for
other teams if they have the competence).
First public demo of Lino and ExtJS 6¶
From today on, Hamza’s work on Lino’s support for ExtJS 6 is publicly visible. I configured one of our public demo sites so that it uses Lino’s new ExtJS 6 interface. Go and try it out yourself:
I also wrote instructions to ExtJS 6 front end how to to this on your own site.
Of course it is not yet perfect. Because migrating a beast like Lino from ExtJS 3 to 6 was really not easy at all. We worked more than 200 hours on this project, most of the work was done by Hamza. Well done!
Oops, the first public demo above broke the other online demo sites.
There was a name clash on lino-framework.org: the static files from ExtJS6 had
overwritten those of ExtJS3. I renamed
lino_extjs6.extjs6 because I think that the app_label must be
different if you want to serve them both on a same server. Actually
it was maybe not the app_label but the static urls for
extjs6/lino.css. Now they are both “extjs6”.
Another problem: Lino Psico did not translate “Features” because it
did not have
lino_noi.lib.noi installed. But
lino_noi.lib.noi also acted as the customized readonly
bootstrap3 user interface. TODO: check whether one of the projects in
Lino Noi (probably bs3) can go away.