Skip to content

Commit

Permalink
Merge pull request #159 from plone/fix_plone61
Browse files Browse the repository at this point in the history
Fix existing_content tile for Plone 6.1 without portal_properties
  • Loading branch information
petschki authored Sep 30, 2024
2 parents ddb7c6b + bc844cd commit 0d4aaf8
Show file tree
Hide file tree
Showing 17 changed files with 40 additions and 32 deletions.
15 changes: 6 additions & 9 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,23 +11,20 @@ jobs:
strategy:
fail-fast: false
matrix:
python:
- "3.8"
- "3.11"
plone:
- "6.0-dev"
- "6.1-dev"
- ["3.11", "6.0-dev"]
- ["3.12", "6.1-dev"]

steps:
- uses: actions/checkout@v4

- name: Setup Plone ${{ matrix.plone }} with Python ${{ matrix.python }}
- name: Setup Plone ${{ matrix.plone[1] }} with Python ${{ matrix.plone[0] }}
id: setup
uses: plone/[email protected]
with:
python-version: ${{ matrix.python }}
plone-version: ${{ matrix.plone }}

python-version: ${{ matrix.plone[0] }}
plone-version: ${{ matrix.plone[1] }}
setuptools-version: "74.0.0"
- name: Install package
run: |
make VENV=off install
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ local.cfg
/venv/
.installed.txt

forest.*

##
# Add extra configuration options in .meta.toml:
Expand Down
7 changes: 6 additions & 1 deletion .meta.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# See the inline comments on how to expand/tweak this configuration file
[meta]
template = "default"
commit-id = "a89af8f2"
commit-id = "5d22fbf8"

[github]
jobs = [
Expand All @@ -13,3 +13,8 @@ jobs = [
"release_ready",
"circular",
]

[gitignore]
extra_lines = """
forest.*
"""
3 changes: 2 additions & 1 deletion CHANGES.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ Changelog
3.1.4 (unreleased)
------------------

- Nothing changed yet.
- Fix existing_content tile for Plone 6.1 without portal_properties.
[pbauer]


3.1.3 (2024-04-17)
Expand Down
1 change: 1 addition & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ Zope = [
'Products.CMFCore', 'Products.CMFDynamicViewFTI',
]
python-dateutil = ['dateutil']
pytest-plone = ['pytest', 'zope.pytestlayer', 'plone.testing', 'plone.app.testing']

##
# Add extra configuration options in .meta.toml:
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,9 @@
install_requires=[
"plone.app.blocks",
"plone.app.tiles>=4.0.0",
"plone.base",
"plone.subrequest",
"plone.tiles>=1.8.0",
"Products.CMFPlone>=6.0.0",
"requests",
"setuptools",
"Zope",
Expand Down
2 changes: 1 addition & 1 deletion src/plone/app/standardtiles/contentlisting.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
from plone.app.standardtiles import PloneMessageFactory as _
from plone.app.z3cform.widget import QueryStringFieldWidget
from plone.autoform.directives import widget
from plone.base.utils import get_top_request
from plone.registry.interfaces import IRegistry
from plone.supermodel.model import Schema
from plone.tiles import Tile
from plone.tiles.interfaces import ITileType
from Products.CMFCore.interfaces import IFolderish
from Products.CMFPlone.utils import get_top_request
from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile
from z3c.form.interfaces import IValue
from z3c.form.util import getSpecification
Expand Down
16 changes: 10 additions & 6 deletions src/plone/app/standardtiles/existingcontent.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@
from plone.app.standardtiles import PloneMessageFactory as _
from plone.app.z3cform.widget import RelatedItemsFieldWidget
from plone.autoform import directives as form
from plone.base.utils import safe_text
from plone.memoize.view import memoize
from plone.registry.interfaces import IRegistry
from plone.supermodel import model
from plone.tiles import Tile
from plone.uuid.interfaces import IUUID
from Products.CMFPlone.utils import safe_unicode
from repoze.xmliter.utils import getHTMLSerializer
from z3c.form import validator
from zExceptions import Unauthorized
Expand Down Expand Up @@ -124,7 +124,7 @@ class IExistingContentTile(model.Schema):

view_template = schema.Choice(
title=_("Display mode"),
source=_("Available Content Views"),
source="Available Content Views",
required=True,
)

Expand Down Expand Up @@ -174,8 +174,10 @@ def content_view(self):
def content_view_name(self):
context = self.content_context
if context is not None:
view_name = self.data.get("view_template") or context.getLayout()
return view_name
if self.data.get("view_template") == "default_layout":
return context.getLayout()
else:
return self.data.get("view_template") or context.getLayout()
return ""

_marker = dict()
Expand Down Expand Up @@ -221,7 +223,7 @@ def item_panels(self):
# after element is closed until last
# element of the root tree.
child_copy = copy.deepcopy(child)
child_html = safe_unicode(serializer(child_copy))
child_html = safe_text(serializer(child_copy))
panel_html.append(child_html)
panel_html = "".join(panel_html)
result.append(panel_html)
Expand Down Expand Up @@ -269,7 +271,9 @@ def availableContentViewsVocabulary(context):

registry = getUtility(IRegistry)
listing_views = registry.get("plone.app.standardtiles.content_views", {}) or {}
voc = [SimpleVocabulary.createTerm("", "", "Default view")]
voc = [
SimpleVocabulary.createTerm("default_layout", "default_layout", "Default view")
]
for key, label in sorted(listing_views.items(), key=itemgetter(1)):
voc.append(SimpleVocabulary.createTerm(key, key, label))
return SimpleVocabulary(voc)
6 changes: 3 additions & 3 deletions src/plone/app/standardtiles/html.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
from plone.app.standardtiles import _PMF as _
from plone.base.utils import safe_text
from plone.subrequest import ISubRequest
from plone.supermodel.directives import primary
from plone.supermodel.model import Schema
from plone.tiles import Tile
from plone.tiles.directives import ignore_querystring
from Products.CMFCore.utils import getToolByName
from Products.CMFPlone.utils import safe_unicode
from zope import schema


Expand Down Expand Up @@ -34,11 +34,11 @@ def __call__(self):
transforms = getToolByName(self.context, "portal_transforms")
data = transforms.convertTo(
"text/x-html-safe",
safe_unicode(content),
safe_text(content),
mimetype="text/html",
context=self.context,
)
content = data.getData()
else:
content = "<p></p>"
return f"<html><body>{safe_unicode(content)}</body></html>"
return f"<html><body>{safe_text(content)}</body></html>"
2 changes: 1 addition & 1 deletion src/plone/app/standardtiles/navigation.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
from plone.app.standardtiles import PloneMessageFactory as _
from plone.app.vocabularies.catalog import CatalogSource as CatalogSourceBase
from plone.base.defaultpage import is_default_page
from plone.base.interfaces import INonStructuralFolder
from plone.i18n.normalizer.interfaces import IIDNormalizer
from plone.memoize.instance import memoize
from plone.supermodel.model import Schema
Expand All @@ -18,7 +19,6 @@
from Products.CMFDynamicViewFTI.interfaces import IBrowserDefault
from Products.CMFPlone.browser.navtree import NavtreeQueryBuilder
from Products.CMFPlone.browser.navtree import SitemapNavtreeStrategy
from Products.CMFPlone.interfaces import INonStructuralFolder
from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile
from z3c.form.interfaces import IValue
from z3c.form.util import getSpecification
Expand Down
2 changes: 1 addition & 1 deletion src/plone/app/standardtiles/setuphandlers.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from plone.base.interfaces import INonInstallable
from plone.registry.interfaces import IRegistry
from Products.CMFPlone.interfaces import INonInstallable
from zope.component import getUtility
from zope.interface import implementer

Expand Down
2 changes: 1 addition & 1 deletion src/plone/app/standardtiles/sitemap.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from plone.app.standardtiles import PloneMessageFactory as _
from plone.app.standardtiles.navigation import NavigationTile
from plone.base.interfaces.controlpanel import INavigationSchema
from plone.registry.interfaces import IRegistry
from plone.supermodel.model import Schema
from Products.CMFPlone.interfaces.controlpanel import INavigationSchema
from zope import schema
from zope.component import getUtility
from zope.interface import implementer
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,6 @@
dummy python: plone_layout.mark_view(view);
portal_url portal_state/portal_url;
checkPermission nocall: context/portal_membership/checkPermission;
site_properties context/portal_properties/site_properties;
fix python:request.set('ACTUAL_URL', context.absolute_url());
">
<div metal:use-macro="item_macro">
Expand Down
2 changes: 1 addition & 1 deletion src/plone/app/standardtiles/templates/login.pt
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@
</div>
<div class="field"
tal:define="
use_email_as_login context/portal_properties/site_properties/use_email_as_login|nothing;
use_email_as_login python:context.portal_registry['plone.use_email_as_login'];
"
>
<tal:loginname condition="not:use_email_as_login">
Expand Down
4 changes: 2 additions & 2 deletions src/plone/app/standardtiles/tests/test_head.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@
from plone.app.testing import TEST_USER_ID
from plone.app.testing import TEST_USER_NAME
from plone.app.testing import TEST_USER_PASSWORD
from plone.base.interfaces import ISecuritySchema
from plone.base.interfaces import ISiteSchema
from plone.registry.interfaces import IRegistry
from plone.testing.zope import Browser
from Products.CMFPlone.interfaces import ISecuritySchema
from Products.CMFPlone.interfaces import ISiteSchema
from unittest import TestCase
from zope.component import getUtility

Expand Down
4 changes: 2 additions & 2 deletions src/plone/app/standardtiles/tests/test_layout.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@
from plone.app.testing import TEST_USER_ID
from plone.app.testing import TEST_USER_NAME
from plone.app.testing import TEST_USER_PASSWORD
from plone.base.interfaces import ISecuritySchema
from plone.base.interfaces import ISiteSchema
from plone.registry.interfaces import IRegistry
from plone.testing.zope import Browser
from Products.CMFCore.utils import getToolByName
from Products.CMFPlone.interfaces import ISecuritySchema
from Products.CMFPlone.interfaces import ISiteSchema
from unittest import TestCase
from zope.component import queryUtility

Expand Down
2 changes: 1 addition & 1 deletion src/plone/app/standardtiles/tests/test_setup.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from plone.app.standardtiles.testing import PASTANDARDTILES_INTEGRATION_TESTING
from plone.base.utils import get_installer
from plone.registry.interfaces import IRegistry
from Products.CMFPlone.utils import get_installer
from zope.component import getUtility

import unittest
Expand Down

0 comments on commit 0d4aaf8

Please sign in to comment.