예제 #1
0
def get_call_center_data_source_stats(domains):

    domains_to_forms = get_form_counts_for_domains(domains)
    domains_to_cases = get_case_and_action_counts_for_domains(domains)

    domain_data = {}
    for domain in domains:
        try:
            adapters = get_sql_adapters_for_domain(domain)
            domain_data[domain] = DomainStats(
                domain,
                forms=_compile_stats(
                    name='forms',
                    ucr_count=adapters.forms.get_query_object().count(),
                    es_count=domains_to_forms.get(domain, 0),
                ),
                cases=_compile_stats(
                    name='cases',
                    ucr_count=adapters.cases.get_query_object().count(),
                    es_count=domains_to_cases.get(domain, {}).get('cases', 0)
                ),
                case_actions=_compile_stats(
                    name='case_actions',
                    ucr_count=adapters.case_actions.get_query_object().count(),
                    es_count=domains_to_cases.get(domain, {}).get('case_actions', 0)
                ),
                error=None
            )
        except Exception as e:
            domain_data[domain] = DomainStats(domain, None, None, None, str(e))

    return domain_data
예제 #2
0
def get_call_center_data_source_stats(domains):

    domains_to_forms = get_form_counts_for_domains(domains)
    domains_to_cases = get_case_and_action_counts_for_domains(domains)

    domain_data = {}
    for domain in domains:
        try:
            adapters = get_sql_adapters_for_domain(domain)
            domain_data[domain] = DomainStats(
                domain,
                forms=_compile_stats(
                    name='forms',
                    ucr_count=adapters.forms.get_query_object().count(),
                    es_count=domains_to_forms.get(domain, 0),
                ),
                cases=_compile_stats(
                    name='cases',
                    ucr_count=adapters.cases.get_query_object().count(),
                    es_count=domains_to_cases.get(domain, {}).get('cases', 0)),
                case_actions=_compile_stats(
                    name='case_actions',
                    ucr_count=adapters.case_actions.get_query_object().count(),
                    es_count=domains_to_cases.get(domain,
                                                  {}).get('case_actions', 0)),
                error=None)
        except Exception as e:
            domain_data[domain] = DomainStats(domain, None, None, None, str(e))

    return domain_data
예제 #3
0
def load_custom_data(domain, user_id, xmlns):
    from corehq.apps.callcenter.data_source import get_sql_adapters_for_domain
    form_data = [
        get_formdata(0, domain, user_id, xmlns=xmlns, duration=3),
        get_formdata(1, domain, user_id, xmlns=xmlns, duration=2),
        get_formdata(3, domain, user_id, xmlns=xmlns, duration=4),
        get_formdata(7, domain, user_id, xmlns=xmlns, duration=3),
        get_formdata(8, domain, user_id, xmlns=xmlns, duration=4),
        get_formdata(13, domain, user_id, xmlns=xmlns, duration=5),
        get_formdata(14, domain, user_id, xmlns=xmlns, duration=2),
        get_formdata(17, domain, user_id, xmlns=xmlns, duration=1),
        get_formdata(29, domain, user_id, xmlns=xmlns, duration=12),
        get_formdata(30, domain, user_id, xmlns=xmlns, duration=1),
    ]

    data_sources = get_sql_adapters_for_domain(domain)
    _insert_docs(data_sources.forms, form_data)
    _insert_docs(data_sources.cases, [])  # ensure the table exists
    _insert_docs(data_sources.case_actions, [])
예제 #4
0
def load_data(domain,
              form_user_id,
              case_user_id=None,
              case_owner_id=None,
              case_opened_by=None,
              case_closed_by=None):
    from corehq.apps.callcenter.data_source import get_sql_adapters_for_domain

    form_data = [
        get_formdata(0, domain, form_user_id),
        get_formdata(3, domain, form_user_id),
        get_formdata(7, domain, form_user_id),
        get_formdata(8, domain, form_user_id),
        get_formdata(9, domain, form_user_id),
        get_formdata(11, domain, form_user_id),
        get_formdata(14, domain, form_user_id),
        get_formdata(15, domain, form_user_id),
    ]

    case_user_id = case_user_id or form_user_id
    case_owner_id = case_owner_id or case_user_id

    case_infos = [
        CaseInfo('1', 0, 'person', False),
        CaseInfo('2', 10, 'person', False),
        CaseInfo('3', 29, 'person', True),
        CaseInfo('4', 30, 'person', True),
        CaseInfo('5', 31, 'dog', True),
        CaseInfo('6', 45, 'dog', False),
        CaseInfo('7', 55, 'dog', False),
        CaseInfo('8', 56, 'dog', True),
        CaseInfo('9', 59, 'dog', False),
    ]

    case_data = [
        get_casedata(info, domain, case_user_id, case_owner_id, case_opened_by,
                     case_closed_by) for info in case_infos
    ]

    data_sources = get_sql_adapters_for_domain(domain)
    _insert_docs(data_sources.forms, form_data)
    _insert_docs(data_sources.cases, case_data)
    _insert_docs(data_sources.case_actions, case_data)
예제 #5
0
def load_custom_data(domain, user_id, xmlns):
    from corehq.apps.callcenter.data_source import get_sql_adapters_for_domain
    form_data = [
        get_formdata(0, domain, user_id, xmlns=xmlns, duration=3),
        get_formdata(1, domain, user_id, xmlns=xmlns, duration=2),
        get_formdata(3, domain, user_id, xmlns=xmlns, duration=4),
        get_formdata(7, domain, user_id, xmlns=xmlns, duration=3),
        get_formdata(8, domain, user_id, xmlns=xmlns, duration=4),
        get_formdata(13, domain, user_id, xmlns=xmlns, duration=5),
        get_formdata(14, domain, user_id, xmlns=xmlns, duration=2),
        get_formdata(17, domain, user_id, xmlns=xmlns, duration=1),
        get_formdata(29, domain, user_id, xmlns=xmlns, duration=12),
        get_formdata(30, domain, user_id, xmlns=xmlns, duration=1),
    ]

    data_sources = get_sql_adapters_for_domain(domain)
    _insert_docs(data_sources.forms, form_data)
    _insert_docs(data_sources.cases, [])  # ensure the table exists
    _insert_docs(data_sources.case_actions, [])
예제 #6
0
def load_data(domain, form_user_id, case_user_id=None,
              case_owner_id=None, case_opened_by=None, case_closed_by=None):
    from corehq.apps.callcenter.data_source import get_sql_adapters_for_domain

    form_data = [
        get_formdata(0, domain, form_user_id),
        get_formdata(3, domain, form_user_id),
        get_formdata(7, domain, form_user_id),
        get_formdata(8, domain, form_user_id),
        get_formdata(9, domain, form_user_id),
        get_formdata(11, domain, form_user_id),
        get_formdata(14, domain, form_user_id),
        get_formdata(15, domain, form_user_id),
    ]

    case_user_id = case_user_id or form_user_id
    case_owner_id = case_owner_id or case_user_id

    case_infos = [
        CaseInfo('1', 0, 'person', False),
        CaseInfo('2', 10, 'person', False),
        CaseInfo('3', 29, 'person', True),
        CaseInfo('4', 30, 'person', True),
        CaseInfo('5', 31, 'dog', True),
        CaseInfo('6', 45, 'dog', False),
        CaseInfo('7', 55, 'dog', False),
        CaseInfo('8', 56, 'dog', True),
        CaseInfo('9', 59, 'dog', False),
    ]

    case_data = [
        get_casedata(info, domain, case_user_id, case_owner_id, case_opened_by, case_closed_by)
        for info in case_infos
    ]

    data_sources = get_sql_adapters_for_domain(domain)
    _insert_docs(data_sources.forms, form_data)
    _insert_docs(data_sources.cases, case_data)
    _insert_docs(data_sources.case_actions, case_data)
예제 #7
0
def clear_data(domain):
    from corehq.apps.callcenter.data_source import get_sql_adapters_for_domain
    data_sources = get_sql_adapters_for_domain(domain)
    for data_source in data_sources:
        data_source.drop_table()
예제 #8
0
 def data_sources(self):
     from corehq.apps.callcenter.data_source import get_sql_adapters_for_domain
     return get_sql_adapters_for_domain(self.domain)
예제 #9
0
 def data_sources(self):
     from corehq.apps.callcenter.data_source import get_sql_adapters_for_domain
     return get_sql_adapters_for_domain(self.domain)
예제 #10
0
def clear_data(domain):
    from corehq.apps.callcenter.data_source import get_sql_adapters_for_domain
    data_sources = get_sql_adapters_for_domain(domain)
    for data_source in data_sources:
        data_source.drop_table()