Skip to content

Commit

Permalink
Fix detail url
Browse files Browse the repository at this point in the history
  • Loading branch information
Gerrit Vermeulen committed Aug 28, 2024
1 parent 4efb495 commit 2e84cdb
Show file tree
Hide file tree
Showing 3 changed files with 128 additions and 26 deletions.
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 2e84cdb

Please sign in to comment.