diff --git a/src/backend/apps/cms/models.py b/src/backend/apps/cms/models.py index 599ef62ff..80a36ac85 100644 --- a/src/backend/apps/cms/models.py +++ b/src/backend/apps/cms/models.py @@ -46,7 +46,8 @@ class Advisory(Page, BaseModel): body = StreamField(RichContent()) def rendered_body(self): - return wagtailcore_tags.richtext(self.body) + blocks = [wagtailcore_tags.richtext(block.render()) for block in self.body] + return '\n'.join(blocks) api_fields = [ APIField('rendered_body'), @@ -89,7 +90,8 @@ class Bulletin(Page, BaseModel): image_alt_text = models.CharField(max_length=125, default='', blank=False) def rendered_body(self): - return wagtailcore_tags.richtext(self.body) + blocks = [wagtailcore_tags.richtext(block.render()) for block in self.body] + return '\n'.join(blocks) api_fields = [ APIField('rendered_body'), diff --git a/src/backend/apps/cms/tests/test_advisory_api.py b/src/backend/apps/cms/tests/test_advisory_api.py index 1e3832b5a..2ed25b5d6 100644 --- a/src/backend/apps/cms/tests/test_advisory_api.py +++ b/src/backend/apps/cms/tests/test_advisory_api.py @@ -12,29 +12,29 @@ class TestAdvisoryAPI(APITestCase, BaseTest): def setUp(self): super().setUp() advisory = Advisory.objects.create( - title="Advisory title", - body="Advisory body", - geometry=MultiPolygon(Polygon([(-119, 35), (-118, 32), (-117, 31), (-119, 35)])), - path="000100010001", - depth=3, - content_type=ContentType.objects.get(app_label='cms', - model='advisory'), + title = "Advisory title", + body = '[{"id": "1", "type": "rich_text", "value": "Advisory body 1"}]', + geometry = MultiPolygon(Polygon([(-119, 35), (-118, 32), (-117, 31), (-119, 35)])), + path = "000100010001", + depth = 3, + content_type = ContentType.objects.get(app_label='cms', + model='advisory'), ) advisory.save() advisory_2 = Advisory.objects.create( - title="Advisory title 2", - body="Advisory body 2", - geometry=MultiPolygon(Polygon([ + title = "Advisory title 2", + body = '[{"id": "1", "type": "rich_text", "value": "Advisory body 2"}]', + geometry = MultiPolygon(Polygon([ (-119, 35), (-118, 32), (-117, 31), (-119, 35) ])), - path="000100010002", - depth=3, - content_type=ContentType.objects.get(app_label='cms', - model='advisory'), + path = "000100010002", + depth = 3, + content_type = ContentType.objects.get(app_label='cms', + model='advisory'), ) advisory_2.save() diff --git a/src/backend/apps/cms/tests/test_advisory_serializer.py b/src/backend/apps/cms/tests/test_advisory_serializer.py index c15ea2206..863632117 100644 --- a/src/backend/apps/cms/tests/test_advisory_serializer.py +++ b/src/backend/apps/cms/tests/test_advisory_serializer.py @@ -9,9 +9,9 @@ def setUp(self): super().setUp() self.advisory = Advisory( - title="Advisory title 1", - body="Advisory body 1", - geometry=MultiPolygon(Polygon([ + title = "Advisory title 1", + body = '[{"id": "1", "type": "rich_text", "value": "Advisory body 1"}]', + geometry = MultiPolygon(Polygon([ (-123.569743, 48.561231), (-123.569743, 48.561231), (-123.569743, 48.561231), @@ -45,7 +45,7 @@ def test_serializer_save(self): valid_data = { 'id': 3, 'title': 'Advisory title 1', - 'body': 'Advisory body 1', + 'body': '[{"id": "1", "type": "rich_text", "value": "Advisory body 1"}]', 'geometry': MultiPolygon(Polygon([ (-123.569743, 48.561231), (-123.569743, 48.561231), diff --git a/src/backend/apps/cms/tests/test_bulletin_api.py b/src/backend/apps/cms/tests/test_bulletin_api.py index d92e28f06..2608c4b21 100644 --- a/src/backend/apps/cms/tests/test_bulletin_api.py +++ b/src/backend/apps/cms/tests/test_bulletin_api.py @@ -28,7 +28,7 @@ def setUp(self): bulletin = Bulletin.objects.create( title="Bulletin title", - body="Bulletin body", + body='[{"id": "1", "type": "rich_text", "value": "Bulletin body 1"}]', path="000100010001", depth=3, image=img_obj, @@ -42,7 +42,7 @@ def setUp(self): bulletin_2 = Bulletin.objects.create( title="Bulletin title 2", - body="Bulletin body 2", + body='[{"id": "1", "type": "rich_text", "value": "Bulletin body 1"}]', path="000100010002", depth=3, image=img_obj, diff --git a/src/backend/apps/cms/tests/test_bulletin_serialization.py b/src/backend/apps/cms/tests/test_bulletin_serialization.py index 1015a8388..6ce62f08c 100644 --- a/src/backend/apps/cms/tests/test_bulletin_serialization.py +++ b/src/backend/apps/cms/tests/test_bulletin_serialization.py @@ -25,7 +25,7 @@ def setUp(self): self.bulletin = Bulletin( title="Bulletin title 1", - body="Bulletin body 1", + body='[{"id": "1", "type": "rich_text", "value": "Bulletin body 1"}]', path="000100010001", depth=3, image=img_obj, @@ -41,13 +41,13 @@ def test_serializer_valid_data(self): assert self.serializer.data["title"] == \ 'Bulletin title 1' assert self.serializer.data["body"] == \ - 'Bulletin body 1' + '[{"type": "rich_text", "value": "Bulletin body 1", "id": "1"}]' def test_serializer_invalid_data(self): # Create a serializer with invalid data invalid_data = { 'title': '', # bulletin title is required, invalid data - 'body': 'Bulletin body 1', + 'body': '[{"id": "1", "type": "rich_text", "value": "Bulletin body 1"}]', } self.serializer = BulletinSerializer(data=invalid_data) @@ -56,7 +56,7 @@ def test_serializer_save(self): valid_data = { 'id': 3, 'title': 'Bulletin title 1', - 'body': 'Bulletin body 1', + 'body': '[{"id": "1", "type": "rich_text", "value": "Bulletin body 1"}]', 'content_type': 55, 'image': self.img_obj.id, 'image_alt_text': 'Some Image Alt text',