Integrate Reversion as a Django contrib app
|Reported by:||Dave Hall||Owned by:||nobody|
|Cc:||david@…, andy@…||Triage Stage:||Unreviewed|
|Has patch:||no||Needs documentation:||no|
|Needs tests:||no||Patch needs improvement:||no|
Reversion is a popular application that adds version control to model data. It's project page describes its features as follows:
- Roll back to any point in a model's history - an unlimited undo facility!
- Recover deleted models - never lose data again!
- Admin integration for maximum usability.
- Group related changes into revisions that can be rolled back in a single transaction.
- Automatically save a new version whenever your model changes using Django's flexible signalling framework.
- Automate your revision management with easy-to-use middleware.
The project has been running since September 2008, and has been through a number of release cycles that improve stability and add features.
I believe that this project would make an excellent addition to the Django contrib applications. This would allow a wider range of users to make use of its features, as well as improving the integration with the Django admin application.
There are two possible approaches to integrate Reversion with the existing admin application:
- The Reversion application defines a VersionAdmin class (extending ModelAdmin) that acts as a base class for all models that require admin integration.
- The ModelAdmin class is extended to provide integration with Reversion, and this functionality is enabled using a
versioning = Trueproperty of the ModelAdmin class.
I suspect that, in the interests of backwards-compatibility, the former of these approaches would be favored. While this approach could be carried out with no changes to the current ModelAdmin class, the integration could be made cleaner if a couple of extra hooks were added to the ModelAdmin class.
As the owner of the existing Reversion project, I would be happy to create the new contrib application in a branch for integration into the Django 1.2 release.
This feature has a similar remit to the old full-history feature which was abandoned a while ago.
Change History (6)
comment:1 Changed 7 years ago by
|Patch needs improvement:||unset|
comment:2 Changed 7 years ago by
|Summary:||Model version control contrib app → Integrate Reversion as a Django contrib app|