Gsoc 2022 Aspirant Interested in Undo Control Panel project idea

Hi @MdSahil-oss – thanks for your interest in the undo control panel idea! It is not quite the same as the recycle bin idea, but it is related.

Earlier versions of Plone had a way for a user to “undo” changes they had made to content, including deletions.

Plone is built on top of Zope, and it is in fact Zope that has this undo capability. Plone’s undo control panel used to expose this capability in the Plone UI.

Because the Zope undo capability has some limitations, earlier Plone developers removed the undo control panel from Plone, with the reasoning that it was too difficult to explain when undo might or might not work, so better to remove the feature entirely.

The idea is to restore the undo in Plone but include some explanation to users why the undo operation they are attempting may or may not work. The undo UI should also be improved over the old one, which would sometimes show a cryptic error stack (quite unfriendly to users).

@tkimnguyen Thanks for explaination.
I will have more questions in future so will ask in this thread till then i have to explore this project more.

1 Like

@tkimnguyen would you like to tell me exactly which version of Plone was having Undo Control Panel so that i can explore the plone version via docker image and will try to make a better approach than previous Undo Control Panel.

What I would do is review the release notes starting around Plone 3.0 and look for something related to removal of the undo view or menu item (might be described as a "portal action").

All the Plone releases are listed in

I got to that link this way:

  1. Installing Plone — Plone: Enterprise Level CMS - Free and OpenSource - Community Driven - Secure
  2. In the right portlet/sidebar, "Recent Plone Releases" Recent Plone Releases — Plone: Enterprise Level CMS - Free and OpenSource - Community Driven - Secure
  3. In the right portlet/sidebar, "Other Plone Releases" Other Plone Releases — Plone: Enterprise Level CMS - Free and OpenSource - Community Driven - Secure
  4. "Past releases"

@tkimnguyen thanks for ideas

Can anyone tell me whether Undo Control panel will be added to the plone's volto(Plone 6) directory or into plone 5 ?

The idea is to add this to the new Volto frontend.

Thanks @tisto
I saw this was your idea to add Undo Control panel into Plone again by this issue Undo Control Panel · Issue #2049 · plone/volto · GitHub .
As we know Undo Control Panel is different idea from Recycle Bin project idea in the Plone, and because of deletion and undoing operation, both are related, so I just want to ask what are those features which will differ Undo Control Panel from Recycle Bin in the plone,
I researched a lot but couldn't get satisfying answer then I thought Undo Control Panel project idea will be specifically different for Plone from Recycle Bin,
so, would @tisto or anyone like to elaborate what will be special features of Undo Control Panel that will make it different from Recycle Bin for the Plone.

Undo and recycle bin might sound similar when you look at it from the user's point of view since they both can be used to undo a delete operation for instance. Though, technically they differ significantly.

The undo functionality has been in core since forever and all we need is a Plone REST API endpoint to expose this and a Plone 6 (Volto) control panel to show the undo operations (and maybe allow to filter and search on the db operations).

Recycle bin never has been in core and there are numerous implementations by senior members of the Plone community and we were never able to integrate that into core. Recycle bin is a very complex topic IMHO because there are multiple ways to implement it and the community never reached a conclusion what's the "right way" of doing it.

If I were a GSoC student (and I actually was in 2009 and I was a mentor 5-6 times since then) I would rather go with the undo control panel. It is a lot easier to implement and it is clear what needs to be done.

Recycle bin is something where the mentor and the student have to put considerable effort into drafting the solution. If you are up for that, I'd suggest talking to @tkimnguyen, since he proposed that project.

Personally, I am very much interested in having a recycle bin implementation. Though, I don't really see how a GSoC student could accomplish something that experienced Plone core developers (some of the smartest people I know) did not accomplish (at least not bringing it into the core). That's just my personal opinion though. Other community members might have a clearer view of what needs to be done here.

1 Like

Maybe I am not getting this right, but IMO a Plone undo control panel is not desirable in Plone core.

Undo is a DB level feature.

You might have multiple Plone instances into a Data.fs and it would be very nasty that somebody who is a Manager on a Plone site will undo transactions on another site that he cannot even access.

Having this into an add-on might be a viable option.

I would suggest allowing the usage of the undo control panel for admins only (not even site administrators). In the long run, it should be possible to run a Volto site without the need for Plone Classic or the ZMI. We just can not pile up more and more UIs.

Today we have to tell our clients (who run their own Plone sites) that there are three UIs they need to know (Volto, Classic, ZMI). This can't be our desired goal in the long run IMHO.

At some point, we want to run Plone "headless" without Classic or the ZMI. How are we supposed to undo database transactions, if we don't start providing the necessary options today?

1 Like

Thanks @tisto for the suggestion, I would also prefer to work on Undo Control Panel as a GSoC student and Plone's beginner , also thanks for giving me some tips what I will actually have to implement in the Undo Control Panel.

Hello everyone, I have submitted my proposal to GSoC for Undo Control Panel Project idea.
I hope you all will like it and mentor of Undo Control Panel project idea will get back to me soon. And thanks @tkimnguyen and @tisto to make me understand the project idea.
Let me know if I need to correct or change anything in my proposal.

Hello everyone, I'm here to share that, I've read a few training documentations of Plone like Javascripts for plone developers, React, Redux and Routing in React . However I knew most of the things already but documentations gave me clear understanding of plone (The way plone community write code for devlopment purposes) and going to start reading documentation on Plone's Volto, so would @tkimnguyen or @tisto or anyone like to give me any tips on what topic in Plone's Volto or in any other documentation, I should focus more to develop a well designed and working Undo Control Panel .

As @tisto mentioned :

So, would anyone like to show me the path where is this Undo Functionality in the Core so that I can understand the codebase before to get started.
I tried to search that on my own but couldn't find much results regarding to Undo functionality.

Hello everyone,
Today, I saw something in volto related to Undo functionality, that is undoing is possible with a particular folder contents from History section if anyone edit the folder contents, But there is no option to undo a deleted object from a folder (if anyone direct delete a content from a folder by content section).
I think that's why an Undo Control Panel is needed to implement and logic for Undo Control Panel will be similar as already being used by Plone to perform undo operation on folder's contents.
so, I want to know, am I correct here or not ?

Does anyone know? who is the mentor for Undo Control Panel. so that I can directly contact to the mentor to discuss about the Undo Control Panel.
Please, if anyone knows so let me know.

Hi @MdSahil-oss !
The discussion phase is over now, we are now in the proposal ranking phase, and mentors are ment to make their decision based on the possible previous discussion and on the proposal document itself.

@ebrehault thanks for quick response, I know discussion phase is over and have submitted my proposal for Undo Control Panel to GSoC but didn't get connected with mentor throughout the Discussion Phase, actually I don't know who is the mentor for Undo Control Panel and Plone didn't mention it in its idea list. that's why asking about the mentor.
if you can help so please let me know who is the mentor so that i can make my contribution journey easy with plone.

Thank you everyone for accepting my proposal and giving me this opportunity to work on Undo Control Panel project Idea.
I'll give my best on this project idea.