Fix constraint sync during migration
- restore constraints lost during merge in test schema.
- use constraint_by_eid in BeforeDeleteCWConstraintHook as done in
3.17.14 for BeforeDeleteConstrainedByHook. Fixes handling of multiple
constraints of the same type.
- make sync_schema_props_perms() delete the CWConstraint entity instead
of the constrained_by relation. In 3.19, the latter doesn't
automatically result in the former just because the relation is
composite. Simplify the constraint migration to delete all removed
constraints and recreate new ones even if they share the same type; that
optimization made the code more complicated for (AFAICT) no significant
reason.
Any authenticated user can defines its own bookmarks in the application. They
are similar to bookmarks in a browser but are dedicated to link into the
application and they are stored in the database (and so you'll get them from any
browser you use to connect to the application. They are available through the
bookmarks box, on the left of the screen.
To add a bookmark on the page you're seeing, simply click on the "bookmark this
page" link in the "manage bookmarks" dropdown-menu. You'll then be asked to give
it a title. Once created, it will appear in the bookmarks box.
In this dropdown-menu, the "pick existing bookmarks" link will show you a list
of bookmarks already defined by the other users of the application. If you are
interested by one of them, simply click the `[+]` sign to the left of it to add it
to your bookmarks.
The "edit bookmarks" link will show you a form to edit your current bookmarks,
for instance to change their title. If you are using share bookmarks (picked
from another user), those bookmarks won't appear in the form unless you're
allowed to modify them.
To remove a bookmark, simply click the `[-]` sign to the left of it.