Open cccs-ip opened 9 years ago
This would be interesting. As it is a potentially large undertaking I'd need to commit a couple of hours into investigating it (including a search for existing stuff) before I can tell you how much work is involved.
I'd guess that implementing a feature like this would be not less than a day of work if we're prepared to be quick and dirty but more likely to be perhaps two or three days if we are to retain compatibility with mezzanine updates.
Thanks Paul. I am also still investigating what is out there, which is why I put this up. Actually, you were the one who suggested this approach in the first place:
We have a number of options - a wiki, enhancing pages such that we track changes to them...
... It would be cool if we could track edits and change to normal webpage content and show differences between revisions. I have no idea how this would work, but I guess if MediaWiki can do it with materials stored in a database, so can Django
.. For the moment, however, this will remain un-assigned. We need to finish the CV database UI and data model first.
Just a note about our discussion: Achieving this may be possible by writing git hooks that apply when users edit the site. That would be cool. I want people to be able to change the site as they wish, but I'd like to have some record of the changes. Being able to monitor the logs locally would suffice; we need not have a fancy web presentation format in the beginning.
I'm trying django_reversion but with little success so far. I've raised the topic on the mezzanine user group in the hope of finding an easy solution.
Thanks, Paul. I hope that I am not asking for something that is fundamentally different than what we're currently using.
No responses on the mezzanine group so I've reraised the topic on the reversion group.
Reversion looks like exactly the right tool for the job and I'm hoping I've just missed something needed to get it to play nice with Mezzanine.
Some early attempts (links from Dave Hall's response and search so I don't forget about them) https://groups.google.com/forum/#!topic/mezzanine-users/cbGtXw7quwk/discussion http://grokbase.com/t/gg/mezzanine-users/12b93f09gv/status-of-django-reversion-integration
Thanks for continuing to explore this.
The continued discussion indicates that this could be a lot of work for a full integration (probably a day or two at least, maybe as much as a week). I would aim to make the integration a separate application but there is a risk of needing to modify mezzanine (in a manner similar to the model translation stuff) which creates long term maintenance issues.
I am surprised that this sort of feature doesn't already exist. Django wiki, Mediwiki, and other web content management platforms all track changes and allow comparisons of previous revisions.
Is there another approach that would be easier to implement?
It is surprising.
I've searched fairly extensively and I cannot find anything appropriate. This thread was very encouraging but seems to have dried up and cheathcott does not have any public repositories or recent activity.
I am updating our mezzanine fork and investigating how easily I can do a basic integration.
Done and deployed to both production and staging.
... one possibility in lieu of using wikis
CCCS was using 'project' wikis as a quick way of developing content among small teams. Our wikis were helpful especially for the ease with which page could be create, renamed/moved and sorted. It was also handy to have an in-built compare function. Wikis, however, are meant to be open to "everyone"--making access control issues a challenge. For 'internal' wikis, there is only the ability to collaborate behind a private wiki.
There are few good options for publishing collaboratively-developed documents on the web that can facilitate both "public" and "behind the scenes" interactions among collaborators. Wiki articles, for example, cannot be set to as 'visible only to team members who are logged in'--reserving 'public' and 'private' sections of the site.
Our current web framework has a lot of advantages over the wiki, but it is not yet as helpful as a too for collaborative publication, as was the wiki. Changes to content, for example, are lost if one user saves a mistaken change. While good database backup protocol can help to avoid data loss and compromise, it would be better if the database maintained a record of changes (like wikis do) allowing Git diff functions.