当前位置: 首页>>代码示例>>Python>>正文


Python CaseAccessorSQL.get_transactions_for_case_rebuild方法代码示例

本文整理汇总了Python中corehq.form_processor.backends.sql.dbaccessors.CaseAccessorSQL.get_transactions_for_case_rebuild方法的典型用法代码示例。如果您正苦于以下问题:Python CaseAccessorSQL.get_transactions_for_case_rebuild方法的具体用法?Python CaseAccessorSQL.get_transactions_for_case_rebuild怎么用?Python CaseAccessorSQL.get_transactions_for_case_rebuild使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在corehq.form_processor.backends.sql.dbaccessors.CaseAccessorSQL的用法示例。


在下文中一共展示了CaseAccessorSQL.get_transactions_for_case_rebuild方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: get_case_transactions

# 需要导入模块: from corehq.form_processor.backends.sql.dbaccessors import CaseAccessorSQL [as 别名]
# 或者: from corehq.form_processor.backends.sql.dbaccessors.CaseAccessorSQL import get_transactions_for_case_rebuild [as 别名]
def get_case_transactions(case_id, updated_xforms=None):
    transactions = CaseAccessorSQL.get_transactions_for_case_rebuild(case_id)
    form_ids = {tx.form_id for tx in transactions}
    updated_xforms_map = {
        xform.form_id: xform for xform in updated_xforms if not xform.is_deprecated
    } if updated_xforms else {}

    form_ids_to_fetch = list(form_ids - set(updated_xforms_map.keys()))
    xform_map = {form.form_id: form for form in FormAccessorSQL.get_forms_with_attachments_meta(form_ids_to_fetch)}

    def get_form(form_id):
        if form_id in updated_xforms_map:
            return updated_xforms_map[form_id]

        try:
            return xform_map[form_id]
        except KeyError:
            raise XFormNotFound

    for transaction in transactions:
        if transaction.form_id:
            try:
                transaction.cached_form = get_form(transaction.form_id)
            except XFormNotFound:
                logging.error('Form not found during rebuild: %s', transaction.form_id)

    return transactions
开发者ID:bazuzi,项目名称:commcare-hq,代码行数:29,代码来源:processor.py

示例2: test_get_transactions_for_case_rebuild

# 需要导入模块: from corehq.form_processor.backends.sql.dbaccessors import CaseAccessorSQL [as 别名]
# 或者: from corehq.form_processor.backends.sql.dbaccessors.CaseAccessorSQL import get_transactions_for_case_rebuild [as 别名]
    def test_get_transactions_for_case_rebuild(self):
        form_id = uuid.uuid4().hex
        case = _create_case(form_id=form_id)
        form_ids = _create_case_transactions(case)

        transactions = CaseAccessorSQL.get_transactions_for_case_rebuild(case.case_id)
        self.assertEqual(2, len(transactions))
        self.assertEqual([form_id, form_ids[0]], [t.form_id for t in transactions])
开发者ID:philipkaare,项目名称:commcare-hq,代码行数:10,代码来源:test_case_dbaccessor.py

示例3: test_get_transactions_for_case_rebuild

# 需要导入模块: from corehq.form_processor.backends.sql.dbaccessors import CaseAccessorSQL [as 别名]
# 或者: from corehq.form_processor.backends.sql.dbaccessors.CaseAccessorSQL import get_transactions_for_case_rebuild [as 别名]
    def test_get_transactions_for_case_rebuild(self):
        form_id = uuid.uuid4().hex
        case = _create_case(form_id=form_id)
        traces = _create_case_transactions(case)

        transactions = CaseAccessorSQL.get_transactions_for_case_rebuild(case.case_id)
        self.assertEqual(4, len(transactions))
        self.assertEqual(
            [form_id] + map(lambda t: t.form_id, filter(lambda t: t.include, traces)),
            [t.form_id for t in transactions],
        )
开发者ID:saketkanth,项目名称:commcare-hq,代码行数:13,代码来源:test_case_dbaccessor.py

示例4: get_last_growth_monitoring_form

# 需要导入模块: from corehq.form_processor.backends.sql.dbaccessors import CaseAccessorSQL [as 别名]
# 或者: from corehq.form_processor.backends.sql.dbaccessors.CaseAccessorSQL import get_transactions_for_case_rebuild [as 别名]
def get_last_growth_monitoring_form(domain, case_id):
    transactions = CaseAccessorSQL.get_transactions_for_case_rebuild(case_id)
    form_ids = [t.form_id for t in transactions if t.form_id]

    forms_under_consideration = []

    db_names = get_db_aliases_for_partitioned_query()
    for db_name in db_names:
        result = XFormInstanceSQL.objects.using(db_name).filter(
            domain=domain,
            form_id__in=form_ids,
            xmlns=GROWTH_MONITORING_XMLNS,
            state=XFormInstanceSQL.NORMAL,
        ).order_by('-received_on').first()
        if result:
            forms_under_consideration.append(result)

    if not forms_under_consideration:
        return None

    forms_under_consideration.sort(key=lambda form: form.received_on, reverse=True)
    return forms_under_consideration[0]
开发者ID:kkrampa,项目名称:commcare-hq,代码行数:24,代码来源:custom_content.py


注:本文中的corehq.form_processor.backends.sql.dbaccessors.CaseAccessorSQL.get_transactions_for_case_rebuild方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。