def test_org_user_who_doesnt_need_prebuilt_gets_printout(self):
     app_ids = intake_factories.make_app_ids_for('a_pubdef')
     profile = user_accounts_factories.app_reviewer('a_pubdef')
     printout_url = query_params.get_url_for_ids(
         'intake-pdf_printout_for_apps', app_ids)
     login(self.client, profile)
     response = self.client.get(
         query_params.get_url_for_ids(self.view_name, app_ids))
     self.assertContains(response, printout_url)
 def test_followup_user_can_access(self):
     app_ids = intake_factories.make_app_ids_for('sf_pubdef')
     profile = user_accounts_factories.followup_user()
     login(self.client, profile)
     response = self.client.get(
         query_params.get_url_for_ids(self.view_name, app_ids))
     self.assertEqual(200, response.status_code)
 def test_org_user_from_correct_org_can_access(self):
     app_ids = intake_factories.make_app_ids_for('cc_pubdef')
     profile = user_accounts_factories.app_reviewer('cc_pubdef')
     login(self.client, profile)
     response = self.client.get(
         query_params.get_url_for_ids(self.view_name, app_ids))
     self.assertEqual(200, response.status_code)
Beispiel #4
0
 def test_org_user_from_correct_org_can_access(self):
     app_ids = intake_factories.make_app_ids_for('cc_pubdef')
     profile = user_accounts_factories.app_reviewer('cc_pubdef')
     login(self.client, profile)
     response = self.client.get(
         query_params.get_url_for_ids(self.view_name, app_ids))
     self.assertEqual(200, response.status_code)
Beispiel #5
0
 def test_if_invalid_ids(self, email_alert):
     app_ids = intake_factories.make_app_ids_for('cc_pubdef')
     profile = user_accounts_factories.app_reviewer('cc_pubdef')
     login(self.client, profile)
     response = self.client.get(
         query_params.get_url_for_ids(self.view_name, app_ids + [918274]))
     self.assertEqual(200, response.status_code)
     email_alert.assert_not_called()
 def test_monitor_user_gets_not_allowed(self, email_alert):
     app_ids = intake_factories.make_app_ids_for('sf_pubdef')
     profile = user_accounts_factories.monitor_user()
     login(self.client, profile)
     response = self.client.get(
         query_params.get_url_for_ids(self.view_name, app_ids))
     self.assertRedirects(response, reverse('user_accounts-profile'))
     self.assertEqual(1, email_alert.call_count)
 def test_if_invalid_ids(self, email_alert):
     app_ids = intake_factories.make_app_ids_for('cc_pubdef')
     profile = user_accounts_factories.app_reviewer('cc_pubdef')
     login(self.client, profile)
     response = self.client.get(
         query_params.get_url_for_ids(self.view_name, app_ids + [918274]))
     self.assertEqual(200, response.status_code)
     email_alert.assert_not_called()
 def get_context_data(self):
     context = super().get_context_data()
     context['organization'] = self.organization
     context['app_count'] = AppsService.get_valid_application_ids_from_set(
         self.app_ids).count()
     # check for fillable pdfs
     needs_prebuilt = self.organization.pdfs.count() > 0
     if needs_prebuilt:
         context['pdf_url'] = query_params.get_url_for_ids(
             'intake-pdf_bundle_file_view', self.app_ids)
     else:
         context['pdf_url'] = query_params.get_url_for_ids(
             'intake-pdf_printout_for_apps', self.app_ids)
     AppsService.handle_apps_opened(self, self.app_ids)
     MessagesService.flash_success(
         self.request, get_multiple_apps_read_flash(context['app_count']))
     return context
 def get_context_data(self):
     context = super().get_context_data()
     context['organization'] = self.organization
     context['app_count'] = AppsService.get_valid_application_ids_from_set(
         self.app_ids).count()
     # check for fillable pdfs
     needs_prebuilt = self.organization.pdfs.count() > 0
     if needs_prebuilt:
         context['pdf_url'] = query_params.get_url_for_ids(
             'intake-pdf_bundle_file_view', self.app_ids)
     else:
         context['pdf_url'] = query_params.get_url_for_ids(
             'intake-pdf_printout_for_apps', self.app_ids)
     AppsService.handle_apps_opened(self, self.app_ids)
     MessagesService.flash_success(
         self.request, get_multiple_apps_read_flash(context['app_count']))
     return context
 def build_redirect_url(self, request):
     key_set = request.GET.get('keys')
     uuids = [key for key in key_set.split('|')]
     submissions = models.FormSubmission.objects.filter(
         old_uuid__in=uuids)
     return get_url_for_ids(
         self.redirect_view_name,
         [s.id for s in submissions])
 def test_shows_flash_message(self):
     app_ids = intake_factories.make_app_ids_for('sf_pubdef', count=3)
     profile = user_accounts_factories.app_reviewer('sf_pubdef')
     login(self.client, profile)
     response = self.client.get(
         query_params.get_url_for_ids(self.view_name, app_ids))
     self.assertContains(response, str(
         '3 applications have been marked as “Read” and moved to the '
         '“Needs Status Update” folder'))
 def test_marks_apps_as_opened(self):
     app_ids = intake_factories.make_app_ids_for('sf_pubdef')
     profile = user_accounts_factories.app_reviewer('sf_pubdef')
     login(self.client, profile)
     self.client.get(
         query_params.get_url_for_ids(self.view_name, app_ids))
     all_apps_opened = all(models.Application.objects.filter(
         id__in=app_ids).values_list('has_been_opened', flat=True))
     self.assertTrue(all_apps_opened)
 def test_followup_user_can_access(self, get_bundle):
     get_bundle.return_value.pdf = b'bytez'
     app_ids = intake_factories.make_app_ids_for('sf_pubdef')
     prebuilt_pdf_for_ids(app_ids)
     profile = user_accounts_factories.followup_user()
     login(self.client, profile)
     response = self.client.get(
         query_params.get_url_for_ids(self.view_name, app_ids))
     self.assertEqual(200, response.status_code)
 def test_invalid_query_params_returns_not_allowed(self, email_alert):
     prebuilt = intake_factories.PrebuiltPDFBundleFactory()
     app_ids = intake_factories.make_app_ids_for('sf_pubdef')
     prebuilt.applications.add(*app_ids)
     profile = user_accounts_factories.app_reviewer('sf_pubdef')
     login(self.client, profile)
     response = self.client.get(
         query_params.get_url_for_ids(self.view_name, app_ids + ['omg']))
     self.assertRedirects(response, reverse('user_accounts-profile'))
     self.assertEqual(1, email_alert.call_count)
 def test_org_user_who_needs_prebuilt_sees_prebuilt_link(self):
     intake_factories.FillablePDFFactory()
     prebuilt = intake_factories.PrebuiltPDFBundleFactory()
     app_ids = intake_factories.make_app_ids_for('sf_pubdef')
     prebuilt.applications.add(*app_ids)
     profile = user_accounts_factories.app_reviewer('sf_pubdef')
     login(self.client, profile)
     response = self.client.get(
         query_params.get_url_for_ids(self.view_name, app_ids))
     self.assertContains(response, prebuilt.get_absolute_url())
 def test_ignores_invalid_ids(self, email_alert, get_bundle):
     app_ids = intake_factories.make_app_ids_for('sf_pubdef')
     prebuilt_pdf_for_ids(app_ids)
     get_bundle.return_value.pdf = b'bytez'
     profile = user_accounts_factories.app_reviewer('sf_pubdef')
     login(self.client, profile)
     response = self.client.get(
         query_params.get_url_for_ids(self.view_name, app_ids + [918274]))
     self.assertEqual(200, response.status_code)
     email_alert.assert_not_called()
 def test_fires_expected_mixpanel_events(self):
     app_ids = intake_factories.make_app_ids_for('sf_pubdef')
     profile = user_accounts_factories.app_reviewer('sf_pubdef')
     login(self.client, profile)
     with self.assertLogs(
             'project.services.logging_service', logging.INFO) as logs:
         response = self.client.get(
             query_params.get_url_for_ids(self.view_name, app_ids))
     assertInLogsCount(logs, {'event_name=app_opened': len(app_ids)})
     assertInLogsCount(logs, {'event_name=user_app_opened': len(app_ids)})
Beispiel #18
0
 def get_context_data(self, *args, **kwargs):
     context = super().get_context_data(*args, **kwargs)
     context['results'] = AppsService.get_unread_applications_for_org_user(
         self.request.user, self.request.GET.get('page'))
     context['app_index_tabs'], count = get_tabs_for_org_user(
         self.request.user.profile.organization, 'Unread')
     context['app_index_scope_title'] = "{} Unread Applications".format(
         count)
     if count == 0:
         context['print_all_link'] = None
         context['no_results'] = "You have read all new applications!"
     else:
         context['print_all_link'] = get_url_for_ids(
             'intake-pdf_bundle_wrapper_view',
             AppsService.get_unread_applications_for_org(
                 self.request.user.profile.organization).values_list(
                     'id', flat=True))
     context['csv_download_link'] = None
     return context
Beispiel #19
0
 def get_context_data(self, *args, **kwargs):
     context = super().get_context_data(*args, **kwargs)
     context['results'] = AppsService.get_unread_applications_for_org_user(
             self.request.user, self.request.GET.get('page'))
     context['app_index_tabs'], count = get_tabs_for_org_user(
         self.request.user.profile.organization, 'Unread')
     context['app_index_scope_title'] = "{} Unread Applications".format(
         count)
     if count == 0:
         context['print_all_link'] = None
         context['no_results'] = "You have read all new applications!"
     else:
         context['print_all_link'] = get_url_for_ids(
             'intake-pdf_bundle_wrapper_view',
             AppsService.get_unread_applications_for_org(
                 self.request.user.profile.organization
                     ).values_list('id', flat=True)
             )
     context['csv_download_link'] = None
     return context
Beispiel #20
0
 def get_submissions(self, group):
     ids = [s.id for s in group]
     url = get_url_for_ids('intake-app_bundle', ids)
     return self.client.get(url)
Beispiel #21
0
 def get_absolute_url(self):
     return query_params.get_url_for_ids(
         'intake-pdf_bundle_file_view',
         self.applications.values_list('id', flat=True))
 def get_submissions(self, group):
     ids = [s.id for s in group]
     url = get_url_for_ids('intake-app_bundle', ids)
     return self.client.get(url)
 def build_redirect_url(self, request):
     key_set = request.GET.get('keys')
     uuids = [key for key in key_set.split('|')]
     submissions = models.FormSubmission.objects.filter(old_uuid__in=uuids)
     return get_url_for_ids(self.redirect_view_name,
                            [s.id for s in submissions])