From 6b01e13b9bd6cf3ddb29b1ddbe8a74ac88e534a1 Mon Sep 17 00:00:00 2001 From: Jorran de Wit <jorrandewit@outlook.com> Date: Tue, 15 Aug 2017 10:38:10 +0200 Subject: [PATCH] Submission Admin overhaul --- scipost/admin.py | 10 ++++++ submissions/admin.py | 75 ++++++++++++++++++++++++++++++++++++++++--- submissions/models.py | 6 ++++ 3 files changed, 86 insertions(+), 5 deletions(-) diff --git a/scipost/admin.py b/scipost/admin.py index 368312840..c9c588627 100644 --- a/scipost/admin.py +++ b/scipost/admin.py @@ -19,6 +19,15 @@ from submissions.models import Submission admin.site.register(UnavailabilityPeriod) +class ContributorAdmin(admin.ModelAdmin): + search_fields = [ + 'user__first_name', + 'user__last_name', + 'user__email', + 'orcid_id', + 'affiliation'] + + class ContributorInline(admin.StackedInline): model = Contributor extra = 0 @@ -34,6 +43,7 @@ class UserAdmin(UserAdmin): admin.site.unregister(User) +admin.site.register(Contributor, ContributorAdmin) admin.site.register(User, UserAdmin) diff --git a/submissions/admin.py b/submissions/admin.py index fc25f4403..252b1d19b 100644 --- a/submissions/admin.py +++ b/submissions/admin.py @@ -47,13 +47,78 @@ class SubmissionAdminForm(forms.ModelForm): class SubmissionAdmin(GuardedModelAdmin): - search_fields = ['submitted_by__user__last_name', 'title', 'author_list', 'abstract'] - list_display = ('title', 'author_list', 'status', 'submission_date', 'publication',) date_hierarchy = 'submission_date' - list_filter = ('status', 'discipline', 'submission_type',) form = SubmissionAdminForm - # inlines = (CommentsGenericInline,) - exclude = ('comments', 'comments_old') + list_display = ('title', 'author_list', 'status', 'submission_date', 'publication',) + list_filter = ('status', 'discipline', 'submission_type',) + search_fields = ['submitted_by__user__last_name', 'title', 'author_list', 'abstract'] + raw_id_fields = ('editor_in_charge', 'submitted_by') + readonly_fields = ('arxiv_identifier_w_vn_nr', 'publication') + + # Admin fields should be added in the fieldsets + radio_fields = { + "discipline": admin.VERTICAL, + "submitted_to_journal": admin.VERTICAL, + "refereeing_cycle": admin.HORIZONTAL, + "submission_type": admin.VERTICAL + } + fieldsets = ( + (None, { + 'fields': ( + 'publication', + 'title', + 'abstract', + 'submission_type', + ('arxiv_identifier_wo_vn_nr', 'arxiv_vn_nr', 'arxiv_identifier_w_vn_nr'), + 'arxiv_link' + ), + }), + ('Versioning', { + 'fields': ( + 'is_current', + 'is_resubmission', + 'list_of_changes'), + }), + ('Submission details', { + 'classes': ('collapse',), + 'fields': ( + 'author_comments', + 'discipline', + 'domain', + 'subject_area', + 'secondary_areas'), + }), + ('Authors', { + 'classes': ('collapse',), + 'fields': ( + 'submitted_by', + 'author_list', + 'authors', + 'authors_claims', + 'authors_false_claims'), + }), + ('Refereeing', { + 'classes': ('collapse',), + 'fields': ( + 'editor_in_charge', + 'status', + 'refereeing_cycle', + ('open_for_commenting', 'open_for_reporting'), + 'reporting_deadline', + 'acceptance_date', + 'referees_flagged', + 'referees_suggested', + 'remarks_for_editors', + 'submitted_to_journal', + 'pdf_refereeing_pack', + 'plagiarism_report'), + }), + ('Meta', { + 'classes': ('collapse',), + 'fields': ('metadata', 'submission_date'), + }), + + ) admin.site.register(Submission, SubmissionAdmin) diff --git a/submissions/models.py b/submissions/models.py index 6603cf007..4c69c9e70 100644 --- a/submissions/models.py +++ b/submissions/models.py @@ -113,6 +113,12 @@ class Submission(models.Model): self._update_cycle() def save(self, *args, **kwargs): + # Fill `arxiv_identifier_w_vn_nr` as a dummy field for convenience + arxiv_w_vn = '{arxiv}v{version}'.format( + arxiv=self.arxiv_identifier_wo_vn_nr, + version=self.arxiv_vn_nr) + self.arxiv_identifier_w_vn_nr = arxiv_w_vn + super().save(*args, **kwargs) self._update_cycle() -- GitLab