Member change requests, model moderation
Allow users to ask to change fields on their profile, add lessons e.t.c. which creates a 'change request' for approval by a DB officer.
Story
Bob notices his BSAC number is wrong. He clicks edit and changes the field. He is informed the change has been logged for moderation. He can see the change, but is has a similar note attached to it.
Alice, a members officer is notified of the change request, is presented with a diff showing what Bob has altered and clicks
Approve
. The change goes live for everyone on the database.
A To simplify matters Each user should only be able to have a single change request open on a single model instance at any one time. If Bob notices something else that needs changing he simply appends those changes to the same change request. The approval process should have check-boxes or similar next to each field to approve or deny each change.
B Each modified field spawns a change request. This is a model with the changee, the approver, the model instance, field and new value. Each field that is altered by Bob spawns a change request. Change requests can be approved or denied individually.
Packages
- https://github.com/sunlightlabs/django-gatekeeper/
- https://github.com/dominno/django-moderation/, seems to hit the nail on the head "User change his profile, old profile data is visible on site. New data will be visible on site when moderator approves it"
General theme is lack of m2m relation support.