Remove 'PatchRelationSerializer' · getpatchwork/patchwork@fe07f30 (original) (raw)
`@@ -10,23 +10,23 @@
`
10
10
`from django.core.exceptions import ValidationError
`
11
11
`from django.utils.text import slugify
`
12
12
`from django.utils.translation import gettext_lazy as _
`
13
``
`-
from rest_framework import status
`
14
13
`from rest_framework.exceptions import APIException
`
15
14
`from rest_framework.exceptions import PermissionDenied
`
16
15
`from rest_framework.generics import ListAPIView
`
17
16
`from rest_framework.generics import RetrieveUpdateAPIView
`
18
17
`from rest_framework.relations import RelatedField
`
19
18
`from rest_framework.reverse import reverse
`
20
19
`from rest_framework.serializers import SerializerMethodField
`
``
20
`+
from rest_framework import status
`
21
21
``
22
22
`from patchwork.api.base import BaseHyperlinkedModelSerializer
`
23
23
`from patchwork.api.base import PatchworkPermission
`
24
``
`-
from patchwork.api.filters import PatchFilterSet
`
25
``
`-
from patchwork.api.embedded import PatchRelationSerializer
`
``
24
`+
from patchwork.api.embedded import PatchSerializer
`
26
25
`from patchwork.api.embedded import PersonSerializer
`
27
26
`from patchwork.api.embedded import ProjectSerializer
`
28
27
`from patchwork.api.embedded import SeriesSerializer
`
29
28
`from patchwork.api.embedded import UserSerializer
`
``
29
`+
from patchwork.api.filters import PatchFilterSet
`
30
30
`from patchwork.models import Patch
`
31
31
`from patchwork.models import PatchRelation
`
32
32
`from patchwork.models import State
`
`@@ -83,7 +83,8 @@ class PatchListSerializer(BaseHyperlinkedModelSerializer):
`
83
83
`check = SerializerMethodField()
`
84
84
`checks = SerializerMethodField()
`
85
85
`tags = SerializerMethodField()
`
86
``
`-
related = PatchRelationSerializer()
`
``
86
`+
related = PatchSerializer(
`
``
87
`+
source='related.patches', many=True, default=[])
`
87
88
``
88
89
`def get_web_url(self, instance):
`
89
90
`request = self.context.get('request')
`
`@@ -127,14 +128,11 @@ def to_representation(self, instance):
`
127
128
`data = super(PatchListSerializer, self).to_representation(instance)
`
128
129
`data['series'] = [data['series']] if data['series'] else []
`
129
130
``
130
``
`-
stop the related serializer returning this patch in the list of
`
131
``
`-
related patches. Also make it return an empty list, not null/None
`
132
``
`-
if 'related' in data:
`
133
``
`-
if data['related']:
`
134
``
`-
data['related'] = [p for p in data['related']
`
135
``
`-
if p['id'] != instance.id]
`
136
``
`-
else:
`
137
``
`-
data['related'] = []
`
``
131
`+
Remove this patch from 'related'
`
``
132
`+
if 'related' in data and data['related']:
`
``
133
`+
data['related'] = [
`
``
134
`+
x for x in data['related'] if x['id'] != data['id']
`
``
135
`+
]
`
138
136
``
139
137
`return data
`
140
138
``