[PATCH] REST: Show 'comments' in '/patches', '/comments'
Veronika Kabatova
vkabatov at redhat.com
Sat Apr 28 01:58:56 AEST 2018
----- Original Message -----
> From: "Stephen Finucane" <stephen at that.guru>
> To: patchwork at lists.ozlabs.org
> Cc: "Stephen Finucane" <stephen at that.guru>, "Veronika Kabatova" <vkabatov at redhat.com>
> Sent: Friday, April 27, 2018 5:35:06 PM
> Subject: [PATCH] REST: Show 'comments' in '/patches', '/comments'
>
> This link is only shown for individual resources at the moment. Modify
> this behavior.
>
> Signed-off-by: Stephen Finucane <stephen at that.guru>
> Cc: Veronika Kabatova <vkabatov at redhat.com>
Acked-by: Veronika Kabatova <vkabatov at redhat.com>
Thanks,
Veronika
> ---
> 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
>
>
More information about the Patchwork
mailing list