plone / plone/plone.restapi

Remove dependencies on imports from Classic UI packages

Open
#2,017 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
109
Forks
107
Avg merge
2d 3h
Merged PRs (30d)
4

Description

Related to https://github.com/plone/Products.CMFPlone/issues/3953

  • plone.app.layout
    • This is the main package that will hold the classic UI views and templates. plone.restapi needs to stop depending on it.
    • Move plone.app.layout.navigation.navtree.buildFolderTree somewhere
    • Move history fetching logic from ContentHistoryViewlet somewhere
  • plone.app.workflow
    • This package is mostly for the Classic UI sharing view which will move to plone.app.layout
    • Move LocalrolesModifiedEvent to plone.base
    • Move ISharingPageRole to plone.base
    • Move merge_search_results to plone.app.users
  • plone.app.content
    • This package has various Classic UI views that will move to plone.app.layout. After that, it is a pretty small package which maybe doesn't need to exist (but removing it can be low priority)
    • Move INameFromTitle to plone.base
    • Move vocabulary permissions mapping to plone.app.vocabularies

(Of course, we need to keep backwards-compatibility imports for Plone 5.)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the dependency list and the related Products.CMFPlone issue, then inspect the named entry points: plone.app.layout.navigation.navtree.buildFolderTree, ContentHistoryViewlet, LocalrolesModifiedEvent, ISharingPageRole, merge_search_results, INameFromTitle, and the vocabulary permissions mapping. Done means these dependencies move to the specified packages, plone.restapi no longer depends on Classic UI packages, and backwards-compatible imports for Plone 5 remain.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
api, backend
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.