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:
“Super!”
User teams¶
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
have an Authority
for
it), then you can act as such a user. Users like Anne-Sopie then have
two records in the User
table, one without username
, but linking to the same
partner
and having a
different 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
lino_xl.lib.teams
plugin.
And then we now have lino_tera.lib.teams
which extends
lino_xl.lib.teams
as described above. I started to write
functional specs in Teams.
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¶
Oops, the first public demo above broke the other online demo sites.
There was a name clash on The Lino framework: the static files from ExtJS6 had
overwritten those of ExtJS3. I renamed lino_extjs6.extjs
to
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/Ext.ux.form.DateTime.js
and
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.