コード例 #1
0
ファイル: signals.py プロジェクト: ye-man/commcare-hq
def rebuild_form_cases(sender, xform, *args, **kwargs):
    from casexml.apps.case.xform import get_case_ids_from_form
    from casexml.apps.case.cleanup import rebuild_case_from_forms
    from corehq.form_processor.parsers.ledgers.form import get_case_ids_from_stock_transactions

    domain = xform.domain
    case_ids = get_case_ids_from_form(xform) | get_case_ids_from_stock_transactions(xform)
    detail = FormArchiveRebuild(form_id=xform.form_id, archived=xform.is_archived)
    for case_id in case_ids:
        rebuild_case_from_forms(domain, case_id, detail)
コード例 #2
0
ファイル: signals.py プロジェクト: saketkanth/commcare-hq
def rebuild_form_cases(sender, xform, *args, **kwargs):
    from casexml.apps.case.xform import get_case_ids_from_form
    from casexml.apps.case.cleanup import rebuild_case_from_forms
    from corehq.form_processor.parsers.ledgers.form import get_case_ids_from_stock_transactions

    domain = xform.domain
    case_ids = get_case_ids_from_form(xform) | get_case_ids_from_stock_transactions(xform)
    detail = FormArchiveRebuild(form_id=xform.form_id, archived=xform.is_archived)
    for case_id in case_ids:
        rebuild_case_from_forms(domain, case_id, detail)
コード例 #3
0
 def _remove_ledger_transactions(self):
     with open("ledger_transactions_removed_case_ids.txt", "w+b") as case_ids_log:
         forms_iterated = 0
         for xform in with_progress_bar(self.forms):
             forms_iterated += 1
             if forms_iterated % 100 == 0:
                 print("traversed %s forms" % forms_iterated)
             ledger_case_ids = get_case_ids_from_stock_transactions(xform)
             if ledger_case_ids:
                 ledger_case_ids = list(ledger_case_ids)
                 for ledger_case_id in ledger_case_ids:
                     case_ids_log.write("%s\n" % ledger_case_id)
                 LedgerAccessorSQL.delete_ledger_transactions_for_form(ledger_case_ids, xform.form_id)
コード例 #4
0
ファイル: xform.py プロジェクト: caktus/commcare-hq
def get_case_ids_from_form(xform):
    from corehq.form_processor.parsers.ledgers.form import get_case_ids_from_stock_transactions
    case_ids = set(cu.id for cu in get_case_updates(xform))
    if xform:
        case_ids.update(get_case_ids_from_stock_transactions(xform))
    return case_ids
コード例 #5
0
def get_cases_from_form(domain, form):
    from corehq.form_processor.parsers.ledgers.form import get_case_ids_from_stock_transactions
    case_ids = get_case_ids_from_form(
        form) | get_case_ids_from_stock_transactions(form)
    return CaseAccessors(domain).get_cases(list(case_ids))
コード例 #6
0
ファイル: xform.py プロジェクト: soitun/commcare-hq
def get_case_ids_from_form(xform):
    from corehq.form_processor.parsers.ledgers.form import get_case_ids_from_stock_transactions
    case_ids = set(case_id_from_block(b) for b in extract_case_blocks(xform))
    if xform:
        case_ids.update(get_case_ids_from_stock_transactions(xform))
    return case_ids
コード例 #7
0
def _get_cases_from_form(domain, form):
    from corehq.form_processor.parsers.ledgers.form import get_case_ids_from_stock_transactions
    case_ids = get_case_ids_from_form(form) | get_case_ids_from_stock_transactions(form)
    return CaseAccessors(domain).get_cases(list(case_ids))