From 012bc1b8c00d1a85eb567c5cd836592acb876e56 Mon Sep 17 00:00:00 2001 From: Andrea Cecchi Date: Wed, 19 Mar 2025 08:55:36 +0100 Subject: [PATCH] Fix typo in Venue serializer that didn't return the right history version. --- CHANGES.rst | 3 ++- .../contenttypes/restapi/serializers/venue.py | 2 +- .../plone/contenttypes/tests/test_ct_luogo.py | 18 ++++++++++++++++++ 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index 3b681fca..11bc061f 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -11,7 +11,8 @@ Changelog [lucabel] - Add upgrade-step to add missing metadata for image captions. [cekk] - +- Fix typo in Venue serializer that didn't return the right history version. + [cekk] 6.3.4 (2025-03-07) ------------------ diff --git a/src/design/plone/contenttypes/restapi/serializers/venue.py b/src/design/plone/contenttypes/restapi/serializers/venue.py index 83e35b2f..a8f29aae 100644 --- a/src/design/plone/contenttypes/restapi/serializers/venue.py +++ b/src/design/plone/contenttypes/restapi/serializers/venue.py @@ -68,7 +68,7 @@ def get_venue_offices(self, result): def __call__(self, version=None, include_items=True): self.index = "news_venue" - result = super(VenueSerializer, self).__call__(version=None, include_items=True) + result = super().__call__(version=version, include_items=include_items) result["venue_services"] = self.get_venue_services(result) result["sede_di"] = self.get_venue_offices(result) return result diff --git a/src/design/plone/contenttypes/tests/test_ct_luogo.py b/src/design/plone/contenttypes/tests/test_ct_luogo.py index 8e837fba..527db224 100644 --- a/src/design/plone/contenttypes/tests/test_ct_luogo.py +++ b/src/design/plone/contenttypes/tests/test_ct_luogo.py @@ -16,6 +16,8 @@ from z3c.relationfield import RelationValue from zope.component import getUtility from zope.intid.interfaces import IIntIds +from zope.lifecycleevent import ObjectModifiedEvent +from zope.event import notify import unittest @@ -432,3 +434,19 @@ def test_venue_serializers(self): if item["id"] in ["venue1", "venue2"]: self.assertEqual(item["geolocation"]["latitude"], 44.35) self.assertEqual(item["geolocation"]["longitude"], 11.7) + + def test_venue_history_return_right_data(self): + venue = api.content.create(container=self.portal, type="Venue", title="venue1") + venue.description = "aaa" + notify(ObjectModifiedEvent(venue)) + venue.description = "aaa bbb" + notify(ObjectModifiedEvent(venue)) + commit() + + response0 = self.api_session.get(f"{venue.absolute_url()}/@history/0").json() + response1 = self.api_session.get(f"{venue.absolute_url()}/@history/1").json() + response2 = self.api_session.get(f"{venue.absolute_url()}/@history/2").json() + + self.assertEqual(response0["description"], "") + self.assertEqual(response1["description"], "aaa") + self.assertEqual(response2["description"], "aaa bbb")