Compare commits

...

13 Commits

Author SHA1 Message Date
Colin Maudry dbc80ad94e Merge branch 'hotfix/2.0.1' 2025-09-24 10:22:59 +02:00
Colin Maudry ec877669d4 Détails sur le déploiement dans README 2025-09-24 10:21:40 +02:00
Colin Maudry a41b70d5af Script pour le déploiement 2025-09-24 09:51:03 +02:00
Colin Maudry e41dbe772c Merged 2025-09-23 17:42:09 +02:00
Colin Maudry 5a3770027f Merge branch 'hotfix/2.0.1' 2025-09-23 17:40:14 +02:00
Colin Maudry 5c90b5f350 bump version number 2025-09-23 17:40:05 +02:00
Colin Maudry dd229a212f Bloquage du bouton de téléchargement si trop de lignes #38 2025-09-23 17:35:31 +02:00
Colin Maudry 8bcf57ce83 Merge branch 'hotfix/2.0.1' into dev 2025-09-23 13:14:29 +02:00
Colin Maudry 0fea49109a Bloquage du bouton de téléchargement si trop de lignes #38 2025-09-23 13:10:42 +02:00
Colin Maudry 8337f7cbf1 Merge branch 'hotfix/2.0.1' into dev 2025-09-23 12:30:03 +02:00
Colin Maudry 159d409237 Bloquage du bouton de téléchargement si trop de lignes #38 2025-09-23 12:29:41 +02:00
Colin Maudry 1586f9b7e4 Merge tag 'v2.0.1' into dev
Typos et instructions d'installation
2025-09-23 10:29:09 +02:00
Colin Maudry 0c99f037b5 Merge tag 'v2.0' into dev
- détails des sources de données
- section "À propos" plus développée
- correction de bugs dans les filtres de la data table
2025-09-23 09:11:11 +02:00
6 changed files with 59 additions and 9 deletions
+2 -2
View File
@@ -19,7 +19,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
environment: ${{ github.ref_name }} environment: ${{ github.ref_name }}
steps: steps:
- name: Checkout repositorypu - name: Checkout repository
uses: actions/checkout@v3 uses: actions/checkout@v3
- name: Set up SSH key - name: Set up SSH key
@@ -40,4 +40,4 @@ jobs:
key: ${{ secrets.ARTIFACT_SSH_KEY }} key: ${{ secrets.ARTIFACT_SSH_KEY }}
passphrase: ${{ secrets.SSH_PSWD }} passphrase: ${{ secrets.SSH_PSWD }}
command_timeout: 5m command_timeout: 5m
script: ${{ secrets.APP_PATH }}/deploy.sh script: ${{ secrets.APP_PATH }}/deploy.sh ${{ env.APP_NAME }}
+12 -2
View File
@@ -24,6 +24,11 @@ gunicorn app:server
python run.py python run.py
``` ```
## Déploiement
- **Production** (branche `main`, [decp.info](https://decp.info)) : déploiement manuel via un déclenchement de la Github Action [Déploiement](https://github.com/ColinMaudry/decp.info/actions/workflows/deploy.yaml).
- **Test** (branche `dev`, [test.decp.info](https://test.decp.info)) : déploiement automatique à chaque push sur la branche `dev`, via la même Github Action.
## Liens connexes ## Liens connexes
- [decp-processing](https://github.com/ColinMaudry/decp-processing) (traitement et publication des données) - [decp-processing](https://github.com/ColinMaudry/decp-processing) (traitement et publication des données)
@@ -31,7 +36,12 @@ python run.py
## Notes de version ## Notes de version
### 2.0.1 (23 septembre 2025) #### 2.0.1 (23 septembre 2025)
- Bloquage du bouton de téléchargement si trop de lignes (+ 65000) [#38](https://github.com/ColinMaudry/decp.info/issues/38)
- Amélioration du script de déploiement (deploy.sh)
- Meilleures instructions d'installation et lancement
- Coquilles 🐚
### 2.0.0 (23 septembre 2025) ### 2.0.0 (23 septembre 2025)
@@ -39,7 +49,7 @@ python run.py
- section "À propos" plus développée - section "À propos" plus développée
- correction de bugs dans les filtres de la data table - correction de bugs dans les filtres de la data table
### 2.0.0-alpha #### 2.0.0-alpha
- Data table fonctionnelle - Data table fonctionnelle
Executable
+15
View File
@@ -0,0 +1,15 @@
#!bin/bash
# Utilisé principalement avec les Github Actions
# cf. .github/workflows/deploy.yaml
appname = "$1"
systemctl stop $appname
cd /var/www/$appname
git pull
source .venv/bin/activate
pip install .
deactivate
chown -R $appname:www-data *
systemctl start $appname
+1 -1
View File
@@ -1,7 +1,7 @@
[project] [project]
name = "decp.info" name = "decp.info"
description = "" description = ""
version = "2.0.0" version = "2.0.1"
requires-python = ">= 3.10" requires-python = ">= 3.10"
authors = [ authors = [
{ name = "Colin Maudry", email = "colin+decp@maudry.com" } { name = "Colin Maudry", email = "colin+decp@maudry.com" }
+1 -1
View File
@@ -19,7 +19,7 @@ layout = [
children=[ children=[
html.H2(title), html.H2(title),
dcc.Markdown( dcc.Markdown(
"""Outil d'exploration libre et gratuit des [Données Essentielles de la Commande Publique](), développé par Colin Maudry. """Outil d'exploration libre et gratuit des données de marchés publics, développé par Colin Maudry.
Ce projet vise à démocratiser l'accès aux données des marchés publics et à un outil performant et gratuit. Si vous le trouvez utile Ce projet vise à démocratiser l'accès aux données des marchés publics et à un outil performant et gratuit. Si vous le trouvez utile
j'aimerais beaucoup échanger avec vous pour comprendre vos cas d'usages et vos besoins. Cet outil ne peut rester performant que si je comprends les problèmes qu'il peut aider à résoudre. Ce projet ne peut rester gratuit que grâce au financement du développement de nouvelles fonctionnalités. j'aimerais beaucoup échanger avec vous pour comprendre vos cas d'usages et vos besoins. Cet outil ne peut rester performant que si je comprends les problèmes qu'il peut aider à résoudre. Ce projet ne peut rester gratuit que grâce au financement du développement de nouvelles fonctionnalités.
+28 -3
View File
@@ -141,7 +141,11 @@ layout = [
html.Div( html.Div(
[ [
html.P("lignes", id="nb_rows"), html.P("lignes", id="nb_rows"),
html.Button("Télécharger au format Excel", id="btn-download-data"), html.Button(
"Téléchargement désactivé au-delà de 65 000 lignes",
id="btn-download-data",
disabled=True,
),
dcc.Download(id="download-data"), dcc.Download(id="download-data"),
html.P("Données mises à jour le " + str(update_date)), html.P("Données mises à jour le " + str(update_date)),
], ],
@@ -157,6 +161,9 @@ layout = [
Output("table", "data"), Output("table", "data"),
Output("table", "data_timestamp"), Output("table", "data_timestamp"),
Output("nb_rows", "children"), Output("nb_rows", "children"),
Output("btn-download-data", "disabled"),
Output("btn-download-data", "children"),
Output("btn-download-data", "title"),
Input("table", "page_current"), Input("table", "page_current"),
Input("table", "page_size"), Input("table", "page_size"),
Input("table", "filter_query"), Input("table", "filter_query"),
@@ -215,7 +222,9 @@ def update_table(page_current, page_size, filter_query, sort_by, data_timestamp)
df_filtered = dff.clone() df_filtered = dff.clone()
nb_rows = f"{format_number(dff.height)} lignes" height = dff.height
nb_rows = f"{format_number(height)} lignes"
# Pagination des données # Pagination des données
start_row = page_current * page_size start_row = page_current * page_size
@@ -223,7 +232,23 @@ def update_table(page_current, page_size, filter_query, sort_by, data_timestamp)
dff = dff.slice(start_row, page_size) dff = dff.slice(start_row, page_size)
dicts = dff.to_dicts() dicts = dff.to_dicts()
return dicts, data_timestamp + 1, nb_rows if height > 65000:
download_disabled = True
download_text = "Téléchargement désactivé au-delà de 65 000 lignes"
download_title = "Excel ne supporte pas d'avoir plus de 65 000 URLs dans une même feuille de calcul. Contactez-moi pour me présenter votre besoin en téléchargement afin que je puisse adapter la solution."
else:
download_disabled = False
download_text = "Télécharger au format Excel"
download_title = ""
return (
dicts,
data_timestamp + 1,
nb_rows,
download_disabled,
download_text,
download_title,
)
@callback( @callback(