示例#1
0
def form_with_responses(request, number, version):
    form = forms_service.form_with_responses(number, version)
    exclude = ['user', 'created', 'modified']
    update = {
        'username': lambda f: f.user.username,
        'date': lambda f: _format_date(f.modified),
        'fields': lambda f: [model_to_dict(fld, 'form')
                             for fld in f.formfield_set.all()],
        'responses': lambda f: [_response_to_dict(r)
                                for r in f.formresponse_set.all()],
    }
    return JSONResponse({'form': model_to_dict(form, *exclude, **update)})
 def test_returns_form_with_responses_and_fields_loaded(self):
     form1 = mommy.make(Form, number=1, version=1)
     field1 = mommy.make(FormField, form=form1, kind='short-answer')
     response1 = mommy.make(FormResponse, form=form1)
     field_response1 = mommy.make(
         FormFieldResponse,
         form_response=response1,
         form_field=field1,
         details={'answer': 'ok'}
     )
     form2 = forms_service.form_with_responses(1, 1)
     with self.assertNumQueries(0):
         field2 = form2.formfield_set.all()[0]
         response2 = form2.formresponse_set.all()[0]
         field_response2 = response2.formfieldresponse_set.all()[0]
         self.assertEqual(form1.id, form2.id)
         self.assertEqual(field1.id, field2.id)
         self.assertEqual(response1.id, response2.id)
         self.assertEqual(field_response1.id, field_response2.id)
示例#3
0
def form_with_responses_csv(request, number, version):
    form = forms_service.form_with_responses(number, version)
    response = HttpResponse(content_type='text/csv')
    response['Content-Disposition'] = 'attachment; filename=responses.csv'
    form_responses_csv_service.create_csv(form, response)
    return response
 def test_returns_form_with_empty_responses_list_if_no_responses(self):
     mommy.make(Form, number=1, version=1)
     form2 = forms_service.form_with_responses(1, 1)
     self.assertEqual(list(form2.formresponse_set.all()), [])