def test_create_sub_with_existing_duplicate(self): applicant = factories.ApplicantFactory() answers = mock.fake.all_county_answers() org = Organization.objects.filter(is_receiving_agency=True).first() Form = county_form_selector.get_combined_form_class( counties=ALL_COUNTY_SLUGS) form = Form(answers, validate=True) a = SubmissionsService.create_submission(form, [org], applicant.id) self.assertFalse(a.duplicate_set_id) answers['last_name'] += 's' form = Form(answers, validate=True) b = SubmissionsService.create_submission(form, [org], applicant.id) self.assertTrue(b.duplicate_set_id) dup_set_subs = list(b.duplicate_set.submissions.all()) for sub in (a, b): self.assertIn(sub, dup_set_subs)
def test_create_sub_with_existing_duplicate(self): applicant = factories.ApplicantFactory() answers = mock.fake.all_county_answers() org = Organization.objects.filter(is_receiving_agency=True).first() Form = county_form_selector.get_combined_form_class( counties=ALL_COUNTY_SLUGS) form = Form(answers, validate=True) a = SubmissionsService.create_submission(form, [org], applicant.id) self.assertFalse(a.duplicate_set_id) answers['last_name'] += 's' form = Form(answers, validate=True) b = SubmissionsService.create_submission(form, [org], applicant.id) self.assertTrue(b.duplicate_set_id) dup_set_subs = list(b.duplicate_set.submissions.all()) for sub in (a, b): self.assertIn(sub, dup_set_subs)
def finalize_application(self, form): organizations = self.get_receiving_organizations(form) submission = SubmissionsService.create_submission( form, organizations, self.applicant.id) EventsService.form_submitted(self, submission) SubmissionsService.send_to_newapps_bundle_if_needed( submission, organizations=organizations) sent_confirmations = \ SubmissionsService.send_confirmation_notifications(submission) main_success_message = _("You have applied for help in " ) + oxford_comma(self.formatted_county_names) MessagesService.flash_success(self.request, main_success_message, *sent_confirmations)
def test_can_create_with_form_orgs_and_app_id(self): # given an applicant, some orgs, and a validated form applicant = factories.ApplicantFactory() organizations = list(Organization.objects.all()[:2]) Form = county_form_selector.get_combined_form_class( counties=ALL_COUNTY_SLUGS) form = Form(mock.fake.all_county_answers(), validate=True) # make a submission submission = SubmissionsService.create_submission( form, organizations, applicant.id) self.assertEqual(submission.applicant_id, applicant.id) self.assertEqual(set(submission.organizations.all()), set(organizations))
def test_can_create_with_form_orgs_and_app_id(self): # given an applicant, some orgs, and a validated form applicant = factories.ApplicantFactory() organizations = list(Organization.objects.all()[:2]) Form = county_form_selector.get_combined_form_class( counties=ALL_COUNTY_SLUGS) form = Form(mock.fake.all_county_answers(), validate=True) # make a submission submission = SubmissionsService.create_submission( form, organizations, applicant.id) self.assertEqual(submission.applicant_id, applicant.id) self.assertEqual( set(submission.organizations.all()), set(organizations))
def finalize_application(self, form): organizations = self.get_receiving_organizations(form) submission = SubmissionsService.create_submission( form, organizations, self.applicant.id) EventsService.form_submitted(self, submission) SubmissionsService.send_to_newapps_bundle_if_needed( submission, organizations=organizations) sent_confirmations = \ SubmissionsService.send_confirmation_notifications(submission) main_success_message = _( "You have applied for help in ") + oxford_comma( self.formatted_county_names) MessagesService.flash_success( self.request, main_success_message, *sent_confirmations)
def form_valid(self, form): # if for alameda, send to declaration letter organizations = self.get_orgs_for_answers(form.cleaned_data) self.update_session_data( organizations=[org.slug for org in organizations], **form.parsed_data) if any([org.requires_declaration_letter for org in organizations]): return redirect(reverse('intake-write_letter')) submission = SubmissionsService.create_submission( form, organizations, self.get_applicant_id()) self.send_notifications(submission) SubmissionsService.fill_pdfs_for_submission(submission) if any([org.requires_rap_sheet for org in organizations]): return redirect(reverse('intake-rap_sheet')) return super().form_valid(form)
def finalize_application(self, form): organizations = self.get_receiving_organizations(form) submission = SubmissionsService.create_submission( form, organizations, self.applicant.id) SubmissionsService.fill_pdfs_for_submission( submission, organizations=organizations) number = models.FormSubmission.objects.count() notifications.slack_new_submission.send(submission=submission, request=self.request, submission_count=number) sent_confirmations = \ SubmissionsService.send_confirmation_notifications(submission) main_success_message = _("You have applied for help in " ) + oxford_comma(self.formatted_county_names) MessagesService.flash_success(self.request, main_success_message, *sent_confirmations)
def finalize_application(self, form): organizations = self.get_receiving_organizations(form) submission = SubmissionsService.create_submission( form, organizations, self.applicant.id) EventsService.form_submitted(submission) SubmissionsService.fill_pdfs_for_submission( submission, organizations=organizations) number = models.FormSubmission.objects.count() notifications.slack_new_submission.send( submission=submission, request=self.request, submission_count=number) sent_confirmations = \ SubmissionsService.send_confirmation_notifications(submission) main_success_message = _( "You have applied for help in ") + oxford_comma( self.formatted_county_names) MessagesService.flash_success( self.request, main_success_message, *sent_confirmations)
def test_can_create_with_form_orgs_and_app_id(self): # given an applicant, some orgs, and a validated form applicant = Applicant() applicant.save() organizations = list(Organization.objects.all()[:2]) Form = county_form_selector.get_combined_form_class( counties=ALL_COUNTY_SLUGS) form = Form(mock.fake.all_county_answers(), validate=True) # make a submission submission = SubmissionsService.create_submission( form, organizations, applicant.id) # assert that the correct event was created events = ApplicationEvent.objects.filter( applicant_id=applicant.id).all() self.assertEqual(len(events), 1) self.assertEqual(events[0].name, ApplicationEvent.APPLICATION_SUBMITTED) self.assertEqual(submission.applicant_id, applicant.id) self.assertEqual(set(submission.organizations.all()), set(organizations))
def save_submission_and_send_notifications(self, form): organizations = self.get_orgs_for_answers(form.cleaned_data) submission = SubmissionsService.create_submission( form, organizations, self.get_applicant_id()) self.send_notifications(submission)