File size: 4,137 Bytes
883557f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
import streamlit as st
import pandas as pd

"""

Result table for the All Projects Page

"""

def show_all_projects_table(projects_df, result_df):
    result_df['crs_3_code_list'] = result_df['crs_3_name'].apply(
        lambda x: [""] if pd.isna(x) else (str(x).split(";")[:-1] if str(x).endswith(";") else str(x).split(";"))
    )
    result_df['crs_5_code_list'] = result_df['crs_5_name'].apply(
        lambda x: [""] if pd.isna(x) else (str(x).split(";")[:-1] if str(x).endswith(";") else str(x).split(";"))
    )
    result_df['sdg_list'] = result_df['sgd_pred_code'].apply(
        lambda x: [""] if pd.isna(x) else (str(x).split(";")[:-1] if str(x).endswith(";") else str(x).split(";"))
    )

    # Convert orga_abbreviation to uppercase for the selected project
    result_df['orga_abbreviation'] = result_df['orga_abbreviation'].str.upper()

    # Set country_flag to None if country_name is missing
    result_df['country_flag'] = result_df.apply(
        lambda row: None if pd.isna(row['country_name']) else row['country_flag'],
        axis=1
    )

    # Convert the Project Link column to clickable Markdown links
    #result_df['Project Link'] = result_df['Project Link'].apply(lambda x: f"[Link]({x})")

    if len(result_df) == 0:
        st.write("No results found!")
    else:
        result_df = result_df.reset_index(drop=True)

        st.dataframe(
            result_df[["iati_id", "title_main", "orga_abbreviation", "description_main", "country_name", "country_flag", "sdg_list", "crs_3_code_list", "crs_5_code_list", "Project Link"]],
            use_container_width=True,
            height=35 + 35 * len(result_df),
            column_config={
                "iati_id": st.column_config.TextColumn(
                    "IATI ID",
                    help="IATI Project ID",
                    disabled=True,
                    width="small"
                ),
                "orga_abbreviation": st.column_config.TextColumn(
                    "Organization",
                    help="If description not in English, description in other language provided",
                    disabled=True,
                    width="small"
                ),
                "title_main": st.column_config.TextColumn(
                    "Title",
                    help="If title not in English, title in other language provided",
                    disabled=True,
                    width="large"
                ),
                "description_main": st.column_config.TextColumn(
                    "Description",
                    help="If description not in English, description in other language provided",
                    disabled=True,
                    width="large"
                ),
                "country_name": st.column_config.TextColumn(
                    "Country",
                    help="Country of project",
                    disabled=True,
                    width="small"
                ),
                "country_flag": st.column_config.ImageColumn(
                    "Flag",
                    help="country flag",
                    width="small"
                ),
                "sdg_list": st.column_config.ListColumn(
                    "SDG Prediction",
                    help="Prediction of SDG's",
                    width="small"
                ),
                "crs_3_code_list": st.column_config.ListColumn(
                    "CRS 3",
                    help="CRS 3 code given by organization",
                    width="medium"
                ),
                "crs_5_code_list": st.column_config.ListColumn(
                    "CRS 5",
                    help="CRS 5 code given by organization",
                    width="medium"
                ),
                "Project Link": st.column_config.TextColumn(
                    "Project Link",
                    help="Link to the project",
                    disabled=True,
                    width="small"
                ),
            },
            hide_index=True,
        )