From d841a75cb37231330864df36288061e68faf83f2 Mon Sep 17 00:00:00 2001 From: Jorran de Wit <jorrandewit@outlook.com> Date: Mon, 24 Jul 2017 23:13:09 +0200 Subject: [PATCH] Add first event registrations --- submissions/models.py | 3 +++ submissions/views.py | 34 +++++++++++++++++++++++++++++----- 2 files changed, 32 insertions(+), 5 deletions(-) diff --git a/submissions/models.py b/submissions/models.py index b621fda07..f71f89cba 100644 --- a/submissions/models.py +++ b/submissions/models.py @@ -205,6 +205,9 @@ class SubmissionEvent(TimeStampedModel): objects = SubmissionEventQuerySet.as_manager() + class Meta: + ordering = ['-created'] + def __str__(self): return '%s: %s' % (str(self.submission), self.get_event_display()) diff --git a/submissions/views.py b/submissions/views.py index 931a814d9..0a6480786 100644 --- a/submissions/views.py +++ b/submissions/views.py @@ -63,7 +63,7 @@ class RequestSubmission(CreateView): def form_valid(self, form): submission = form.save() submission.add_general_event('The manuscript has been submitted to %s.' - % submission.submitted_to_journal) + % submission.get_submitted_to_journal_display()) text = ('<h3>Thank you for your Submission to SciPost</h3>' 'Your Submission will soon be handled by an Editor.') @@ -480,6 +480,9 @@ def accept_or_decline_assignment_ack(request, assignment_id): assign_perm('can_take_editorial_actions', ed_admins, assignment.submission) SubmissionUtils.send_EIC_appointment_email() SubmissionUtils.send_author_prescreening_passed_email() + + # Add SubmissionEvent's + assignment.submission.add_general_event('The Editor-in-charge has been assigned.') else: assignment.accepted = False assignment.refusal_reason = form.cleaned_data['refusal_reason'] @@ -492,7 +495,7 @@ def accept_or_decline_assignment_ack(request, assignment_id): @login_required -@permission_required('sci.can_take_charge_of_submissions', raise_exception=True) +@permission_required('scipost.can_take_charge_of_submissions', raise_exception=True) @transaction.atomic def volunteer_as_EIC(request, arxiv_identifier_w_vn_nr): """ @@ -540,6 +543,9 @@ def volunteer_as_EIC(request, arxiv_identifier_w_vn_nr): SubmissionUtils.send_EIC_appointment_email() SubmissionUtils.send_author_prescreening_passed_email() + # Add SubmissionEvent's + submission.add_general_event('The Editor-in-charge has been assigned.') + messages.success(request, 'Thank you for becoming Editor-in-charge of this submission.') return redirect(reverse('submissions:editorial_page', args=[submission.arxiv_identifier_w_vn_nr])) @@ -725,6 +731,9 @@ def recruit_referee(request, arxiv_identifier_w_vn_nr): reg_invitation.save() Utils.load({'invitation': reg_invitation}) Utils.send_registration_invitation_email() + submission.add_event_for_author('A referee has been invited.') + submission.add_event_for_eic('%s has been recruited and invited as a referee.' + % ref_recruit_form.cleaned_data['last_name']) # Copy the key to the refereeing invitation: ref_invitation.invitation_key = reg_invitation.invitation_key ref_invitation.save() @@ -764,6 +773,9 @@ def send_refereeing_invitation(request, arxiv_identifier_w_vn_nr, contributor_id invitation.save() SubmissionUtils.load({'invitation': invitation}) SubmissionUtils.send_refereeing_invitation_email() + submission.add_event_for_author('A referee has been invited.') + submission.add_event_for_eic('Referee %s has been invited.' % contributor.user.last_name) + messages.success(request, 'Invitation sent') return redirect(reverse('submissions:editorial_page', kwargs={'arxiv_identifier_w_vn_nr': arxiv_identifier_w_vn_nr})) @@ -876,6 +888,8 @@ def extend_refereeing_deadline(request, arxiv_identifier_w_vn_nr, days): submission.status = 'EICassigned' submission.latest_activity = timezone.now() submission.save() + + submission.add_general_event('A new refereeing deadline is set.') return redirect(reverse('submissions:editorial_page', kwargs={'arxiv_identifier_w_vn_nr': arxiv_identifier_w_vn_nr})) @@ -896,6 +910,7 @@ def set_refereeing_deadline(request, arxiv_identifier_w_vn_nr): submission.status = 'EICassigned' submission.latest_activity = timezone.now() submission.save() + submission.add_general_event('A new refereeing deadline is set.') context = {'ack_header': 'New reporting deadline set.', 'followup_message': 'Return to the ', 'followup_link': reverse('submissions:editorial_page', @@ -1096,9 +1111,6 @@ def submit_report(request, arxiv_identifier_w_vn_nr): errormessage = ('The system flagged you as a potential author of this Submission. ' 'Please go to your personal page under the Submissions tab' ' to clarify this.') - # if submission.reports.non_draft().filter(author=current_contributor).exists(): - # errormessage = ('You have already submitted a Report for this Submission. You cannot' - # ' submit an additional Report.') if errormessage: messages.warning(request, errormessage) @@ -1126,6 +1138,10 @@ def submit_report(request, arxiv_identifier_w_vn_nr): SubmissionUtils.email_EIC_report_delivered() SubmissionUtils.email_referee_report_delivered() + # Add SubmissionEvents for the EIC only, as it can also be rejected still + submission.add_event_for_eic('%s has submitted a new Report.' + % request.user.last_name) + messages.success(request, 'Thank you for your Report') return redirect(reverse('scipost:personal_page')) @@ -1157,9 +1173,17 @@ def vet_submitted_reports(request): SubmissionUtils.load({'report': report, 'email_response': form.cleaned_data['email_response_field']}) SubmissionUtils.acknowledge_report_email() # email report author, bcc EIC + + # Add SubmissionEvent for the EIC + report.submission.add_event_for_eic('The Report by %s is vetted.' + % report.author.user.last_name) + if report.status == STATUS_VETTED: SubmissionUtils.send_author_report_received_email() + # Add SubmissionEvent to tell the author about the new report + report.submission.add_event_for_author('A new Report has been submitted.') + message = 'Submitted Report vetted for <a href="%s">%s</a>.' % ( reverse('submissions:editorial_page', args=(report.submission.arxiv_identifier_w_vn_nr,)), -- GitLab