From 478400511d471f9eb660acf37f42aa5ec535dae2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-S=C3=A9bastien=20Caux?= <git@jscaux.org> Date: Sat, 26 Feb 2022 05:34:33 +0100 Subject: [PATCH] Add more fields and filters --- scipost_django/journals/api/serializers/publication.py | 7 +++++++ scipost_django/journals/models/publication.py | 5 +++++ scipost_django/submissions/api/filtersets/submission.py | 4 ++++ 3 files changed, 16 insertions(+) diff --git a/scipost_django/journals/api/serializers/publication.py b/scipost_django/journals/api/serializers/publication.py index 158f72da9..b14c84168 100644 --- a/scipost_django/journals/api/serializers/publication.py +++ b/scipost_django/journals/api/serializers/publication.py @@ -11,6 +11,9 @@ from ...models import Publication class PublicationPublicSerializer(DynamicFieldsModelSerializer): url = serializers.URLField(source="get_absolute_url") doi = serializers.URLField(source="doi_string") + in_issue = serializers.StringRelatedField() + in_volume = serializers.CharField(source="get_volume") + paper_nr = serializers.CharField(source="get_paper_nr") accepted_submission = serializers.SerializerMethodField() acad_field = serializers.StringRelatedField() specialties = serializers.StringRelatedField(many=True) @@ -26,6 +29,10 @@ class PublicationPublicSerializer(DynamicFieldsModelSerializer): "abstract", "doi_label", "doi", + "citation", + "in_issue", + "in_volume", + "paper_nr", "submission_date", "acceptance_date", "publication_date", diff --git a/scipost_django/journals/models/publication.py b/scipost_django/journals/models/publication.py index 935ce4d06..3e225d2b5 100644 --- a/scipost_django/journals/models/publication.py +++ b/scipost_django/journals/models/publication.py @@ -423,6 +423,11 @@ class Publication(models.Model): def journal_issn(self): return self.get_journal().issn + def get_volume(self): + if self.in_issue and self.in_issue.in_volume: + return self.in_issue.in_volume + return None + def get_paper_nr(self): if self.in_journal: return self.paper_nr diff --git a/scipost_django/submissions/api/filtersets/submission.py b/scipost_django/submissions/api/filtersets/submission.py index e3410595c..5da2589dc 100644 --- a/scipost_django/submissions/api/filtersets/submission.py +++ b/scipost_django/submissions/api/filtersets/submission.py @@ -34,6 +34,10 @@ class SubmissionPublicAPIFilterSet(df_filters.FilterSet): "topics__name": [ "icontains", ], + "thread_hash": [ + "istartswith", + "exact", + ], } -- GitLab