Roundup Tracker - Issues

Issue 2551133

classification
Title: Allow roundup-admin pack
Type: rfe Severity: normal
Components: Database, Command-line interface Versions:
process
Status: new Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: rouilj
Priority: normal Keywords: Effort-Low, StarterTicket

Created on 2021-05-12 02:02 by rouilj, last changed 2021-06-10 01:45 by rouilj.

Messages
msg7228 Author: [hidden] (rouilj) Date: 2021-05-12 02:02
In https://wiki.roundup-tracker.org/RemovingUsers deleting journal
entries for a user is part of clearing PII from the user.

Currently this needs to done using database commands (SQL).

This should be doable using roundup-admin.

Enhance the roundup-admin pack command to accept one or more
designators or classes to prune journal entries for those
objects or all objects in the class.

  roundup-admin pack 0d user5

remove all journal entries for user5 starting now all the way
back to the create entry. The create entry will not be deleted.

  roundup-admin pack 0d keywords

delete all journal entries except the create entry for all keywords.

   roundup-admin pack 1y

delete all journal entries (except create entries) older than 1
year ago for all items in the database (this is the current
functionality).

Changes to: admin.py: do_pack,
            backends/rdbms_common.py: pack,
            backends/back_anydbm.py: pack

pack methods get new parameter array of designators. Use 
hyperdb::splitDesignator to split into (class, id) tuples.
Sort by class and create array of id's.

Select/iterate over history for each class deleting matching id's.
For sql use: 'WHERE column_name IN (id1, id2, ...);' clause.

Basically process journal entries for a class once in anydbm
and use only one select statement for sql.
History
Date User Action Args
2021-06-10 01:45:56rouiljsetkeywords: + StarterTicket
2021-05-12 02:33:36rouiljsettitle: Allow roundup-admin pack <date> <designator+> -> Allow roundup-admin pack <date> <class+|designator+>
2021-05-12 02:02:23rouiljcreate