def assert_invalid_if_field_is_non_sense(self, field_key):
     form_data = self.data.copy()
     form_data[field_key] = 'non_sense_hohoho_&^%$#'
     survey_batch_filter_form = SurveyBatchFilterForm(form_data)
     self.assertFalse(survey_batch_filter_form.is_valid())
     message = "Select a valid choice. That choice is not one of the available choices."
     self.assertEqual([message], survey_batch_filter_form.errors[field_key])
Exemple #2
0
def download(request):
    survey_batch_filter_form = SurveyBatchFilterForm()
    if request.GET:
        survey_batch_filter_form = SurveyBatchFilterForm(request.GET)
        if survey_batch_filter_form.is_valid():
            return _process_export(survey_batch_filter_form)
    return render(request, 'aggregates/download_excel.html', {'survey_batch_filter_form': survey_batch_filter_form})
 def assert_invalid_if_field_is_non_sense(self, field_key):
     form_data = self.data.copy()
     form_data[field_key] = 'non_sense_hohoho_&^%$#'
     survey_batch_filter_form = SurveyBatchFilterForm(form_data)
     self.assertFalse(survey_batch_filter_form.is_valid())
     message = "Select a valid choice. That choice is not one of the available choices."
     self.assertEqual([message], survey_batch_filter_form.errors[field_key])
Exemple #4
0
def download(request):
    survey_batch_filter_form = SurveyBatchFilterForm()
    if request.GET:
        survey_batch_filter_form = SurveyBatchFilterForm(request.GET)
        if survey_batch_filter_form.is_valid():
            return _process_export(survey_batch_filter_form)
    return render(request, 'aggregates/download_excel.html',
                  {'survey_batch_filter_form': survey_batch_filter_form})
 def test_invalid_if_batch_is_not_under_survey(self):
     form_data = self.data.copy()
     form_data['survey'] = self.survey.id
     form_data['batch'] = self.batch_1.id
     survey_batch_filter_form = SurveyBatchFilterForm(form_data)
     self.assertFalse(survey_batch_filter_form.is_valid())
     message = "Select a valid choice. That choice is not one of the available choices."
     self.assertEqual([message], survey_batch_filter_form.errors['batch'])
 def assert_invalid_if_field_does_not_exist(self, field_key):
     form_data = self.data.copy()
     non_existing_survey_id = 666
     form_data[field_key] = non_existing_survey_id
     survey_batch_filter_form = SurveyBatchFilterForm(form_data)
     self.assertFalse(survey_batch_filter_form.is_valid())
     message = "Select a valid choice. That choice is not one of the available choices."
     self.assertEqual([message], survey_batch_filter_form.errors[field_key])
 def test_invalid_if_batch_is_not_under_survey(self):
     form_data = self.data.copy()
     form_data['survey'] = self.survey.id
     form_data['batch'] = self.batch_1.id
     survey_batch_filter_form = SurveyBatchFilterForm(form_data)
     self.assertFalse(survey_batch_filter_form.is_valid())
     message = "Select a valid choice. That choice is not one of the available choices."
     self.assertEqual([message], survey_batch_filter_form.errors['batch'])
 def assert_invalid_if_field_does_not_exist(self, field_key):
     form_data = self.data.copy()
     non_existing_survey_id = 666
     form_data[field_key] = non_existing_survey_id
     survey_batch_filter_form = SurveyBatchFilterForm(form_data)
     self.assertFalse(survey_batch_filter_form.is_valid())
     message = "Select a valid choice. That choice is not one of the available choices."
     self.assertEqual([message], survey_batch_filter_form.errors[field_key])
Exemple #9
0
def download(request):
    survey_batch_filter_form = SurveyBatchFilterForm(data=request.GET)
    locations_filter = LocationsFilterForm(data=request.GET)
    last_selected_loc = locations_filter.last_location_selected
    if request.GET and request.GET.get('action'):
        survey_batch_filter_form = SurveyBatchFilterForm(data=request.GET)
        if survey_batch_filter_form.is_valid():
            batch = survey_batch_filter_form.cleaned_data['batch']
            survey = survey_batch_filter_form.cleaned_data['survey']
            multi_option = survey_batch_filter_form.cleaned_data[
                'multi_option']
            restricted_to = None
            if last_selected_loc:
                restricted_to = [
                    last_selected_loc,
                ]
            if request.GET.get('action') == 'Email Spreadsheet':
                composer = ResultComposer(
                    request.user,
                    ResultsDownloadService(batch=batch,
                                           survey=survey,
                                           restrict_to=restricted_to,
                                           multi_display=multi_option))
                send_mail.delay(composer)
                messages.warning(
                    request,
                    "Email would be sent to you shortly. This could take a while."
                )
            else:
                download_service = ResultsDownloadService(
                    batch=batch,
                    survey=survey,
                    restrict_to=restricted_to,
                    multi_display=multi_option)
                file_name = '%s%s' % (
                    '%s-%s-' %
                    (last_selected_loc.type.name, last_selected_loc.name)
                    if last_selected_loc else '',
                    batch.name if batch else survey.name)
                generate_result_link.delay(request.user, download_service,
                                           file_name)
                messages.warning(
                    request,
                    "Download is in progress. Download link would be available to you shortly"
                )
    loc_types = LocationType.in_between()
    return render(
        request, 'aggregates/download_excel.html', {
            'survey_batch_filter_form':
            survey_batch_filter_form,
            'locations_filter':
            locations_filter,
            'export_url':
            '%s?%s' % (reverse('excel_report'), request.META['QUERY_STRING']),
            'location_filter_types':
            loc_types
        })
Exemple #10
0
def download(request):
    request_data = request.GET if request.method == 'GET' else request.POST
    survey_batch_filter_form = SurveyBatchFilterForm(data=request_data)
    locations_filter = LocationsFilterForm(data=request_data)
    last_selected_loc = locations_filter.last_location_selected
    if request_data and request_data.get('action'):
        survey_batch_filter_form = SurveyBatchFilterForm(data=request_data)
        if survey_batch_filter_form.is_valid():
            batch = survey_batch_filter_form.cleaned_data['batch']
            survey = survey_batch_filter_form.cleaned_data['survey']
            multi_option = \
                survey_batch_filter_form.cleaned_data['multi_option']
            restricted_to = None
            if last_selected_loc:
                restricted_to = [
                    last_selected_loc,
                ]
            if request_data.get('action') == 'Email Spreadsheet':
                composer = ResultComposer(
                    request.user,
                    ResultsDownloadService(batch,
                                           survey=survey,
                                           restrict_to=restricted_to,
                                           multi_display=multi_option))
                send_mail.delay(composer)
                messages.warning(
                    request, "Email would be sent to\
                        you shortly. This could take a while.")
            else:
                download_service = ResultsDownloadService(
                    batch,
                    survey=survey,
                    restrict_to=restricted_to,
                    multi_display=multi_option)
                file_name = '%s%s' % (
                    '%s-%s-' %
                    (last_selected_loc.type.name, last_selected_loc.name)
                    if last_selected_loc else '',
                    batch.name if batch else survey.name)
                reports_df = download_service.generate_interview_reports()
                response = HttpResponse(content_type='application/zip')
                string_buf = StringIO()
                reports_df.to_csv(string_buf, columns=reports_df.columns[1:])
                string_buf.seek(0)
                file_contents = string_buf.read()
                string_buf.close()
                zip_file = InMemoryZip()
                zip_file = zip_file.append("%s.csv" % file_name, file_contents)
                response['Content-Disposition'] = 'attachment;\
                    filename=%s.zip' % file_name
                response.write(zip_file.read())
                # exclude interview id
                if not request.is_ajax():
                    messages.info(request, "Download successfully downloaded")
                return response
    loc_types = LocationType.in_between()
    return render(
        request, 'aggregates/download_excel.html', {
            'survey_batch_filter_form':
            survey_batch_filter_form,
            'locations_filter':
            locations_filter,
            'export_url':
            '%s?%s' % (reverse('excel_report'), request.META['QUERY_STRING']),
            'location_filter_types':
            loc_types
        })
 def test_empty_batch_is_valid(self):
     data = self.data.copy()
     data['batch'] = ''
     survey_batch_filter_form = SurveyBatchFilterForm(data)
     self.assertTrue(survey_batch_filter_form.is_valid())
 def test_valid(self):
     survey_batch_filter_form = SurveyBatchFilterForm(self.data)
     self.assertTrue(survey_batch_filter_form.is_valid())
 def test_empty_batch_is_valid(self):
     data = self.data.copy()
     data['batch'] = ''
     survey_batch_filter_form = SurveyBatchFilterForm(data)
     self.assertTrue(survey_batch_filter_form.is_valid())
 def test_valid(self):
     survey_batch_filter_form = SurveyBatchFilterForm(self.data)
     self.assertTrue(survey_batch_filter_form.is_valid())
Exemple #15
0
def download(request):
    request_data = request.GET if request.method == 'GET' else request.POST
    survey_batch_filter_form = SurveyBatchFilterForm(data=request_data)
    locations_filter = LocationsFilterForm(data=request_data)
    last_selected_loc = locations_filter.last_location_selected
    if request_data and request_data.get('action'):
        survey_batch_filter_form = SurveyBatchFilterForm(data=request_data)
        if survey_batch_filter_form.is_valid():
            batch = survey_batch_filter_form.cleaned_data['batch']
            survey = survey_batch_filter_form.cleaned_data['survey']
            multi_option = \
                survey_batch_filter_form.cleaned_data['multi_option']
            restricted_to = None
            if last_selected_loc:
                restricted_to = [last_selected_loc, ]
            if request_data.get('action') == 'Email Spreadsheet':
                composer = ResultComposer(
                    request.user,
                    ResultsDownloadService(
                        batch,
                        survey=survey,
                        restrict_to=restricted_to,
                        multi_display=multi_option))
                send_mail.delay(composer)
                messages.warning(
                    request, "Email would be sent to\
                        you shortly. This could take a while.")
            else:
                download_service = ResultsDownloadService(
                    batch,
                    survey=survey,
                    restrict_to=restricted_to,
                    multi_display=multi_option)
                file_name = '%s%s' % ('%s-%s-' % (
                    last_selected_loc.type.name,
                    last_selected_loc.name) if last_selected_loc else '',
                    batch.name if batch else survey.name)
                reports_df = download_service.generate_interview_reports()
                response = HttpResponse(content_type='application/zip')
                string_buf = StringIO()
                reports_df.to_csv(string_buf, columns=reports_df.columns[1:])
                string_buf.seek(0)
                file_contents = string_buf.read()
                string_buf.close()
                zip_file = InMemoryZip()
                zip_file = zip_file.append("%s.csv" % file_name, file_contents)
                response['Content-Disposition'] = 'attachment;\
                    filename=%s.zip' % file_name
                response.write(zip_file.read())
                # exclude interview id
                if not request.is_ajax():
                    messages.info(request, "Download successfully downloaded")
                return response
    loc_types = LocationType.in_between()
    return render(request,
                  'aggregates/download_excel.html',
                  {'survey_batch_filter_form': survey_batch_filter_form,
                   'locations_filter': locations_filter,
                   'export_url': '%s?%s' % (reverse('excel_report'),
                                            request.META['QUERY_STRING']),
                   'location_filter_types': loc_types})