def registered_subjects(request, project_id, entity_type=None): manager = get_database_manager(request.user) questionnaire = Project.get(manager, project_id) dashboard_page = settings.HOME_PAGE + "?deleted=true" if questionnaire.is_void(): return HttpResponseRedirect(dashboard_page) current_entity_type = entity_type if not current_entity_type: current_entity_type = questionnaire.entity_type[0] subject = get_entity_type_info(current_entity_type, manager=manager) project_links = get_project_link(questionnaire, current_entity_type) subject_form_model = get_form_model_by_entity_type(manager, [current_entity_type]) in_trial_mode = _in_trial_mode(request) return render_to_response( 'project/subjects/registered_subjects_list.html', { 'project': questionnaire, 'project_links': project_links, 'is_quota_reached': is_quota_reached(request), "subject": subject, 'in_trial_mode': in_trial_mode, 'project_id': project_id, 'entity_type': current_entity_type, 'subject_headers': header_fields(subject_form_model), 'questionnaire_code': questionnaire.form_code, 'form_code': subject_form_model.form_code }, context_instance=RequestContext(request))
def edit_my_subject_questionnaire(request, project_id, entity_type=None): manager = get_database_manager(request.user) questionnaire = Project.get(manager, project_id) if not entity_type: entity_type = questionnaire.entity_type[0] project_links = get_project_link(questionnaire, entity_type) dashboard_page = settings.HOME_PAGE + "?deleted=true" if questionnaire.is_void(): return HttpResponseRedirect(dashboard_page) reg_form = _get_subject_form_model(manager, entity_type) if reg_form is None: reg_form = form_model.get_form_model_by_code(manager, REGISTRATION_FORM_CODE) fields = reg_form.fields existing_questions = json.dumps(fields, default=field_to_json) subject = get_entity_type_info(entity_type, manager=manager) return render_to_response('project/subject_questionnaire.html', { 'project': questionnaire, 'entity_type': entity_type, 'project_links': project_links, 'is_quota_reached': is_quota_reached(request), 'existing_questions': repr(existing_questions), 'questionnaire_code': reg_form.form_code, 'language': reg_form.activeLanguages[0], 'project_id': questionnaire.id, 'subject': subject, 'post_url': reverse(subject_save_questionnaire) }, context_instance=RequestContext(request))
def test_should_get_entity_type_info_for_subject(self): self._create_subject_registration_form() info = get_entity_type_info('clinic', self.manager) expect = {'code': u'form_code', 'codes': ['EID', 'BG'], 'names': [u'What is associat\xe9d entity?', 'What is your blood group?'], 'labels': ['What is associated entity?', 'What is your blood group?'], 'data': [], 'entity': 'clinic'} self.assertEqual(expect, info)
def test_should_get_entity_type_info_for_reporter(self): info = get_entity_type_info('reporter', self.manager) expect = {'code': 'reg', 'codes': ['n', 's', 'l', 'g', 'm'], 'names': ['name', 'short_code', 'location', 'geo_code', 'mobile_number'], 'labels': ["What is the subject's name?", "What is the subject's Unique ID Number", "What is the subject's location?", "What is the subject's GPS co-ordinates?", 'What is the mobile number associated with the subject?'], 'data': [], 'entity': 'reporter'} self.assertEqual(expect, info)
def registered_subjects(request, project_id=None): manager = get_database_manager(request.user) project, project_links = _get_project_and_project_link(manager, project_id) subject = get_entity_type_info(project.entity_type, manager=manager) in_trial_mode = _in_trial_mode(request) form_model = get_form_model_by_entity_type(manager, [subject.get('entity')]) return render_to_response('project/subjects/registered_subjects_list.html', {'project': project, 'project_links': project_links, 'is_quota_reached': is_quota_reached(request), "subject": subject, 'in_trial_mode': in_trial_mode, 'project_id': project_id, 'entity_type': subject.get('entity'), 'subject_headers': header_fields(form_model), 'form_code': subject.get('code')}, context_instance=RequestContext(request))
def lookup_entity(dbm, key, entity_type): try: if key: data_dict = {} entity_type_info = get_entity_type_info(entity_type, dbm) names_to_codes_map = {} for name, code in zip(entity_type_info['names'], entity_type_info['codes']): names_to_codes_map[name] = code data = get_by_short_code_include_voided(dbm, key, entity_type).data_value() for key, value in data.iteritems(): if names_to_codes_map.get(key): data_dict[names_to_codes_map[key]] = value['value'] return data_dict except DataObjectNotFound: pass return {'q2': " "}
def edit_my_subject_questionnaire(request, project_id=None): manager = get_database_manager(request.user) project, project_links = _get_project_and_project_link(manager, project_id) reg_form = _get_subject_form_model(manager, project.entity_type) if reg_form is None: reg_form = form_model.get_form_model_by_code(manager, REGISTRATION_FORM_CODE) fields = reg_form.fields existing_questions = json.dumps(fields, default=field_to_json) subject = get_entity_type_info(project.entity_type, manager=manager) return render_to_response('project/subject_questionnaire.html', {'project': project, 'project_links': project_links, 'is_quota_reached': is_quota_reached(request), 'existing_questions': repr(existing_questions), 'questionnaire_code': reg_form.form_code, 'language': reg_form.activeLanguages[0], 'entity_type': project.entity_type, 'subject': subject, 'post_url': reverse(subject_save_questionnaire)}, context_instance=RequestContext(request))
def _get_subject_info(manager, entity_type=None): subject = get_entity_type_info(entity_type, manager=manager) subject_info = {'subject': subject, "entity_type": entity_type} return subject_info
def _get_subject_info(manager, project): subject = get_entity_type_info(project.entity_type, manager=manager) subject_info = {'subject': subject, 'add_link': add_link(project), "entity_type": project.entity_type} return subject_info