owid / owid-grapher

A platform for creating interactive data visualizations
https://ourworldindata.org
MIT License
1.39k stars 229 forks source link

Add button to archive datasets in dataset admin, and show if it is already archived #3308

Open pabloarosado opened 8 months ago

pabloarosado commented 8 months ago

Core problem

Currently, the dataset admin does not show if a dataset is archived, and doesn't have a button to archive a dataset. This button used to exist for datasets updated via "import csv", but then it was removed for datasets imported from ETL. I'm not sure why, since I think it's useful to be able to archive them once there is a newer version. I currently do it manually by directly accessing the database and setting isPrivate=1, isArchived=1.

Proposed solution

There should be a button to archive datasets (and to make them private, I suppose), and it should be clear on the admin page of a dataset if a dataset is already archived.

danyx23 commented 7 months ago

@pabloarosado can you elaborate a bit? IIRC there is also an archiving operation in the ETL - is that in any way connected to isArchived in the DB? If this is different, would you just like to show the isArchived flag status? And would this be the thing that is modified by the button? Maybe we could clarify the terminology for this as well?

pabloarosado commented 7 months ago

@danyx23 my suggestion was simply to have a button to archive a grapher dataset, like old (non-ETL) datasets do. For example this old dataset has a button (although, to be fair, that old dataset should probably not have a button because it's already archived, but that's another issue).

ETL steps can also be archived within ETL. But I don't think that's relevant here. What we need is indeed the flag isArchived, and be able to modify that from the dataset admin page.

I'm not sure if isPrivate should also be modified when archiving a dataset. It has never been totally clear the distinction between the two flags. As I mentioned above, when I archive a dataset, I manually set both flags to 1. But maybe it should be enough to set isArchived=1.