Open zwolf opened 4 years ago
Is the use case for this:
Yeah, I think so. The user realizes that their clusters look terrible and they find some new settings that work. They adjust the settings in caesar, but the transcriptions need to be removed from tove before they can be reimported by a rerunning of the Caesar reducer.
I've documented the current process for getting workflow-wide re-reductions imported into Tove: ALICE Caesar Setup Doc. This issue highlights the weakness in this process: deletion of current entries must be manually deleted on the app console. If this action is commonly requested, then this enhancement should be considered for implementation.
Testing and initial use will show whether this feature request is worth the investment of dev effort to implement. However, for now this issue should be treated as a candidate enhancement request and should only be pursued once this need / use case is confirmed.
Users will need to be able to delete transcriptions in Tove if a reduction is updated/backfilled in Caesar with new/different reduction parameters. Currently, when Caesar re-reduces a subject and the rule to send to Tove is in effect, if the transcription with an id that matches that of the caesar subject exists, a database exception is raised about duplicate keys. This was originally on purpose, since this was only supposed to happen in cases of overclassification of retired subjects, which made sense to raise to the team.
However, it has come up that the researchers may want to rereduce a workflow (all its linked subjects) in a manner similar to the way that rereduction of a single subject is currently handled by the front end. That is, by changing the reduction parameters and saving new transcriptions. This will be best handled by allowing the user to delete the transcriptions from Tove with some filter, then rerunning the caesar reducers. The deleted transcriptions will be recreated in Tove and remaining duplicates (if the whole workflow wasn't removed) will bounce off.
So this is in a couple parts:
?group_id=xxxx
). This could allow for edge cases where somebody wants to delete due to low consensus, flagged, or certain statuses, for instance.