feat: Release version 3.1.4 - Mode terrain et génération PDF
✨ Nouvelles fonctionnalités: - Ajout du mode terrain pour utilisation mobile hors connexion - Génération automatique de reçus PDF avec template personnalisé - Révision complète du système de cartes avec amélioration des performances 🔧 Améliorations techniques: - Refactoring du module chat avec architecture simplifiée - Optimisation du système de sécurité NIST SP 800-63B - Amélioration de la gestion des secteurs géographiques - Support UTF-8 étendu pour les noms d'utilisateurs 📱 Application mobile: - Nouveau mode terrain dans user_field_mode_page - Interface utilisateur adaptative pour conditions difficiles - Synchronisation offline améliorée 🗺️ Cartographie: - Optimisation des performances MapBox - Meilleure gestion des tuiles hors ligne - Amélioration de l'affichage des secteurs 📄 Documentation: - Ajout guide Android (ANDROID-GUIDE.md) - Documentation sécurité API (API-SECURITY.md) - Guide module chat (CHAT_MODULE.md) 🐛 Corrections: - Résolution des erreurs 400 lors de la création d'utilisateurs - Correction de la validation des noms d'utilisateurs - Fix des problèmes de synchronisation chat 🤖 Generated with Claude Code (https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1 +1 @@
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
"DQsHH2Fzc2V0cy9hbmltYXRpb25zL2dlb19tYWluLmpzb24MAQ0BBwVhc3NldAcfYXNzZXRzL2FuaW1hdGlvbnMvZ2VvX21haW4uanNvbgcqYXNzZXRzL2ZvbnRzL0ZpZ3RyZWUtVmFyaWFibGVGb250X3dnaHQudHRmDAENAQcFYXNzZXQHKmFzc2V0cy9mb250cy9GaWd0cmVlLVZhcmlhYmxlRm9udF93Z2h0LnR0ZgcgYXNzZXRzL2ltYWdlcy9nZW9zZWN0b3ItbG9nby5wbmcMAQ0BBwVhc3NldAcgYXNzZXRzL2ltYWdlcy9nZW9zZWN0b3ItbG9nby5wbmcHJWFzc2V0cy9pbWFnZXMvZ2Vvc2VjdG9yX21hcF9hZG1pbi5wbmcMAQ0BBwVhc3NldAclYXNzZXRzL2ltYWdlcy9nZW9zZWN0b3JfbWFwX2FkbWluLnBuZwcgYXNzZXRzL2ltYWdlcy9pY29uLWdlb3NlY3Rvci5zdmcMAQ0BBwVhc3NldAcgYXNzZXRzL2ltYWdlcy9pY29uLWdlb3NlY3Rvci5zdmcHJWFzc2V0cy9pbWFnZXMvbG9nby1nZW9zZWN0b3ItMTAyNC5wbmcMAQ0BBwVhc3NldAclYXNzZXRzL2ltYWdlcy9sb2dvLWdlb3NlY3Rvci0xMDI0LnBuZwckYXNzZXRzL2ltYWdlcy9sb2dvLWdlb3NlY3Rvci01MTIucG5nDAENAQcFYXNzZXQHJGFzc2V0cy9pbWFnZXMvbG9nby1nZW9zZWN0b3ItNTEyLnBuZwcxYXNzZXRzL2ltYWdlcy9sb2dvLWdlb3NlY3Rvci01MTIucG5nLWF1dG9zYXZlLmtyYQwBDQEHBWFzc2V0BzFhc3NldHMvaW1hZ2VzL2xvZ28tZ2Vvc2VjdG9yLTUxMi5wbmctYXV0b3NhdmUua3JhBxthc3NldHMvaW1hZ2VzL2xvZ29fcmVjdS5wbmcMAQ0BBwVhc3NldAcbYXNzZXRzL2ltYWdlcy9sb2dvX3JlY3UucG5nBzJwYWNrYWdlcy9jdXBlcnRpbm9faWNvbnMvYXNzZXRzL0N1cGVydGlub0ljb25zLnR0ZgwBDQEHBWFzc2V0BzJwYWNrYWdlcy9jdXBlcnRpbm9faWNvbnMvYXNzZXRzL0N1cGVydGlub0ljb25zLnR0Zgc0cGFja2FnZXMvZmx1dHRlcl9tYXAvbGliL2Fzc2V0cy9mbHV0dGVyX21hcF9sb2dvLnBuZwwBDQEHBWFzc2V0BzRwYWNrYWdlcy9mbHV0dGVyX21hcC9saWIvYXNzZXRzL2ZsdXR0ZXJfbWFwX2xvZ28ucG5n"
|
||||
"DQwHH2Fzc2V0cy9hbmltYXRpb25zL2dlb19tYWluLmpzb24MAQ0BBwVhc3NldAcfYXNzZXRzL2FuaW1hdGlvbnMvZ2VvX21haW4uanNvbgcqYXNzZXRzL2ZvbnRzL0ZpZ3RyZWUtVmFyaWFibGVGb250X3dnaHQudHRmDAENAQcFYXNzZXQHKmFzc2V0cy9mb250cy9GaWd0cmVlLVZhcmlhYmxlRm9udF93Z2h0LnR0ZgcgYXNzZXRzL2ltYWdlcy9nZW9zZWN0b3ItbG9nby5wbmcMAQ0BBwVhc3NldAcgYXNzZXRzL2ltYWdlcy9nZW9zZWN0b3ItbG9nby5wbmcHJWFzc2V0cy9pbWFnZXMvZ2Vvc2VjdG9yX21hcF9hZG1pbi5wbmcMAQ0BBwVhc3NldAclYXNzZXRzL2ltYWdlcy9nZW9zZWN0b3JfbWFwX2FkbWluLnBuZwcgYXNzZXRzL2ltYWdlcy9pY29uLWdlb3NlY3Rvci5zdmcMAQ0BBwVhc3NldAcgYXNzZXRzL2ltYWdlcy9pY29uLWdlb3NlY3Rvci5zdmcHJWFzc2V0cy9pbWFnZXMvbG9nby1nZW9zZWN0b3ItMTAyNC5wbmcMAQ0BBwVhc3NldAclYXNzZXRzL2ltYWdlcy9sb2dvLWdlb3NlY3Rvci0xMDI0LnBuZwckYXNzZXRzL2ltYWdlcy9sb2dvLWdlb3NlY3Rvci01MTIucG5nDAENAQcFYXNzZXQHJGFzc2V0cy9pbWFnZXMvbG9nby1nZW9zZWN0b3ItNTEyLnBuZwcxYXNzZXRzL2ltYWdlcy9sb2dvLWdlb3NlY3Rvci01MTIucG5nLWF1dG9zYXZlLmtyYQwBDQEHBWFzc2V0BzFhc3NldHMvaW1hZ2VzL2xvZ28tZ2Vvc2VjdG9yLTUxMi5wbmctYXV0b3NhdmUua3JhBxthc3NldHMvaW1hZ2VzL2xvZ29fcmVjdS5wbmcMAQ0BBwVhc3NldAcbYXNzZXRzL2ltYWdlcy9sb2dvX3JlY3UucG5nBxlsaWIvY2hhdC9jaGF0X2NvbmZpZy55YW1sDAENAQcFYXNzZXQHGWxpYi9jaGF0L2NoYXRfY29uZmlnLnlhbWwHMnBhY2thZ2VzL2N1cGVydGlub19pY29ucy9hc3NldHMvQ3VwZXJ0aW5vSWNvbnMudHRmDAENAQcFYXNzZXQHMnBhY2thZ2VzL2N1cGVydGlub19pY29ucy9hc3NldHMvQ3VwZXJ0aW5vSWNvbnMudHRmBzRwYWNrYWdlcy9mbHV0dGVyX21hcC9saWIvYXNzZXRzL2ZsdXR0ZXJfbWFwX2xvZ28ucG5nDAENAQcFYXNzZXQHNHBhY2thZ2VzL2ZsdXR0ZXJfbWFwL2xpYi9hc3NldHMvZmx1dHRlcl9tYXBfbG9nby5wbmc="
|
||||
@@ -1 +1 @@
|
||||
{"assets/animations/geo_main.json":["assets/animations/geo_main.json"],"assets/fonts/Figtree-VariableFont_wght.ttf":["assets/fonts/Figtree-VariableFont_wght.ttf"],"assets/images/geosector-logo.png":["assets/images/geosector-logo.png"],"assets/images/geosector_map_admin.png":["assets/images/geosector_map_admin.png"],"assets/images/icon-geosector.svg":["assets/images/icon-geosector.svg"],"assets/images/logo-geosector-1024.png":["assets/images/logo-geosector-1024.png"],"assets/images/logo-geosector-512.png":["assets/images/logo-geosector-512.png"],"assets/images/logo-geosector-512.png-autosave.kra":["assets/images/logo-geosector-512.png-autosave.kra"],"assets/images/logo_recu.png":["assets/images/logo_recu.png"],"packages/cupertino_icons/assets/CupertinoIcons.ttf":["packages/cupertino_icons/assets/CupertinoIcons.ttf"],"packages/flutter_map/lib/assets/flutter_map_logo.png":["packages/flutter_map/lib/assets/flutter_map_logo.png"]}
|
||||
{"assets/animations/geo_main.json":["assets/animations/geo_main.json"],"assets/fonts/Figtree-VariableFont_wght.ttf":["assets/fonts/Figtree-VariableFont_wght.ttf"],"assets/images/geosector-logo.png":["assets/images/geosector-logo.png"],"assets/images/geosector_map_admin.png":["assets/images/geosector_map_admin.png"],"assets/images/icon-geosector.svg":["assets/images/icon-geosector.svg"],"assets/images/logo-geosector-1024.png":["assets/images/logo-geosector-1024.png"],"assets/images/logo-geosector-512.png":["assets/images/logo-geosector-512.png"],"assets/images/logo-geosector-512.png-autosave.kra":["assets/images/logo-geosector-512.png-autosave.kra"],"assets/images/logo_recu.png":["assets/images/logo_recu.png"],"lib/chat/chat_config.yaml":["lib/chat/chat_config.yaml"],"packages/cupertino_icons/assets/CupertinoIcons.ttf":["packages/cupertino_icons/assets/CupertinoIcons.ttf"],"packages/flutter_map/lib/assets/flutter_map_logo.png":["packages/flutter_map/lib/assets/flutter_map_logo.png"]}
|
||||
@@ -2804,6 +2804,8 @@ retry
|
||||
connectivity_plus
|
||||
package_info_plus
|
||||
package_info_plus_platform_interface
|
||||
sensors_plus
|
||||
sensors_plus_platform_interface
|
||||
|
||||
Copyright 2017 The Chromium Authors. All rights reserved.
|
||||
|
||||
@@ -4844,30 +4846,6 @@ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
--------------------------------------------------------------------------------
|
||||
event_bus
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2013 Marco Jakob (majakob@gmx.ch)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
--------------------------------------------------------------------------------
|
||||
expat
|
||||
|
||||
Copyright (c) 1997-2000 Thai Open Source Software Center Ltd
|
||||
@@ -31405,62 +31383,6 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
mqtt5_client
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2017 Steve Hamblett<steve.hamblett@linux.com>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
|
||||
<<< License for using the included Observable code >>>
|
||||
------------------------------------------------------
|
||||
|
||||
Copyright 2016, the Dart project authors. All rights reserved.
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above
|
||||
copyright notice, this list of conditions and the following
|
||||
disclaimer in the documentation and/or other materials provided
|
||||
with the distribution.
|
||||
* Neither the name of Google Inc. nor the names of its
|
||||
contributors may be used to endorse or promote products derived
|
||||
from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
nm
|
||||
|
||||
@@ -32056,7 +31978,7 @@ petitparser
|
||||
|
||||
The MIT License
|
||||
|
||||
Copyright (c) 2006-2025 Lukas Renggli.
|
||||
Copyright (c) 2006-2024 Lukas Renggli.
|
||||
All rights reserved.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
@@ -36284,7 +36206,7 @@ xml
|
||||
|
||||
The MIT License
|
||||
|
||||
Copyright (c) 2006-2023 Lukas Renggli.
|
||||
Copyright (c) 2006-2025 Lukas Renggli.
|
||||
All rights reserved.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
|
||||
Binary file not shown.
84
app/build/web/assets/lib/chat/chat_config.yaml
Normal file
84
app/build/web/assets/lib/chat/chat_config.yaml
Normal file
@@ -0,0 +1,84 @@
|
||||
# Configuration du module Chat
|
||||
# Regles de permissions par role
|
||||
|
||||
# Version du module
|
||||
module_info:
|
||||
version: "1.0.0"
|
||||
name: "Chat Module Light"
|
||||
description: "Module de chat autonome et portable pour GEOSECTOR"
|
||||
|
||||
chat_permissions:
|
||||
# Role 1: Membre standard
|
||||
role_1:
|
||||
name: "Membre"
|
||||
description: "Membre de l'amicale"
|
||||
can_message_with:
|
||||
- role: 1
|
||||
condition: "same_entite" # Meme amicale seulement
|
||||
description: "Collegues membres"
|
||||
- role: 2
|
||||
condition: "same_entite" # Admin de sa propre amicale
|
||||
description: "Administrateur de votre amicale"
|
||||
can_create_group: false
|
||||
can_broadcast: false
|
||||
help_text: "Vous pouvez discuter avec les membres de votre amicale"
|
||||
|
||||
# Role 2: Administrateur d'amicale
|
||||
role_2:
|
||||
name: "Admin Amicale"
|
||||
description: "Administrateur d'une amicale"
|
||||
can_message_with:
|
||||
- role: 1
|
||||
condition: "same_entite" # Membres de son amicale
|
||||
description: "Membres de votre amicale"
|
||||
- role: 2
|
||||
condition: "same_entite" # Autres admins de son amicale
|
||||
description: "Co-administrateurs"
|
||||
- role: 9
|
||||
condition: "all" # Tous les superadmins
|
||||
description: "Super administrateurs"
|
||||
can_create_group: true
|
||||
can_broadcast: false
|
||||
help_text: "Vous pouvez discuter avec les membres de votre amicale et les super admins"
|
||||
|
||||
# Role 9: Super administrateur
|
||||
role_9:
|
||||
name: "Super Admin"
|
||||
description: "Administrateur systeme"
|
||||
can_message_with:
|
||||
- role: 2
|
||||
condition: "all" # Tous les admins d'amicale
|
||||
description: "Administrateurs d'amicale"
|
||||
allow_selection: true # Permet selection multiple
|
||||
allow_broadcast: true # Permet envoi groupe
|
||||
can_create_group: true
|
||||
can_broadcast: true
|
||||
help_text: "Vous pouvez envoyer des messages a tous les administrateurs d'amicale ou selectionner des destinataires specifiques"
|
||||
|
||||
# Configuration de l'interface
|
||||
ui_config:
|
||||
show_role_badge: true
|
||||
show_entite_info: true
|
||||
enable_autocomplete: true
|
||||
min_search_length: 2
|
||||
|
||||
# Messages par defaut
|
||||
messages:
|
||||
no_permission: "Vous n'avez pas la permission de creer cette conversation"
|
||||
no_recipients: "Aucun destinataire disponible"
|
||||
search_placeholder: "Rechercher un destinataire..."
|
||||
new_conversation: "Nouvelle conversation"
|
||||
select_recipients: "Selectionner les destinataires"
|
||||
|
||||
# Couleurs par role (optionnel)
|
||||
role_colors:
|
||||
1: "#64748B" # Gris pour membre
|
||||
2: "#2563EB" # Bleu pour admin
|
||||
9: "#DC2626" # Rouge pour superadmin
|
||||
|
||||
# Configuration API
|
||||
api_config:
|
||||
recipients_endpoint: "/chat/recipients"
|
||||
create_room_endpoint: "/chat/rooms"
|
||||
require_entite_for_role_1: true
|
||||
require_entite_for_role_2: true
|
||||
Reference in New Issue
Block a user