annikwag commited on
Commit
cd592ff
·
verified ·
1 Parent(s): 8b99f14

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -15
app.py CHANGED
@@ -165,7 +165,7 @@ def filter_results(results, country_filter, region_filter, end_year_range, crs_f
165
  filtered = []
166
  for r in results:
167
  metadata = r.payload.get('metadata', {})
168
- countries = metadata.get('countries', "[]")
169
  year_str = metadata.get('end_year')
170
  if year_str:
171
  extracted = extract_year(year_str)
@@ -177,16 +177,16 @@ def filter_results(results, country_filter, region_filter, end_year_range, crs_f
177
  end_year_val = 0
178
 
179
  try:
180
- c_list = json.loads(countries.replace("'", '"'))
181
  c_list = [code.upper() for code in c_list if len(code) == 2]
182
  except json.JSONDecodeError:
183
  c_list = []
184
 
185
  selected_iso_code = country_name_mapping.get(country_filter, None)
186
  if region_filter != "All/Not allocated":
187
- countries_in_region = [code for code in c_list if iso_code_to_sub_region.get(code) == region_filter]
188
  else:
189
- countries_in_region = c_list
190
 
191
  crs_key = metadata.get("crs_key", "").strip()
192
  # Convert crs_key to a string and remove trailing ".0"
@@ -212,7 +212,7 @@ def filter_results(results, country_filter, region_filter, end_year_range, crs_f
212
  year_ok = True if end_year_val == 0 else (end_year_range[0] <= end_year_val <= end_year_range[1])
213
 
214
  if ((country_filter == "All/Not allocated" or (selected_iso_code and selected_iso_code in c_list))
215
- and (region_filter == "All/Not allocated" or countries_in_region)
216
  and year_ok):
217
  filtered.append(r)
218
  return filtered
@@ -276,9 +276,9 @@ def get_country_name_and_region_mapping(_client, collection_name, region_df):
276
  results = hybrid_search(_client, "", collection_name)
277
  country_set = set()
278
  for res in results[0] + results[1]:
279
- countries = res.payload.get('metadata', {}).get('countries', "[]")
280
  try:
281
- country_list = json.loads(countries.replace("'", '"'))
282
  two_digit_codes = [code.upper() for code in country_list if len(code) == 2]
283
  country_set.update(two_digit_codes)
284
  except json.JSONDecodeError:
@@ -406,15 +406,15 @@ else:
406
  formatted_project_budget = format_currency(total_project)
407
  formatted_total_volume = format_currency(total_volume)
408
  try:
409
- c_list = json.loads(metadata.get('countries', "[]").replace("'", '"'))
410
  except json.JSONDecodeError:
411
  c_list = []
412
- matched_countries = []
413
  for code in c_list:
414
  if len(code) == 2:
415
  resolved_name = get_country_name(code.upper(), region_df)
416
  if resolved_name.upper() != code.upper():
417
- matched_countries.append(resolved_name)
418
  crs_key = metadata.get("crs_key", "").strip()
419
  # Convert to string and remove trailing ".0"
420
  crs_key_clean = re.sub(r'\.0$', '', str(crs_key))
@@ -429,7 +429,7 @@ else:
429
  f"**Commissioned by:** {client_name}<br>"
430
  f"**Projekt duration:** {start_year_str}-{end_year_str}<br>"
431
  f"**Budget:** Project: {formatted_project_budget}, Total volume: {formatted_total_volume}<br>"
432
- f"**Country:** {', '.join(matched_countries)}<br>"
433
  f"**Sector:** {crs_combined}"
434
  )
435
  #if contact and contact.lower() != "[email protected]":
@@ -478,15 +478,15 @@ else:
478
  formatted_project_budget = format_currency(total_project)
479
  formatted_total_volume = format_currency(total_volume)
480
  try:
481
- c_list = json.loads(metadata.get('countries', "[]").replace("'", '"'))
482
  except json.JSONDecodeError:
483
  c_list = []
484
- matched_countries = []
485
  for code in c_list:
486
  if len(code) == 2:
487
  resolved_name = get_country_name(code.upper(), region_df)
488
  if resolved_name.upper() != code.upper():
489
- matched_countries.append(resolved_name)
490
  crs_key = metadata.get("crs_key", "").strip()
491
  # Convert to string and remove trailing ".0"
492
  crs_key_clean = re.sub(r'\.0$', '', str(crs_key))
@@ -500,7 +500,7 @@ else:
500
  f"**Commissioned by:** {client_name}<br>"
501
  f"**Projekt duration:** {start_year_str}-{end_year_str}<br>"
502
  f"**Budget:** Project: {formatted_project_budget}, Total volume: {formatted_total_volume}<br>"
503
- f"**Country:** {', '.join(matched_countries)}<br>"
504
  f"**Sector:** {crs_combined}"
505
  )
506
  #if contact and contact.lower() != "[email protected]":
 
165
  filtered = []
166
  for r in results:
167
  metadata = r.payload.get('metadata', {})
168
+ country = metadata.get('country', "[]")
169
  year_str = metadata.get('end_year')
170
  if year_str:
171
  extracted = extract_year(year_str)
 
177
  end_year_val = 0
178
 
179
  try:
180
+ c_list = json.loads(country.replace("'", '"'))
181
  c_list = [code.upper() for code in c_list if len(code) == 2]
182
  except json.JSONDecodeError:
183
  c_list = []
184
 
185
  selected_iso_code = country_name_mapping.get(country_filter, None)
186
  if region_filter != "All/Not allocated":
187
+ country_in_region = [code for code in c_list if iso_code_to_sub_region.get(code) == region_filter]
188
  else:
189
+ country_in_region = c_list
190
 
191
  crs_key = metadata.get("crs_key", "").strip()
192
  # Convert crs_key to a string and remove trailing ".0"
 
212
  year_ok = True if end_year_val == 0 else (end_year_range[0] <= end_year_val <= end_year_range[1])
213
 
214
  if ((country_filter == "All/Not allocated" or (selected_iso_code and selected_iso_code in c_list))
215
+ and (region_filter == "All/Not allocated" or country_in_region)
216
  and year_ok):
217
  filtered.append(r)
218
  return filtered
 
276
  results = hybrid_search(_client, "", collection_name)
277
  country_set = set()
278
  for res in results[0] + results[1]:
279
+ country = res.payload.get('metadata', {}).get('country', "[]")
280
  try:
281
+ country_list = json.loads(country.replace("'", '"'))
282
  two_digit_codes = [code.upper() for code in country_list if len(code) == 2]
283
  country_set.update(two_digit_codes)
284
  except json.JSONDecodeError:
 
406
  formatted_project_budget = format_currency(total_project)
407
  formatted_total_volume = format_currency(total_volume)
408
  try:
409
+ c_list = json.loads(metadata.get('country', "[]").replace("'", '"'))
410
  except json.JSONDecodeError:
411
  c_list = []
412
+ matched_country = []
413
  for code in c_list:
414
  if len(code) == 2:
415
  resolved_name = get_country_name(code.upper(), region_df)
416
  if resolved_name.upper() != code.upper():
417
+ matched_country.append(resolved_name)
418
  crs_key = metadata.get("crs_key", "").strip()
419
  # Convert to string and remove trailing ".0"
420
  crs_key_clean = re.sub(r'\.0$', '', str(crs_key))
 
429
  f"**Commissioned by:** {client_name}<br>"
430
  f"**Projekt duration:** {start_year_str}-{end_year_str}<br>"
431
  f"**Budget:** Project: {formatted_project_budget}, Total volume: {formatted_total_volume}<br>"
432
+ f"**Country:** {', '.join(matched_country)}<br>"
433
  f"**Sector:** {crs_combined}"
434
  )
435
  #if contact and contact.lower() != "[email protected]":
 
478
  formatted_project_budget = format_currency(total_project)
479
  formatted_total_volume = format_currency(total_volume)
480
  try:
481
+ c_list = json.loads(metadata.get('country', "[]").replace("'", '"'))
482
  except json.JSONDecodeError:
483
  c_list = []
484
+ matched_country = []
485
  for code in c_list:
486
  if len(code) == 2:
487
  resolved_name = get_country_name(code.upper(), region_df)
488
  if resolved_name.upper() != code.upper():
489
+ matched_country.append(resolved_name)
490
  crs_key = metadata.get("crs_key", "").strip()
491
  # Convert to string and remove trailing ".0"
492
  crs_key_clean = re.sub(r'\.0$', '', str(crs_key))
 
500
  f"**Commissioned by:** {client_name}<br>"
501
  f"**Projekt duration:** {start_year_str}-{end_year_str}<br>"
502
  f"**Budget:** Project: {formatted_project_budget}, Total volume: {formatted_total_volume}<br>"
503
+ f"**Country:** {', '.join(matched_country)}<br>"
504
  f"**Sector:** {crs_combined}"
505
  )
506
  #if contact and contact.lower() != "[email protected]":