A publication/history system for SQLAlchemy.
Clio is a library based on SQLAlchemy that can be used to add a publication workflow and archiving system to a database.
The documentation is available at http://packages.python.org/clio/
Note that currently MySQL is a requirement (for running the tests, and for the sequence support). This requirement is not a core requirement of Clio however, and the main Clio codebase does not depend on it, so it is expected to go away.
- Changed the database schema: two new fields were added (changed_timestamp and created_userid). Throw away the clio_tests database and recreate it again to run the tests. You will have to upgrade your existing databases as well.
- When a new version is created of an existing object, the changed_userid will be copied over from the last version. If a new object is created from scratch, it will be the created_userid. changed_timestamp is treated the same. This makes it possible to detect changes between versions by comparing the timestamps.
- Update documentation to include integer status codes as they appear in the database.
- Updated documentation to include changed information about the timestamps were recorded (as of 0.6), as well as the new timestamp.
- Provide an ‘update’ method for Sequence, so we can set the sequence value. This can be useful in code that converts old databases that already define the equivalent of ‘code’.
- Another bugfix with revert logic. Allow reverting already published objects, as they may have relations that need to be reverted. Don’t raise an error when trying to revert an archived object, instead just don’t do anything.
- Fixed a bug in revert logic. Reversion of edited records should now work better when there are relations.
- Added _actual property which is like _editable, except that deleted items are not part of it.
- Also added is_actual method.
- userid tracking for workflow events.
- change the way timestamps are recorded so that queries for older published items can more easily be constructed. This breaks existing databases. We assume nobody but the author is using Clio yet.
- stop using pysqlite in the tests; the tests now depend on MySQL.
- Introduce ACTUAL_STATUSES. This is what is present in the edit UI, except those things that were deleted. This can be handy in queries.
- Initial public release.