diff --git a/hypha/apply/funds/models/applications.py b/hypha/apply/funds/models/applications.py index c63fdf8b0f9163ba269203c200feafeee859c7a5..41195ab058ff3fdef2f9cc1f3f603ed42b598c6e 100644 --- a/hypha/apply/funds/models/applications.py +++ b/hypha/apply/funds/models/applications.py @@ -433,6 +433,14 @@ class LabBase(EmailForm, WorkflowStreamForm, SubmittableStreamForm): # type: ig def open_round(self): return self.live + def get_form(self, *args, **kwargs): + user = kwargs.get('user') + form_class = self.get_form_class(user=user) + form_params = self.get_form_parameters() + form_params.update(kwargs) + + return form_class(*args, **form_params) + def serve(self, request, *args, **kwargs): if request.method == 'POST': form = self.get_form(request.POST, request.FILES, page=self, user=request.user) diff --git a/hypha/apply/funds/tests/test_models.py b/hypha/apply/funds/tests/test_models.py index e5cf1a3527ae66bdcf76cce4d97d125233c91897..65435aa448ed2d9eadc18164484313dd10e4a016 100644 --- a/hypha/apply/funds/tests/test_models.py +++ b/hypha/apply/funds/tests/test_models.py @@ -316,19 +316,24 @@ class TestFormSubmission(TestCase): self.assertEqual(ApplicationSubmission.objects.first().user, user) # This will need to be updated when we hide user information contextually - def test_errors_if_blank_user_data_even_if_logged_in(self): + def test_can_submit_if_blank_user_data_even_if_logged_in(self): user, _ = self.User.objects.get_or_create(email=self.email, defaults={'full_name': self.name}) # Lead + applicant self.assertEqual(self.User.objects.count(), 2) response = self.submit_form(email='', name='', user=user, ignore_errors=True) - self.assertContains(response, 'This field is required') + self.assertEqual(response.status_code, 200) # Lead + applicant self.assertEqual(self.User.objects.count(), 2) - self.assertEqual(ApplicationSubmission.objects.count(), 0) + self.assertEqual(ApplicationSubmission.objects.count(), 1) + + submission = ApplicationSubmission.objects.first() + self.assertEqual(submission.user, user) + self.assertEqual(submission.user.full_name, self.name) + self.assertEqual(submission.user.email, self.email) def test_valid_email(self): email = 'not_a_valid_email@'