Beispiel #1
0
 def test_invalid_when_if_year_is_does_not_have_questionnaire(self):
     form_data = self.form_data.copy()
     selected_year = date.today().year
     form_data['year'] = [selected_year]
     export_filter = ExportFilterForm(form_data)
     self.assertFalse(export_filter.is_valid())
     error_message = "Select a valid choice. %d is not one of the available choices." % selected_year
     self.assertIn(error_message, export_filter.errors['year'])
Beispiel #2
0
    def post(self, *args, **kwargs):
        years = None
        filter_form = ExportFilterForm(self.request.POST)
        all_questionnaires = Questionnaire.objects.all()
        export_service = ExportToTextService(questionnaires=all_questionnaires)
        if filter_form.is_valid():
            years = filter_form.cleaned_data['year']
            countries = filter_form.cleaned_data['countries']
            themes = filter_form.cleaned_data['themes']
            export_filter_params = {'year__in': years, 'region__in': filter_form.cleaned_data['regions']}

            questionnaires = all_questionnaires.filter(**export_filter_params)
            export_service = ExportToTextService(questionnaires=questionnaires, countries=countries, themes=themes)

        formatted_responses = export_service.get_formatted_responses()
        response = HttpResponse(content_type='text/csv')
        response['Content-Disposition'] = 'attachment; filename="%s-%s.txt"' % ('data', '_'.join(years) or self.ALL_QUESTIONNAIRES)
        response.write("\r\n".join(formatted_responses))
        return response
Beispiel #3
0
 def test_valid_when_year_is_blank(self):
     form_data = self.form_data.copy()
     form_data['year'] = ''
     export_filter = ExportFilterForm(form_data)
     self.assertTrue(export_filter.is_valid())
Beispiel #4
0
 def test_valid_when_themes_are_blank(self):
     form_data = self.form_data.copy()
     form_data['themes'] = ''
     export_filter = ExportFilterForm(form_data)
     self.assertTrue(export_filter.is_valid())
Beispiel #5
0
 def test_valid(self):
     export_filter = ExportFilterForm(self.form_data)
     self.assertTrue(export_filter.is_valid())