|
33 | 33 | "member_label_plural", |
34 | 34 | "master_detail", |
35 | 35 | ) |
36 | | -Program_FIELDS = "name", "code", "status", "sector", "country_office", "beneficiary_group" |
37 | 36 |
|
38 | 37 | HOPE_ID = "hope_id" |
39 | 38 | BUSINESS_AREAS = "business-areas" |
40 | 39 | BENEFICIARY_GROUPS = "beneficiary-groups" |
41 | 40 | PROGRAMS = "programs" |
42 | 41 |
|
43 | 42 |
|
44 | | -def get_default_checkers() -> Mapping[str, DataChecker]: |
45 | | - return { |
46 | | - name: DataChecker.objects.filter(name=const_name).first() |
47 | | - for name, const_name in ( |
48 | | - ("hh", HOUSEHOLD_CHECKER_NAME), |
49 | | - ("ind", INDIVIDUAL_CHECKER_NAME), |
50 | | - ("ppl", PEOPLE_CHECKER_NAME), |
51 | | - ) |
52 | | - } |
| 43 | +def get_default_checkers() -> Mapping[str, DataChecker | None]: |
| 44 | + target_to_checker_name = {"hh": HOUSEHOLD_CHECKER_NAME, "ind": INDIVIDUAL_CHECKER_NAME, "ppl": PEOPLE_CHECKER_NAME} |
| 45 | + checker_by_name = {c.name: c for c in DataChecker.objects.filter(name__in=target_to_checker_name.values())} |
| 46 | + return {k: checker_by_name.get(v) for k, v in target_to_checker_name.items()} |
53 | 47 |
|
54 | 48 |
|
55 | 49 | def get_field_extractor(fields: tuple[str, ...]) -> Callable[[dict[str, Any]], dict[str, Any]]: |
@@ -109,13 +103,13 @@ def prepare_program_defaults(record: dict[str, Any]) -> dict[str, Any] | None: |
109 | 103 | raise SkipRecordError("Beneficiary group not found") from e |
110 | 104 |
|
111 | 105 | return { |
112 | | - "name": record["name"], |
| 106 | + "biometric_deduplication_enabled": record["biometric_deduplication_enabled"], |
113 | 107 | "code": record["programme_code"], |
114 | | - "status": record["status"], |
| 108 | + "name": record["name"], |
115 | 109 | "sector": record["sector"], |
116 | | - "biometric_deduplication_enabled": record["biometric_deduplication_enabled"], |
117 | | - "country_office": office, |
| 110 | + "status": record["status"], |
118 | 111 | "beneficiary_group": bg, |
| 112 | + "country_office": office, |
119 | 113 | } |
120 | 114 |
|
121 | 115 |
|
@@ -151,13 +145,12 @@ def post_process_program(program: Program, created: bool) -> None: |
151 | 145 | default_checkers = get_default_checkers() |
152 | 146 | update_fields: list[str] = [] |
153 | 147 |
|
154 | | - if default_checkers: |
155 | | - program.household_checker = default_checkers.get("hh") |
156 | | - program.individual_checker = ( |
157 | | - default_checkers.get("ind") if program.beneficiary_group.master_detail else default_checkers.get("ppl") |
158 | | - ) |
159 | | - if program.household_checker or program.individual_checker: |
160 | | - update_fields.extend(["household_checker", "individual_checker"]) |
| 148 | + program.household_checker = default_checkers.get("hh") |
| 149 | + program.individual_checker = ( |
| 150 | + default_checkers.get("ind") if program.beneficiary_group.master_detail else default_checkers.get("ppl") |
| 151 | + ) |
| 152 | + if program.household_checker or program.individual_checker: |
| 153 | + update_fields.extend(["household_checker", "individual_checker"]) |
161 | 154 |
|
162 | 155 | hh_ignored = get_default_ignored_fields("hh") |
163 | 156 | if hh_ignored: |
|
0 commit comments