Navigation

Worked on #469. New module lino_noi.projects.bs3. The
first session revealed a subtle bug: actors with an empty set as
required_roles were not visible
to anonymous users because actions also required SiteUser.

We finally managed to reproduce and understand what we internally
called the murder bug. This bug had caused several cases of sudden
data loss, hundreds of persons vanishing “overnight”. Continued from
20150824 (Monday, 24 August 2015) for the hopefully last time.

The situation where Lino’s lino.core.ddh failed to throw a veto
was the following: when deleting an MTI child, Lino did not ask vetos
from its MTI parents. For example when deleting a person who is being
used as the partner of
a user, then Lino ran only the DDH for the Person, not those for the
Partner.

And since we now had a reproducible case, I discovered and fixed
another bug: that new loop in kernel_startup (which sets on_delete to
PROTECT for the FK fields which are not listed in their model’s
allow_cascaded_delete) did not work due to a
simple typo bug (== instead of =).