python - How can an (unauthenticated) user's "Suggested Change" be managed with Django? -
i have django application humanitarian aid coordination 600 projects, 1000 organizations.
users range professionals working in international development people in rural areas smartphone , whom english second or third language.
we need way let users tell our data wrong , suggest corrections - it's legacy database horrendous spelling , lots of stale contact details.
- i don't want require user authentication, nightmare administer.
- i don't want have wiki-type interface interacting directly database either, easy errors, deliberate or accidental.
i'd see "suggest changes" page each model users can submit recommendations, have data approved admin user single click. @ moment i'm working on solution involving django rest framework, saving serialized data , url admin user verify , submit instead of changing instance.
can recommend way implement this, or better solution?
edit: structure of main table want change. 1 of complications number of relationships involved.
class project(models.model): name = models.charfield(_('name'), max_length=256) description = models.textfield(null=true, blank=true, verbose_name=_("project description"))#, config_name='awesome_ckeditor') startdate = models.datefield(null=true, blank=true, verbose_name="start date") enddate = models.datefield(null=true, blank=true, verbose_name="end date") notes = models.textfield(null=true, blank=true) status = models.foreignkey('projectstatus', null=true, verbose_name="status") projecttype = models.foreignkey('projecttype', null=true, blank=true) person = models.manytomanyfield(person, through='projectperson', null=true, blank=true) sector = models.manytomanyfield( 'nhdb.propertytag', null=true, blank=true, related_name="project_sector", limit_choices_to={'path__startswith': "inv."}) activity = models.manytomanyfield( 'nhdb.propertytag', null=true, blank=true, related_name="project_activity", limit_choices_to={'path__startswith': "act."}) beneficiary = models.manytomanyfield( 'nhdb.propertytag', null=true, blank=true, related_name="project_beneficiary", limit_choices_to={'path__startswith': "ben."}) place = models.manytomanyfield("geo.adminarea", through='projectplace', null=true, blank=true) organization = models.manytomanyfield(organization, through='projectorganization', null=true, blank=true) stafffulltime = models.integerfield(null=true, verbose_name=_('full time staff')) staffparttime = models.integerfield(null=true, verbose_name=_('part time staff'))
you have info go separate database table called suggestions foreign key relationship object being suggested updated.
if did not want risk having unauthorized people add database, have email sent email chain notifies admins.
if doesn't work, have text files saved in edit directory somewhere on server wait worked admins. there separate rabbitmq setup automatically manage workload etc...
basically have ton of options.
Comments
Post a Comment