Not really secure (user can still post comments via API and by changing the
URL and re-requesting the embedded comment form), but at least normal users
are blocked from commenting this way.
We need to determine what happens when such a comment is successfully
posted, as we can't just reload the comment list. In other words, this is
dependent on where we are embedded, and cannot be handled just locally.
Now None is returned as URL, and a warning is logged, rather than crashing
with a 500. A situation like this occurs when an activity refers to a
no longer existing node.
- Comments are stored in HTML as well as Markdown, so that conversion
only happens when saving (rather than when viewing).
- Added 'markdown' Jinja filter for easy development. This is quite
a heavy filter, so it shouldn't be used (much) in production.
- Added CLI command to update schemas on existing node types.
Refactor of pillar-server and pillar-web into a single python package. This
simplifies the overall architecture of pillar applications.
Special thanks @sybren and @venomgfx