Skip to content
Snippets Groups Projects
Commit 8f9c6d94 authored by Fredrik Jonsson's avatar Fredrik Jonsson
Browse files

Add update partners form to submission pages.

parent 5837535e
No related branches found
No related tags found
No related merge requests found
# Generated by Django 2.0.9 on 2018-12-20 09:23
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('activity', '0012_add_generic_relation_to_activity'),
]
operations = [
migrations.AlterField(
model_name='event',
name='type',
field=models.CharField(choices=[('UPDATE_LEAD', 'Update Lead'), ('EDIT', 'Edit'), ('APPLICANT_EDIT', 'Applicant Edit'), ('NEW_SUBMISSION', 'New Submission'), ('TRANSITION', 'Transition'), ('DETERMINATION_OUTCOME', 'Determination Outcome'), ('INVITED_TO_PROPOSAL', 'Invited To Proposal'), ('REVIEWERS_UPDATED', 'Reviewers Updated'), ('PARTNERS_UPDATED', 'Partners Updated'), ('READY_FOR_REVIEW', 'Ready For Review'), ('NEW_REVIEW', 'New Review'), ('COMMENT', 'Comment'), ('PROPOSAL_SUBMITTED', 'Proposal Submitted'), ('OPENED_SEALED', 'Opened Sealed Submission')], max_length=50),
),
]
...@@ -101,6 +101,7 @@ class UpdateReviewersForm(forms.ModelForm): ...@@ -101,6 +101,7 @@ class UpdateReviewersForm(forms.ModelForm):
return instance return instance
<<<<<<< HEAD
class BatchUpdateReviewersForm(forms.Form): class BatchUpdateReviewersForm(forms.Form):
staff_reviewers = forms.ModelMultipleChoiceField( staff_reviewers = forms.ModelMultipleChoiceField(
queryset=User.objects.staff(), queryset=User.objects.staff(),
...@@ -111,3 +112,23 @@ class BatchUpdateReviewersForm(forms.Form): ...@@ -111,3 +112,23 @@ class BatchUpdateReviewersForm(forms.Form):
def clean_submission_ids(self): def clean_submission_ids(self):
value = self.cleaned_data['submission_ids'] value = self.cleaned_data['submission_ids']
return [int(submission) for submission in value.split(',')] return [int(submission) for submission in value.split(',')]
=======
class UpdatePartnersForm(forms.ModelForm):
partner_reviewers = forms.ModelMultipleChoiceField(
queryset=User.objects.partners(),
widget=Select2MultiCheckboxesWidget(attrs={'data-placeholder': 'Partners'}),
label='Partners',
required=False,
)
class Meta:
model = ApplicationSubmission
fields: list = []
def __init__(self, *args, **kwargs):
kwargs.pop('user')
super().__init__(*args, **kwargs)
partners = self.instance.partners.all()
partner_field = self.fields['partner_reviewers']
partner_field.initial = partners
>>>>>>> Add update partners form to submission pages.
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
{% include "funds/includes/progress_form.html" %} {% include "funds/includes/progress_form.html" %}
{% include "funds/includes/update_lead_form.html" %} {% include "funds/includes/update_lead_form.html" %}
{% include "funds/includes/update_reviewer_form.html" %} {% include "funds/includes/update_reviewer_form.html" %}
{% include "funds/includes/update_partner_form.html" %}
{% endblock %} {% endblock %}
{% block reviews %} {% block reviews %}
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
<div class="wrapper wrapper--sidebar-buttons"> <div class="wrapper wrapper--sidebar-buttons">
<a data-fancybox data-src="#update-reviewers" class="button button--half-width button--white" href="#">Reviewers</a> <a data-fancybox data-src="#update-reviewers" class="button button--half-width button--white" href="#">Reviewers</a>
<a data-fancybox data-src="#update-partners" class="button button--half-width button--white" href="#">Partners</a>
<a data-fancybox data-src="#assign-lead" class="button button--half-width button--white" href="#">Lead</a> <a data-fancybox data-src="#assign-lead" class="button button--half-width button--white" href="#">Lead</a>
</div> </div>
......
<div class="modal" id="update-partners">
<h4>Update Partners</h4>
{% include 'funds/includes/delegated_form_base.html' with form=partner_form value='Update' %}
</div>
...@@ -37,6 +37,7 @@ from .forms import ( ...@@ -37,6 +37,7 @@ from .forms import (
ScreeningSubmissionForm, ScreeningSubmissionForm,
UpdateReviewersForm, UpdateReviewersForm,
UpdateSubmissionLeadForm, UpdateSubmissionLeadForm,
UpdatePartnersForm,
) )
from .models import ApplicationSubmission, ApplicationRevision, RoundsAndLabs, RoundBase, LabBase from .models import ApplicationSubmission, ApplicationRevision, RoundsAndLabs, RoundBase, LabBase
from .tables import ( from .tables import (
...@@ -288,6 +289,31 @@ class UpdateReviewersView(DelegatedViewMixin, UpdateView): ...@@ -288,6 +289,31 @@ class UpdateReviewersView(DelegatedViewMixin, UpdateView):
return response return response
@method_decorator(staff_required, name='dispatch')
class UpdatePartnersView(DelegatedViewMixin, UpdateView):
model = ApplicationSubmission
form_class = UpdatePartnersForm
context_name = 'partner_form'
def form_valid(self, form):
old_partners = set(self.get_object().partners.all())
response = super().form_valid(form)
new_partners = set(form.instance.partners.all())
added = new_partners - old_partners
removed = old_partners - new_partners
messenger(
MESSAGES.PARTNERS_UPDATED,
request=self.request,
user=self.request.user,
submission=self.kwargs['submission'],
added=added,
removed=removed,
)
return response
class AdminSubmissionDetailView(ReviewContextMixin, ActivityContextMixin, DelegateableView, DetailView): class AdminSubmissionDetailView(ReviewContextMixin, ActivityContextMixin, DelegateableView, DetailView):
template_name_suffix = '_admin_detail' template_name_suffix = '_admin_detail'
model = ApplicationSubmission model = ApplicationSubmission
......
...@@ -111,9 +111,10 @@ ...@@ -111,9 +111,10 @@
width: 50%; width: 50%;
padding: 10px 0; padding: 10px 0;
text-align: center; text-align: center;
margin-right: 20px;
&:first-child { &:last-child {
margin-right: 20px; margin-right: 0;
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment