Skip to content

Commit c1dc83c

Browse files
AQ wrap the fake DX object to fix request-based object access
(cherry picked from commit 9accdba) (+1 squashed commit) Squashed commits: [4d0821b8] See what happens if we just implement IBlocks and add the request objects (cherry picked from commit ad5c178)
1 parent f698920 commit c1dc83c

1 file changed

Lines changed: 7 additions & 2 deletions

File tree

  • src/plone/restapi/deserializer/controlpanels

src/plone/restapi/deserializer/controlpanels/__init__.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,11 @@
1313
from zope.schema import getFields
1414
from zope.schema.interfaces import ValidationError
1515

16+
from plone.restapi.behaviors import IBlocks
17+
from Acquisition import ImplicitAcquisitionWrapper
1618

17-
@implementer(IDexterityContent)
19+
20+
@implementer(IDexterityContent, IBlocks)
1821
class FakeDXContext:
1922
"""Fake DX content class, so we can re-use the DX field deserializers"""
2023

@@ -42,6 +45,8 @@ def __call__(self):
4245

4346
# Make a fake context
4447
fake_context = FakeDXContext()
48+
wrapped_context = ImplicitAcquisitionWrapper(fake_context, self.context)
49+
4550

4651
for name, field in getFields(self.schema).items():
4752
field_data = schema_data.setdefault(self.schema, {})
@@ -51,7 +56,7 @@ def __call__(self):
5156

5257
if name in data:
5358
deserializer = queryMultiAdapter(
54-
(field, fake_context, self.request), IFieldDeserializer
59+
(field, wrapped_context, self.request), IFieldDeserializer
5560
)
5661

5762
try:

0 commit comments

Comments
 (0)