From: Andrew Donnellan Date: Thu, 22 Aug 2019 07:13:00 +0000 (+1000) Subject: api: Add list archive fields X-Git-Tag: v2.2.0-rc1~95 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=15ed7613a08ddf61637a286343968be47640867b;p=thirdparty%2Fpatchwork.git api: Add list archive fields Add the new list archive fields to the API. As this is a backwards-compatible change, this requires only a minor version increment to v1.2. Signed-off-by: Andrew Donnellan Signed-off-by: Daniel Axtens --- diff --git a/patchwork/api/comment.py b/patchwork/api/comment.py index 57b37111..290b9cd3 100644 --- a/patchwork/api/comment.py +++ b/patchwork/api/comment.py @@ -47,11 +47,12 @@ class CommentListSerializer(BaseHyperlinkedModelSerializer): class Meta: model = Comment - fields = ('id', 'web_url', 'msgid', 'date', 'subject', 'submitter', - 'content', 'headers') + fields = ('id', 'web_url', 'msgid', 'list_archive_url', 'date', + 'subject', 'submitter', 'content', 'headers') read_only_fields = fields versioned_fields = { '1.1': ('web_url', ), + '1.2': ('list_archive_url',), } diff --git a/patchwork/api/cover.py b/patchwork/api/cover.py index 7a663226..caf9a386 100644 --- a/patchwork/api/cover.py +++ b/patchwork/api/cover.py @@ -50,11 +50,13 @@ class CoverLetterListSerializer(BaseHyperlinkedModelSerializer): class Meta: model = CoverLetter - fields = ('id', 'url', 'web_url', 'project', 'msgid', 'date', 'name', - 'submitter', 'mbox', 'series', 'comments') + fields = ('id', 'url', 'web_url', 'project', 'msgid', + 'list_archive_url', 'date', 'name', 'submitter', 'mbox', + 'series', 'comments') read_only_fields = fields versioned_fields = { '1.1': ('web_url', 'mbox', 'comments'), + '1.2': ('list_archive_url',), } extra_kwargs = { 'url': {'view_name': 'api-cover-detail'}, diff --git a/patchwork/api/embedded.py b/patchwork/api/embedded.py index 60fb9a4e..968cb7f9 100644 --- a/patchwork/api/embedded.py +++ b/patchwork/api/embedded.py @@ -108,10 +108,12 @@ class CoverLetterSerializer(SerializedRelatedField): class Meta: model = models.CoverLetter - fields = ('id', 'url', 'web_url', 'msgid', 'date', 'name', 'mbox') + fields = ('id', 'url', 'web_url', 'msgid', 'list_archive_url', + 'date', 'name', 'mbox') read_only_fields = fields versioned_fields = { '1.1': ('web_url', 'mbox', ), + '1.2': ('list_archive_url',), } extra_kwargs = { 'url': {'view_name': 'api-cover-detail'}, @@ -124,10 +126,12 @@ class PatchSerializer(SerializedRelatedField): class Meta: model = models.Patch - fields = ('id', 'url', 'web_url', 'msgid', 'date', 'name', 'mbox') + fields = ('id', 'url', 'web_url', 'msgid', 'list_archive_url', + 'date', 'name', 'mbox') read_only_fields = fields versioned_fields = { '1.1': ('web_url', ), + '1.2': ('list_archive_url',), } extra_kwargs = { 'url': {'view_name': 'api-patch-detail'}, @@ -158,11 +162,15 @@ class ProjectSerializer(SerializedRelatedField): class Meta: model = models.Project fields = ('id', 'url', 'name', 'link_name', 'list_id', - 'list_email', 'web_url', 'scm_url', 'webscm_url') + 'list_email', 'web_url', 'scm_url', 'webscm_url', + 'list_archive_url', 'list_archive_url_format') read_only_fields = fields extra_kwargs = { 'url': {'view_name': 'api-project-detail'}, } + versioned_fields = { + '1.2': ('list_archive_url', 'list_archive_url_format'), + } class SeriesSerializer(SerializedRelatedField): diff --git a/patchwork/api/patch.py b/patchwork/api/patch.py index 05f6cea8..c9360308 100644 --- a/patchwork/api/patch.py +++ b/patchwork/api/patch.py @@ -121,15 +121,16 @@ class PatchListSerializer(BaseHyperlinkedModelSerializer): class Meta: model = Patch - fields = ('id', 'url', 'web_url', 'project', 'msgid', 'date', 'name', - 'commit_ref', 'pull_url', 'state', 'archived', 'hash', - 'submitter', 'delegate', 'mbox', 'series', 'comments', - 'check', 'checks', 'tags') - read_only_fields = ('web_url', 'project', 'msgid', 'date', 'name', - 'hash', 'submitter', 'mbox', 'series', 'comments', - 'check', 'checks', 'tags') + fields = ('id', 'url', 'web_url', 'project', 'msgid', + 'list_archive_url', 'date', 'name', 'commit_ref', 'pull_url', + 'state', 'archived', 'hash', 'submitter', 'delegate', 'mbox', + 'series', 'comments', 'check', 'checks', 'tags') + read_only_fields = ('web_url', 'project', 'msgid', 'list_archive_url', + 'date', 'name', 'hash', 'submitter', 'mbox', + 'series', 'comments', 'check', 'checks', 'tags') versioned_fields = { '1.1': ('comments', 'web_url'), + '1.2': ('list_archive_url',), } extra_kwargs = { 'url': {'view_name': 'api-patch-detail'}, diff --git a/patchwork/api/project.py b/patchwork/api/project.py index d7bb1f21..62a8c3e7 100644 --- a/patchwork/api/project.py +++ b/patchwork/api/project.py @@ -26,11 +26,13 @@ class ProjectSerializer(BaseHyperlinkedModelSerializer): model = Project fields = ('id', 'url', 'name', 'link_name', 'list_id', 'list_email', 'web_url', 'scm_url', 'webscm_url', 'maintainers', - 'subject_match') + 'subject_match', 'list_archive_url', + 'list_archive_url_format') read_only_fields = ('name', 'link_name', 'list_id', 'list_email', 'maintainers', 'subject_match') versioned_fields = { '1.1': ('subject_match', ), + '1.2': ('list_archive_url', 'list_archive_url_format'), } extra_kwargs = { 'url': {'view_name': 'api-project-detail'}, @@ -68,7 +70,8 @@ class ProjectList(ProjectMixin, ListAPIView): """List projects.""" search_fields = ('link_name', 'list_id', 'list_email', 'web_url', - 'scm_url', 'webscm_url') + 'scm_url', 'webscm_url', 'list_archive_url', + 'list_archive_url_format') ordering_fields = ('id', 'name', 'link_name', 'list_id') ordering = 'id' diff --git a/patchwork/urls.py b/patchwork/urls.py index cfcf04dc..c24bf55e 100644 --- a/patchwork/urls.py +++ b/patchwork/urls.py @@ -234,8 +234,8 @@ if settings.ENABLE_REST_API: ] urlpatterns += [ - url(r'^api/(?:(?P(1.0|1.1))/)?', include(api_patterns)), - url(r'^api/(?:(?P1.1)/)?', include(api_1_1_patterns)), + url(r'^api/(?:(?P(1.0|1.1|1.2))/)?', include(api_patterns)), + url(r'^api/(?:(?P(1.1|1.2))/)?', include(api_1_1_patterns)), # token change url(r'^user/generate-token/$', user_views.generate_token,