diff --git a/submissions/models.py b/submissions/models.py index 8ca56af4a8d1d553d10b49041712a5eee45a5a53..7aea9adab2567057eb7c7753c025fa62f2e26c4b 100644 --- a/submissions/models.py +++ b/submissions/models.py @@ -634,7 +634,7 @@ class Report(models.Model): # -3: rejected (not useful) # -4: rejected (not academic in style) status = models.SmallIntegerField(default=0) - submission = models.ForeignKey(Submission, on_delete=models.CASCADE) + submission = models.ForeignKey(Submission, related_name='reports', on_delete=models.CASCADE) vetted_by = models.ForeignKey(Contributor, related_name="report_vetted_by", blank=True, null=True, on_delete=models.CASCADE) # `invited' filled from RefereeInvitation objects at moment of report submission diff --git a/submissions/templatetags/submissions_extras.py b/submissions/templatetags/submissions_extras.py index 7460a3c30745b62cf6f7ce4f29aff1f7bc5ab83b..b2b785c0357b7be546be77fe2a3eb0d1761022da 100644 --- a/submissions/templatetags/submissions_extras.py +++ b/submissions/templatetags/submissions_extras.py @@ -73,7 +73,7 @@ def required_actions(submission): todo.append('The refereeing deadline has passed. Please either extend it, ' 'or formulate your Editorial Recommendation if at least ' 'one Report has been received.') - reports = submission.report_set.all() + reports = submission.reports.all() for report in reports: if report.status == 0: todo.append('The Report from %s has been delivered but is not yet vetted. ' diff --git a/submissions/views.py b/submissions/views.py index 2681da5f9dfafd7d11f42ee3bb6f18a085af8dc5..f80cfbf1090c6ce373e95956336875b73d681f4b 100644 --- a/submissions/views.py +++ b/submissions/views.py @@ -271,7 +271,10 @@ def submission_detail_wo_vn_nr(request, arxiv_identifier_wo_vn_nr): def submission_detail(request, arxiv_identifier_w_vn_nr): - submission = get_object_or_404(Submission, arxiv_identifier_w_vn_nr=arxiv_identifier_w_vn_nr) + submission = Submission.objects.select_related( + 'editor_in_charge', 'publication__in_issue__in_volume__in_journal' + ).prefetch_related('authors').get( + arxiv_identifier_w_vn_nr=arxiv_identifier_w_vn_nr) try: is_author = request.user.contributor in submission.authors.all() except AttributeError: @@ -288,7 +291,7 @@ def submission_detail(request, arxiv_identifier_w_vn_nr): form = CommentForm() - reports = submission.report_set.all() + reports = submission.reports.prefetch_related('reports') try: author_replies = Comment.objects.filter(submission=submission, is_author_reply=True,