| import streamlit as st |
| import re |
| from data_manager_bziiit import get_rse_projects |
|
|
| def remove_html_tags(text): |
| """Supprimer les balises HTML d'une chaîne de caractères.""" |
| clean_text = re.sub('<.*?>', '', text) |
| return clean_text |
|
|
| def display_rse_projects(): |
| st.markdown(""" |
| <style> |
| table { |
| background-color: inherit !important; |
| } |
| </style> |
| """, unsafe_allow_html=True) |
|
|
| st.markdown("## OPEN DATA bziiit Projet RSE") |
| st.markdown("### Découvrez tous les projets RSE des marques référencées") |
| |
| projects = get_rse_projects() |
| if projects: |
| categories = list({project["rse_category"] if project["rse_category"] is not None else "Non catégorisé" for project in projects}) |
| categories.sort() |
| categories.insert(0, 'Toutes') |
| selected_category = st.selectbox("Filtre par catégorie RSE", categories, index=0) |
|
|
| if selected_category != 'Toutes': |
| filtered_projects = [project for project in projects if project["rse_category"] == selected_category or (selected_category == "Non catégorisé" and project["rse_category"] is None)] |
| else: |
| filtered_projects = projects |
|
|
| st.markdown(f"**Nombre de projets :** {len(filtered_projects)}") |
|
|
| |
| for i in range(0, len(filtered_projects), 5): |
| cols = st.columns(5) |
| for j in range(5): |
| if i + j < len(filtered_projects): |
| project = filtered_projects[i + j] |
| with cols[j]: |
| if project['logo_url']: |
| st.image(project['logo_url']) |
| st.markdown(f'<p style="text-align: center;"><b>{project["brand"]["name"]}</b></p>', unsafe_allow_html=True) |
| st.markdown(f'<p style="text-align: center;"><b>"{project["name"]}"</b></p>', unsafe_allow_html=True) |
| st.markdown(f'<p style="text-align: center; font-size: 10px; color: darkgray;">{project["rse_category"] if project["rse_category"] is not None else "Non catégorisé"}</p>', unsafe_allow_html=True) |
| st.markdown('<hr style="border-top: 1px dotted lightgray; width:100%;">', unsafe_allow_html=True) |