def get_project_info(manager, raw_project):
    project_id = raw_project['value']['_id']
    project = Project.load(manager.database, project_id)
    questionnaire = manager.get(project.qid, FormModel)
    questionnaire_code = questionnaire.form_code

    analysis, disabled, log = get_project_analysis_and_log_link(project, project_id, questionnaire_code)

    web_submission_link = reverse("web_questionnaire", args=[project_id])

    web_submission_link_disabled = 'disable_link'
    if 'web' in raw_project['value']['devices']:
        web_submission_link_disabled = ""

    create_subjects_link = ''
    if 'no' in raw_project['value']['activity_report']:
        create_subjects_link = append_query_strings_to_url(reverse("create_subject", args=[project.entity_type]),
                                                           web_view=True)

    project_info = dict(project_id=project_id,
                        name=raw_project['value']['name'],
                        qid=questionnaire_code,
                        created=raw_project['value']['created'],
                        type=raw_project['value']['project_type'],
                        link=(reverse('project-overview', args=[project_id])),
                        log=log, analysis=analysis, disabled=disabled,
                        web_submission_link=web_submission_link,
                        web_submission_link_disabled=web_submission_link_disabled,
                        create_subjects_link=create_subjects_link,
                        entity_type=project.entity_type,
                        encoded_name=urlquote(raw_project['value']['name']),
                        import_template_file_name=slugify(raw_project['value']['name']))
    return project_info
Example #2
0
def get_project_info(manager, project):
    project_id = project['value']['_id']
    questionnaire = Project.get(manager, project_id)
    questionnaire_code = questionnaire.form_code

    analysis, disabled, log = get_project_analysis_and_log_link(project_id, questionnaire_code)

    web_submission_link = reverse("web_questionnaire", args=[project_id])

    web_submission_link_disabled = 'disable_link'
    if 'web' in project['value']['devices']:
        web_submission_link_disabled = ""

    create_subjects_links = {}
    for entity_type in questionnaire.entity_type:
        create_subjects_links.update({entity_type: append_query_strings_to_url(reverse("create_subject", args=[entity_type]),
                                                           web_view=True)})

    project_info = dict(project_id=project_id,
                        name=project['value']['name'],
                        qid=questionnaire_code,
                        created=project['value']['created'],
                        link=(reverse('project-overview', args=[project_id])),
                        log=log, analysis=analysis, disabled=disabled,
                        web_submission_link=web_submission_link,
                        web_submission_link_disabled=web_submission_link_disabled,
                        create_subjects_link=create_subjects_links,
                        entity_type=questionnaire.entity_type,
                        encoded_name=urlquote(project['value']['name']),
                        import_template_file_name=slugify(project['value']['name']))
    return project_info
    def test_should_append_query_string_to_url(self):
        url = "http://somedomain/page/"

        url_with_query_string = append_query_strings_to_url(url,
                                                            key1='value1',
                                                            key2=True)

        self.assertEqual(url_with_query_string,
                         "http://somedomain/page/?key2=True&key1=value1")
Example #4
0
def get_project_info(manager, project):
    project_id = project['_id']
    questionnaire = Project.new_from_doc(manager,
                                         ProjectDocument.wrap(project))
    questionnaire_code = questionnaire.form_code

    analysis, disabled, log = get_project_analysis_and_log_link(
        project_id, questionnaire_code)

    web_submission_link = reverse("web_questionnaire", args=[project_id])

    web_submission_link_disabled = 'disable_link'
    if 'web' in project['devices']:
        web_submission_link_disabled = ""

    create_subjects_links = {}
    for entity_type in questionnaire.entity_type:
        create_subjects_links.update({
            entity_type:
            append_query_strings_to_url(reverse("subject_questionnaire",
                                                args=[project_id,
                                                      entity_type]),
                                        web_view=True)
        })
    if questionnaire.is_poll:
        project_link = reverse("submissions",
                               args=[project_id, questionnaire_code])
    else:
        project_link = reverse('project-overview', args=[project_id])

    project_info = dict(
        project_id=project_id,
        _id=project_id,
        name=project['name'],
        qid=questionnaire_code,
        created=project['created'],
        is_advanced_questionnaire=bool(project.get('xform')),
        link=project_link,
        log=log,
        analysis=analysis,
        disabled=disabled,
        web_submission_link=web_submission_link,
        web_submission_link_disabled=web_submission_link_disabled,
        create_subjects_link=create_subjects_links,
        entity_type=questionnaire.entity_type,
        encoded_name=urlquote(project['name']),
        import_template_file_name=slugify(project['name']),
        is_poll=bool(questionnaire.is_poll),
        is_project_manager=project.get('is_project_manager', False))
    return project_info
Example #5
0
def project_overview(request, project_id):
    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)
    number_of_questions = len(questionnaire.fields)
    questionnaire_code = questionnaire.form_code
    project_links = make_project_links(questionnaire)
    map_api_key = get_map_key(request.META['HTTP_HOST'])
    number_data_sender = len(questionnaire.data_senders)
    number_records = survey_response_count(manager, questionnaire_code, None,
                                           None)
    number_reminders = Reminder.objects.filter(
        project_id=questionnaire.id).count()
    links = {
        'registered_data_senders':
        reverse("registered_datasenders", args=[project_id]),
        'web_questionnaire_list':
        reverse('web_questionnaire', args=[project_id])
    }
    add_subjects_to_see_on_map_msg = ""
    if not is_empty(questionnaire.entity_type):
        subject_links = {}
        for entity_type in questionnaire.entity_type:
            subject_links.update({
                entity_type:
                append_query_strings_to_url(reverse(
                    "subject_questionnaire", args=[project_id, entity_type]),
                                            web_view=True)
            })
        links.update({'create_subjects_links': subject_links})
        add_subjects_to_see_on_map_msg = _(
            "Register %s to see them on this map"
        ) % questionnaire.entity_type[0] if get_entity_count_for_type(
            manager, questionnaire.entity_type[0]) == 0 else ""
    entity_type = ""
    has_multiple_unique_id = False
    in_trial_mode = _in_trial_mode(request)
    unique_id_header_text = ""
    if len(questionnaire.entity_type) == 1:
        entity_type = questionnaire.entity_type[0]
        unique_id_header_text = "%s %s &" % (ugettext("My"),
                                             entity_type.capitalize())
    if len(questionnaire.entity_type) > 1:
        has_multiple_unique_id = True
        unique_id_header_text = "%s &" % ugettext("My Identification Numbers")

    return render_to_response(
        'project/overview.html',
        RequestContext(
            request, {
                'project': questionnaire,
                'project_links': project_links,
                'is_quota_reached': is_quota_reached(request),
                'number_of_questions': number_of_questions,
                'map_api_key': map_api_key,
                'number_data_sender': number_data_sender,
                'number_records': number_records,
                'number_reminders': number_reminders,
                'links': links,
                'add_subjects_to_see_on_map_msg':
                add_subjects_to_see_on_map_msg,
                'in_trial_mode': in_trial_mode,
                'questionnaire_code': questionnaire_code,
                'has_multiple_unique_id': has_multiple_unique_id,
                'entity_type': json.dumps(entity_type),
                'unique_id_header_text': unique_id_header_text,
                'org_number': get_organization_telephone_number(request)
            }))