diff --git a/invitations/mixins.py b/invitations/mixins.py index f8ed09e0c419458c71bbf457d534a729052800b5..bf6629acd43fdf91ca9bb2d7d7e1fb4f6d59e9e4 100644 --- a/invitations/mixins.py +++ b/invitations/mixins.py @@ -73,4 +73,7 @@ class SaveAndSendFormMixin(BaseFormViewMixin): if isinstance(instance, RegistrationInvitation): if instance.invitation_type == INVITATION_EDITORIAL_FELLOW: self.alternative_from_address = ('J-S Caux', 'jscaux@scipost.org') + if not instance.invited_by and self.has_permission_to_send_mail: + instance.invited_by = self.request.user + instance.save() return super().post(request, *args, **kwargs) diff --git a/submissions/forms.py b/submissions/forms.py index 99ec16dd5c4b04c6b7fb0b1cd3e0af3af6917258..7dc9bc305a3a998a3c345678da02edf64172fe09 100644 --- a/submissions/forms.py +++ b/submissions/forms.py @@ -833,9 +833,10 @@ class SubmissionCycleChoiceForm(forms.ModelForm): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.fields['refereeing_cycle'].default = None - other_submission = self.instance.other_versions_pool.first() - if other_submission: - self.fields['referees_reinvite'].queryset = other_submission.referee_invitations.all() + other_submissions = self.instance.other_versions_pool.all() + if other_submissions: + self.fields['referees_reinvite'].queryset = RefereeInvitation.objects.filter( + submission__in=other_submissions).distinct() class iThenticateReportForm(forms.ModelForm): diff --git a/submissions/views.py b/submissions/views.py index cfc2f65ca2cae59c7e58a1689b8c458dc0e490db..382fa621324a8a87fcf27089e76503a435768ce9 100644 --- a/submissions/views.py +++ b/submissions/views.py @@ -960,6 +960,7 @@ def decline_ref_invitation(request, invitation_key): return render(request, 'submissions/referee_invitations_decline.html', context) invitation.accepted = False + invitation.date_responded = timezone.now() invitation.refusal_reason = form.cleaned_data['refusal_reason'] invitation.save() SubmissionUtils.load({'invitation': invitation}, request) diff --git a/virtualmeetings/views.py b/virtualmeetings/views.py index d12759c0f27c7cddf47ccfc94a64271d3ca5ba9e..828068b7a46a28fa22038dde6925deecbc39a430 100644 --- a/virtualmeetings/views.py +++ b/virtualmeetings/views.py @@ -13,7 +13,8 @@ from .models import VGM, Feedback, Nomination, Motion from scipost.constants import SCIPOST_SUBJECT_AREAS from scipost.forms import RemarkForm -from scipost.models import RegistrationInvitation, Contributor, Remark +from scipost.models import Contributor, Remark +from invitations.models import RegistrationInvitation @login_required @@ -34,8 +35,8 @@ def VGM_detail(request, VGM_id): current_Fellows = Contributor.objects.filter( user__groups__name='Editorial College').order_by('user__last_name') - pending_inv_Fellows = RegistrationInvitation.objects.pending_invited_fellows() - declined_inv_Fellows = RegistrationInvitation.objects.declined_invited_fellows() + pending_inv_Fellows = RegistrationInvitation.objects.for_fellows().no_response() + declined_inv_Fellows = RegistrationInvitation.objects.for_fellows().declined() spec_list = SCIPOST_SUBJECT_AREAS # subject_areas_dict nomination_form = NominationForm() nominations = Nomination.objects.filter(VGM=VGM_instance, accepted=None).order_by('last_name')