Does anyone know when 'unicode characters' were fixed in the menu (see screenshot).
I guess this is a benefit of using Python 3 where everything is text unless it is explicitly not .
In fact, I have two 'old' 5.x sites / Python2 running (not sure about version since I have 'home/cov19 office) and one shows it correct, the other not.
This problem has reoccured in 5.2.3 ( Single quote in folder's title rendered as ' in drop down menu )
Can anyone (else) confirm this error ?
Also: Where should this be reported ?
Yes i can confirm this. I have a site with the same? error. I have registered an action in /portal_actions/portal_tabs with a title "Activities & Projects" and in the navigationbar in plone show me "Activities & Projects
". That only happend after migration to 5.2.3 Py3
Same with 2.7, I just tested
- What python version do you use
- Is it possible that some setting ( language / country ), in 'system', or maybe even in buildout ? has something to do with it?
Is buildout.cfg of demo.plone.org available so we could test (with) it ?
demo.plone.org use:
- Plone 5.2.3 (5210)
- CMF 2.4.8
- Zope 4.5.3
- Python 3.8.3 (default, Jul 14 2020, 07:39:54) [GCC 7.5.0]
- PIL 6.2.2 (Pillow)
- WSGI: An
- Server: waitress 1.4.4
Tomorrow, I will investigate the Problem on my Testinstance.
@espenmn: Update: on my local testsystem did not happend the error, mysterious.
I 'had a feeling about that', since I could not find out the difference between my two sites, see below
Ok thats what i found in plone.app.layout.viewlets.common, and that is really strange:
def build_tree(self, path, first_run=True):
"""Non-template based recursive tree building.
3-4 times faster than template based.
"""
out = u""
for item in self.navtree.get(path, []):
print("in build tree before self.render_item:", item)
# the output of print:
# all is fine, yeah
# {.... 'title': 'Activities & Projects', 'name': 'Activities & Projects', .....}
out += self.render_item(item, path)
if not first_run and out:
out = self._subtree_markup_wrapper.format(out=out)
return out
def render_item(self, item, path):
print("in self.render_item:", item)
# the output of print:
# WTF! Why is here a quotet "&"
# {.... 'title': 'Activities & Projects', 'name': 'Activities & Projects', .....}
# the other code ...
return self._item_markup_template.format(**item)
As you see, in build_tree
is a call of render_item
. Outside render_item() is all ok, inside there a magic quote!
Update
The Hotfix is the Problem: see here: Characters doubly escaped if Hotfix20200121 is present in 5.2.2 · Issue #246 · plone/plone.app.layout · GitHub
Question: What is the right way to patch this? Update the Hotfix (disable the layout patch)? Or local in any installation?