예제 #1
0
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))
예제 #2
0
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))
예제 #3
0
    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)
예제 #4
0
    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)
예제 #5
0
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))
예제 #6
0
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': " "}
예제 #7
0
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))
예제 #8
0
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
예제 #9
0
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