This link is only shown for individual resources at the moment. Modify this behavior.
Signed-off-by: Stephen Finucane <step...@that.guru> Cc: Veronika Kabatova <vkaba...@redhat.com> --- patchwork/api/cover.py | 20 +++++++++----------- patchwork/api/patch.py | 37 +++++++++++++++++++------------------ 2 files changed, 28 insertions(+), 29 deletions(-) diff --git a/patchwork/api/cover.py b/patchwork/api/cover.py index 01c9fbb6..7c80064c 100644 --- a/patchwork/api/cover.py +++ b/patchwork/api/cover.py @@ -38,18 +38,23 @@ class CoverLetterListSerializer(BaseHyperlinkedModelSerializer): submitter = PersonSerializer(read_only=True) mbox = SerializerMethodField() series = SeriesSerializer(many=True, read_only=True) + comments = SerializerMethodField() def get_mbox(self, instance): request = self.context.get('request') return request.build_absolute_uri(instance.get_mbox_url()) + def get_comments(self, cover): + return self.context.get('request').build_absolute_uri( + reverse('api-comment-list', kwargs={'pk': cover.id})) + class Meta: model = CoverLetter fields = ('id', 'url', 'project', 'msgid', 'date', 'name', 'submitter', - 'mbox', 'series') + 'mbox', 'series', 'comments') read_only_fields = fields versioned_fields = { - '1.1': ('mbox', ), + '1.1': ('mbox', 'comments'), } extra_kwargs = { 'url': {'view_name': 'api-cover-detail'}, @@ -59,11 +64,6 @@ class CoverLetterListSerializer(BaseHyperlinkedModelSerializer): class CoverLetterDetailSerializer(CoverLetterListSerializer): headers = SerializerMethodField() - comments = SerializerMethodField() - - def get_comments(self, cover): - return self.context.get('request').build_absolute_uri( - reverse('api-comment-list', kwargs={'pk': cover.id})) def get_headers(self, instance): headers = {} @@ -82,12 +82,10 @@ class CoverLetterDetailSerializer(CoverLetterListSerializer): class Meta: model = CoverLetter fields = CoverLetterListSerializer.Meta.fields + ( - 'headers', 'content', 'comments') + 'headers', 'content') read_only_fields = fields extra_kwargs = CoverLetterListSerializer.Meta.extra_kwargs - versioned_fields = { - '1.1': ('mbox', 'comments'), - } + versioned_fields = CoverLetterListSerializer.Meta.versioned_fields class CoverLetterList(ListAPIView): diff --git a/patchwork/api/patch.py b/patchwork/api/patch.py index 8aca8915..d1931c01 100644 --- a/patchwork/api/patch.py +++ b/patchwork/api/patch.py @@ -83,6 +83,7 @@ class PatchListSerializer(BaseHyperlinkedModelSerializer): delegate = UserSerializer() mbox = SerializerMethodField() series = SeriesSerializer(many=True, read_only=True) + comments = SerializerMethodField() check = SerializerMethodField() checks = SerializerMethodField() tags = SerializerMethodField() @@ -91,10 +92,9 @@ class PatchListSerializer(BaseHyperlinkedModelSerializer): request = self.context.get('request') return request.build_absolute_uri(instance.get_mbox_url()) - def get_tags(self, instance): - # TODO(stephenfin): Make tags performant, possibly by reworking the - # model - return {} + def get_comments(self, patch): + return self.context.get('request').build_absolute_uri( + reverse('api-comment-list', kwargs={'pk': patch.id})) def get_check(self, instance): return instance.combined_check_state @@ -103,15 +103,23 @@ class PatchListSerializer(BaseHyperlinkedModelSerializer): return self.context.get('request').build_absolute_uri( reverse('api-check-list', kwargs={'patch_id': instance.id})) + def get_tags(self, instance): + # TODO(stephenfin): Make tags performant, possibly by reworking the + # model + return {} + class Meta: model = Patch fields = ('id', 'url', 'project', 'msgid', 'date', 'name', 'commit_ref', 'pull_url', 'state', 'archived', 'hash', - 'submitter', 'delegate', 'mbox', 'series', 'check', 'checks', - 'tags') + 'submitter', 'delegate', 'mbox', 'series', 'comments', + 'check', 'checks', 'tags') read_only_fields = ('project', 'msgid', 'date', 'name', 'hash', - 'submitter', 'mbox', 'mbox', 'series', 'check', - 'checks', 'tags') + 'submitter', 'mbox', 'mbox', 'series', 'comments', + 'check', 'checks', 'tags') + versioned_fields = { + '1.1': ('comments', ), + } extra_kwargs = { 'url': {'view_name': 'api-patch-detail'}, } @@ -121,11 +129,6 @@ class PatchDetailSerializer(PatchListSerializer): headers = SerializerMethodField() prefixes = SerializerMethodField() - comments = SerializerMethodField() - - def get_comments(self, patch): - return self.context.get('request').build_absolute_uri( - reverse('api-comment-list', kwargs={'pk': patch.id})) def get_headers(self, patch): headers = {} @@ -147,13 +150,11 @@ class PatchDetailSerializer(PatchListSerializer): class Meta: model = Patch fields = PatchListSerializer.Meta.fields + ( - 'headers', 'content', 'diff', 'prefixes', 'comments') + 'headers', 'content', 'diff', 'prefixes') read_only_fields = PatchListSerializer.Meta.read_only_fields + ( - 'headers', 'content', 'diff', 'prefixes', 'comments') + 'headers', 'content', 'diff', 'prefixes') + versioned_fields = PatchListSerializer.Meta.versioned_fields extra_kwargs = PatchListSerializer.Meta.extra_kwargs - versioned_fields = { - '1.1': ('comments', ), - } class PatchList(ListAPIView): -- 2.14.3 _______________________________________________ Patchwork mailing list Patchwork@lists.ozlabs.org https://lists.ozlabs.org/listinfo/patchwork