1 | One feature that we want the new database to include is storing at least an audit trail of changes, so that we can tell who changed a group's entry (or added a signatory) and when. Ideally, we'd want to store complete old versions. |
---|
2 | |
---|
3 | Ideally, we'd use some third-party system to do this, instead of implementing it ourselves. Some projects that try to provide this functionality: |
---|
4 | * django-revisions (sometimes known as django-versions) |
---|
5 | * http://stdbrouw.github.com/django-revisions/ |
---|
6 | * License: Berkeley 2-clause (?) |
---|
7 | * Activity and sustainability |
---|
8 | * First commit August 2010 |
---|
9 | * Last commit March 2011 |
---|
10 | * Somewhat limited documentation |
---|
11 | * Design |
---|
12 | * Store every version in the table with the model |
---|
13 | * Provide accessors for getting the most recent version |
---|
14 | * Appears not to support linking to a "bundle" (an object, not a version) --- see https://github.com/stdbrouw/django-revisions/issues/5 |
---|
15 | * Performance may be an issue --- https://github.com/stdbrouw/django-revisions/issues/9 |
---|
16 | * "Single table" model seems dubious |
---|
17 | * It's not immediately clear to me how to make the admin also save the old version |
---|
18 | * AuditTrail |
---|
19 | * http://code.djangoproject.com/wiki/AuditTrail |
---|
20 | * License: none specified |
---|
21 | * Activity and sustainability |
---|
22 | * First "commit" August 2007 |
---|
23 | * Last "commit" August 2010 |
---|
24 | * Never had anything resembling a website or a source code repo, AFAICT |
---|
25 | * Very limited documentation --- just the one page on Django's wiki |
---|
26 | * Design |
---|
27 | * Store versions in a shadow table per-model |
---|
28 | * django-fullhistory |
---|
29 | * Listed under "Models, database, history, trails" on http://code.djangoproject.com/wiki/DjangoResources |
---|
30 | * License: GPLv2 |
---|
31 | * Activitiy and sustainability |
---|
32 | * First commit August 2008 |
---|
33 | * Last commit January 2010 |
---|
34 | * Design |
---|
35 | * Store all versions of all models in a single table, JSON'd |
---|
36 | * Metadata stored unpickled |
---|
37 | * Time |
---|
38 | * Editor |
---|
39 | * Some other stuff |
---|
40 | * django-reversion |
---|
41 | * https://github.com/etianen/django-reversion |
---|
42 | * License: Berkeley 3-clause |
---|
43 | * Activity and sustainability |
---|
44 | * First commit September 2008 |
---|
45 | * Last commit April 2011 |
---|
46 | * Decent-looking documentation |
---|
47 | * Design |
---|
48 | * Store all versions of all models in a single table, pickled |
---|
49 | * Metadata stored unpickled |
---|
50 | * Time |
---|
51 | * Editor |
---|
52 | * Comment |
---|
53 | * Performance |
---|
54 | * Slightly concerned that the "here are the changes that have been made" view might be too slow; as long as we limit to editor and time this should be fine |
---|