Exemple #1
0
def _load_submissions(current_page,
                      manager,
                      questionnaire_code,
                      pagination=True,
                      start_time=None,
                      end_time=None):
    form_model = get_form_model_by_code(manager, questionnaire_code)
    questionnaire = (questionnaire_code, form_model.name)
    fields = form_model.fields
    if form_model.entity_defaults_to_reporter():
        fields = form_model.fields[1:]
    questions = helper.get_code_and_title(fields)
    count = get_submission_count_for_form(manager, questionnaire_code,
                                          start_time, end_time)
    results = {'questionnaire': questionnaire, 'questions': questions}
    if count:
        submissions, ids = _get_submissions_for_display(current_page - 1,
                                                        manager,
                                                        questionnaire_code,
                                                        copy(questions),
                                                        pagination,
                                                        start_time=start_time,
                                                        end_time=end_time)
        results.update(submissions=zip(submissions, ids))
    return count, results
Exemple #2
0
def questionnaire_preview(request, project_id=None):
    manager = get_database_manager(request)
    if request.method == 'GET':
        previous_link = reverse(subjects_wizard, args=[project_id])
        project = models.get_project(project_id, manager)
        form_model = helper.load_questionnaire(manager, project.qid)
        fields = form_model.fields
        if form_model.entity_defaults_to_reporter():
            fields = helper.hide_entity_question(form_model.fields)
        project_links = _make_project_links(project, form_model.form_code)
        questions = []
        for field in fields:
            question = helper.get_preview_for_field(field)
            questions.append(question)
        example_sms = "%s +%s <answer> .... +%s <answer>" % (
            form_model.form_code, fields[0].code, fields[len(fields) - 1].code)
        return render_to_response('project/questionnaire_preview.html', {
            "questions": questions,
            'questionnaire_code': form_model.form_code,
            "previous": previous_link,
            'project': project,
            'project_links': project_links,
            'example_sms': example_sms
        },
                                  context_instance=RequestContext(request))
Exemple #3
0
def questionnaire_wizard(request, project_id=None):
    manager = get_database_manager(request)
    if request.method == 'GET':
        previous_link = reverse(subjects_wizard, args=[project_id])
        project = models.get_project(project_id, manager)
        form_model = helper.load_questionnaire(manager, project.qid)
        fields = form_model.fields
        if form_model.entity_defaults_to_reporter():
            fields = helper.hide_entity_question(form_model.fields)
        existing_questions = json.dumps(fields, default=field_to_json)
        return render_to_response('project/questionnaire_wizard.html',
                {"existing_questions": repr(existing_questions), 'questionnaire_code': form_model.form_code,
                 "previous": previous_link, 'project': project}, context_instance=RequestContext(request))
Exemple #4
0
def _load_submissions(current_page, manager, questionnaire_code, pagination=True, start_time=None, end_time=None):
    form_model = get_form_model_by_code(manager, questionnaire_code)
    questionnaire = (questionnaire_code, form_model.name)
    fields = form_model.fields
    if form_model.entity_defaults_to_reporter():
        fields = form_model.fields[1:]
    questions = helper.get_code_and_title(fields)
    count = get_submission_count_for_form(manager, questionnaire_code, start_time, end_time)
    results = {'questionnaire': questionnaire,
               'questions': questions}
    if count:
        submissions, ids = _get_submissions_for_display(current_page - 1, manager, questionnaire_code, copy(questions),
                                                        pagination, start_time=start_time, end_time=end_time)
        results.update(submissions=zip(submissions, ids))
    return count, results
Exemple #5
0
def questionnaire_wizard(request, project_id=None):
    manager = get_database_manager(request)
    if request.method == 'GET':
        previous_link = reverse(subjects_wizard, args=[project_id])
        project = models.get_project(project_id, manager)
        form_model = helper.load_questionnaire(manager, project.qid)
        fields = form_model.fields
        if form_model.entity_defaults_to_reporter():
            fields = helper.hide_entity_question(form_model.fields)
        existing_questions = json.dumps(fields, default=field_to_json)
        return render_to_response(
            'project/questionnaire_wizard.html', {
                "existing_questions": repr(existing_questions),
                'questionnaire_code': form_model.form_code,
                "previous": previous_link,
                'project': project
            },
            context_instance=RequestContext(request))
Exemple #6
0
def questionnaire_preview(request, project_id=None):
    manager = get_database_manager(request)
    if request.method == 'GET':
        previous_link = reverse(subjects_wizard, args=[project_id])
        project = models.get_project(project_id, manager)
        form_model = helper.load_questionnaire(manager, project.qid)
        fields = form_model.fields
        if form_model.entity_defaults_to_reporter():
            fields = helper.hide_entity_question(form_model.fields)
        project_links = _make_project_links(project, form_model.form_code)
        questions = []
        for field in fields:
            question = helper.get_preview_for_field(field)
            questions.append(question)
        example_sms = "%s +%s <answer> .... +%s <answer>" % (form_model.form_code, fields[0].code, fields[len(fields)-1].code)
        return render_to_response('project/questionnaire_preview.html',
                {"questions": questions, 'questionnaire_code': form_model.form_code,
                 "previous": previous_link, 'project': project, 'project_links': project_links, 'example_sms':example_sms},
                                  context_instance=RequestContext(request))
Exemple #7
0
def finish(request, project_id=None):
    manager = get_database_manager(request)
    project = models.get_project(project_id, manager)
    form_model = helper.load_questionnaire(manager, project.qid)
    if request.method == 'GET':
        project.to_test_mode(manager)
        number_of_registered_subjects = get_entity_count_for_type(
            manager, project.entity_type)
        number_of_registered_datasenders = get_entity_count_for_type(
            manager, 'reporter')
        profile = request.user.get_profile()
        organization = Organization.objects.get(org_id=profile.org_id)
        from_number = TEST_REPORTER_MOBILE_NUMBER
        organization_settings = OrganizationSetting.objects.get(
            organization=organization)
        to_number = organization_settings.sms_tel_number
        previous_link = reverse(datasenders_wizard, args=[project_id])
        fields = form_model.fields[
            1:] if form_model.entity_defaults_to_reporter(
            ) else form_model.fields
        return render_to_response('project/finish_and_test.html', {
            'from_number':
            from_number,
            'to_number':
            to_number,
            'project':
            project,
            'fields':
            fields,
            'project_links':
            _make_links_for_finish_page(project_id, form_model),
            'number_of_datasenders':
            number_of_registered_datasenders,
            'number_of_subjects':
            number_of_registered_subjects,
            "previous":
            previous_link
        },
                                  context_instance=RequestContext(request))
    if request.method == 'POST':
        return HttpResponseRedirect(
            reverse(project_overview, args=[project_id]))
Exemple #8
0
def finish(request, project_id=None):
    manager = get_database_manager(request)
    project = models.get_project(project_id, manager)
    form_model = helper.load_questionnaire(manager, project.qid)
    if request.method == 'GET':
        project.to_test_mode(manager)
        number_of_registered_subjects = get_entity_count_for_type(manager, project.entity_type)
        number_of_registered_datasenders = get_entity_count_for_type(manager, 'reporter')
        profile = request.user.get_profile()
        organization = Organization.objects.get(org_id=profile.org_id)
        from_number = TEST_REPORTER_MOBILE_NUMBER
        organization_settings = OrganizationSetting.objects.get(organization=organization)
        to_number = organization_settings.sms_tel_number
        previous_link = reverse(datasenders_wizard, args=[project_id])
        fields = form_model.fields[1:] if form_model.entity_defaults_to_reporter() else form_model.fields
        return render_to_response('project/finish_and_test.html', {'from_number':from_number, 'to_number':to_number,
                                                                   'project':project, 'fields': fields, 'project_links': _make_links_for_finish_page(project_id, form_model),
                                                                   'number_of_datasenders': number_of_registered_datasenders,
                                                                   'number_of_subjects': number_of_registered_subjects, "previous": previous_link},
                                                                    context_instance=RequestContext(request))
    if request.method == 'POST':
        return HttpResponseRedirect(reverse(project_overview, args=[project_id]))