GSoC 2019: Contextualized portlets

I'm not sure about the feasibility of this project due to the following factors:

  • I honestly think we should drop portlets and use slots that are seen in CastleCMS
  • the direction of Plone seems to be mostly backend with Gatsby, Volto and others as the frontend (it's getting hard to keep track of everything)
  • the direction of Plone with Mosaic


  • Site managers can modify the behaviour of each portlet in relation to how it works with a particular content. For example, individual portlet for a parent's portlet can be hidden in the current context and should never affect another context/page.
  • Portlets that are defined in the child context should be able to use the ordering structure of the parent, group and content type portlet. Meaning, if users define a new portlet on the child, users should be able to say it should show up after the second portlet that is in the parent portlets order.


  • Instead of blocking the parent portlets, and rebuilding the structure and the order of the portlets for the current portlet to match the order of the parent portlets, a site manager can change the name of the portlet, e.g. the navigation portlet is named News (path: /news) and the navigation portlet for the child /news/blockchain can be renamed to Blockchain News.

Knowledge and Skills requirement

  • Python
  • Knowledge of Plone portlets
  • Knowledge of Annotation. Annotations will be used to store the arbitrary values for the ordering and portlet attributes for the child's portlet in relation of the parents' portlet.