parent
da52637e9b
commit
69c704de2d
|
@ -536,6 +536,13 @@ class FeedbackForm(BaseNomcomForm, forms.ModelForm):
|
|||
|
||||
self.fieldsets = [('Provide comments', fieldset)]
|
||||
|
||||
def clean(self):
|
||||
if not NomineePosition.objects.accepted().filter(nominee=self.nominee,
|
||||
position=self.position):
|
||||
msg = "There isn't a accepted nomination for %s on the %s position" % (self.nominee, self.position)
|
||||
self._errors["nominee_email"] = self.error_class([msg])
|
||||
return self.cleaned_data
|
||||
|
||||
def save(self, commit=True):
|
||||
feedback = super(FeedbackForm, self).save(commit=False)
|
||||
confirmation = self.cleaned_data['confirmation']
|
||||
|
|
|
@ -154,7 +154,6 @@ class NomcomViewsTest(TestCase):
|
|||
|
||||
## Add feedbacks (internally the function does new nominations)
|
||||
self.access_member_url(self.private_feedback_url)
|
||||
|
||||
self.feedback_view(public=False,
|
||||
nominee_email=nominees[0],
|
||||
position='IAOC')
|
||||
|
@ -251,9 +250,9 @@ class NomcomViewsTest(TestCase):
|
|||
|
||||
# Check nominations state
|
||||
self.assertEqual(NomineePosition.objects.get(position__name='TSV',
|
||||
nominee=nominee).state.slug, u'accepted')
|
||||
nominee=nominee).state.slug, u'accepted')
|
||||
self.assertEqual(NomineePosition.objects.get(position__name='IAOC',
|
||||
nominee=nominee).state.slug, u'declined')
|
||||
nominee=nominee).state.slug, u'declined')
|
||||
|
||||
self.client.logout()
|
||||
|
||||
|
@ -542,8 +541,18 @@ class NomcomViewsTest(TestCase):
|
|||
|
||||
feedback_url += "?nominee=%d&position=%d" % (nominee.id, position.id)
|
||||
|
||||
response = self.client.post(feedback_url, test_data)
|
||||
nominee_position = NomineePosition.objects.get(nominee=nominee,
|
||||
position=position)
|
||||
state = nominee_position.state
|
||||
if not state.slug == 'accepted':
|
||||
response = self.client.post(feedback_url, test_data)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertContains(response, "info-message-error")
|
||||
# accept nomination
|
||||
nominee_position.state = NomineePositionState.objects.get(slug='accepted')
|
||||
nominee_position.save()
|
||||
|
||||
response = self.client.post(feedback_url, test_data)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertContains(response, "info-message-success")
|
||||
|
||||
|
@ -559,6 +568,11 @@ class NomcomViewsTest(TestCase):
|
|||
|
||||
self.assertEqual(check_comments(feedback.comments, comments, self.privatekey_file), True)
|
||||
|
||||
# recovery state
|
||||
if state != nominee_position.state:
|
||||
nominee_position.state = state
|
||||
nominee_position.save()
|
||||
|
||||
|
||||
class NomineePositionStateSaveTest(TestCase):
|
||||
"""Tests for the NomineePosition save override method"""
|
||||
|
|
|
@ -265,8 +265,8 @@ def feedback(request, year, public):
|
|||
selected_nominee = request.GET.get('nominee')
|
||||
selected_position = request.GET.get('position')
|
||||
if selected_nominee and selected_position:
|
||||
nominee = Nominee.objects.get(id=selected_nominee)
|
||||
position = Position.objects.get(id=selected_position)
|
||||
nominee = get_object_or_404(Nominee, id=selected_nominee)
|
||||
position = get_object_or_404(Position, id=selected_position)
|
||||
submit_disabled = False
|
||||
|
||||
positions = Position.objects.get_by_nomcom(nomcom=nomcom).opened()
|
||||
|
|
Loading…
Reference in a new issue