Idea from Berlin sprint: Soft Delete (Mautic 8)

My idea is:

  • Introduce “soft delete” everywhere, i.e. set deleted = 1 rather than erasing from database directly
  • UI element for undeleting
  • Currently not: access rights for undelete different from the normal rights “own” etc. (Maybe later?)
  • Console command for hard-deleting after x days
  • to be figured out: ripple down deletions to dependent entries e.g. Tags, Memberships, … (normally DELETE CASCADE)
  • ensure API is fully covered too
  • handle creation of new instances with same unique identifier

I think these groups of people would benefit from this idea:

  • users who sometimes accidentally delete stuff
  • Mautic providers who then have to save them from desaster

Are you willing to work on this idea?:

  • yes

What skills and resources do you need to explore this further?

  • all thoughts welcome
  • a few tables (lead_lists, campaigns, campaign_events) have a “deleted” field; also sync_object_mapping has the notion of is_deleted. Does anyone have insights on that?