ckan / ideas

[DEPRECATED] Use the main CKAN repo Discussions instead:
https://github.com/ckan/ckan/discussions
40 stars 2 forks source link

Bulk Metadata Update #239

Open dkelsey opened 4 years ago

dkelsey commented 4 years ago

The Problem

We often have requests from our editors to make updates to multiple datasets. They have too many dataset to manually perform the update. The task is tedious, error prone and time consuming. Editors are responsible for a large number of datasets. Often there are a number of points of contact that have moved. Editors need to change "points of contact" in complex ways-- sub sets of cases that make the task challenging. Off the corder of my desk I have written scripts (and reused them) but these "need improvement"

The idea

  1. An app that allows editors to bulk update their records.
  2. A ledger is kept of who did what.
  3. Restore to previous states is a feature.
  4. When updates are performed they do not overwhelm your installation.

I'm wondering:

  1. Has anyone already developed a solution. (yes I looked and did not find anything)
  2. Would this be a useful contribution?
rp21buzz commented 4 years ago

We had such requirement @ my workplace too. I wrote additional python scripts which will be run, when ever there is a request to bulk-update. as to the change log, it is already maintained by the ckan when ever there is any change to tables defined by ckan.

creating a common app might not be a solution to it because users tend make a lot of customizations to ckan (like in our case) which cannot be addressed by a common app.

rufuspollock commented 4 years ago

@dkelsey this is something we've come across quite a bit. On UI side I think this could fit in with a roadmap for an updated admin interface. At a simple practical level (even w/o UI) it could benefit from a pattern and some example code.

Zharktas commented 4 years ago

We did an extension few years ago https://github.com/6aika/ckanext-editor, which allows to make edits to multiple datasets at once. It's quite simple and optimized of our instance but it could be used as a starting point.