Skip to content

Commit 32ec912

Browse files
authored
Merge pull request #39 from alpha-canada-ca/fix/tss-department-removal
Fix: tss department removal of INFC and replace with HICC / LICC
2 parents 9a5fe81 + 2173f80 commit 32ec912

2 files changed

Lines changed: 24 additions & 7 deletions

File tree

src/main/java/ca/gc/tbs/controller/TopTaskController.java

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -244,17 +244,17 @@ public class TopTaskController {
244244
institutionMappings.put(
245245
"HC", Arrays.asList("HC", "SC", "HEALTH CANADA", "SANTÉ CANADA", "HC / SC"));
246246
institutionMappings.put(
247-
"HICC",
247+
"INFC",
248248
Arrays.asList(
249249
"HICC",
250250
"LICC",
251251
"HOUSING, INFRASTRUCTURE AND COMMUNITIES CANADA",
252252
"LOGEMENT, INFRASTRUCTURES ET COLLECTIVITÉS CANADA",
253+
"INFC / INFC",
254+
"INFC",
255+
"INFRASTRUCTURE CANADA",
256+
"INFRASTRUCTURE CANADA",
253257
"HICC / LICC"));
254-
institutionMappings.put(
255-
"INFC",
256-
Arrays.asList(
257-
"INFC", "INFC", "INFRASTRUCTURE CANADA", "INFRASTRUCTURE CANADA", "INFC / INFC"));
258258
institutionMappings.put(
259259
"IOGC",
260260
Arrays.asList(
@@ -1112,9 +1112,25 @@ public ResponseEntity<?> getProblemsJson(
11121112
}
11131113

11141114
private Criteria applyDepartmentFilter(Criteria criteria, String department) {
1115-
// First try direct case-insensitive match for exact database values
1115+
List<String> variations = new ArrayList<>();
1116+
for (Map.Entry<String, List<String>> entry : institutionMappings.entrySet()) {
1117+
List<String> mappingValues = entry.getValue();
1118+
if (mappingValues.stream().anyMatch(v -> v.equalsIgnoreCase(department))) {
1119+
variations.addAll(mappingValues);
1120+
break;
1121+
}
1122+
}
1123+
if (variations.isEmpty()) {
11161124
criteria.and("dept").regex("^" + Pattern.quote(department) + "$", "i");
1117-
return criteria;
1125+
} else {
1126+
List<Criteria> deptCriteria = new ArrayList<>();
1127+
for (String variation : variations) {
1128+
deptCriteria.add(Criteria.where("dept").regex("^" + Pattern.quote(variation) + "$", "i"));
1129+
}
1130+
criteria.orOperator(deptCriteria.toArray(new Criteria[0]));
1131+
}
1132+
1133+
return criteria;
11181134
}
11191135

11201136
@GetMapping(value = "/topTaskSurvey")

src/main/resources/templates/department_datalist.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -485,6 +485,7 @@
485485
Groupe consultatif sur la conduite respionsable de la recherche</option>
486486
<option value="Le projet des centres d'opérations de sécurité maritimet">Le
487487
projet des centres d'opérations de sécurité maritimet</option>
488+
<option value="Logement, Infrastructures et Collectivités Canada">Logement, Infrastructures et Collectivités Canada</option>
488489
<option value="Marine royale canadienne">Marine
489490
royale canadienne</option>
490491
<option value="Mesures Canada">Mesures Canada</option>

0 commit comments

Comments
 (0)