Skip to content

Commit

Permalink
Merge pull request #369 from praekeltfoundation/fix-detail-html
Browse files Browse the repository at this point in the history
Fix detail url
  • Loading branch information
HawkiesZA committed Aug 29, 2024
2 parents a952551 + fe74604 commit eda8608
Show file tree
Hide file tree
Showing 4 changed files with 167 additions and 26 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Removed
- Removed word embeddings search (`s` query parameter in API)
### Fixed
- API: Fix detail URL in Pages API
### Security
- Updated sentry-sdk from 1.44.1 to 2.8.0
- Updated wagtail from 5.2.4 to 5.2.6
Expand Down
11 changes: 4 additions & 7 deletions home/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -1321,9 +1321,6 @@ class AssessmentTag(TaggedItemBase):
)


from home.serializers import ContentPageSerializer # noqa: E402, I001


class Assessment(DraftStateMixin, RevisionMixin, index.Indexed, ClusterableModel):
title = models.CharField(max_length=255)
slug = models.SlugField(
Expand Down Expand Up @@ -1419,13 +1416,13 @@ class Assessment(DraftStateMixin, RevisionMixin, index.Indexed, ClusterableModel
APIField("title"),
APIField("slug"),
APIField("version"),
APIField("high_result_page", serializer=ContentPageSerializer()), # noqa: F821
APIField("high_result_page"), # noqa: F821
APIField("high_inflection"),
APIField("medium_result_page", serializer=ContentPageSerializer()),
APIField("medium_result_page"),
APIField("medium_inflection"),
APIField("low_result_page", serializer=ContentPageSerializer()),
APIField("low_result_page"),
APIField("skip_threshold"),
APIField("skip_high_result_page", serializer=ContentPageSerializer()),
APIField("skip_high_result_page"),
APIField("generic_error"),
APIField("questions"),
]
Expand Down
20 changes: 11 additions & 9 deletions home/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,12 @@

from rest_framework import serializers
from rest_framework.exceptions import ValidationError
from wagtail.api.v2.serializers import BaseSerializer, PageLocaleField, PageSerializer
from wagtail.api.v2.serializers import (
BaseSerializer,
PageLocaleField,
PageSerializer,
)
from wagtail.api.v2.utils import get_object_detail_url

from home.models import ContentPage, ContentPageRating, PageView

Expand Down Expand Up @@ -340,16 +345,12 @@ class ContentPageSerializer(PageSerializer):
has_children = HasChildrenField(read_only=True)
related_pages = RelatedPagesField(read_only=True)

class Meta:
model = ContentPage
fields = "__all__"
read_only_fields = ("id", "timestamp")

def to_representation(self, page):
request = self.context["request"]
router = self.context["router"]
return {
"id": page.id,
"meta": metadata_field_representation(page, request),
"meta": metadata_field_representation(page, request, router),
"title": title_field_representation(page, request),
"subtitle": subtitle_field_representation(page),
"body": body_field_representation(page, request),
Expand All @@ -361,9 +362,10 @@ def to_representation(self, page):
}


def metadata_field_representation(page, request):
def metadata_field_representation(page, request, router):
parent = {}
page_parent = page.get_parent()
detail_url = get_object_detail_url(router, request, type(page), page.pk)
if page_parent:
parent = {
"id": page_parent.id,
Expand All @@ -379,7 +381,7 @@ def metadata_field_representation(page, request):
"type": page.cached_content_type.app_label
+ "."
+ page.cached_content_type.model_class()._meta.object_name,
"detail_url": request.build_absolute_uri(),
"detail_url": detail_url,
"html_url": page.get_full_url(),
"slug": page.slug,
"show_in_menus": "true" if page.show_in_menus else "false",
Expand Down
Loading

0 comments on commit eda8608

Please sign in to comment.