Saturday, April 26, 2014

Forwarding slave tables

lino.modlib.households.models.SiblingsByPerson is like lino.modlib.outbox.models.SentByPartner.

I’d suggest to call this usage pattern a “forwarding slave table”.

Thoughs about lino.modlib.households.

Should there be a field Househould.head? Because in fact a Household must have a “Head of household”. This is a case for a mandatory field (not nullable).

On the other hand the head of a household is also a member. We want a table households.MembersByPerson, and that table should show all households of that person.

Can a person be member of more than one households at a given time? This is technically possible, but it should lead to a data warning.

The role of a membership: should this be a database model or a choicelist?

Visibility of actions

  • Some actions have a “hard-coded default implementation” and are rendered automatically: ShowDetail, InsertRow, DeleteRow, …
  • Custom actions (including many library actions like “Print”, “Duplicate” etc) can be asked to show up at different places.

I updated the docstrings of custom_handler, show_in_bbar and show_in_workflow