20130724 (Wednesday, 24 July 2013)

Continued to work on the welfare.reception module.

Added a “Quick appointment” action which creates (1) a calendar event that belongs to the selected user and (2) a checked-in Guest for this event.

Actions

I added a new virtual column action_buttons which is similar to the existing workflow_buttons column. The new attribute lino.core.actions.Action.show_in_row_actions defines whether this action should be displayed in this column.

The difference is subtle: it does not display the state, nor does it automatically include any state change actions. The whole system for defining actions is not yet really transparent and consistent.

Secretaries

Is “secretary” a “user role” (currently called “level”) or a “functional group”? The answer to this question depends on the application. The framework should not make some presumption.

The reception clerk should not see the contacts module. I think the best solution for this is to change the general lino.modlib.contacts module so that these commands also require user_groups=’office’.

The default UserLevels had an entry “secretary”, situated between “guest” and “user”. I renamed this (back) to “restricted”.

The “restricted” user level was used in lino.modlib.postings: the idea was that “secretaries” do certain general jobs for the “specialists”. They are members of these “user groups”, but have less rights than the real users. They are more than “guests” however. Thus the need for an intermediate level. But this was maybe an unnecessary complication. Removed it. Waiting for user feedback.

The two actions to manage Belgian eID cards (which were previously in lino_welfare.modlib.pcsw.models) are now in a separate module lino.modlib.reception.beid.

TODO: model mixin BeidCardHolder and make it even an independant app and make the linoweb.js fragmented…

The welfare.reception module starts to get ready, but two technical challenges are yet TODO:

  • There are two ways to execute the “Read eID card” action on a client: using the toolbar button and using the JS link of the new “Actions” field. The latter doesn’t work because the JS isn’t correct.

  • A reception clerk sees the welfare.reception.ExpectedGuests table rendered as HTML in their admin_main.html, very nice, but the “Checkout” actions don’t work from there.

Merge

A simply typo bug occured when trying to merge:

TypeError
unsupported operand type(s) for %: 'NoneType' and 'tuple'

TRACEBACK:
  ...
  File "/home/luc/hgwork/lino/lino/core/merge.py", line 77, in logmsg
    lst.append("Merge %s into %s") % (self.obj,self.merge_to)