diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f5c9514d..13b0ffba 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -43,7 +43,7 @@ jobs: env: DOCKER_BUILDKIT: 1 run: | - docker-compose build + docker compose build - name: "Log in to docker hub" uses: azure/docker-login@v1 diff --git a/.readthedocs.yaml b/.readthedocs.yaml new file mode 100644 index 00000000..42844147 --- /dev/null +++ b/.readthedocs.yaml @@ -0,0 +1,34 @@ +# Read the Docs configuration file for Sphinx projects +# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details + +# Required +version: 2 + +# Set the OS, Python version and other tools you might need +build: + os: ubuntu-22.04 + tools: + python: "3" + # You can also specify other tool versions: + # nodejs: "20" + # rust: "1.70" + # golang: "1.20" + +# Build documentation in the "docs/" directory with Sphinx +sphinx: + configuration: docs/conf.py + # You can configure Sphinx to use a different builder, for instance use the dirhtml builder for simpler URLs + # builder: "dirhtml" + # Fail on all warnings to avoid broken references + # fail_on_warning: true + +# Optionally build your docs in additional formats such as PDF and ePub +formats: + - pdf + +# Optional but recommended, declare the Python requirements required +# to build your documentation +# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html +python: + install: + - requirements: docs/requirements.txt \ No newline at end of file diff --git a/config-php-sample.json b/config-php-sample.json index 3c611429..ed89a093 100644 --- a/config-php-sample.json +++ b/config-php-sample.json @@ -1,8 +1,8 @@ { "app_conf": { "studio_title": "GéoBretagne mviewer studio", - "mviewer_version": "3.9", - "mviewerstudio_version": "4.0.2", + "mviewer_version": "3.12", + "mviewerstudio_version": "4.1", "is_php": "true", "php": { "upload_service": "srv/php/store.php", diff --git a/config-python-sample.json b/config-python-sample.json index c21a9f88..165fd463 100644 --- a/config-python-sample.json +++ b/config-python-sample.json @@ -1,8 +1,8 @@ { "app_conf": { "studio_title": "Mviewer Studio", - "mviewer_version": "3.9", - "mviewerstudio_version": "4.0.2", + "mviewer_version": "3.12", + "mviewerstudio_version": "4.1", "api": "api/app", "store_style_service": "api/style", "mviewer_instance": "/mviewer/", diff --git a/docs/_images/user/mviewerstudio_0_accueil_credits.png b/docs/_images/user/mviewerstudio_0_accueil_credits.png index bff8a922..fbb325cb 100644 Binary files a/docs/_images/user/mviewerstudio_0_accueil_credits.png and b/docs/_images/user/mviewerstudio_0_accueil_credits.png differ diff --git a/docs/_images/user/mviewerstudio_1_application.png b/docs/_images/user/mviewerstudio_1_application.png index 199005b0..19ed1a08 100644 Binary files a/docs/_images/user/mviewerstudio_1_application.png and b/docs/_images/user/mviewerstudio_1_application.png differ diff --git a/docs/_images/user/mviewerstudio_1_application_avance.png b/docs/_images/user/mviewerstudio_1_application_avance.png index be59092c..d32d297f 100644 Binary files a/docs/_images/user/mviewerstudio_1_application_avance.png and b/docs/_images/user/mviewerstudio_1_application_avance.png differ diff --git a/docs/_images/user/mviewerstudio_1_application_carte.png b/docs/_images/user/mviewerstudio_1_application_carte.png index fbc35920..615c61e7 100644 Binary files a/docs/_images/user/mviewerstudio_1_application_carte.png and b/docs/_images/user/mviewerstudio_1_application_carte.png differ diff --git a/docs/_images/user/mviewerstudio_1_application_fonctionnalites.png b/docs/_images/user/mviewerstudio_1_application_fonctionnalites.png index 01680065..15e774e9 100644 Binary files a/docs/_images/user/mviewerstudio_1_application_fonctionnalites.png and b/docs/_images/user/mviewerstudio_1_application_fonctionnalites.png differ diff --git a/docs/_images/user/mviewerstudio_2_donnees_avancees.png b/docs/_images/user/mviewerstudio_2_donnees_avancees.png index 5fbb0531..bf099c26 100644 Binary files a/docs/_images/user/mviewerstudio_2_donnees_avancees.png and b/docs/_images/user/mviewerstudio_2_donnees_avancees.png differ diff --git a/docs/_images/user/mviewerstudio_2_donnees_filtre_dynamique.png b/docs/_images/user/mviewerstudio_2_donnees_filtre_dynamique.png index ad72cf1a..f461a824 100644 Binary files a/docs/_images/user/mviewerstudio_2_donnees_filtre_dynamique.png and b/docs/_images/user/mviewerstudio_2_donnees_filtre_dynamique.png differ diff --git a/docs/_images/user/mviewerstudio_2_donnees_general.png b/docs/_images/user/mviewerstudio_2_donnees_general.png index 73ccd27f..2fc3e809 100644 Binary files a/docs/_images/user/mviewerstudio_2_donnees_general.png and b/docs/_images/user/mviewerstudio_2_donnees_general.png differ diff --git a/docs/_images/user/mviewerstudio_2_donnees_interrogation.png b/docs/_images/user/mviewerstudio_2_donnees_interrogation.png index caa38289..a70cdfc1 100644 Binary files a/docs/_images/user/mviewerstudio_2_donnees_interrogation.png and b/docs/_images/user/mviewerstudio_2_donnees_interrogation.png differ diff --git a/docs/_images/user/mviewerstudio_2_donnees_interrogation_advanced.png b/docs/_images/user/mviewerstudio_2_donnees_interrogation_advanced.png index 44fd000d..8a244783 100644 Binary files a/docs/_images/user/mviewerstudio_2_donnees_interrogation_advanced.png and b/docs/_images/user/mviewerstudio_2_donnees_interrogation_advanced.png differ diff --git a/docs/_images/user/mviewerstudio_2_donnees_recherche.png b/docs/_images/user/mviewerstudio_2_donnees_recherche.png index a365ed3d..f0e32bd0 100644 Binary files a/docs/_images/user/mviewerstudio_2_donnees_recherche.png and b/docs/_images/user/mviewerstudio_2_donnees_recherche.png differ diff --git a/docs/_images/user/mviewerstudio_2_filtre_statique.png b/docs/_images/user/mviewerstudio_2_filtre_statique.png index 1af1c5dd..d82be3be 100644 Binary files a/docs/_images/user/mviewerstudio_2_filtre_statique.png and b/docs/_images/user/mviewerstudio_2_filtre_statique.png differ diff --git a/docs/_images/user/mviewerstudio_2_templateCustom_create.png b/docs/_images/user/mviewerstudio_2_templateCustom_create.png index 61f75249..d8089c01 100644 Binary files a/docs/_images/user/mviewerstudio_2_templateCustom_create.png and b/docs/_images/user/mviewerstudio_2_templateCustom_create.png differ diff --git a/docs/_images/user/mviewerstudio_2_templateCustom_manageOptions.png b/docs/_images/user/mviewerstudio_2_templateCustom_manageOptions.png index 58f648a9..bd4ef792 100644 Binary files a/docs/_images/user/mviewerstudio_2_templateCustom_manageOptions.png and b/docs/_images/user/mviewerstudio_2_templateCustom_manageOptions.png differ diff --git a/docs/doc_tech/dev_corner.rst b/docs/doc_tech/dev_corner.rst new file mode 100644 index 00000000..052c51fd --- /dev/null +++ b/docs/doc_tech/dev_corner.rst @@ -0,0 +1,142 @@ +.. Authors : +.. mviewer team + +.. _dev_corner: + +Coin du développeur +=================== + + +Cette documentation permet de démarrer le backend Python avec VS Code (mode développement). + +Cette documentation est à suivre si vous souhaitez développer avec Mviewerstudio ou bien le lancer sur votre ordinateur pour une analyse en pas à pas. + + +Prérequis +--------- + +- VS code +- Extensions VS Code python +- Avoir installé Mviewerstudio (e.g via le script `.sh`) +- Disposer des droits d'exécution en local (via Flask) +- Mviewer doit être installé et accessible en local (avec droit d'écriture) + +Généralités +----------- + +Le debugger VS Code permet d'utiliser le virtualenv (répertoire .venv) installé dans le répertoire `srv/python`. + +Vous pouvez suivre cette documentation à propos des virtualenv dans VS code : + +https://docs.posit.co/ide/server-pro/user/vs-code/guide/python-environments.html + + +Vous pouvez également consultez cette documentation sur le debugger Python dans VS code : + +https://code.visualstudio.com/docs/python/tutorial-flask + + +Configuration du debugger VS Code +--------------------------------- + +1. Ouvrir le répertoire /srv/python/ dans VS Code. +2. Ouvrir le fichier .vscode/launch.json (voir la section suivante si non existant) +3. Modifier les variables d'environnement (aidez-vous de la page :ref:`install_python`) selon votre environnement + +.. code-block:: sh + + "FLASK_APP": "mviewerstudio_backend/app.py", + "FLASK_DEBUG": "1", + "CONF_PATH_FROM_MVIEWER":"apps/store", + "EXPORT_CONF_FOLDER":"/home/user/git/mviewer/apps/store/", + "MVIEWERSTUDIO_PUBLISH_PATH":"/home/user/git/mviewer/apps/public", + "CONF_PUBLISH_PATH_FROM_MVIEWER":"apps/public", + "DEFAULT_ORG":"geobretagne", + + +4. Dans VS Code assurez-vous de sélectionner le bon virtualenv (voir les documentations précédentes) + +5. Ouvrir le fichier `/srv/python/mviewerstudio_backend/static/apps/config.json` et adapter les bonnes valeurs + +Ici, mviewer est accessible en local sur http://localhost:5051 (via NodeJs) et les répertoires `apps/store` et `apps/public` ont été créés à la main, et accessible en lecture / écriture par l'utilisateur qui exécute le backend via VS Code. + +.. code-block:: sh + + "api": "api/app", + "store_style_service": "api/style", + "mviewer_instance": "http://localhost:5051/", + "publish_url": "http://localhost:5051/?config=apps/public/{{config}}.xml", + "conf_path_from_mviewer": "apps/store/", + "mviewer_short_url": { + "used": false, + "apps_folder": "store", + "public_folder": "public" + }, + +6. Si les prérequis sont respectés et les configuration bien renseignées, vous pouvez démarrer le backend avec l'outil de debug VS Code (à gauche via le bouton `Run and Debug`). + + +Fichier launcher VS Code +------------------------ + +Si le fichier n'est pas disponible, vous pouvez le créer via le générateur VS Code ou bien à la main. + +1. Création manuelle + +Dans `/srv/python`, vous devrez créer un répertoire (si inexistant) `.vscode` et un fichier `launch.json`. + +.. warning:: + Le type `python` semble déprécié mais fonctionne encore. Le type `debugpy` n'est pas compatible avec cette documentation. + +Dans le fichier launch.json, collez ce fichier et reprenez la section `Configuration du debugger VS Code` précédente. + +.. code-block:: sh + + { + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "Python Debugger: Flask", + "type": "python", + "request": "launch", + "module": "flask", + "env": { + "FLASK_APP": "mviewerstudio_backend/app.py", + "FLASK_DEBUG": "1", + "CONF_PATH_FROM_MVIEWER":"apps/store", + "EXPORT_CONF_FOLDER":"/home/user/git/mviewer/apps/store/", + "MVIEWERSTUDIO_PUBLISH_PATH":"/home/user/git/mviewer/apps/public", + "CONF_PUBLISH_PATH_FROM_MVIEWER":"apps/public", + "DEFAULT_ORG":"geobretagne", + + }, + "args": [ + "run", + "--no-debugger", + "--no-reload" + ], + "jinja": true, + "autoStartBrowser": false + } + ] + } + +2. Création via l'outil VS Code + +Ouvrez le répertoire srv/python dans VS Code. + +- A gauche, cliquez sur `Run and Debug`. + +- Dans l'interface, cliquez sur le lien dans la phrase `To customize Run and Debug create a launch.json file.`. + +- Sélectionner le type `Python Debugger` dans la liste, + +- Sélectionner le type `Flask` dans la seconde liste, + +- Dans la 3è étape, cliquez sur `Default` + +- Dans le nouveau fichier `.vscode/launch.json`, modifier les valeurs et surtout la valeur de "FLASK_APP" pour pointer vers le fichier `srv/python/mviewer_backend/app.py` + diff --git a/docs/doc_user/accueil.rst b/docs/doc_user/accueil.rst index d71733fd..b1513e10 100644 --- a/docs/doc_user/accueil.rst +++ b/docs/doc_user/accueil.rst @@ -115,6 +115,6 @@ Les liens en bas de page renvoient vers : .. _mviewer: https://github.com/mviewer/mviewer -.. _délégué: https://cms.geobretagne.fr/content/administration-deleguee-sur-geoserver +.. _délégué: https://cms.geobretagne.fr/sites/default/files/documents/202410_geobretagne_manuel_administrateur.pdf -.. _GéoBretagne: https://cms.geobretagne.fr/content/deposer-des-donnees-shapefile-sur-geobretagne-grace-pydio +.. _GéoBretagne: https://cms.geobretagne.fr/sites/default/files/documents/202410_geobretagne_manuel_administrateur.pdf diff --git a/docs/doc_user/param_appli.rst b/docs/doc_user/param_appli.rst index a9b090f8..bb6ad030 100644 --- a/docs/doc_user/param_appli.rst +++ b/docs/doc_user/param_appli.rst @@ -35,11 +35,13 @@ Activer les outils que vous souhaitez afficher au sein de votre application : * ``Outils de zoom`` : cette option permet d'activer les outils de zoom +/- sur la carte. * ``Outils de mesures`` : cette option permet d'activer les outils de mesures de distance et de surface. * ``Export de la carte en image`` : cette option permet d'exporter une capture d'écran de la carte consultée. +* ``Se géolocaliser`` : cette option permet d'activer l'outil de géolocalisation (bouton permettant à l'utilisateur de se localiser sur la carte). * :guilabel:`mode avancé` ``Affichage des coordonnées au clic`` : cette option permet d'afficher dans le bandeau en haut les coordonnées du point cliqué. * :guilabel:`mode avancé` ``Afficher les coordonnées correspondant à la position de la souris`` : cette option permet d'afficher les coordonnées correspondant à la position de la souris en bas à droite de la carte . * :guilabel:`mode avancé` ``Afficher/masquer toutes les données d'une thématique`` : active la possibilité d'afficher toutes les données d'un thème en un clic. -* ``Se géolocaliser`` : cette option permet d'activer l'outil de géolocalisation (bouton permettant à l'utilisateur de se localiser sur la carte). +* :guilabel:`mode avancé` ``Impression de la vue courante depuis le navigateur`` : active la possibilité d’imprimer la vue courante depuis le navigateur. * :guilabel:`mode avancé` ``Ouvrir la carte dans le studio`` : active la possibilité d'ouvrir la carte en cours au sein d'un mviewerstudio pour édition. +* :guilabel:`mode avancé` ``Activer le panneau pour ajouter des couches WMS`` : active la possibilité d'ajouter des couche WMS à la carte. Options de la carte ------------------------------------------- @@ -51,6 +53,7 @@ Paramétrer l'étendue et le zoom de la carte au démarrage de l'application. Ai :align: center * ``Revenir à l'étendue initiale`` : cette option permet d'activer le bouton de retour à l’étendue initiale. +* :guilabel:`mode avancé` ``Zoom maximal de l'application`` : Option permettant de définir en niveau de zoom le zoom maximal. Pa exemple 20 correspond au zoom 1/533, 18 à l'échelle 1/2133, 15 à l'échelle 1/17062. * :guilabel:`mode avancé` ``Interdire la navigation hors de l'étendue définie ci-dessus`` : bloque l'emprise de la carte sur l'emprise définie. Fonds de plan diff --git a/docs/doc_user/param_data.rst b/docs/doc_user/param_data.rst index c935c130..b1440c76 100644 --- a/docs/doc_user/param_data.rst +++ b/docs/doc_user/param_data.rst @@ -135,8 +135,9 @@ L'onglet général recense les principales options de la donnée. * ``Opacité`` : opacité par défaut de la donnée. * ``Afficher la donnée au démarrage de l'application`` : la donnée s'affiche au lancement de l'application. * ``Afficher la donnée en première position de la carte`` : la donnée s'affiche toujours au-dessus des autres données qui n'ont pas activée cette option. +* ``Afficher le panneau de la couche déplié au démarrage`` : le pannneau d'affichage de la donnée sera déplié au démarrage. Il contient filtre, opacité, métadonnée... * ``Styles disponibles`` : choix du·des style·s de la donnée dans notre application. Possibilité d'éditer le libellé du style. -* ``Libellé de la liste des styles`` : Titre de la liste de sélection des styles. +* ``Libellé de la liste des styles`` : titre de la liste de sélection des styles. Onglet Interrogation ~~~~~~~~~~~~~~~~~~~~~ @@ -166,18 +167,34 @@ Pour personnaliser l’affichage de la fiche d’information, deux options sont .. warning:: L’activation de la fonctionnalité « Utiliser un template externe » prend le dessus sur le template construit à l’aide du générateur. -Onglet filtre dynamique +Onglet filtre +~~~~~~~~~~~~~~~~~~~~~~~ + +L'onglet filtre permet de filtrer les données à afficher sur la carte. + +.. image:: ../_images/user/mviewerstudio_2_filtre_statique.png + :alt: Filtre + :align: center + +* ``Filtre attributaire`` : Filtre selon un attribut. Utilisation d'un filtre cql_. +* ``Filtre géographique`` : Filtre selon la géométrie. Utilisation d'un filtre cql_. + +.. _cql: https://docs.geoserver.org/stable/en/user/tutorials/cql/cql_tutorial.html#cql-tutorial + + + +Onglet liste de choix ~~~~~~~~~~~~~~~~~~~~~~~~ -L'onglet filtre dynamique permet de filtrer la donnée via une liste déroulante entre différentes valeurs. +L'onglet liste de choix permet de filtrer la donnée via une liste déroulante entre différentes valeurs. Disponible uniquement en :guilabel:`mode avancé` .. image:: ../_images/user/mviewerstudio_2_donnees_filtre_dynamique.png - :alt: Filtre dynamique + :alt: Liste de choix :align: center -* ``Nom du filtre`` : nom du filtre dans l'application. -* ``Champs à filtrer`` : champ sur lequel le filtre va être effectué. -* ``Valeur(s) sélectionnée(s)`` : valeurs disponibles dans le filtre. +* :guilabel:`mode avancé` ``Nom du filtre`` : nom du filtre dans l'application. +* :guilabel:`mode avancé` ``Champs à filtrer`` : champ sur lequel le filtre va être effectué. +* :guilabel:`mode avancé` ``Valeur(s) sélectionnée(s)`` : valeurs disponibles dans le filtre. Onglet options avancées ~~~~~~~~~~~~~~~~~~~~~~~~ @@ -201,20 +218,6 @@ L'onglet options avancées donne accès aux fonctionnalités avancées. Disponib * :guilabel:`mode avancé` ``Type de donnée`` : Lien vers la donnée. Ne pas modifier. * :guilabel:`mode avancé` ``Métadonnées`` : Lien vers la métadonnée. Ne pas modifier. -Onglet filtre statique -~~~~~~~~~~~~~~~~~~~~~~~ - -L'onglet filtre statique permet de filtrer les données à afficher sur la carte. Disponible uniquement en :guilabel:`mode avancé` - -.. image:: ../_images/user/mviewerstudio_2_filtre_statique.png - :alt: Filtre statique - :align: center - -* :guilabel:`mode avancé` ``Filtre attributaire`` : Filtre selon un attribut. Utilisation d'un filtre cql_. -* :guilabel:`mode avancé` ``Filtre géographique`` : Filtre selon la géométrie. Utilisation d'un filtre cql_. - -.. _cql: https://docs.geoserver.org/stable/en/user/tutorials/cql/cql_tutorial.html#cql-tutorial - Onglet recherche ~~~~~~~~~~~~~~~~~ diff --git a/docs/index.rst b/docs/index.rst index ae74a954..3a787ad4 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -47,6 +47,7 @@ Cette partie est dédiée aux personnes qui ont vocation à déployer et configu doc_tech/install_other doc_tech/config_front doc_tech/migration_notes + doc_tech/dev_corner Documentation contributeur diff --git a/docs/requirements.txt b/docs/requirements.txt index 7f188145..bd1c6cf2 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1 +1,2 @@ -docutils==0.17.1 +docutils==0.18.1 +sphinx<6 \ No newline at end of file diff --git a/index.html b/index.html index e883fdc6..581af10f 100755 --- a/index.html +++ b/index.html @@ -14,7 +14,7 @@ - + @@ -245,13 +245,13 @@