Skip to content

Commit fddb64c

Browse files
api: add series versioning fields
For projects with the series versioning enabled, we will show all series that are superseded or supersedes a series. Signed-off-by: Victor Accarini <[email protected]>
1 parent b1bf53c commit fddb64c

File tree

2 files changed

+24
-2
lines changed

2 files changed

+24
-2
lines changed

patchwork/api/project.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ class Meta:
4040
'list_archive_url_format',
4141
'commit_url_format',
4242
'show_dependencies',
43+
'show_series_versions',
4344
)
4445
read_only_fields = (
4546
'name',
@@ -56,7 +57,7 @@ class Meta:
5657
'list_archive_url_format',
5758
'commit_url_format',
5859
),
59-
'1.4': ('show_dependencies',),
60+
'1.4': ('show_dependencies', 'show_series_versions'),
6061
}
6162
extra_kwargs = {
6263
'url': {'view_name': 'api-project-detail'},

patchwork/api/series.py

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,16 @@ class SeriesSerializer(BaseHyperlinkedModelSerializer):
3333
dependents = HyperlinkedRelatedField(
3434
read_only=True, view_name='api-series-detail', many=True
3535
)
36+
supersedes = HyperlinkedRelatedField(
37+
read_only=True,
38+
view_name='api-series-detail',
39+
many=True,
40+
)
41+
superseded = HyperlinkedRelatedField(
42+
read_only=True,
43+
view_name='api-series-detail',
44+
many=True,
45+
)
3646

3747
def get_web_url(self, instance):
3848
request = self.context.get('request')
@@ -48,6 +58,11 @@ def to_representation(self, instance):
4858
if field in self.fields:
4959
del self.fields[field]
5060

61+
if not instance.project.show_series_versions:
62+
for field in ('supersedes', 'superseded'):
63+
if field in self.fields:
64+
del self.fields[field]
65+
5166
data = super().to_representation(instance)
5267

5368
return data
@@ -71,6 +86,8 @@ class Meta:
7186
'patches',
7287
'dependencies',
7388
'dependents',
89+
'supersedes',
90+
'superseded',
7491
)
7592
read_only_fields = (
7693
'date',
@@ -83,10 +100,12 @@ class Meta:
83100
'patches',
84101
'dependencies',
85102
'dependents',
103+
'supersedes',
104+
'superseded',
86105
)
87106
versioned_fields = {
88107
'1.1': ('web_url',),
89-
'1.4': ('dependencies', 'dependents'),
108+
'1.4': ('dependencies', 'dependents', 'supersedes', 'superseded'),
90109
}
91110
extra_kwargs = {
92111
'url': {'view_name': 'api-series-detail'},
@@ -105,6 +124,8 @@ def get_queryset(self):
105124
'cover_letter__project',
106125
'dependencies',
107126
'dependents',
127+
'supersedes',
128+
'superseded',
108129
)
109130
.select_related('submitter', 'project')
110131
)

0 commit comments

Comments
 (0)