I want to build an app where changes to certain objects would be undoable and redoable. The idea is to have those objects managed in a wiki-like way: any visitor can make a change but there is a permanent change history and anyone can reverse anyone else's actions.
I am thinking of doing it with a command pattern: instead of making changes directly, create a instance of an appropriate command class every time which would support "do", "undo", and "document" methods (plus store a reference to a user who made the change). After the change is applied the command would be stored in the database and the object itself would be able to return the list of commands applied to it, so that I could implement a history view with an option of undo the changes up to a certain command. Given that Django seems to have a wealth of undocumented features, I am wondering if there is already something like this, either available or in the works. If not, does anyone has suggestion for Django resources that would be useful for that but might not be obvious to a newcomer? - yuri -- http://www.freewisdom.org/