DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Nouveauté WINDEV et WINDEV Mobile SaaS !
Aide / Nouveautés / Nouveautés de WINDEV Suite SaaS
  • Présentation
  • Nouveautés de la version SaaS
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Présentation
WINDEV Mobile SaaS est disponible !
Voici la liste des principales nouveautés que vous pourrez découvrir dans WINDEV Mobile SaaS.
Nouveautés de la version SaaS
Des nouveautés impressionnantes

  • PDF : De nombreuses nouveautés
    • Lire et écrire par programmation dans les champs
      Il est possible de générer des formulaires PDF contenant de nombreux types de champs. Mais il est également possible d'avoir à remplir automatiquement des formulaires PDF. Cette nouvelle version permet désormais de lire et d'écrire dans les champs d'un formulaire PDF par programmation. Il devient possible de lister par programmation les champs d'un formulaire, connaître leurs caractéristiques, lire et modifier leur contenu, etc. Toutes les caractéristiques des champs sont disponibles dans le nouveau type de variable pdfChamp.
    • Factur-X : des possibilités supplémentaires
      Lorsque des pièces jointes sont ajoutées à un document PDF, il est désormais possible de préciser par programmation la valeur de AFRelationship adaptée au mode d'utilisation de Factur-X. Il suffit d'utiliser les nouvelles constantes de la fonction iAjoutePièceJointe.
    • Extraire des pages d'un fichier PDF
      Il est désormais possible de créer un nouveau PDF contenant une page ou un ensemble des pages d'un fichier PDF existant. Utilisez pour cela la fonction PDFExtrait.
  • Modifieur : une UX améliorée... et déjà appréciée !
    Avez-vous déjà utilisé le volet "Modifieur" ? Il regroupe toutes les options présentes dans les 7 onglets sous forme de liste (et possède même des options supplémentaires).
    Dans cette version, sa présentation propose une UI plus actuelle pour l'affichage des propriétés. Ces propriétés sont classées par thèmes, facilement repliables. Bien entendu, les propriétés affichées dépendent du champ sélectionné, et lorsque plusieurs champs sont sélectionnés, seules les propriétés communes sont affichées.
    Remarque : Dans cette version, le volet "Modifieur" est disponible en version Bêta : les propriétés les plus utilisées sont disponibles au nouveau format d'affichage. La présentation de ce modifieur va encore s'améliorer dans les versions à venir.

Environnement

  • Des informations claires dans la barre des documents
    La barre des documents ouverts permet d'identifier rapidement les éléments ouverts dans les différents éditeurs. Désormais, lorsqu'une fenêtre de code associé à une fenêtre ou un état est ouverte, le nom de l'événement en cours est affiché dans l'onglet de code. C'est plus clair.
  • Identifiez rapidement la configuration en cours
    Dans un même projet, il est possible de regrouper des configurations WINDEV, iOS, Android ou encore WEBDEV.
    Pour visualiser rapidement le produit correspondant à la configuration en cours, il suffit de regarder l'icône dans la barre des tâches : sa couleur s'adapte à la configuration utilisée.
  • Des raccourcis actuels
    Depuis la version 2024, il est possible de personnaliser les raccourcis permettant de manipuler les éditeurs.
    Pour aller encore plus loin, il est désormais possible de remplacer des raccourcis "historiques" par des raccourcis plus modernes, disponibles dans de nombreux logiciels.
    Par exemple, pour déplacer la vue active par Drag and Drop, il suffisait d'utiliser le raccourci ALT + Drag and Drop. Maintenant, il est possible de changer ce raccourci par "Espace + Drag and Drop". Pour cela, l'onglet "Autres raccourcis" de la fenêtre de personnalisation des raccourcis clavier propose les raccourcis historiques et leur version plus actuelle.

Editeur de projet

  • Gabarits WINDEV Mobile : Profitez des améliorations
    La marge du haut des champs de saisie multiligne est désormais la même que celle des champs de saisie monoligne. Vos interfaces sont ainsi plus cohérentes.

Editeur de fenêtres

  • Lisez vos libellés
    Faire défiler un texte permet d'afficher un texte long dans un espace limité (par exemple, un avertissement sur un écran de téléphone). Le champ Libellé s'enrichit de nouvelles possibilités de défilement. Il est désormais possible de choisir le sens de défilement.
  • Des améliorations pour vos combos
    • Une nouvelle erreur d'UI apparaît lorsque le contenu de la combo est vide dans une des langues de votre projet. Pratique pour les applications multilingues !!!
    • Astuce : Comment afficher une valeur différente pour une ligne selon qu'elle est affichée dans la zone déroulée ou sélectionnée et affichée dans le champ Combo ? Utilisez la propriété ..ValeurAffichéeCombo.
  • Deux fonctionnalités supplémentaires pour le champ Traitement de texte
    • Une amélioration attendue : la copie de style, disponible dans le ruban comme par programmation. Il est également possible d'effacer totalement les caractéristiques de style d'un paragraphe.
    • La fonction DocVersPDF propose une nouveauté : l'export des liens présents dans le document. Les liens seront ainsi toujours cliquables dans le PDF généré.
  • Des styles toujours à jour
    Un champ peut utiliser un style de la feuille de styles du projet ou d'un gabarit cloné. Dans ce cas, le style est modifiable.
    Il est désormais possible de modifier ce style directement depuis l'onglet "Style" de la fenêtre à 7 onglets (option "Modifier ce style"). Les modifications seront alors reportées à tous les champs utilisant ce style.
  • Supprimez les conteneurs sans perdre vos champs
    Une nouveauté bien utile : il est désormais possible de supprimer un champ Conteneur sans supprimer les champs fils. Par exemple, vous pouvez supprimer un champ Onglet sans supprimer les champs présents sur l'onglet. La liaison entre le champ conteneur et les champs fils est automatiquement supprimée.
  • Conteneurs imbriqués : colorez vos conteneurs
    Toujours pour les conteneurs, la colorisation des conteneurs en édition vous aide à concevoir vos UI. Lorsque vous utilisez un conteneur de type Cellule, Flexbox ou Disposition, n'hésitez pas à utiliser la coloration des conteneurs. Cette option permet d'utiliser des dégradés de couleurs afin de visualiser les surfaces de chaque zone. Pour utiliser cette fonctionnalité, appuyez sur la touche F7. Vous pouvez définir la palette de couleurs utilisée dans le volet "Affichage" du ruban.
  • Zone répétée infinie : Remplissage par le haut, par le bas, ou les deux
    Historiquement, une zone répétée (ou une table) infinie se remplie par le bas : le champ est rempli avec un nombre d'éléments défini et lorsque l'utilisateur scrolle et affiche le dernier élément, le chargement et l'affichage des éléments suivants est effectué. Les éléments s'affichent à la suite des éléments existants.
    Il est désormais possible de remplir un champ Table ou Zone répétée infinie par le haut ou bien par le haut ET par le bas.
    Le remplissage par le haut va s'effectuer lorsque l'utilisateur scrolle et rend visible le premier élément.
    Le remplissage par le haut ET par le bas cumule les deux fonctionnements.
    Les événements "Ajout d'éléments supplémentaires (par le haut)" et "Ajout d'éléments supplémentaires (par le bas)" permettent de gérer les deux modes de remplissage. De nouvelles fonctions WLangage sont disponibles pour gérer l'ajout de nouvelles lignes par le bas.

Editeur d'analyses

  • MOR/ORM (Object Relational Mapper)
    Lorsque l'analyse contient les classes modèles, il est possible de générer toutes les classes modèles en une seule opération.

Editeur de requêtes

  • Insérez dans une sélection (SELECT dans INSERT)
    Une requête INSERT peut désormais être créée à partir d'une requête SELECT précédemment créée. Il est ainsi simple d'insérer dans un fichier uniquement les enregistrements correspondant à une condition.

Editeur de code

  • Rétro-analyse des requêtes SQL directement depuis le code
    L'éditeur de code WLangage permet de définir des requêtes SQL grâce aux variables de type "Requête SQL". Un assistant permet si nécessaire de créer la requête visuellement via l'éditeur de requêtes.
    Désormais, le code SQL de la variable de type "Requête SQL" peut également être édité et modifié dans l'éditeur de requêtes. Il suffit d'utiliser l'option "Editer le code de la requête" (menu contextuel du code SQL).
  • Editeur de code : vitesse ++
    • La vitesse d'affichage dans l'éditeur de code a été nettement améliorée.
    • Le déplacement via le clavier dans l'éditeur de code a été boosté : le code n'est plus compilé immédiatement après l'utilisation de la touche Entrée ou Retour, mais uniquement lorsque l'utilisation du clavier est suspendue. Un gain de vitesse énorme.
  • Une meilleur ergonomie
    • Une sélection dans l'éditeur de code est conservée lorsque l'éditeur de code reprend le focus.
    • La combo de complétion propose une liste de propositions plus aérée, colorée selon le type d'éléments proposés. Le type de chaque proposition est également indiqué. La sélection n'en est que plus facile.
  • Visualisation de la ligne en cours
    Vous ne savez plus quelle est la ligne en cours dans votre code ... regardez bien, un trait fin l'entoure maintenant.
  • Nouveau champ d'action du Ctrl D
    Tout le monde connaît le raccourci Ctrl D pour dupliquer la ligne en cours. Désormais ce raccourci permet également de dupliquer la sélection sur la ligne en cours. Un petit plus.
  • Ctrl Z sur les suppressions
    Vous avez supprimé une procédure par inadvertance ? Pas de problème, un "Ctrl Z" et elle réapparaît.
  • Nouvelles options de l'éditeur de code
    • Possibilité de désactiver l'aide à la saisie des paramètres : les différents paramètres de la syntaxe ne sont plus affichés sur la ligne de code. Selon votre vitesse de frappe, cette option peut vous faire encore gagner du temps.
    • Possibilité de supprimer automatiquement les espaces et les tabulations en fin de ligne lors de la sauvegarde de code. Ainsi, la touche Fin permet réellement d'atteindre la fin du code saisi.
    • N'hésitez pas à utiliser l'ascenseur visuel de l'éditeur de code : un affichage plus rapide pour accéder aux différents traitements de votre application.
  • Fin de la limite des 1000 caractères !
    Une ligne de code très longue ? L'éditeur de code permet maintenant de gérer des lignes de plus de 1000 caractères ! Pratique pour coller du Json ou du code HTML sur 1 seule ligne. Et pour scroller horizontalement, utilisez simplement la touche Maj + molette.

Editeur d'états

  • Un état différent au verso
    Pourquoi laisser le verso d'une facture vide, alors qu'il serait possible d'imprimer les conditions générales de vente ? WINDEV propose de réaliser cette opération en une seule ligne de code, avec la fonction iInitEtatVerso.
  • Des totaux pour tous
    Une nouvelle erreur d'UI sur les états permet d'éviter de laisser une colonne sans total.
  • Une numérotation automatique
    N'oubliez plus de numéroter vos pages. Le numéro de page est inséré par défaut dans vos états.

GDS (Gestionnaire de sources)

  • Réutilisez les noms antérieurement supprimés
    Une nouveauté attendue par tous les utilisateurs du GDS : pouvoir ajouter un élément utilisant le même nom qu'un élément précédemment supprimé. C'est désormais possible !
  • Récupérez et recompilez automatiquement
    Il est désormais possible de recompiler automatiquement le projet lors de la récupération d'éléments du GDS sur votre poste : il suffit de cocher l'option correspondante.

Intégration continue - Fabrique logicielle

  • 2 nouvelles actions
    La Fabrique logicielle propose 2 nouvelles actions :
    • Générer une bibliothèque de test.
    • Migrer un projet présent dans un répertoire local ou partagé (la migration d'un projet dans le GDS était déjà disponible).
  • Des améliorations intéressantes
    • Possibilité de changer l'ordre des paramètres passés à un plan d'action.
    • Possibilité d'indiquer un login et le mot de passe associé pour la connexion à la base de sources du GDS.

Outils

  • WDScript : Installation indépendante
    Vous utilisez WDScript, l'éditeur de scripts WLangage. Pour proposer plus simplement ce programme redistribuable à vos utilisateurs, WDScript peut désormais être installé de manière indépendante.
    Plus besoin de sélectionner les fichiers nécessaires.
    Remarque : WDScript est également intégré et proposé lors de l'installation du Serveur d'application WEBDEV.

Centre de Gestion de Projets

  • Un nouvel état pour suivre vos corrections
    Le Centre de Gestion de projets est un outil indispensable pour suivre un projet : les exigences, les tâches, les sprints sont autant de fonctionnalités indispensables. Le Centre de Gestion de Projets permet également de répertorier les incidents et de suivre leur correction. Le nouvel état "Contre-testé" permet de s'assurer que la correction de l'incident a été validée (par le service de tests par exemple).
  • Demander à tous
    Lors de la réalisation ou du test d'une exigence, il peut être nécessaire d'envoyer un message à tous les participants : questions, précision pour les tests, limitations à connaître, etc. Lorsque vous utilisez la messagerie intégrée (WDBal), il est possible de sélectionner l'ensemble des participants de l'exigence en cours d'un seul clic.
  • Partagez vos actions
    Pour suivre un projet, il peut être intéressant d'être informé des différentes actions réalisées sur ce projet : Fin du développement d'une exigence, Fin du test d'une exigence, Terminaison d'une tâche d'une exigence, etc. Ces messages sont automatiquement envoyés via la messagerie par défaut : vous pouvez maintenant configurer les messages envoyés comme les destinataires.

Programmation et WLangage

  • OAUTH
    • Nouveauté utile : Une connexion OAuth silencieuse
      Il est désormais possible de réaliser une connexion OAuth en précisant directement le login et le mot de passe : aucune fenêtre de login ne sera affichée à l'utilisateur.
    • Autre nouveauté : La fonction AuthDéconnecte permet de se déconnecter en libérant le token.
  • Fonctions de Cryptage : nouveaux algorithmes et modes de chiffrement
    Dans cette version, les modes de chiffrement Cipher Feedback et Cipher Counter peuvent être utilisés quel que soit l'algorithme de cryptage.
    De plus, la fonction CrypteStandard permet désormais d'utiliser l'algorithme de cryptage AES 192.
  • Gestion des emails
    • Nouveauté pour WINDEV SaaS : La fonction EmailAppliRécupèreArchitecture permet de savoir si le "mailer" utilisé est une application 32 ou 64 bits.
    • Session IMAP : Il est désormais possible de parcourir toutes les occurrences d'une recherche initiée avec la fonction EmailCherchePremier grâce à la fonction EmailLitSuivant.
  • Périphériques Bluetooth Low Energy
    La fonction BTLECaractéristiqueChangementValeur permet d'activer une notification en cas de changement de la valeur d'une caractéristique. Par exemple, lors de l'utilisation d'un capteur de température, il est ainsi possible de savoir que la température change.
  • Fonctions Drive
    Les fonctions DriveListeFichier et DriveListeFichierGgl permettent désormais de connaître la date et l'heure de modification des fichiers.
  • Application console interactive
    Une application WINDEV peut désormais lancer un exécutable en mode console et interagir avec cet exécutable. A la fin de l'exécution en mode console, il est possible de récupérer ce que l'exécutable a écrit dans la console. Il suffit d'utiliser la nouvelle famille de fonctions cmdxxx.
  • DOTNET : Les tableaux du WLangage peuvent désormais être passés en paramètre aux fonctions .NET.
  • Socket
    La fonction SocketLit permet de récupérer un message envoyé par un autre socket. Lors de l'utilisation de cette fonction, il était possible de définir le délai d'attente pour le début de la lecture. Dans cette version, cette fonction permet également de définir le temps d'attente maximum sans recevoir de données.
  • Améliorations diverses :
    • La fonction InitHasard permet de générer des nombres aléatoires. Elle renvoie désormais une information importante, la graine utilisée.
    • L'opérateur '=*' est désormais disponible sur les paramètres non typés.
    • Les fonctions TableauCherche et TableauTrie sont maintenant disponibles sur les tableaux de variables de type UUID.
  • JSON
    Les commentaires du type // et /* */ sont désormais automatiquement gérés.
  • XML
    La propriété ..Existe = Vrai permet désormais de forcer la création d'un noeud vide.
  • Nouvelles fonctions
    • La nouvelle fonction CertificatExporte permet d'exporter automatiquement un certificat présent dans le Store Windows vers un fichier. Les manipulations sont ainsi simplifiées.
    • La fonction ChampRectangle permet d'obtenir les coordonnées, la hauteur et la largeur d'une zone d'un champ dans une variable de type Rectangle. Il devient facile d'afficher une popup par exemple sous un champ de saisie.

Webservices

  • Go de WebService
    Des optimisations importantes ont été réalisées pour le test de WebServices en session prélancée.

HFSQL

  • Triggers HFSQL
    Désormais, dans la procédure exécutée dans un trigger, il est possible d'identifier la fonction ayant déclenché le trigger via une constante, et non plus directement le nom de la fonction. Simplification pour les applications multilingues.
  • Amélioration des performances des clés composées
    Les clés composées peuvent être constituées de clés contenant des valeurs null. Ce type de clé a été optimisé. Pour bénéficier de cette amélioration, cochez l'option "Null indexé dans les clés composées" dans la description du ficher, dans l'éditeur d'analyses.
  • Serveur HFSQL
    • Optimisation de la gestion des caches sur le serveur.
    • Optimisation des performances de la fonction HCréationSiInexistant.
  • Données spatiales
    Optimisation du choix des index pour accélérer les recherches sur les données spatiales (point, polygone, polyligne, etc.).
  • SQL
    • Gestion des paramètres SQL
      Dans les requêtes SQL, les paramètres SQL (par exemple "{pMonParam}") sont maintenant supportés dans les ORDER BY.
    • Nouvel ordre ST_Centroid
      La fonction ST_Centroid renvoie le point correspondant au centre de gravité de la géométrie (polygone ou multipolygone).
    • Nouvel ordre TIMEDIFF
      La fonction TIMEDIFF renvoie la différence entre 2 dates, heures ou dateheures. Le résultat correspond à une durée.
  • Fonctions WLangage
    • La fonction HImporteCSV permet d'importer directement le contenu d'un fichier CSV dans un fichier de données HFSQL. Cette fonction permet de définir la correspondance entre les données du fichier CSV et les rubriques du fichier de données.
  • HFSQL Cluster
    • La synchronisation des noeuds d'un cluster a été améliorée et optimisée.
    • La fonction HSupprimeFichier est disponible.
  • Réplication universelle
    • Nouveauté souvent demandée : la possibilité d'ajouter des fichiers dans une réplication existante. Il n'est plus nécessaire de redéfinir l'ensemble de la réplication.
    • De nouvelles modifications sont prises également en compte dans la réplication universelle :
      • Le passage de l'identifiant automatique sur 4 octets à 8 octets.
      • La modification des rubriques définies comme clés uniques.
      • La modification de l'ordre des clés uniques.

Fonctionnalités Android / iOS

  • Un nouveau champ Métier
    Un champ prêt à l'emploi : votre application lit et récupère directement le code reçu par SMS sur le téléphone. L'utilisateur du téléphone n'a rien à lire, à récupérer ou à saisir !
  • Scan avec appareil photo
    Vos applications doivent numériser les documents pris en photo, et les redresser si nécessaire ? Rien de plus simple. Utilisez la fonction ScanDocumentDepuisCaméra dans vos applications. Cette fonction renvoie les images des documents sur lesquelles l'OCR pourra être utilisé pour récupérer le texte.
  • Remplissage automatique de formulaires
    Votre application propose un formulaire contenant par exemple une adresse postale, une adresse email ... L'utilisateur peut saisir les différents éléments "à la main". Grâce à WINDEV Mobile, il est possible de simplifier cette saisie en utilisant un service de remplissage automatique (Google, Dashlane ou autre). Il suffit d'indiquer le type de données attendu grâce à la propriété ..RemplissageAuto. Vous ferez ainsi gagner du temps à vos utilisateurs.
  • Gestion de l'appui long sur les champs Table et Zone répétée
    Un appui long sur les champs Table et Zone répétée pouvait avoir un comportement différent en Android, iOS et en mode simulateur selon la présence ou non d'un menu contextuel pour le champ. Le comportement a été unifié, selon le type de champ :
    • Si le champ Zone répétée ou Table possède un menu contextuel, lors de l'appui long :
      • l'événement "Affichage du menu contextuel / appui long" est exécuté. Si cet événement ne renvoie pas Faux, le menu contextuel est affiché.
      • l'événement de sélection de ligne n'est pas exécuté.
    • Si le champ Zone répétée ou Table ne possède pas un menu contextuel, lors de l'appui long :
      • l'événement "Affichage du menu contextuel / appui long" est exécuté. Si cet événement ne renvoie pas Faux, l'événement de sélection de ligne est exécuté.
    Remarque : pour tous les champs, si l'événement "Affichage du menu contextuel / appui long" renvoie Faux, le menu contextuel associé n'est pas affiché.
  • WLangage :
    • Des rendez-vous ajoutés directement dans le planning des utilisateurs
      Votre application mobile gère des rendez-vous (teams, visio, ...). Proposez à vos utilisateurs l'ajout automatique de leurs rendez-vous dans l'agenda par défaut du téléphone. En WINDEV Mobile, une seule fonction est nécessaire, la fonction RendezVousAjoute.
    • Récupération d'un code reçu par SMS
      La double authentification est désormais un moyen standard pour identifier l'utilisateur. Un code de vérification est généralement envoyé par SMS. Vous pouvez maintenant récupérer directement ce code dans vos applications WINDEV Mobile. Cette fonctionnalité est également disponible via un Champ Métier prêt à l'emploi.
    • Fonctions Drive : Les fonctions DropBox sont désormais disponibles en Android et iOS.
    • Fonctions XLS : Les fonctions XLS sont désormais disponibles en Android et iOS. Vous pouvez ainsi gérer les fichiers excel de la même manière dans vos applications pour Windows, dans vos sites Web et dans vos applications mobiles.
    • Nouvelles fonctions WLangage :
      • Fonction ComboFerme
      • Fonctions FenIntPos/FenExtPos
      • Fonctions fFichierTemp et fOuvreFichierTemp
Fonctionnalités spécifiques pour Android

  • Rotation des fenêtres d'une application
    Vos applications sont en mode paysage ? Pour éviter toute rotation de vos fenêtres lors du changement d'orientation du téléphone, sélectionnez l'option "Paysage SANS rotation" dans les options d'affichage de la fenêtre (onglet "UI" de la description de la fenêtre). La même option est également disponible pour les fenêtres en mode portrait.
  • WLangage
    • Les constructeurs multi-syntaxes sont désormais disponibles.
    • Optimisation de la gestion des threads persistants sous Android version 14 (et supérieur).
    • Meilleure intégration de "Sign in with Google" (remplacement de "one tap").
    • Nouvelles fonctions WLangage :
      • Fonction permettant de récupérer le ou les nunéros de téléphone.
      • Fonction SMSDétecteCodeUsageUnique.
      • Fonctions RegexXXX.
      • Nouvelle fonction AuthDeconnecte.
      • Nouvelle fonction HExporteChaîneJSON.
    • Support du type YAML
    • Sérialisation XML du type AuthToken : Pour conserver un token d'accès entre deux connexions à un service, il est possible d'effectuer une sérialisation du token stocké dans une variable de type AuthToken. Le token peut être ainsi enregistré dans un buffer et réutilisé si nécessaire.
  • Centre de Contrôle Android
    Le Centre de Contrôle Android propose un explorateur de fichiers. Il est désormais possible de sélectionner plusieurs fichiers pour effectuer des opérations simultanées (suppressions, copie, ...).

Fonctionnalités spécifiques pour iOS

  • Gestion du survol
    Une application iOS peut être utilisée sur un périphérique possédant une souris : MacOS, iPad avec souris, Vision Pro, etc. Les événements "Entrée en survol" et "Sortie du survol" peuvent désormais être activés si nécessaires.
  • Balayage en boucle
    Une zone de balayage permet de faire défiler des informations par une simple gesture, par exemple des photos. Désormais, il est possible de proposer un balayage infini. Ainsi, arrivé à la dernière photo, la première sera automatiquement affichée. Pas de programmation nécessaire : une simple option dans la fenêtre de description du champ Fenêtre interne : "Balayage en boucle".
  • Nouvelles fonctions
    • fonction iAjouteSignet.
    • fonction zipOuvreRAR.

Version minimum requise
  • Version SaaS
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 28/06/2024

Signaler une erreur ou faire une suggestion | Aide en ligne locale