Skip to content

Commit

Permalink
Merge pull request #20 from eea/develop
Browse files Browse the repository at this point in the history
Release
  • Loading branch information
laszlocseh authored Feb 28, 2024
2 parents 4b68fda + 15323df commit 70356e5
Show file tree
Hide file tree
Showing 5 changed files with 76 additions and 1 deletion.
5 changes: 5 additions & 0 deletions docs/HISTORY.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
Changelog
=========

3.2 - (2024-02-28)
---------------------------
* Change: Release
[nileshgulia1]

3.1 - (2023-08-31)
---------------------------
* Change: Feature: Add content rule to unset publication date when private [dobri1408 - refs #147278]
Expand Down
1 change: 1 addition & 0 deletions eea/volto/policy/restapi/configure.zcml
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@
<include package="plone.restapi" />
<include package=".deserializer" />
<include package=".serializer" />
<include package=".navigation" />
</configure>
17 changes: 17 additions & 0 deletions eea/volto/policy/restapi/navigation/configure.zcml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<configure xmlns="http://namespaces.zope.org/zope" xmlns:plone="http://namespaces.plone.org/plone">

<adapter
factory=".navigation.Navigation"
name="navigation"
/>

<plone:service
method="GET"
factory=".navigation.NavigationGet"
for="zope.interface.Interface"
permission="zope2.View"
name="@navigation"
layer="plone.restapi.interfaces.IPloneRestapiLayer"
/>

</configure>
52 changes: 52 additions & 0 deletions eea/volto/policy/restapi/navigation/navigation.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
""" Navigation
"""

from urllib.parse import urlparse
from plone.restapi.interfaces import IExpandableElement, IPloneRestapiLayer
from plone.restapi.services.navigation.get import Navigation as BaseNavigation
from plone.restapi.services.navigation.get import (
NavigationGet as BaseNavigationGet,
)
from Products.CMFCore.utils import getToolByName
from zope.component import adapter
from zope.interface import Interface, implementer


@implementer(IExpandableElement)
@adapter(Interface, IPloneRestapiLayer)
class Navigation(BaseNavigation):
"""Navigation adapter"""

def customize_entry(self, entry, brain):
"""append custom entries"""
entry["brain"] = brain
if hasattr(brain, "getRemoteUrl") and brain.getRemoteUrl:
entry["path"] = urlparse(brain.getRemoteUrl).path
pm = getToolByName(self.context, "portal_membership")
if bool(pm.isAnonymousUser()):
entry["@id"] = brain.getRemoteUrl

return entry

def render_item(self, item, path):
"""build navtree from item helper"""
sub = self.build_tree(item["path"], first_run=False)

item.update({"items": sub})

if "path" in item:
del item["path"]

if "brain" in item:
del item["brain"]

return item


class NavigationGet(BaseNavigationGet):
"""Navigation get service"""

def reply(self):
"""reply"""
navigation = Navigation(self.context, self.request)
return navigation(expand=True)["navigation"]
2 changes: 1 addition & 1 deletion eea/volto/policy/version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.1
3.2

0 comments on commit 70356e5

Please sign in to comment.