Example #1
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))
Example #2
0
def project_overview(request, project_id=None):
    manager = get_database_manager(request)
    project = models.get_project(project_id, dbm=manager)
    link = reverse(edit_profile, args=[project_id])
    questionnaire = helper.load_questionnaire(manager, project['qid'])
    number_of_questions = len(questionnaire.fields)
    project_links = _make_project_links(project, questionnaire.form_code)
    return render_to_response('project/overview.html',
            {'project': project, 'entity_type': project['entity_type'], 'project_links': project_links
             , 'project_profile_link': link, 'number_of_questions': number_of_questions},
                              context_instance=RequestContext(request))
Example #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))
Example #4
0
def project_overview(request, project_id=None):
    manager = get_database_manager(request)
    project = models.get_project(project_id, dbm=manager)
    link = reverse(edit_profile, args=[project_id])
    questionnaire = helper.load_questionnaire(manager, project['qid'])
    number_of_questions = len(questionnaire.fields)
    project_links = _make_project_links(project, questionnaire.form_code)
    return render_to_response('project/overview.html', {
        'project': project,
        'entity_type': project['entity_type'],
        'project_links': project_links,
        'project_profile_link': link,
        'number_of_questions': number_of_questions
    },
                              context_instance=RequestContext(request))
Example #5
0
def activate_project(request, project_id=None):
    manager = get_database_manager(request)
    project = models.get_project(project_id, manager)
    project.activate(manager)
    form_model = helper.load_questionnaire(manager, project.qid)
    oneDay = datetime.timedelta(days=1)
    tomorrow = datetime.datetime.now() + oneDay
    submissions, ids = get_submissions_made_for_form(manager, form_model.form_code, start_time=0, end_time=int(mktime(tomorrow.timetuple())) * 1000,
                                                         page_size=None)
    for each in ids:
        if each is not None:
            data_record = manager._load_document(each, DataRecordDocument)
            manager.invalidate(each)
            SubmissionLogger(manager).void_data_record(data_record.submission.get("submission_id"))
    return HttpResponseRedirect(reverse(project_overview, args=[project_id]))
Example #6
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))
Example #7
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))
Example #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]))
Example #9
0
def activate_project(request, project_id=None):
    manager = get_database_manager(request)
    project = models.get_project(project_id, manager)
    project.activate(manager)
    form_model = helper.load_questionnaire(manager, project.qid)
    oneDay = datetime.timedelta(days=1)
    tomorrow = datetime.datetime.now() + oneDay
    submissions, ids = get_submissions_made_for_form(
        manager,
        form_model.form_code,
        start_time=0,
        end_time=int(mktime(tomorrow.timetuple())) * 1000,
        page_size=None)
    for each in ids:
        if each is not None:
            data_record = manager._load_document(each, DataRecordDocument)
            manager.invalidate(each)
            SubmissionLogger(manager).void_data_record(
                data_record.submission.get("submission_id"))
    return HttpResponseRedirect(reverse(project_overview, args=[project_id]))
Example #10
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]))
Example #11
0
def _get_project_and_project_link(manager, project_id):
    project = models.get_project(project_id, manager)
    questionnaire = helper.load_questionnaire(manager, project.qid)
    project_links = _make_project_links(project, questionnaire.form_code)
    return project, project_links
Example #12
0
def _get_project_and_project_link(manager, project_id):
    project = models.get_project(project_id, manager)
    questionnaire = helper.load_questionnaire(manager, project.qid)
    project_links = _make_project_links(project, questionnaire.form_code)
    return project, project_links