-
-
Notifications
You must be signed in to change notification settings - Fork 32
Open
Description
Expected result
Current behavior
Details
With types defined with matching translated titles, e.g. two "Folder" types like:
[...
('Folder',
{'action': 'http://localhost:8080/Plone/++add++Folder',
'description': '',
'extra': {'class': 'contenttype-folder', 'id': 'folder', 'separator': None},
'icon': None,
'id': 'Folder',
'selected': False,
'submenu': None,
'title': 'Folder'}),
...
('Folder',
{'action': 'http://localhost:8080/Plone/++add++customers.special.Folder',
'description': '',
'extra': {'class': 'contenttype-customers-special-folder', 'id': 'customers-special-folder', 'separator': None},
'icon': None,
'id': 'customers.special.Folder',
'selected': False,
'submenu': None,
'title': 'Folder'})]This section of code forced to compare dictionaries:
plone.app.content/plone/app/content/browser/folderfactories.py
Lines 141 to 145 in bb29d64
| # Sort the addable content types based on their translated title | |
| results = [(translate(ctype['title'], context=request), ctype) | |
| for ctype in results] | |
| results.sort() | |
| results = [ctype[-1] for ctype in results] |
Which results the following error:
TypeError: '<' not supported between instances of 'dict' and 'dict'
Suggested solution
results.sort(key=lambda ctype: translate(ctype['title'], context=request))Note: Unless this violates some underlying rule banning matching titles for content types.
Metadata
Metadata
Assignees
Labels
No labels

