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))
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))
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))
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))
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]))
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))
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))
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]))
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]))
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]))
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