Compare commits
10 Commits
github_pah
...
main
Author | SHA1 | Date | |
---|---|---|---|
89c1312e34 | |||
451ff58711 | |||
0d60319629 | |||
9073a79324 | |||
e13193c18d | |||
1fe8cce2d1 | |||
9b0c6af14a | |||
c59a3beb3e | |||
add384d2b4 | |||
69a22db3d6 |
16
Makefile
Normal file
16
Makefile
Normal file
@ -0,0 +1,16 @@
|
||||
FICHIERS= \
|
||||
Makefile \
|
||||
membres.side \
|
||||
membres_v3.side \
|
||||
runtest.sh \
|
||||
.side.yml \
|
||||
todo.org \
|
||||
fichiers
|
||||
|
||||
# convertir le fichier IDE => runner
|
||||
%_v3.side : %.side
|
||||
npx @seleniumhq/side-migrate $< $@
|
||||
|
||||
archive : membres.tar.gz
|
||||
membres.tar.gz : $(FICHIERS)
|
||||
tar --posix -zcf $@ $^
|
35
README.md
35
README.md
@ -6,6 +6,41 @@ Suite de tests du [logiciel de gestion d'association Paheko](https://fossil.kd2.
|
||||
- [Selenium IDE](https://www.selenium.dev/selenium-ide)
|
||||
- [Selenium runner](https://www.selenium.dev/selenium-ide/docs/en/introduction/command-line-runner)
|
||||
|
||||
### Remarques
|
||||
- l'IDE produit du code en version 2
|
||||
- le runner veut du code version 3
|
||||
- il faut donc convertir le fichier produit par l'IDE avec la commande `npx @seleniumhq/side-migrate`
|
||||
(voir Makefile)
|
||||
|
||||
## Config serveur
|
||||
- définir un hôte virtuel : `test.paheko.localhost`
|
||||
|
||||
## Exécuter les tests
|
||||
- Avant d'exécuter les tests, il faut désactiver le profiler
|
||||
- Le script `runtest.sh` permet d'exécuter un, plusieurs ou tous les
|
||||
tests d'un fichier de test *Selenium* ; il positionne quelques
|
||||
constantes, convertit le fichier produit par l'IDE si nécessaier et
|
||||
copie dans /tmp les fichiers requis par les tests.
|
||||
- Il y a un bug en fin d'exécution (voir commentaire dans le script) ;
|
||||
pour le contourner, le script *tue* le processus quand le message de
|
||||
fin apparaît.
|
||||
|
||||
### Options en ligne de commande
|
||||
- -f fichier : fichier de test
|
||||
- -a : exécuter tous les tests du fichier
|
||||
- -c : afficher la fenêtre de chrome
|
||||
- -n : ne pas tuer le processus en fin de test
|
||||
- -v : afficher la ligne de commande
|
||||
- -z répertoire : sauver une copie d'écran dans le répertoire en cas d'échec
|
||||
- -t timeout : définir une attente max (défaut : 200000 ms)
|
||||
- -h : afficher cette aide
|
||||
- test : nom (partiel ou complet) d'un test ou d'une suite à exécuter ;
|
||||
si absent, affiche un sélecteur pour choisir une des suites du fichier
|
||||
|
||||
### Exemples
|
||||
- passer tous les tests : `./runtest.sh -f membres.side -a`
|
||||
- certains tests : `./runtest.sh -f membres.side 08` va passer les tests dont le titre commence par 08
|
||||
|
||||
## Tests installation
|
||||
|
||||
## Tests de connexion
|
||||
|
503
code.js
Normal file
503
code.js
Normal file
@ -0,0 +1,503 @@
|
||||
// ------------------------------------------------------------------------
|
||||
// fabriquer une chaine aléatoire
|
||||
const mdp = (length) => {
|
||||
let chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzàâäéèêëîïôöûüùÀÂÄÉÈÊËÎÏÔÖÛÜÙ&~"#\'{([-|`_@)]=°+}€<>,?;.:/!§«»¿×÷¡';
|
||||
let str = '';
|
||||
for (let i = 0; i < length; i++) {
|
||||
str += chars.charAt(Math.floor(Math.random() * chars.length));
|
||||
}
|
||||
return str;
|
||||
}
|
||||
// renvoyer une chaine
|
||||
return mdp(10)
|
||||
|
||||
// renvoyer un tableau de chaines
|
||||
for (let i = 0; i < 3 + Math.floor(Math.random() * 5); ++i) {
|
||||
${lesnoms} = ${lesnoms}.concat(chaine(10));
|
||||
}
|
||||
return ${lesnoms}; // => lesnoms
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// fabriquer chaîne avec nom prénom
|
||||
const upper = (str) => {
|
||||
return str.charAt(0).toUpperCase() + str.slice(1);
|
||||
};
|
||||
const chaine = (length) => {
|
||||
let chars = 'aàbcdeéèfghijklmnoôpqrstuùvwxyz';
|
||||
let str = '';
|
||||
for (let i = 0; i < length; i++) {
|
||||
str += chars.charAt(Math.floor(Math.random() * chars.length));
|
||||
}
|
||||
let debut = upper(str.slice(0, length/2));
|
||||
let fin = upper(str.slice(length/2));
|
||||
return debut + ' ' + fin;
|
||||
};
|
||||
for (let i = 0; i < 7 + Math.floor(Math.random() * 15); ++i) {
|
||||
${lesnoms} = ${lesnoms}.concat(chaine(11 + Math.floor(Math.random() * 5)));
|
||||
}
|
||||
return ${lesnoms};
|
||||
|
||||
// fabriquer adresse courriel
|
||||
const chaine = (length) => {
|
||||
let chars = 'abcdefghijklmnopqrstuvwxyz0123456789';
|
||||
let str = '';
|
||||
for (let i = 0; i < length; i++) {
|
||||
str += chars.charAt(Math.floor(Math.random() * chars.length));
|
||||
}
|
||||
return str;
|
||||
};
|
||||
return chaine(8) + "@" + chaine(5) + ".fr";
|
||||
|
||||
// code postal
|
||||
return Math.random().toString(10).substring(2, 7);
|
||||
|
||||
// numéro téléphone
|
||||
return '0' + Math.random().toString(10).substring(2, 11);
|
||||
|
||||
// supprimer espace dans numéro téléphone
|
||||
return ${telephone}.replace(/\\s/g, "")
|
||||
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// Calculer date réelle à partir d'une date saisie même bizarre
|
||||
// ex: 95/31/2020 => 03/10/2022
|
||||
function joursMois (annee, mois) {
|
||||
return new Date(annee, mois, 0).getDate();
|
||||
}
|
||||
function getDate(chaine) {
|
||||
var ds = chaine.split('/');
|
||||
var jour=ds[0];
|
||||
var an = Math.floor(ds[1]/12);
|
||||
var annee = Number(ds[2]) + an;
|
||||
var mois = ds[1] - 12 * an;
|
||||
var dm = joursMois(annee, mois);
|
||||
while (jour > dm) {
|
||||
jour -= dm;
|
||||
++mois;
|
||||
if (mois > 12) { mois = 1; ++annee; }
|
||||
dm = joursMois(annee, mois);
|
||||
}
|
||||
if (jour < 10) { jour = '0' + jour; }
|
||||
if (mois < 10) { mois = '0' + mois; }
|
||||
return(jour + '/' + mois + '/' + annee);
|
||||
}
|
||||
return getDate(${date});
|
||||
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// rendre visibles les options de filtres de membre
|
||||
const nav = document.querySelector(".dropdown");
|
||||
const li = nav.querySelectorAll("li");
|
||||
for (const l of li) { l.style.display="block"; }
|
||||
return;
|
||||
|
||||
// rendre visibles les options d'export
|
||||
const nav = document.querySelector(".tabs");
|
||||
let span = nav.querySelector("aside > span > span");
|
||||
span.style.display = "block";
|
||||
return;
|
||||
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// vérifier la validité d'une date au format JJ/MM/AAAA
|
||||
|
||||
// 1. séparer une date JJ/MM/AAAA selon les /
|
||||
return ${ds}.split('/') // => ts
|
||||
|
||||
// 2. faire une date au format MM-DD-YYYY
|
||||
return ${ts}[1] + '-' + ${ts}[0] +'-' + ${ts}[2] // => dd
|
||||
|
||||
// 3. vérifier si on peut créer une date valide
|
||||
return ! isNaN(Date.parse(${dd})) // => ok
|
||||
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// créer un tableau d'objets {numéro, catégorie}
|
||||
// le trier par numéro
|
||||
// renvoyer le tableau des catégories
|
||||
let tab = [];
|
||||
for (let i = 0; i < ${lesnumeros}.length; ++i)
|
||||
{
|
||||
let o = Object();
|
||||
o.num=${lesnumeros}[i];
|
||||
o.cat=${lescategories}[i];
|
||||
tab.push(o);
|
||||
}
|
||||
|
||||
// trier
|
||||
tab.sort((a, b) => {
|
||||
return a.num - b.num;
|
||||
});
|
||||
|
||||
// catégories
|
||||
let categs = [];
|
||||
tab.forEach((e) => {
|
||||
categs.push(e.cat);
|
||||
});
|
||||
return categs;
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// renvoyer le numéro d'une catégorie donnée
|
||||
// params :
|
||||
// - nom d'une catégorie
|
||||
// - tableau des catégories classé par numéro croissant
|
||||
function getNumero(cat_name, categories) {
|
||||
let i = 0;
|
||||
while (i < categories.length) {
|
||||
if (categories[i] == cat_name) { return i + 1; }
|
||||
i += 1;
|
||||
}
|
||||
}
|
||||
|
||||
return getNumero(${categorie}, ${categories_num});
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// trier les membres : voir tri.js
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
// sélectionner un parent parmi les nb premiers éléments du tableau
|
||||
// lesnoms ; le choix se fait uniquement sur des personnes qui ne sont
|
||||
// pas rattachées, donc qui n'ont pas de parent
|
||||
function selParent(lesnoms, lesparents, nb)
|
||||
{
|
||||
while(true) {
|
||||
let num = Math.floor(Math.random() * nb);
|
||||
if (lesparents[num].length == 0) { return lesnoms[num]; }
|
||||
}
|
||||
}
|
||||
return selParent(${lesnoms}, ${lesparents}, ${nb_total_membres})
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// normaliser une chaîne :
|
||||
// - mettre en minuscules
|
||||
// - remplacer les caractères avec accent par leur équivalent sans accent
|
||||
// ------------------------------------------------------------------------
|
||||
const accent = "àâäéèêëîïôöùûü";
|
||||
const normal = "aaaeeeeiioouuu";
|
||||
|
||||
function normaliser (chaine) {
|
||||
let resu = "";
|
||||
chaine = chaine.toLocaleLowerCase();
|
||||
for (let i = 0; i < chaine.length; ++i) {
|
||||
let ind = accent.indexOf(chaine[i]);
|
||||
if (ind == -1) {
|
||||
resu += chaine[i];
|
||||
} else {
|
||||
resu += normal[ind];
|
||||
}
|
||||
}
|
||||
return resu;
|
||||
}
|
||||
|
||||
// const donnee = "Aèzfoj Rdùxiè";
|
||||
// let resu = normaliser(donnee.toLocaleLowerCase());
|
||||
// console.log("donnée = " + donnee + "\nresu = " + resu);
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// compter le nb d'occurences d'un élément dans un tableau de chaines
|
||||
// ------------------------------------------------------------------------
|
||||
function nbocc(elem, tab) {
|
||||
let nb = 0;
|
||||
for (const e of tab) {
|
||||
if (normaliser(e).localeCompare(elem) == 0) { nb += 1; }
|
||||
}
|
||||
return nb;
|
||||
}
|
||||
//return nbocc(${nom}.toLocaleLowerCase(), ${lesnoms})
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// renvoyer un nom au hasard d'un tableau en s'assurant qu'il n'a pas
|
||||
// d'homonyme après normalisation
|
||||
// ------------------------------------------------------------------------
|
||||
function getNom(tab)
|
||||
{
|
||||
while (true) {
|
||||
let nom = tab.at(Math.floor(Math.random() * tab.length));
|
||||
let nb = nbocc(normaliser(nom), tab);
|
||||
if (nb == 1) { return nom; }
|
||||
}
|
||||
}
|
||||
return getNom(${lesnoms})
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// vérifier qu'une chaine est présente dans un nom normalisé
|
||||
// ------------------------------------------------------------------------
|
||||
function verif(chaine, nom) {
|
||||
return normaliser(nom).includes(chaine);
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// faire un tableau d'indice des « homonymes » de chaine
|
||||
// tab est un tableau d'objets (nom, numero)
|
||||
// ------------------------------------------------------------------------
|
||||
function indonymes(chaine, tab) {
|
||||
let homos = [];
|
||||
for (let i = 0 ; i < tab.length; ++i) {
|
||||
if (normaliser(tab[i].nom).includes(chaine)) {
|
||||
homos.push(i);
|
||||
}
|
||||
}
|
||||
return homos;
|
||||
}
|
||||
|
||||
// fabriquer un nom qui contient une chaîne donnée
|
||||
const upper = (str) => {
|
||||
return str.charAt(0).toUpperCase() + str.slice(1);
|
||||
};
|
||||
function homonyme(chaine, lg) {
|
||||
let chars = 'aàbcdeéèfghijklmnoôpqrstuùvwxyz';
|
||||
let str = '';
|
||||
for (let i = 0; i < lg; i++) {
|
||||
str += chars.charAt(Math.floor(Math.random() * chars.length));
|
||||
}
|
||||
let debut = upper(str.slice(0, lg/2));
|
||||
let fin = upper(str.slice(lg/2));
|
||||
return debut + chaine + fin;
|
||||
}
|
||||
return homonyme(${nom_cherche}, 10);
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// générer un nouveau nom en s'assurant qu'il n'a pas
|
||||
// d'homonyme après normalisation
|
||||
// ------------------------------------------------------------------------
|
||||
function genererNom(tab)
|
||||
{
|
||||
while (true) {
|
||||
let nom = chaine(12);
|
||||
let nb = nbocc(normaliser(nom), tab);
|
||||
if (nb == 0) { return nom; }
|
||||
}
|
||||
}
|
||||
return genererNom(${lesnoms})
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// générer une nouvelle adresse de courriel en s'assurant qu'elle est unique
|
||||
// ------------------------------------------------------------------------
|
||||
function genererCourriel(tab)
|
||||
{
|
||||
while (true) {
|
||||
let courriel = chaine(8) + "@" + chaine(5) + ".fr";
|
||||
let nb = nbocc(courriel, tab);
|
||||
if (nb == 0) { return courriel; }
|
||||
}
|
||||
};
|
||||
return genererCourriel(${lescourriels})
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// sélectionner un courriel au hasard dans un tableau en s'assurant
|
||||
// qu'il est unique et renvoyer son indice
|
||||
// ------------------------------------------------------------------------
|
||||
function getCourriel(tab)
|
||||
{
|
||||
while (true) {
|
||||
let ind = Math.floor(Math.random() * tab.length);
|
||||
let nom = tab.at(ind);
|
||||
if (nom.length > 0) {
|
||||
let nb = nbocc(nom, tab);
|
||||
if (nb == 1) { return ind; }
|
||||
}
|
||||
}
|
||||
}
|
||||
return getCourriel(${lescourriels})
|
||||
|
||||
// fabriquer un courriel qui contient une chaîne (@xxx) donnée
|
||||
function homonyme(chaine, lg) {
|
||||
let chars = 'abcdefghijklmnopqrstuvwxyz0123456789';
|
||||
let str = '';
|
||||
for (let i = 0; i < lg; i++) {
|
||||
str += chars.charAt(Math.floor(Math.random() * chars.length));
|
||||
}
|
||||
return str + chaine + ".fr";
|
||||
}
|
||||
return homonyme(${courriel_cherche}, 9);
|
||||
|
||||
// fabriquer une date (pseudo-)aléatoire
|
||||
function getDate()
|
||||
{
|
||||
let date = new Date();
|
||||
let ms = date.getTime();
|
||||
ms += 3 + Math.floor(Math.random() * 5 * 24 * 60 * 60 * 1000);
|
||||
date.setTime(ms);
|
||||
return date.toLocaleDateString();
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// cocher toutes les cases du corps de la table quand celle de
|
||||
// la ligne de titre est cochée
|
||||
// param idCase : case de la ligne de titre
|
||||
// ------------------------------------------------------------------------
|
||||
function cocher(idCase)
|
||||
{
|
||||
const table = idCase.closest("table");
|
||||
const body = table.querySelector("tbody");
|
||||
const cases = body.querySelectorAll('td[class="check"] > input[type="checkbox"]');
|
||||
for (let i = 0; i < cases.length; ++i) {
|
||||
cases[i].checked = true;
|
||||
}
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// ajouter tous les membres d'une page au tableau paramètre
|
||||
// ------------------------------------------------------------------------
|
||||
function ajouterMembresPage(tmembres)
|
||||
{
|
||||
for (const elem of document.querySelectorAll('table[class="list"] > tbody > tr'))
|
||||
{
|
||||
let o = Object();
|
||||
o.numero = elem.querySelector('td[class="num"]').textContent.trim();
|
||||
o.nom = elem.querySelector('th').textContent.trim();
|
||||
tmembres.push(o);
|
||||
}
|
||||
return tmembres;
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// ajouter des membres au tableau paramètre
|
||||
// ------------------------------------------------------------------------
|
||||
const upper = (str) => { return str.charAt(0).toUpperCase() + str.slice(1);} ; const chaine = (length) => { let chars = 'aàbcdeéèfghijklmnoôpqrstuùvwxyz'; let str = ''; for (let i = 0; i < length; i++) { str += chars.charAt(Math.floor(Math.random() * chars.length));} let debut = upper(str.slice(0, length/2)); let fin = upper(str.slice(length/2)); return debut + ' ' + fin; }
|
||||
function ajouterMembres(tmembres, num)
|
||||
{
|
||||
for (let i = 0; i < 7 + Math.floor(Math.random() * 15); ++i) {
|
||||
let o = Object();
|
||||
o.nom = chaine(11 + Math.floor(Math.random() * 5));
|
||||
o.numero = num;
|
||||
tmembres.push(o);
|
||||
++num;
|
||||
}
|
||||
return tmembres;
|
||||
}
|
||||
|
||||
// Compter le nombre de membres créés et modifiés
|
||||
function compter()
|
||||
{
|
||||
let o = { cree: 0, modif: 0 };
|
||||
for (const msg of document.querySelectorAll('summary > h2'))
|
||||
{
|
||||
if (msg.textContent.includes('créé')) {
|
||||
o.cree = Number(msg.textContent.split(' ')[0]);
|
||||
}
|
||||
if (msg.textContent.includes('modifié')) {
|
||||
o.modif = Number(msg.textContent.split(' ')[0]);
|
||||
}
|
||||
}
|
||||
return o;
|
||||
}
|
||||
|
||||
// additionner les codes des nb premiers caractères d'une chaîne
|
||||
// @pre nb <= chaine.length
|
||||
function calculer(nb, chaine)
|
||||
{
|
||||
let somme = 0;
|
||||
for (let i = 0; i < nb; ++i) {
|
||||
somme += chaine.charCodeAt(i);
|
||||
}
|
||||
return somme;
|
||||
}
|
||||
|
||||
function mod(courriel)
|
||||
{
|
||||
return courriel.substr(0, courriel.indexOf('@')) + "@ici.bzh";
|
||||
}
|
||||
|
||||
// fabriquer chaîne date + heure
|
||||
return ${valeur_champ_date} + " à " + ${valeur_champ_time}.replace(/:/, "h")
|
||||
|
||||
// calculer le nombre d'années entières entre deux dates
|
||||
// d1 : sous la forme jj/mm/aaaa
|
||||
// d2 : Date avec d1 <= d2
|
||||
function diff(d1, d2)
|
||||
{
|
||||
let [j1, m1, a1] = d1.split('/').map((x) => Number(x));
|
||||
let a2 = d2.getFullYear();
|
||||
let m2 = d2.getMonth() + 1;
|
||||
let j2 = d2.getDate();
|
||||
let diffAnnee = a2 - a1;
|
||||
if ((m2 < m1) || (m2 == m1 && j2 < j1)) { --diffAnnee; }
|
||||
return diffAnnee;
|
||||
}
|
||||
|
||||
return diff("30/10/2015", new Date());
|
||||
|
||||
// cas où la deuxième date est celle du jour
|
||||
function diff(d1)
|
||||
{
|
||||
let [j1, m1, a1] = d1.split('/').map((x) => Number(x));
|
||||
const d2 = new Date();
|
||||
let a2 = d2.getFullYear();
|
||||
let m2 = d2.getMonth() + 1;
|
||||
let j2 = d2.getDate();
|
||||
let diffAnnee = a2 - a1;
|
||||
if ((m2 < m1) || (m2 == m1 && j2 < j1)) { --diffAnnee; }
|
||||
return diffAnnee;
|
||||
}
|
||||
|
||||
// transformer année mois numérique en texte
|
||||
// 1977-03 => juillet 1977
|
||||
// 1977-15 => mars 1978
|
||||
function toText(chaine)
|
||||
{
|
||||
let lesMois = ["janvier", "février", "mars", "avril", "mai", "juin",
|
||||
"juillet", "août", "septembre", "octobre", "novembre", "décembre"];
|
||||
let ma = chaine.split('-');
|
||||
var annee = Number(ma[0]);
|
||||
var mois = Number(ma[1]);
|
||||
if (mois > 12) {
|
||||
annee += Math.floor(mois / 12);
|
||||
mois = mois % 12;
|
||||
}
|
||||
if (mois == 0) {
|
||||
annee -= 1;
|
||||
mois = 12;
|
||||
}
|
||||
return lesMois[mois - 1] + " " + annee;
|
||||
}
|
||||
|
||||
// variante
|
||||
function toText(mois, annee)
|
||||
{
|
||||
let lesMois = ["janvier", "février", "mars", "avril", "mai", "juin",
|
||||
"juillet", "août", "septembre", "octobre", "novembre", "décembre"];
|
||||
var mois = Number(mois);
|
||||
var annee = Number(annee);
|
||||
if (mois > 12) {
|
||||
annee += Math.floor(mois / 12);
|
||||
mois = mois % 12;
|
||||
}
|
||||
if (mois == 0) {
|
||||
annee -= 1;
|
||||
mois = 12;
|
||||
}
|
||||
return lesMois[mois - 1] + " " + annee;
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// mettre la liste des libellés des champs de la fiche membre dans le tableau paramètre
|
||||
// ------------------------------------------------------------------------
|
||||
function listerLibelles(t)
|
||||
{
|
||||
for (const elem of document.querySelectorAll('table.list.drag > tbody > tr'))
|
||||
{
|
||||
let o = Object();
|
||||
o.libelle = elem.querySelector('th').textContent.trim();
|
||||
o.visible = (elem.querySelector('td > span[title="Visible"]') != null);
|
||||
t.push(o);
|
||||
}
|
||||
return t;
|
||||
}
|
||||
|
||||
// ouvrir la boîte de dialogue de suppression d'un élément dans un onglet
|
||||
// @param : libellé de l'élément à supprimer
|
||||
function open(libelle)
|
||||
{
|
||||
// lister les champs qui peuvent être supprimés
|
||||
const elements = document.querySelectorAll('a[href ^= "delete.php"]');
|
||||
for (var i = 0; i < elements.length; ++i)
|
||||
{
|
||||
// trouver la ligne (tr) qui contient l'élément courant
|
||||
let ligne = elements[i].closest('tr');
|
||||
if (ligne.querySelector('th').innerText == libelle) { break; }
|
||||
}
|
||||
// ouvrir l'url dans une autre fenêtre
|
||||
const url = elements[i].href;
|
||||
window.open(url, '_blank').focus();
|
||||
}
|
10
fichiers/auto.csv
Normal file
10
fichiers/auto.csv
Normal file
@ -0,0 +1,10 @@
|
||||
"Numéro de membre","Nom & prénom","Adresse E-Mail","Adresse postale","Code postal","Ville","Numéro de téléphone","Inscription à la lettre d'information","Date d'inscription","Rattaché à","Membres rattachés","Catégorie"
|
||||
"2","Poqucz Bcmbul","giccaq7h@u6hhp.fr","2 rue des arbres","13203","Avcôlbowjiqjfnb","0010064196","","02/02/2022","","","Membres actifs"
|
||||
"3","Xtappô Èôèltv","s3391zc0@vvdvs.fr","2 rue des arbres","85516","Vtddàquicéôgbnb","0731878183","","02/02/2022","","","Anciens membres"
|
||||
"4","Vùjowq Énàwôi","orld6pj2@ailleurs.fr","3 rue des vagues","80339","Ànotèèqrmjccôwo","0736111621","Oui","03/03/2023","","","Membres actifs"
|
||||
"5","Cémàlr Mygpsà","18l0y9yi@wvih8.fr","2 rue des arbres","57060","Vjnféfèpgwtôgea","0625582761","","03/10/2022","","","Membres actifs"
|
||||
"6","Srtpue Qtnmuz","w7nfd5ad@xux1m.fr","","","","0311349441","","16/07/2024","","Hwdàvv Syrpàm","Membres actifs"
|
||||
"7","Hwdàvv Syrpàm","93b4znkp@p1viv.fr","2 rue des arbres","54089","Dsmyrcpixwxfzdq","0919678500","","02/02/2022","Srtpue Qtnmuz","","Membres actifs"
|
||||
"8","Zhamberlain Luuc","zham.luuc@49i16.org","","","","0644148172","","16/07/2024","","","Membres actifs"
|
||||
"109","Fpxdth Aàyqèc","uye0ryiq@9td2x.fr","2 rue des arbres","38875","Sihùukédzbôiaèz","0209576243","","02/02/2022","","","Membres actifs"
|
||||
"110","Lambert Paul","polo@u2mox.bzh","6 rue des cyps","27050","Narbloff","0875445356","","02/02/2022","","","Membres actifs"
|
|
106
fichiers/creation-conflit.csv
Normal file
106
fichiers/creation-conflit.csv
Normal file
@ -0,0 +1,106 @@
|
||||
"Numéro de membre","Nom & prénom","Adresse E-Mail","Adresse postale","Code postal","Ville","Numéro de téléphone","Inscription à la lettre d'information","Date d'inscription","Catégorie"
|
||||
1,"Ùwudrsa Pyèhrét","0qwpgqf7@q0bye.fr",,,"Iccèèohhôqèfmèh","0390328933",,"16/07/2024","Membres actifs"
|
||||
2,"Cigxqyb Ryèqles","ny54v784@i2a5u.fr",,,"Ùèômyùbùmyjaahn","0018790336",,"16/07/2024","Membres actifs"
|
||||
3,"Sknafqz Bjévdap","58co9d00@2h9u7.fr",,,"Kbyxètumnmvtnèk","0859673587",,"16/07/2024","Membres actifs"
|
||||
4,"Agpqyxd Ddqmbjfn","838ibezi@tb9kd.fr",,,"Mpyczbcliptvmrs","0545048394",,"16/07/2024","Membres actifs"
|
||||
5,"Ioàdqr Ndojkèo","jehx1e8d@df0v2.fr",,,"Veyrvléfwuqsgbà","0771217056",,"16/07/2024","Membres actifs"
|
||||
6,"Sdgcued Afaskrm","ifskbkzn@efkn9.fr",,,"Xmdkcbaeùùklako","0199217138",,"16/07/2024","Membres actifs"
|
||||
7,"Buôcwzp Ôèheéyb","9xmi6873@nvjo3.fr",,,"Eimyàekibùdcmié","0093573078",,"16/07/2024","Membres actifs"
|
||||
8,"Àqyxytu Jùéaàvi","iuy7dn07@y3p5r.fr",,,"Hcàcokjyzmotuas","0425697480",,"16/07/2024","Membres actifs"
|
||||
9,"Iùedqzo Gfônfvyr","6bpws6l0@rsmb9.fr",,,"Yzklyèyhôhtoààx","0639792185",,"16/07/2024","Membres actifs"
|
||||
10,"Xslqlé Fpvgzh","r6rhp9gi@tghcl.fr",,,"Pouqékprnlpfhaq","0485853636",,"16/07/2024","Membres actifs"
|
||||
11,"Bàmigcm Ungixlèn","6n2wuqfa@n4j8f.fr",,,"Ondqrôùaqseàéhb","0977155822",,"16/07/2024","Membres actifs"
|
||||
12,"Rpoua Gtzàoz","8ib21gmy@mb9hl.fr",,,"Zekyysgtubjyzbà","0912612847",,"16/07/2024","Membres actifs"
|
||||
13,"Inéxuvu Qthphàà","dz49d5cl@6yj2h.fr",,,"Wùoyôlswyxcahyv","0135221981",,"16/07/2024","Membres actifs"
|
||||
14,"Ejriéj Ukjndôb","twj8xz0u@z0vvb.fr",,,"Aéjoiuminfkenru","0329284742",,"16/07/2024","Membres actifs"
|
||||
15,"Fnfejw Mdsfxàz","ae750blr@8itrg.fr",,,"Yqwrqwtwkfrubsy","0863431295",,"16/07/2024","Membres actifs"
|
||||
16,"Shsnu Itrowl","f0qrs8hw@oczr3.fr",,,"Nyuybvmbavbmity","0533235550",,"16/07/2024","Membres actifs"
|
||||
17,"Yàcàpàù Sqcômtsg","1ak8u1lq@w82lf.fr",,,"Niblxjèopbéqùjô","0213508652",,"16/07/2024","Membres actifs"
|
||||
18,"Cnzbzn Iwpqyô","dgpxbdlc@qydvs.fr",,,"Wéèughjèeqsaéqg","0227328719",,"16/07/2024","Membres actifs"
|
||||
19,"Àpuccfc Cranèez","zheevx8a@2w6cd.fr",,,"Ènmgjqbfieléxmù","0870743015",,"16/07/2024","Membres actifs"
|
||||
20,"Eùôttà Zsènbir","pbbdkysm@9osn3.fr",,,"Gqceqpkcèmfgéôc","0008787262",,"16/07/2024","Membres actifs"
|
||||
21,"Àsrdz Ewlnme","37y3w4bu@s0hb7.fr",,,"Voùuhùmàtôhiaks","0080610607",,"16/07/2024","Membres actifs"
|
||||
22,"Zààkgzl Brmktùfz","wkwbgi10@0wjod.fr",,,"Édàorbpmépmèoaà","0255948584",,"16/07/2024","Membres actifs"
|
||||
23,"Tèuhn Nyéùtn","0f409nje@wgg1s.fr",,,"Lùwmqaiwcnôôoéo","0697257864",,"16/07/2024","Membres actifs"
|
||||
24,"Nemqga Faizèit","xun1b0z6@v4zkw.fr",,,"Mhaocryéniefpôy","0734987415",,"16/07/2024","Membres actifs"
|
||||
25,"Entuôyu Jnonhku","g7tx3dxa@dlvuy.fr",,,"Jugwfiqèyjxohqw","0584943605",,"16/07/2024","Membres actifs"
|
||||
26,"Qbutzl Ldpéôoz","2l4w3byk@8n73z.fr",,,"Plxxàmsqhtrrvko","0195729864",,"16/07/2024","Membres actifs"
|
||||
27,"Cxôvq Méaômf","iacmt8up@cx9lq.fr",,,"Xjpgèadvàoéxqôé","0713256605",,"16/07/2024","Membres actifs"
|
||||
28,"Ubidzàè Eùrttèb","50lxyl8w@jol8f.fr",,,"Vfqvôeekôwknmij","0414964548",,"16/07/2024","Membres actifs"
|
||||
29,"Ùèvmcvs Bcôoyècs","nidapons@7paxc.fr",,,"Kspjouùédàèwgfa","0059804061",,"16/07/2024","Membres actifs"
|
||||
30,"Xhùecè Sdqvcwu","3aurs2tv@6pr5n.fr",,,"Thuckyghzihvsél","0679016325",,"16/07/2024","Membres actifs"
|
||||
31,"Uzùfi Cfrslu","8330zapw@wdr85.fr",,,"Wazùsxéonùùdfyg","0620295791",,"16/07/2024","Membres actifs"
|
||||
32,"Éuoetu Cètjàd","zkmo6b3q@tv65t.fr",,,"Bézicbtqxdséghq","0350460221",,"16/07/2024","Membres actifs"
|
||||
33,"Ymkitu Zwaayo","i8n3scgc@f01sj.fr",,,"Hrsvhédhamlfvdp","0016509504",,"16/07/2024","Membres actifs"
|
||||
34,"Àuojjjn Lcidàmr","ic3l6p4w@ubpoi.fr",,,"Ahùjsàtbyùamàôo","0374928356",,"16/07/2024","Membres actifs"
|
||||
35,"Cibmjut Wchùdùn","4oe1h4tl@ltkqf.fr",,,"Éqwzzxfsèhmieuv","0571313355",,"16/07/2024","Membres actifs"
|
||||
36,"Saxbèhd Ctyèxwv","ticnl9vf@6rj5k.fr",,,"Htvjeàbzkôpkxss","0986392997",,"16/07/2024","Membres actifs"
|
||||
37,"Ôbièmé Icséxi","ld711cwy@2kwxs.fr",,,"Apoihrsnmehuskb","0867771111",,"16/07/2024","Membres actifs"
|
||||
38,"Kibôc Jgchie","mjge0y7w@3uj1m.fr",,,"Idkoikôéùxrndiu","0149323465",,"16/07/2024","Membres actifs"
|
||||
39,"Wfhpwàn Oboyaôhs","gzwyq51x@s187q.fr",,,"Soàwymaénôubkub","0459074682",,"16/07/2024","Membres actifs"
|
||||
40,"Ukhbfnt Àpàowgg","zddkrfu1@5iai5.fr",,,"Spykvàéhnàdocjt","0590108724",,"16/07/2024","Membres actifs"
|
||||
41,"Qfhàoô Gdfônpb","608jjey4@7efvr.fr",,,"Igpèjàbgbzpouby","0918089155",,"16/07/2024","Membres actifs"
|
||||
42,"Pôwuoàb Èéoàklov","qxzj0c47@tgmdy.fr",,,"Gicjàgviskàstnh","0798499904",,"16/07/2024","Membres actifs"
|
||||
43,"Eynkhg Ylkprzv","ilcbn7oh@oq2zm.fr",,,"Anôqôftgborkwàt","0846181988",,"16/07/2024","Membres actifs"
|
||||
44,"Cèèrxwv Tasjjjrt","qlavgysx@i1sg7.fr",,,"Avàgaxcbtèfgzhk","0959775910",,"16/07/2024","Membres actifs"
|
||||
45,"Juntafz Khgléùè","0g01mmjx@hmlu3.fr",,,"Gkputlpnkaqzygu","0360829644",,"16/07/2024","Membres actifs"
|
||||
46,"Naèèwv Ovôxsnr","jepuvv8z@2bskf.fr",,,"Gdghoqkrrmkeèùy","0592856436",,"16/07/2024","Membres actifs"
|
||||
47,"Càélnzw Huéfwvad","xxmv5rhc@b0q7w.fr",,,"Mwfèurkxbwpsjgb","0372053215",,"16/07/2024","Membres actifs"
|
||||
48,"Arzpjz Uôdflu","wy9a2am1@b8d61.fr",,,"Opzwwjhézkifkqo","0317038130",,"16/07/2024","Membres actifs"
|
||||
49,"Mgxebj Wppévga","nounwe5m@f6pev.fr",,,"Xoqdilpyzlslbfu","0603425929",,"16/07/2024","Membres actifs"
|
||||
50,"Rlajvb Fzgqbhu","t2r93grj@j61zc.fr",,,"Pwzxxupzbiaùuôp","0431045132",,"16/07/2024","Membres actifs"
|
||||
51,"Édùnf Koéôla","3dtoh8c2@l93b9.fr",,,"Ézikidvemkluvzù","0187322838",,"16/07/2024","Membres actifs"
|
||||
52,"Vjqxsvp Jèqrvce","mrza48mb@8ir8l.fr",,,"Czhzgeipspùfeob","0912062365",,"16/07/2024","Membres actifs"
|
||||
53,"Awbwbuy Ssyrqnbù","yhvg06jv@mpuz3.fr",,,"Vyàlvbnzuuéysqa","0923671623",,"16/07/2024","Membres actifs"
|
||||
54,"Qùwyf Zùsarô","evybvdv3@0xc59.fr",,,"Oqmumecujzodgpà","0117249143",,"16/07/2024","Membres actifs"
|
||||
55,"Hùùipu Tpczgx","oqimcpqe@5d8oy.fr",,,"Stjèèbcwknznnfv","0311303346",,"16/07/2024","Membres actifs"
|
||||
56,"Kdbutk Juvcmbé","sbzjagvk@s8s1t.fr",,,"Nhkdseavhàvywep","0894384468",,"16/07/2024","Membres actifs"
|
||||
57,"Ùôktuèo Oèèdàùht","008bjojz@3o9rt.fr",,,"Lôqmgbèéômeyxkt","0381412958",,"16/07/2024","Membres actifs"
|
||||
58,"Ffzàik Aùleve","8dwvjiqd@61kl4.fr",,,"Suaôgbàwèhésxùp","0376626002",,"16/07/2024","Membres actifs"
|
||||
59,"Kuvàjxr Rkqàbébg","1nqq4p7s@gcuqk.fr",,,"Kjcpyqmzxzrytww","0473437961",,"16/07/2024","Membres actifs"
|
||||
60,"Ùeyrrll Jièoùàtg","aintnady@ir5jr.fr",,,"Pajébduvcihmmôo","0730970696",,"16/07/2024","Membres actifs"
|
||||
61,"Àvàovzw Ôskzwlgs","3sa0pbkj@p5vxv.fr",,,"Èhsgqôrmrjlzôwj","0824156292",,"16/07/2024","Membres actifs"
|
||||
62,"Fèfvcp Èélaùfy","h72aht24@yv6g1.fr",,,"Éwalemdyfyrslàr","0542284117",,"16/07/2024","Membres actifs"
|
||||
63,"Iôèmièl Snfxtiw","v08g3zh3@bgbxv.fr",,,"Vsènfàifôyatzpô","0909949981",,"16/07/2024","Membres actifs"
|
||||
64,"Ràèjvpn Tràoàvm","6v8uc6bl@o3i3s.fr",,,"Èxùluvbtjlirlfà","0822132192",,"16/07/2024","Membres actifs"
|
||||
65,"Tèpôg Mèxpjp","7n0xcy30@vi32h.fr",,,"Èddnniwzmjxàlod","0773403804",,"16/07/2024","Membres actifs"
|
||||
66,"Cbgkéj Ggônàd","sooqorqr@4raxe.fr",,,"Vncjcwcnétgmécn","0264668248",,"16/07/2024","Membres actifs"
|
||||
67,"Sagnbg Mulnjgi","f6knc3mg@zm1hl.fr",,,"Ùrnéèvbàvbytmùh","0732817440",,"16/07/2024","Membres actifs"
|
||||
68,"Phfxjs Qàedèiz","xpfbll1y@setuu.fr",,,"Èdàévùixabgvbxk","0409053273",,"16/07/2024","Membres actifs"
|
||||
69,"Rxxmif Ynkôpfd","gpnij7ej@w4tyw.fr",,,"Hènôgôwxèùrélàj","0497115334",,"16/07/2024","Membres actifs"
|
||||
70,"Ànlùhph Yeakpàue","ouctfxi0@n93q6.fr",,,"Zbcypohhglzsaxè","0151376508",,"16/07/2024","Membres actifs"
|
||||
71,"Psuôym Imdzéj","qehxbd6t@4dlou.fr",,,"Skpuvcuptmfôuàô","0103446872",,"16/07/2024","Membres actifs"
|
||||
72,"Xychgbù Xkbnbeb","84643ndw@kq8km.fr",,,"Vbkàoôzvazmexav","0068219325",,"16/07/2024","Membres actifs"
|
||||
73,"Àjwnônw Xôvôprq","ybr2xahx@ju60y.fr",,,"Jhfbqiazmnsddbj","0584876492",,"16/07/2024","Membres actifs"
|
||||
74,"Wflvpb Mcszpù","zab4p9by@b3cri.fr",,,"Àocmgàloèkfwlip","0607502951",,"16/07/2024","Membres actifs"
|
||||
75,"Moguoru Kcroèbe","iy9ln0gm@xocow.fr",,,"Yhpùbobplcuàavn","0989642018",,"16/07/2024","Membres actifs"
|
||||
76,"Dnasùp Xoaôdbr","2exipmq9@zzlpf.fr",,,"Zuplùdgyewèiùfg","0728362305",,"16/07/2024","Membres actifs"
|
||||
77,"Sblayiè Mlôgèka","ntxl9ohu@37v2i.fr",,,"Sqsppôkpaômudoà","0087952294",,"16/07/2024","Membres actifs"
|
||||
78,"Ùddlbf Ragniyu","krg44lcl@d73ex.fr",,,"Éugnpayélhcuwdp","0382114267",,"16/07/2024","Membres actifs"
|
||||
79,"Ùdjàxmq Bpjaymuq","eyjnauhg@b0tig.fr",,,"Iweùguôvutnépsg","0483631855",,"16/07/2024","Membres actifs"
|
||||
80,"Eègjzv Nnoaly","vdisxep5@83m87.fr",,,"Fiupnpbùhùinoha","0758413534",,"16/07/2024","Membres actifs"
|
||||
81,"Xcquawé Eqôùôôt","n91rmjnn@haym5.fr",,,"Qotykddygpbéyob","0323289623",,"16/07/2024","Membres actifs"
|
||||
82,"Jggydà Gucgwn","1i014q4a@lg7bh.fr",,,"Tàaéédwpvbùqkdù","0941274926",,"16/07/2024","Membres actifs"
|
||||
83,"Uahhàvn Gqhcfzho","3iznnpxa@3f0a4.fr",,,"Ùwuôoolelvbhmfv","0753089116",,"16/07/2024","Membres actifs"
|
||||
84,"Mljaaar Ylkhdpm","qjpvt10i@m3hq7.fr",,,"Iègàyldàcdgtlme","0494678653",,"16/07/2024","Membres actifs"
|
||||
85,"Sjunxf Tazxuv","d8g1baeg@euc49.fr",,,"Hnopaveozfjcquf","0454201434",,"16/07/2024","Membres actifs"
|
||||
86,"Gxwdùhu Zédfàdrè","3vsj6otv@9is91.fr",,,"Kfuxgméyxevphhu","0478937916",,"16/07/2024","Membres actifs"
|
||||
87,"Ôàldoz Àqmobi","yv1uql4m@aum62.fr",,,"Mftjcskvirulzôu","0378178647",,"16/07/2024","Membres actifs"
|
||||
88,"Éguyawq Ôqfbugg","cri1o9ys@j8la7.fr",,,"Acjùbzeajpùczhe","0614168826",,"16/07/2024","Membres actifs"
|
||||
89,"Bpuèc Dzguxù","q2rxn63k@wnuym.fr",,,"Wqvmzvdlénsyànb","0688818610",,"16/07/2024","Membres actifs"
|
||||
90,"Kzpzrzg Gwxtdah","eklbm884@56f9d.fr",,,"Clxyvàadcytbnàù","0240813024",,"16/07/2024","Membres actifs"
|
||||
91,"Makhù Byjbrh","qe65kwuu@ayvdn.fr",,,"Ôzfwyàoitùzeqyé","0747939729",,"16/07/2024","Membres actifs"
|
||||
92,"Éqjcg Nxwwgc","npmxramj@p8wt3.fr",,,"Fpôhgèkcwpvéimo","0608440887",,"16/07/2024","Membres actifs"
|
||||
93,"Upcqgw Bljopno","avwkh02c@eoplp.fr",,,"Tdoôkwasfqùàeso","0654744566",,"16/07/2024","Membres actifs"
|
||||
94,"Jlpncb Okvrsb","0s3fptu0@3ht55.fr",,,"Zkvcgflàgvmdxtr","0568230590",,"16/07/2024","Membres actifs"
|
||||
95,"Xgxdhlc Éweeéàn","eemr50p9@q35xf.fr",,,"Iyjxrritàdôabùv","0253124768",,"16/07/2024","Membres actifs"
|
||||
96,"Hàsqùw Gpjolgi","t9jr8rxg@8nxd9.fr",,,"Xbqùvoyèygiyikq","0316519558",,"16/07/2024","Membres actifs"
|
||||
97,"Fzyuôb Poéyev","au7c7hmo@hwlkf.fr",,,"Vsnxururépàoàai","0086460951",,"16/07/2024","Membres actifs"
|
||||
98,"Ôqùbdqv Rpréomi","jxhy1l6r@falaw.fr",,,"Èqblkqéôsaénvjd","0420445343",,"16/07/2024","Membres actifs"
|
||||
99,"Ymrleaa Uggqwloz","4u325vdx@o9qs7.fr",,,"Orhieceocéyexkd","0698165513",,"16/07/2024","Membres actifs"
|
||||
100,"Oiéqfxa Sssasél","eoqrvj7n@ue1wx.fr",,,"Lhvslkaôùùrùèet","0927144313",,"16/07/2024","Membres actifs"
|
||||
101,"Dmiukd Bùifsèù","r5ddftxv@nnxso.fr",,,"Ugaàrùeèvpènmis","0522738439",,"16/07/2024","Membres actifs"
|
||||
102,"Èdfalm Hpwgôo","bhbn63kc@hnpfz.fr",,,"Bocqjàlèzuéùiik","0039707587",,"16/07/2024","Membres actifs"
|
||||
103,"Tzinnj Pdtija","hnp25x89@v52me.fr",,,"Snnckhnôbgqgiyl","0161504823",,"16/07/2024","Membres actifs"
|
||||
104,"Eétùè Kpevàu","rur1wqfu@8ukx6.fr",,,"Evngèôèhkrzilvè","0110205798",,"16/07/2024","Membres actifs"
|
||||
105,"Iùugqdo Unixlmè","w2c6eltr@5dwv8.fr",,,"Kôgddlxlkdwtwhù","0409468456",,"16/07/2024","Membres actifs"
|
|
107
fichiers/creation-sans-entete.csv
Normal file
107
fichiers/creation-sans-entete.csv
Normal file
@ -0,0 +1,107 @@
|
||||
2,"Cigxqyb Ryèqles","ny54v784@i2a5u.fr",,,"Ùèômyùbùmyjaahn","0266969287",,"16/07/2024","Membres actifs"
|
||||
3,"Sknafqz Bjévdap","58co9d00@2h9u7.fr",,,"Kbyxètumnmvtnèk","0892417941",,"16/07/2024","Membres actifs"
|
||||
4,"Agpqyxd Ddqmbjfn","838ibezi@tb9kd.fr",,,"Mpyczbcliptvmrs","0156106773","Oui","16/07/2024","Membres actifs"
|
||||
5,"Ioàdqr Ndojkèo","jehx1e8d@df0v2.fr",,,"Veyrvléfwuqsgbà","0646164226",,"16/07/2024","Membres actifs"
|
||||
6,"Sdgcued Afaskrm","ifskbkzn@efkn9.fr",,,"Xmdkcbaeùùklako","0003284276",,"16/07/2024","Membres actifs"
|
||||
7,"Buôcwzp Ôèheéyb","9xmi6873@nvjo3.fr",,,"Eimyàekibùdcmié","0518834368",,"16/07/2024","Membres actifs"
|
||||
8,"Àqyxytu Jùéaàvi","iuy7dn07@y3p5r.fr",,,"Hcàcokjyzmotuas","0709486150",,"16/07/2024","Membres actifs"
|
||||
9,"Iùedqzo Gfônfvyr","6bpws6l0@rsmb9.fr",,,"Yzklyèyhôhtoààx","0816874131",,"16/07/2024","Membres actifs"
|
||||
10,"Xslqlé Fpvgzh","r6rhp9gi@tghcl.fr",,,"Pouqékprnlpfhaq","0219544453",,"16/07/2024","Membres actifs"
|
||||
11,"Bàmigcm Ungixlèn","6n2wuqfa@n4j8f.fr",,,"Ondqrôùaqseàéhb","0270680984",,"16/07/2024","Membres actifs"
|
||||
12,"Rpoua Gtzàoz","8ib21gmy@mb9hl.fr",,,"Zekyysgtubjyzbà","0302512310",,"16/07/2024","Membres actifs"
|
||||
13,"Inéxuvu Qthphàà","dz49d5cl@6yj2h.fr",,,"Wùoyôlswyxcahyv","0676976996",,"16/07/2024","Membres actifs"
|
||||
14,"Ejriéj Ukjndôb","twj8xz0u@z0vvb.fr",,,"Aéjoiuminfkenru","0824770235","Oui","16/07/2024","Membres actifs"
|
||||
15,"Fnfejw Mdsfxàz","ae750blr@8itrg.fr",,,"Yqwrqwtwkfrubsy","0039848381",,"16/07/2024","Membres actifs"
|
||||
16,"Shsnu Itrowl","f0qrs8hw@oczr3.fr",,,"Nyuybvmbavbmity","0964931747",,"16/07/2024","Membres actifs"
|
||||
17,"Yàcàpàù Sqcômtsg","1ak8u1lq@w82lf.fr",,,"Niblxjèopbéqùjô","0716965471",,"16/07/2024","Membres actifs"
|
||||
18,"Cnzbzn Iwpqyô","dgpxbdlc@qydvs.fr",,,"Wéèughjèeqsaéqg","0810025878",,"16/07/2024","Membres actifs"
|
||||
19,"Àpuccfc Cranèez","zheevx8a@2w6cd.fr",,,"Ènmgjqbfieléxmù","0947004382",,"16/07/2024","Membres actifs"
|
||||
20,"Eùôttà Zsènbir","pbbdkysm@9osn3.fr",,,"Gqceqpkcèmfgéôc","0241339326",,"16/07/2024","Membres actifs"
|
||||
21,"Àsrdz Ewlnme","37y3w4bu@s0hb7.fr",,,"Voùuhùmàtôhiaks","0184415325",,"16/07/2024","Membres actifs"
|
||||
22,"Zààkgzl Brmktùfz","wkwbgi10@0wjod.fr",,,"Édàorbpmépmèoaà","0371861851",,"16/07/2024","Membres actifs"
|
||||
23,"Tèuhn Nyéùtn","0f409nje@wgg1s.fr",,,"Lùwmqaiwcnôôoéo","0969314161",,"16/07/2024","Membres actifs"
|
||||
24,"Nemqga Faizèit","xun1b0z6@v4zkw.fr",,,"Mhaocryéniefpôy","0768837856",,"16/07/2024","Membres actifs"
|
||||
25,"Entuôyu Jnonhku","g7tx3dxa@dlvuy.fr",,,"Jugwfiqèyjxohqw","0954287384","Oui","16/07/2024","Membres actifs"
|
||||
26,"Qbutzl Ldpéôoz","2l4w3byk@8n73z.fr",,,"Plxxàmsqhtrrvko","0590820390",,"16/07/2024","Membres actifs"
|
||||
27,"Cxôvq Méaômf","iacmt8up@cx9lq.fr",,,"Xjpgèadvàoéxqôé","0344951418",,"16/07/2024","Membres actifs"
|
||||
28,"Ubidzàè Eùrttèb","50lxyl8w@jol8f.fr",,,"Vfqvôeekôwknmij","0893840571","Oui","16/07/2024","Membres actifs"
|
||||
29,"Ùèvmcvs Bcôoyècs","nidapons@7paxc.fr",,,"Kspjouùédàèwgfa","0421930052","Oui","16/07/2024","Membres actifs"
|
||||
30,"Xhùecè Sdqvcwu","3aurs2tv@6pr5n.fr",,,"Thuckyghzihvsél","0823823136",,"16/07/2024","Membres actifs"
|
||||
31,"Uzùfi Cfrslu","8330zapw@wdr85.fr",,,"Wazùsxéonùùdfyg","0747969866",,"16/07/2024","Membres actifs"
|
||||
32,"Éuoetu Cètjàd","zkmo6b3q@tv65t.fr",,,"Bézicbtqxdséghq","0416634086",,"16/07/2024","Membres actifs"
|
||||
33,"Ymkitu Zwaayo","i8n3scgc@f01sj.fr",,,"Hrsvhédhamlfvdp","0940975325",,"16/07/2024","Membres actifs"
|
||||
34,"Àuojjjn Lcidàmr","ic3l6p4w@ubpoi.fr",,,"Ahùjsàtbyùamàôo","0813242231",,"16/07/2024","Membres actifs"
|
||||
35,"Cibmjut Wchùdùn","4oe1h4tl@ltkqf.fr",,,"Éqwzzxfsèhmieuv","0947581627",,"16/07/2024","Membres actifs"
|
||||
36,"Saxbèhd Ctyèxwv","ticnl9vf@6rj5k.fr",,,"Htvjeàbzkôpkxss","0981687647",,"16/07/2024","Membres actifs"
|
||||
37,"Ôbièmé Icséxi","ld711cwy@2kwxs.fr",,,"Apoihrsnmehuskb","0569812726",,"16/07/2024","Membres actifs"
|
||||
38,"Kibôc Jgchie","mjge0y7w@3uj1m.fr",,,"Idkoikôéùxrndiu","0598800295",,"16/07/2024","Membres actifs"
|
||||
39,"Wfhpwàn Oboyaôhs","gzwyq51x@s187q.fr",,,"Soàwymaénôubkub","0330735130",,"16/07/2024","Membres actifs"
|
||||
40,"Ukhbfnt Àpàowgg","zddkrfu1@5iai5.fr",,,"Spykvàéhnàdocjt","0732574518",,"16/07/2024","Membres actifs"
|
||||
41,"Qfhàoô Gdfônpb","608jjey4@7efvr.fr",,,"Igpèjàbgbzpouby","0878061182",,"16/07/2024","Membres actifs"
|
||||
42,"Pôwuoàb Èéoàklov","qxzj0c47@tgmdy.fr",,,"Gicjàgviskàstnh","0076325212",,"16/07/2024","Membres actifs"
|
||||
43,"Eynkhg Ylkprzv","ilcbn7oh@oq2zm.fr",,,"Anôqôftgborkwàt","0821921840",,"16/07/2024","Membres actifs"
|
||||
44,"Cèèrxwv Tasjjjrt","qlavgysx@i1sg7.fr",,,"Avàgaxcbtèfgzhk","0864541186",,"16/07/2024","Membres actifs"
|
||||
45,"Juntafz Khgléùè","0g01mmjx@hmlu3.fr",,,"Gkputlpnkaqzygu","0334745330",,"16/07/2024","Membres actifs"
|
||||
46,"Naèèwv Ovôxsnr","jepuvv8z@2bskf.fr",,,"Gdghoqkrrmkeèùy","0631034631",,"16/07/2024","Membres actifs"
|
||||
47,"Càélnzw Huéfwvad","xxmv5rhc@b0q7w.fr",,,"Mwfèurkxbwpsjgb","0930954230",,"16/07/2024","Membres actifs"
|
||||
48,"Arzpjz Uôdflu","wy9a2am1@b8d61.fr",,,"Opzwwjhézkifkqo","0802421273",,"16/07/2024","Membres actifs"
|
||||
49,"Mgxebj Wppévga","nounwe5m@f6pev.fr",,,"Xoqdilpyzlslbfu","0181363946",,"16/07/2024","Membres actifs"
|
||||
50,"Rlajvb Fzgqbhu","t2r93grj@j61zc.fr",,,"Pwzxxupzbiaùuôp","0714452664",,"16/07/2024","Membres actifs"
|
||||
51,"Édùnf Koéôla","3dtoh8c2@l93b9.fr",,,"Ézikidvemkluvzù","0392025707",,"16/07/2024","Membres actifs"
|
||||
52,"Vjqxsvp Jèqrvce","mrza48mb@8ir8l.fr",,,"Czhzgeipspùfeob","0347336595",,"16/07/2024","Membres actifs"
|
||||
53,"Awbwbuy Ssyrqnbù","yhvg06jv@mpuz3.fr",,,"Vyàlvbnzuuéysqa","0780771730",,"16/07/2024","Membres actifs"
|
||||
54,"Qùwyf Zùsarô","evybvdv3@0xc59.fr",,,"Oqmumecujzodgpà","0632784515",,"16/07/2024","Membres actifs"
|
||||
55,"Hùùipu Tpczgx","oqimcpqe@5d8oy.fr",,,"Stjèèbcwknznnfv","0146631272",,"16/07/2024","Membres actifs"
|
||||
56,"Kdbutk Juvcmbé","sbzjagvk@s8s1t.fr",,,"Nhkdseavhàvywep","0375089632",,"16/07/2024","Membres actifs"
|
||||
57,"Ùôktuèo Oèèdàùht","008bjojz@3o9rt.fr",,,"Lôqmgbèéômeyxkt","0846501065",,"16/07/2024","Membres actifs"
|
||||
58,"Ffzàik Aùleve","8dwvjiqd@61kl4.fr",,,"Suaôgbàwèhésxùp","0105631308",,"16/07/2024","Membres actifs"
|
||||
59,"Kuvàjxr Rkqàbébg","1nqq4p7s@gcuqk.fr",,,"Kjcpyqmzxzrytww","0302834100",,"16/07/2024","Membres actifs"
|
||||
60,"Ùeyrrll Jièoùàtg","aintnady@ir5jr.fr",,,"Pajébduvcihmmôo","0238941004",,"16/07/2024","Membres actifs"
|
||||
61,"Àvàovzw Ôskzwlgs","3sa0pbkj@p5vxv.fr",,,"Èhsgqôrmrjlzôwj","0570853458",,"16/07/2024","Membres actifs"
|
||||
62,"Fèfvcp Èélaùfy","h72aht24@yv6g1.fr",,,"Éwalemdyfyrslàr","0342058059",,"16/07/2024","Membres actifs"
|
||||
63,"Iôèmièl Snfxtiw","v08g3zh3@bgbxv.fr",,,"Vsènfàifôyatzpô","0958422325",,"16/07/2024","Membres actifs"
|
||||
64,"Ràèjvpn Tràoàvm","6v8uc6bl@o3i3s.fr",,,"Èxùluvbtjlirlfà","0614590793",,"16/07/2024","Membres actifs"
|
||||
65,"Tèpôg Mèxpjp","7n0xcy30@vi32h.fr",,,"Èddnniwzmjxàlod","0609518760",,"16/07/2024","Membres actifs"
|
||||
66,"Cbgkéj Ggônàd","sooqorqr@4raxe.fr",,,"Vncjcwcnétgmécn","0031597146",,"16/07/2024","Membres actifs"
|
||||
67,"Sagnbg Mulnjgi","f6knc3mg@zm1hl.fr",,,"Ùrnéèvbàvbytmùh","0657941357",,"16/07/2024","Membres actifs"
|
||||
68,"Phfxjs Qàedèiz","xpfbll1y@setuu.fr",,,"Èdàévùixabgvbxk","0343236680",,"16/07/2024","Membres actifs"
|
||||
69,"Rxxmif Ynkôpfd","gpnij7ej@w4tyw.fr",,,"Hènôgôwxèùrélàj","0694605744",,"16/07/2024","Membres actifs"
|
||||
70,"Ànlùhph Yeakpàue","ouctfxi0@n93q6.fr",,,"Zbcypohhglzsaxè","0575826937",,"16/07/2024","Membres actifs"
|
||||
71,"Psuôym Imdzéj","qehxbd6t@4dlou.fr",,,"Skpuvcuptmfôuàô","0098003653",,"16/07/2024","Membres actifs"
|
||||
72,"Xychgbù Xkbnbeb","84643ndw@kq8km.fr",,,"Vbkàoôzvazmexav","0493197077",,"16/07/2024","Membres actifs"
|
||||
73,"Àjwnônw Xôvôprq","ybr2xahx@ju60y.fr",,,"Jhfbqiazmnsddbj","0177314912",,"16/07/2024","Membres actifs"
|
||||
74,"Wflvpb Mcszpù","zab4p9by@b3cri.fr",,,"Àocmgàloèkfwlip","0943324760",,"16/07/2024","Membres actifs"
|
||||
75,"Moguoru Kcroèbe","iy9ln0gm@xocow.fr",,,"Yhpùbobplcuàavn","0074455119",,"16/07/2024","Membres actifs"
|
||||
76,"Dnasùp Xoaôdbr","2exipmq9@zzlpf.fr",,,"Zuplùdgyewèiùfg","0777552741","Oui","16/07/2024","Membres actifs"
|
||||
77,"Sblayiè Mlôgèka","ntxl9ohu@37v2i.fr",,,"Sqsppôkpaômudoà","0386925067",,"16/07/2024","Membres actifs"
|
||||
78,"Ùddlbf Ragniyu","krg44lcl@d73ex.fr",,,"Éugnpayélhcuwdp","0488513928",,"16/07/2024","Membres actifs"
|
||||
79,"Ùdjàxmq Bpjaymuq","eyjnauhg@b0tig.fr",,,"Iweùguôvutnépsg","0270471138",,"16/07/2024","Membres actifs"
|
||||
80,"Eègjzv Nnoaly","vdisxep5@83m87.fr",,,"Fiupnpbùhùinoha","0273834048",,"16/07/2024","Membres actifs"
|
||||
81,"Xcquawé Eqôùôôt","n91rmjnn@haym5.fr",,,"Qotykddygpbéyob","0349720162",,"16/07/2024","Membres actifs"
|
||||
82,"Jggydà Gucgwn","1i014q4a@lg7bh.fr",,,"Tàaéédwpvbùqkdù","0748449161",,"16/07/2024","Membres actifs"
|
||||
83,"Uahhàvn Gqhcfzho","3iznnpxa@3f0a4.fr",,,"Ùwuôoolelvbhmfv","0052766432",,"16/07/2024","Membres actifs"
|
||||
84,"Mljaaar Ylkhdpm","qjpvt10i@m3hq7.fr",,,"Iègàyldàcdgtlme","0007455909",,"16/07/2024","Membres actifs"
|
||||
85,"Sjunxf Tazxuv","d8g1baeg@euc49.fr",,,"Hnopaveozfjcquf","0101471076","Oui","16/07/2024","Membres actifs"
|
||||
86,"Gxwdùhu Zédfàdrè","3vsj6otv@9is91.fr",,,"Kfuxgméyxevphhu","0807647685",,"16/07/2024","Membres actifs"
|
||||
87,"Ôàldoz Àqmobi","yv1uql4m@aum62.fr",,,"Mftjcskvirulzôu","0024472214",,"16/07/2024","Membres actifs"
|
||||
88,"Éguyawq Ôqfbugg","cri1o9ys@j8la7.fr",,,"Acjùbzeajpùczhe","0355014273",,"16/07/2024","Membres actifs"
|
||||
89,"Bpuèc Dzguxù","q2rxn63k@wnuym.fr",,,"Wqvmzvdlénsyànb","0196275404",,"16/07/2024","Membres actifs"
|
||||
90,"Kzpzrzg Gwxtdah","eklbm884@56f9d.fr",,,"Clxyvàadcytbnàù","0796912389",,"16/07/2024","Membres actifs"
|
||||
91,"Makhù Byjbrh","qe65kwuu@ayvdn.fr",,,"Ôzfwyàoitùzeqyé","0815373442",,"16/07/2024","Membres actifs"
|
||||
92,"Éqjcg Nxwwgc","npmxramj@p8wt3.fr",,,"Fpôhgèkcwpvéimo","0301633157",,"16/07/2024","Membres actifs"
|
||||
93,"Upcqgw Bljopno","avwkh02c@eoplp.fr",,,"Tdoôkwasfqùàeso","0283626894",,"16/07/2024","Membres actifs"
|
||||
94,"Jlpncb Okvrsb","0s3fptu0@3ht55.fr",,,"Zkvcgflàgvmdxtr","0207411669","Oui","16/07/2024","Membres actifs"
|
||||
95,"Xgxdhlc Éweeéàn","eemr50p9@q35xf.fr",,,"Iyjxrritàdôabùv","0998214424",,"16/07/2024","Membres actifs"
|
||||
96,"Hàsqùw Gpjolgi","t9jr8rxg@8nxd9.fr",,,"Xbqùvoyèygiyikq","0815932763",,"16/07/2024","Membres actifs"
|
||||
97,"Fzyuôb Poéyev","au7c7hmo@hwlkf.fr",,,"Vsnxururépàoàai","0868084066",,"16/07/2024","Membres actifs"
|
||||
98,"Ôqùbdqv Rpréomi","jxhy1l6r@falaw.fr",,,"Èqblkqéôsaénvjd","0461476859",,"16/07/2024","Membres actifs"
|
||||
99,"Ymrleaa Uggqwloz","4u325vdx@o9qs7.fr",,,"Orhieceocéyexkd","0463364943",,"16/07/2024","Membres actifs"
|
||||
100,"Oiéqfxa Sssasél","eoqrvj7n@ue1wx.fr",,,"Lhvslkaôùùrùèet","0320798077",,"16/07/2024","Membres actifs"
|
||||
101,"Dmiukd Bùifsèù","r5ddftxv@nnxso.fr",,,"Ugaàrùeèvpènmis","0714725204",,"16/07/2024","Membres actifs"
|
||||
102,"Èdfalm Hpwgôo","bhbn63kc@hnpfz.fr",,,"Bocqjàlèzuéùiik","0628385217",,"16/07/2024","Membres actifs"
|
||||
103,"Tzinnj Pdtija","hnp25x89@v52me.fr",,,"Snnckhnôbgqgiyl","0635232651","Oui","16/07/2024","Membres actifs"
|
||||
104,"Eétùè Kpevàu","rur1wqfu@8ukx6.fr",,,"Evngèôèhkrzilvè","0578622411",,"16/07/2024","Membres actifs"
|
||||
105,"Iùugqdo Unixlmè","w2c6eltr@5dwv8.fr",,,"Kôgddlxlkdwtwhù","0816107618",,"16/07/2024","Membres actifs"
|
||||
106,"Ùwudrsa Pyèhrét","0qwpgqf7@q0bye.fr",,,"Iccèèohhôqèfmèh","0111657779",,"16/07/2024","Membres actifs"
|
||||
113,"Zhamberlain Luuc","omxgfess@49i16.fr",,,,"0262474722",,"16/07/2024","Membres actifs"
|
||||
115,"Lambert Paul","yoyu087s@u2mox.fr","2 rue des arbres","72005","Ebcrakùovqppeff","0875445356",,"02/02/2022","Membres actifs"
|
|
106
fichiers/creation.csv
Normal file
106
fichiers/creation.csv
Normal file
@ -0,0 +1,106 @@
|
||||
"Numéro de membre","Nom & prénom","Adresse E-Mail","Adresse postale","Code postal","Ville","Numéro de téléphone","Inscription à la lettre d'information","Date d'inscription","Catégorie"
|
||||
2,"Mueôpé Bùilma","2sicmyb1@k3aks.fr",,,"Uwgvùuèeôhklôyr","0553221876",,"16/07/2024","Membres actifs"
|
||||
3,"Oôdqiq Lègegn","orkphi9s@svlan.fr",,,"Vanôwnépllarèvu","0620905720",,"16/07/2024","Membres actifs"
|
||||
4,"Hcrffuè Qmlàfàùt","ftlrfgdc@w3m7v.fr",,,"Yfhàsrlcfeumvàj","0635199391",,"16/07/2024","Membres actifs"
|
||||
5,"Àjlaqas Ràbduzée","lqffejdx@gycof.fr",,,"Mpotrgwékxgxfùl","0677779742",,"16/07/2024","Membres actifs"
|
||||
6,"Béqùèkw Lôkyùgln","6f33zka0@kplig.fr",,,"Tfqaxnixwiôypjz","0805162996",,"16/07/2024","Membres actifs"
|
||||
7,"Wtkkqj Vgùkrfb","ejbycne6@99xm1.fr",,,"Éqybmmyéôtnsusl","0425808794",,"16/07/2024","Membres actifs"
|
||||
8,"Jzàqlua Siejksp","afw3wobk@ibe4z.fr",,,"Kpuxiuàfeptpuèè","0689782628",,"16/07/2024","Membres actifs"
|
||||
9,"Hqtync Cecntr","cfw02rqy@n8olf.fr",,,"Texngxkbeocfydd","0022945266",,"16/07/2024","Membres actifs"
|
||||
10,"Ôùwauo Gekohb","dz7hizj2@dbyiu.fr",,,"Sèùmhfôàgctihéz","0182993842",,"16/07/2024","Membres actifs"
|
||||
11,"Xsmtxé Gképoi","oq7smlse@709ph.fr",,,"Ùlajweèlqtdtrém","0106937669",,"16/07/2024","Membres actifs"
|
||||
12,"Àfèécsr Yknùodz","lp6dydz0@dxs3o.fr",,,"Sàugcxzypitvevh","0663044525",,"16/07/2024","Membres actifs"
|
||||
13,"Scrjj Xptoya","f4hws2ob@qbfjh.fr",,,"Yùézvuyfdymztar","0258976094",,"16/07/2024","Membres actifs"
|
||||
14,"Gjamco Èztéuus","esigccsl@trwjl.fr",,,"Fècnqàvwlwpvàèp","0913243533",,"16/07/2024","Membres actifs"
|
||||
15,"Hbhugi Gweéky","3f6il8jz@5ndoz.fr",,,"Sxàbèedblcvvlce","0004733165",,"16/07/2024","Membres actifs"
|
||||
16,"Ncùjk Màixés","f8zavo6e@dmk5j.fr",,,"Vcèzthônaiasmyv","0744091312",,"16/07/2024","Membres actifs"
|
||||
17,"Aiùèj Étffwm","6pw8p9j8@vl1ws.fr",,,"Axrmxdgoôépainé","0985306413",,"16/07/2024","Membres actifs"
|
||||
18,"Mjdrlju Ùedzzaf","pwozpe92@tvun2.fr",,,"Hfhxvèujàjmnizg","0288718586",,"16/07/2024","Membres actifs"
|
||||
19,"Ôyvpaga Éntnzwal","7r7i4a7x@m35y2.fr",,,"Juqtqémèidsmfhà","0192022981",,"16/07/2024","Membres actifs"
|
||||
20,"Aigxuso Èbèbéym","w180a7rj@taeml.fr",,,"Égtxéfmqebsamgb","0119905757",,"16/07/2024","Membres actifs"
|
||||
21,"Lbwyèl Odxomsô","l6brunc1@l2mbq.fr",,,"Axèziôèmwwswmpw","0968835335",,"16/07/2024","Membres actifs"
|
||||
22,"Téeihmo Osuutxms","isu0oxh5@j3lxg.fr",,,"Luàehzbbcpysozù","0341254794",,"16/07/2024","Membres actifs"
|
||||
23,"Èfmynl Gtxzrc","dunblzx9@zwyb9.fr",,,"Èpystfbùèiwzéaè","0906173734",,"16/07/2024","Membres actifs"
|
||||
24,"Gwobè Kvidxf","evxpy4gd@c9eqk.fr",,,"Mjcdcmùbhpkurcj","0582537492",,"16/07/2024","Membres actifs"
|
||||
25,"Rpègqp Mgewex","tajuducu@bdiub.fr",,,"Ôqpôèsjkrivnipé","0150352875",,"16/07/2024","Membres actifs"
|
||||
26,"Qcbzbro Ôztùéàtc","d84levaj@x2zjl.fr",,,"Grecéyyjimézaùé","0346940150",,"16/07/2024","Membres actifs"
|
||||
27,"Èàécm Hqnwmn","sii16dff@eywx0.fr",,,"Zèwctekwawùbùet","0108550357",,"16/07/2024","Membres actifs"
|
||||
28,"Ycpaém Hdôémcé","tlpjavl6@o4bpm.fr",,,"Àabmtyscywmatèi","0063161888",,"16/07/2024","Membres actifs"
|
||||
29,"Ylàsùg Ajjrèg","8u7q1igh@304hp.fr",,,"Vwhbvéggvôfaaàp","0571832847",,"16/07/2024","Membres actifs"
|
||||
30,"Ggbio Lhkpgè","9eq6xqgv@7tdyd.fr",,,"Ivhuèbaembyxôps","0007122339",,"16/07/2024","Membres actifs"
|
||||
31,"Dtqgàl Bsoôùtè","idaysr95@m2xoj.fr",,,"Qujxnzbèùsqjsvn","0199950769",,"16/07/2024","Membres actifs"
|
||||
32,"Qtrkwt Ébqaéèk","0qs0wvza@owj23.fr",,,"Éwjlôôvqôtônédq","0162079227",,"16/07/2024","Membres actifs"
|
||||
33,"Nywamkj Btoeaoo","5n3g0dw9@97csh.fr",,,"Èqwundcbsfyyhjw","0092164165",,"16/07/2024","Membres actifs"
|
||||
34,"Wtmeès Qyéùbez","cnli6pjh@76aq8.fr",,,"Nogiuesémeèqltp","0353723334",,"16/07/2024","Membres actifs"
|
||||
35,"Nrzjtv Xpqhsnx","1lr1n6no@a38i7.fr",,,"Nzydùùkùyvfdojô","0682178484",,"16/07/2024","Membres actifs"
|
||||
36,"Jgèqmoh Wulxugj","po100sdr@gl9cc.fr",,,"Xulwqfpfagwôzjv","0950472954",,"16/07/2024","Membres actifs"
|
||||
37,"Pptvi Làjadl","zcoaeqko@8tw9r.fr",,,"Ùbcgttzxpkéfjàh","0106027278",,"16/07/2024","Membres actifs"
|
||||
38,"Énétôùm Mézumhkj","iwvlo623@flnvg.fr",,,"Lgècdobsèclsyvz","0623347457",,"16/07/2024","Membres actifs"
|
||||
39,"Jhsqh Àvoxcè","21ueoffl@uxpn8.fr",,,"Àftjùqmptgpsjug","0546761281",,"16/07/2024","Membres actifs"
|
||||
40,"Oèiajdé Àxfbàrag","rwoc6k6g@c7ym7.fr",,,"Sfqkàlàfyktlgôè","0283112807",,"16/07/2024","Membres actifs"
|
||||
41,"Dpsèviy Oapqwie","486a5u0j@mh6en.fr",,,"Vwsomjueôakzmqy","0649522828",,"16/07/2024","Membres actifs"
|
||||
42,"Ôwùxxud Hàbtelp","ccc0jx1g@5vywi.fr",,,"Luewajômhnôtukb","0140038466",,"16/07/2024","Membres actifs"
|
||||
43,"Ùllôhe Èrnmof","p436biit@h2x4t.fr",,,"Ikzxôlqukulauéf","0996359643",,"16/07/2024","Membres actifs"
|
||||
44,"Àgôhq Edeémd","y736wue0@n14a6.fr",,,"Bqmviôuqhyéruky","0990217224",,"16/07/2024","Membres actifs"
|
||||
45,"Dymàh Tabynj","v97vnb33@g7vbq.fr",,,"Cgùhcaokcèmyhfz","0054829722",,"16/07/2024","Membres actifs"
|
||||
46,"Ussopo Muoxyd","3h0nytei@ni0hd.fr",,,"Cbàôtzypizxvajz","0202387541",,"16/07/2024","Membres actifs"
|
||||
47,"Xzôàvzr Wxùpeout","v8xwvsbx@pr40o.fr",,,"Ielymobngldfbjw","0105990427",,"16/07/2024","Membres actifs"
|
||||
48,"Ôftôvôv Lqtùzvèà","v6cpeuq5@df9b6.fr",,,"Zoyixaèdduàvèjt","0781445607",,"16/07/2024","Membres actifs"
|
||||
49,"Fèkùkj Quôpzys","e2tzmmbe@uy1yj.fr",,,"Hzqsôècivlnyhzj","0317669929",,"16/07/2024","Membres actifs"
|
||||
50,"Thcjr Zmvurf","3sdb4nkq@4rujc.fr",,,"Xèxeibehfyzpxvd","0840897477",,"16/07/2024","Membres actifs"
|
||||
51,"Ryôiu Ouuozô","3fz11nny@0qtv7.fr",,,"Uevniièfsxhacby","0005825940",,"16/07/2024","Membres actifs"
|
||||
52,"Epcenb Nuèhbtx","nt9b52mw@oq2h3.fr",,,"Ôyèanqspùajkôdp","0100080586",,"16/07/2024","Membres actifs"
|
||||
53,"Pùgwr Pxedsy","bjvj4few@8c80q.fr",,,"Éamwgqvjcduvkàa","0887441633",,"16/07/2024","Membres actifs"
|
||||
54,"Ihmcùwh Nmovuové","n6c3d9zz@j5cle.fr",,,"Éioiwéerepmnskl","0618558692",,"16/07/2024","Membres actifs"
|
||||
55,"Àahfege Èùjphznc","3u12qfs6@pt87m.fr",,,"Pxlèjgbcavùpméà","0346859711",,"16/07/2024","Membres actifs"
|
||||
56,"Lùwuuxe Hutjuzhà","1hl3sb3q@g4cxp.fr",,,"Yôqxèdùôzpzgdny","0299428169",,"16/07/2024","Membres actifs"
|
||||
57,"Rpmpc Nszkst","ede6j2ss@05sul.fr",,,"Bykhiamrjhsùyxq","0275179901",,"16/07/2024","Membres actifs"
|
||||
58,"Ùôôybj Àjjzxè","8c6s92rl@afi4u.fr",,,"Mtkgdoghévcfyxu","0507630770",,"16/07/2024","Membres actifs"
|
||||
59,"Rbôrgg Ùdeurn","0613kh2f@lhb55.fr",,,"Uèfoénzusstàsmy","0733776508",,"16/07/2024","Membres actifs"
|
||||
60,"Épdfvùù Xuôugpi","cnrv4pqu@p4pl2.fr",,,"Moslbljnhctqayx","0285958462",,"16/07/2024","Membres actifs"
|
||||
61,"Putmlte Umdièzè","r7g07rjw@jhq3f.fr",,,"Gyzvnaolssdlùmw","0467796149",,"16/07/2024","Membres actifs"
|
||||
62,"Ètndykw Ôfcdàpk","jz61cr6e@yrhpt.fr",,,"Esqnomurbdkùljl","0905402403",,"16/07/2024","Membres actifs"
|
||||
63,"Pôàghjr Èlvdddré","se1tnhix@tyuj5.fr",,,"Izrdrkkqwdjlrbl","0887748414",,"16/07/2024","Membres actifs"
|
||||
64,"Dèùwua Stôhiàu","y42jai5l@l8j4y.fr",,,"Épvohgèzpièftjp","0640732839",,"16/07/2024","Membres actifs"
|
||||
65,"Ljqwô Wdspvf","as1k8mtk@qj7wa.fr",,,"Hôoktvitvxppblj","0834251829",,"16/07/2024","Membres actifs"
|
||||
66,"Hgzbdh Syflùe","omlye99t@3el2t.fr",,,"Hjùpyifàpcyqpmc","0680857524",,"16/07/2024","Membres actifs"
|
||||
67,"Rhzèogf Modyoxv","kc2srp87@p6f1w.fr",,,"Lyktlnuyppnxyrà","0974076808",,"16/07/2024","Membres actifs"
|
||||
68,"Étùlpsé Wqhùtcux","fnm7jc7a@rn0oh.fr",,,"Jmfrupskfppqykp","0481772562",,"16/07/2024","Membres actifs"
|
||||
69,"Brysôy Ébvùkà","icrsqbxd@cbgpy.fr",,,"Ouékltmotôzàcqn","0915076661",,"16/07/2024","Membres actifs"
|
||||
70,"Vtozupv Èxsnurz","exslgktl@vcxru.fr",,,"Vanatbféxcrwfàx","0141780699",,"16/07/2024","Membres actifs"
|
||||
71,"Swfiàux Crèsudq","a7f7fg11@0faio.fr",,,"Rnozrqbéhpthtwô","0360543915",,"16/07/2024","Membres actifs"
|
||||
72,"Haovcn Zsssqu","8w892blk@vvala.fr",,,"Rkzqèavfèxwuytr","0823506911",,"16/07/2024","Membres actifs"
|
||||
73,"Puuôrx Àkxmaqx","xit663eg@ulqiu.fr",,,"Fziiràymètrfràô","0727925802",,"16/07/2024","Membres actifs"
|
||||
74,"Ptlzp Veézxb","nbl1yab9@eyqof.fr",,,"Mrùèàztwménxhôù","0650636053",,"16/07/2024","Membres actifs"
|
||||
75,"Vwlhexè Qbqscmix","ju84ddem@9flb9.fr",,,"Màbàqxhyùkirepl","0355225714",,"16/07/2024","Membres actifs"
|
||||
76,"Wcèjp Quowmn","gesguc5q@fiowa.fr",,,"Vlupquwcuhdàdaô","0408726165",,"16/07/2024","Membres actifs"
|
||||
77,"Nèogé Bnyvhu","3dncgvbi@q5tz1.fr",,,"Nqhbyôtbumbrrpj","0255658084",,"16/07/2024","Membres actifs"
|
||||
78,"Mèabéôq Eoeoyit","ktyr4yka@1u8t4.fr",,,"Ècèvfôtaxôààbjy","0567546215",,"16/07/2024","Membres actifs"
|
||||
79,"Wxùkx Anidzy","9prm5ol7@h4ht9.fr",,,"Hnjhvyzsxyltonw","0680977164",,"16/07/2024","Membres actifs"
|
||||
80,"Vôrôyn Hbùdyèb","4ii66kaf@3noa5.fr",,,"Eôàébdwcéiéàpqo","0761830089",,"16/07/2024","Membres actifs"
|
||||
81,"Icxlwy Hjdlbsm","4wbp1ctl@44xvx.fr",,,"Wuèetùôegjoiùrv","0905056302",,"16/07/2024","Membres actifs"
|
||||
82,"Zhièhé Pvebézl","kj5p4v89@bxlee.fr",,,"Névkôbntlxuàvsk","0454950251",,"16/07/2024","Membres actifs"
|
||||
83,"Ukàuxxc Mauxmkxt","q8urbsfh@kij1l.fr",,,"Ttiàjwfavkôfbek","0272499899",,"16/07/2024","Membres actifs"
|
||||
84,"Eozmwi Zdakzcd","o1ibwz5t@f8bvo.fr",,,"Adràdatàbgàzlkl","0139701255",,"16/07/2024","Membres actifs"
|
||||
85,"Huuhalt Yèviùvc","hr24npj8@0czm2.fr",,,"Lkejrlrèdijvùùm","0345583229",,"16/07/2024","Membres actifs"
|
||||
86,"Gôsevq Ôtpefk","ss50q070@eqqzg.fr",,,"Ùqùdgùxduyfvxye","0047780927",,"16/07/2024","Membres actifs"
|
||||
87,"Bhfsc Hccèwi","9jpzaqly@1mp7a.fr",,,"Mhydaôkénrtypda","0112045883",,"16/07/2024","Membres actifs"
|
||||
88,"Àlbcgy Lcndqn","4t34fxb5@1vzr4.fr",,,"Aobàiéôbàigùlva","0701166822",,"16/07/2024","Membres actifs"
|
||||
89,"Dsiwà Jlywlg","y7u9ep8b@8t4qe.fr",,,"Vôbcrcocôndùyèr","0253924957",,"16/07/2024","Membres actifs"
|
||||
90,"Bqthhcs Cqèwzteô","h3qekqww@34kr5.fr",,,"Éamukcàémpàcfeq","0661996049",,"16/07/2024","Membres actifs"
|
||||
91,"Enbrd Qimbrt","m51hxxq2@3fdg4.fr",,,"Wlpxltiùjmjzrls","0052458273",,"16/07/2024","Membres actifs"
|
||||
92,"Àléxzèu Lsusibfp","pfx9wh3y@t8mj6.fr",,,"Càfcrulylôhyyts","0221611453",,"16/07/2024","Membres actifs"
|
||||
93,"Fdhôù Owteqà","5ews3mf9@i010p.fr",,,"Àolefwbjzjqèévé","0985967134",,"16/07/2024","Membres actifs"
|
||||
94,"Ptxiiv Lcprscu","3jyqwf2q@k4egg.fr",,,"Dawitfènrbqljxv","0730690658",,"16/07/2024","Membres actifs"
|
||||
95,"Upfzq Ydùndb","1icb88fy@q2rp3.fr",,,"Qzchidofdùtèrgv","0485828784",,"16/07/2024","Membres actifs"
|
||||
96,"Wiiagtb Gehdbvx","hcd7pa4a@fdmbp.fr",,,"Tgptnhxwàyoxzwf","0735153732",,"16/07/2024","Membres actifs"
|
||||
97,"Idôhôùj Khàmhlu","6vf2bv74@n9n22.fr",,,"Evplnùlwôôzzùnk","0568396964",,"16/07/2024","Membres actifs"
|
||||
98,"Rèastéw Anôkpsk","ot3ybbal@u5nl4.fr",,,"Rjhzvkehipqilcz","0826453446",,"16/07/2024","Membres actifs"
|
||||
99,"Ùèkhgbô Oxfrqhèv","zarqanzc@w8l7k.fr",,,"Zojjiègrésgltyz","0586337188",,"16/07/2024","Membres actifs"
|
||||
100,"Uoqyùb Hzgpghù","mgwzr2vs@n8lkh.fr",,,"Jgnpeôbjùjspqaz","0961357438",,"16/07/2024","Membres actifs"
|
||||
101,"Loluèèq Étucnôsl","8zkgcx9k@lo6n9.fr",,,"Wijdxùfékuljjiy","0052657655",,"16/07/2024","Membres actifs"
|
||||
102,"Igùèùv Oywmôto","kgoy9w6f@xco5d.fr",,,"Hbhdmtsaéwnxérg","0301170672",,"16/07/2024","Membres actifs"
|
||||
103,"Àùèbà Jsamoe","cnmbf3h8@xb86p.fr",,,"Yziyàkinjkhqmùa","0890860634",,"16/07/2024","Membres actifs"
|
||||
104,"Qfuvjdn Uymàzvi","n54llfh9@55y0o.fr",,,"Wfmkhawlyjofrôs","0900787509",,"16/07/2024","Membres actifs"
|
||||
105,"Emzje Pfpowy","a6jbxi5w@0jpz6.fr",,,"Qugshmvklchhqèl","0533082311",,"16/07/2024","Membres actifs"
|
||||
106,"Lvhàigx Pmcdttq","tc9a3ykk@ff32o.fr",,,"Mùmkpwbmytxakùl","0714215379",,"16/07/2024","Membres actifs"
|
|
BIN
fichiers/cv.pdf
Normal file
BIN
fichiers/cv.pdf
Normal file
Binary file not shown.
BIN
fichiers/cv2.pdf
Normal file
BIN
fichiers/cv2.pdf
Normal file
Binary file not shown.
10
fichiers/maj-pb.csv
Normal file
10
fichiers/maj-pb.csv
Normal file
@ -0,0 +1,10 @@
|
||||
"Numéro de membre";"Nom & prénom";"Adresse E-Mail";"Adresse postale";"Code postal";"Ville";"Numéro de téléphone";"Inscription à la lettre d'information";"Date d'inscription";"Catégorie"
|
||||
1;"Grunberg Laurence";"lgrun@free.fr";"28 rue Nemours";"35000";"Rennes";"0299794923";;"28/05/2020";"Bureau"
|
||||
2;"Dumont Laure-Anne";"inconnu@pas.ici";"19 r Zénaïde Fleuriot";"35330";"Mernel";"0188880909";;"28/05/2020";"Membre actif"
|
||||
3;"Vallée Laurent";"info@lvalle.fr";"16 rue Malakoff";"35700";"Rennes";"0625582761";"Oui";"28/05/2020";"Membre actif"
|
||||
4;"Jawish Édouard";"jed@gape.bzh";"46 rue Orteaux";"35000";"Rennes";"0209576243";;"28/05/2020";"Membre actif"
|
||||
5;"Dahan Jacques";"j.dahan@alt.org";"22 avenue Parmentier";"35830";"Betton";"0731878183";;"28/05/2020";"Membre actif"
|
||||
6;"Sabbah Candice";"scand@laposte.net";"62 rue Pelleport";"35830";"Betton";"0919678500";;"28/05/2020";"Membre actif"
|
||||
7;"Khayat Gérard";"khar.gege@gmail.com";"137 rue Grenelle";"35830";"Betton";"0736111621";;"28/05/2020";"Membre actif"
|
||||
8;"Khoury Elias";"saile.yourk@free.fr";"19 rue Passy";"35135";"Chantepie";"0625582761";"Oui";"28/05/2020";"Membre actif"
|
||||
99999;"Bismuth Michèle";"michmuth@orange.fr";"83 rue Jouffroy d’Abbans";"35630";"Hédé";"0875445356";;"28/05/2020";"Membre actif"
|
|
10
fichiers/maj.csv
Normal file
10
fichiers/maj.csv
Normal file
@ -0,0 +1,10 @@
|
||||
"Numéro de membre";"Nom & prénom";"Adresse E-Mail";"Adresse postale";"Code postal";"Ville";"Numéro de téléphone";"Inscription à la lettre d'information";"Date d'inscription";"Catégorie"
|
||||
1;"Grunberg Laurence";"lgrun@free.fr";"28 rue Nemours";"35000";"Rennes";"0299794923";;"28/05/2020";"Bureau"
|
||||
2;"Dumont Laure-Anne";"inconnu@pas.ici";"19 r Zénaïde Fleuriot";"35330";"Mernel";"0188880909";;"28/05/2020";"Membre actif"
|
||||
3;"Vallée Laurent";"info@lvalle.fr";"16 rue Malakoff";"35700";"Rennes";"0625582761";"Oui";"28/05/2020";"Membre actif"
|
||||
4;"Jawish Édouard";"jed@gape.bzh";"46 rue Orteaux";"35000";"Rennes";"0209576243";;"28/05/2020";"Membre actif"
|
||||
5;"Dahan Jacques";"j.dahan@alt.org";"22 avenue Parmentier";"35830";"Betton";"0731878183";;"28/05/2020";"Membre actif"
|
||||
6;"Sabbah Candice";"scand@laposte.net";"62 rue Pelleport";"35830";"Betton";"0919678500";;"28/05/2020";"Membre actif"
|
||||
7;"Khayat Gérard";"khar.gege@gmail.com";"137 rue Grenelle";"35830";"Betton";"0736111621";;"28/05/2020";"Membre actif"
|
||||
8;"Khoury Elias";"saile.yourk@free.fr";"19 rue Passy";"35135";"Chantepie";"0625582761";"Oui";"28/05/2020";"Membre actif"
|
||||
9;"Bismuth Michèle";"michmuth@orange.fr";"83 rue Jouffroy d’Abbans";"35630";"Hédé";"0875445356";;"28/05/2020";"Membre actif"
|
|
BIN
fichiers/photo.jpg
Normal file
BIN
fichiers/photo.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 35 KiB |
856
membres.side
856
membres.side
File diff suppressed because it is too large
Load Diff
34
todo.org
34
todo.org
@ -3,10 +3,9 @@
|
||||
#+LANGUAGE: fr
|
||||
#+STARTUP: show3levels
|
||||
#+STARTUP: inlineimages
|
||||
#+STARTUP: indent
|
||||
#+OPTIONS: toc:2
|
||||
* Test paheko
|
||||
** DONE 01 Installation
|
||||
* Test paheko [2/5]
|
||||
** DONE 01 Installation [3/3]
|
||||
- Exemple de test (après avoir installé un Paheko sur sa machine, sur
|
||||
le vhost "paheko.localhost", sans base de données) :
|
||||
- se rendre à l'adresse http://testpaheko.local.bzh
|
||||
@ -25,12 +24,12 @@
|
||||
*** DONE 01-01 installation initiale
|
||||
*** DONE 01-01a installation sur base existante
|
||||
*** DONE 01-02 vérification premier membre
|
||||
** DONE 02 Connexion
|
||||
** DONE 02 Connexion [3/3]
|
||||
*** DONE 02-01 connexion correcte
|
||||
*** DONE 02-02 connexion échec identifiant
|
||||
*** DONE 02-03 connexion échec mdp
|
||||
** TODO Membres
|
||||
*** DONE 03 créer un membre
|
||||
** TODO Membres [12/14]
|
||||
*** DONE 03 créer un membre [12/12]
|
||||
**** données de la fiche membre
|
||||
- Catégorie : choisir parmi les possibilités
|
||||
- Rattacher à un membre : non / choisir un membre
|
||||
@ -57,13 +56,13 @@
|
||||
**** DONE 03-92b date postérieure max
|
||||
**** DONE 03-93a nom en double refusé
|
||||
**** DONE 03-93b nom en double accepté
|
||||
*** DONE 04 lister les membres
|
||||
*** TODO 04 lister les membres [4/5]
|
||||
**** DONE 04-01 toutes les catégories
|
||||
- gérer le cas où les membres occupent plus d'une page
|
||||
- ¿ vérifier si on peut supprimer un tri inutile ?
|
||||
**** DONE 04-02 toutes catégories sauf cachées
|
||||
**** DONE 04-03 une seule catégorie
|
||||
**** DONE tri par différents critères
|
||||
**** TODO tri par différents critères [5/6]
|
||||
***** DONE 04-04, 04-05 tri par nom croissant et décroissant
|
||||
Le nouveau tri est comme ceci :
|
||||
colonne IS NULL DESC, colonne DESC, numero DESC
|
||||
@ -75,7 +74,8 @@ pour un tri croissant, en premier pour un tri décroissant.
|
||||
Tri par ville
|
||||
- ville (dé)croissant, numéro membre (dé)croissant
|
||||
- ville vide en fin(début), numéro membre (dé)croissant
|
||||
***** DONE 04-09, 04-10 tri par membre « rattaché à » croissant et décroissant
|
||||
***** TODO 04-09, 04-10 tri par membre « rattaché à » croissant et décroissant
|
||||
- le test pour savoir s'il y a plus d'un parent qui correspond à la recherche (lignes 64+) ne fonctionne plus
|
||||
- pour la colonne "rattaché à" : on met un tri sur la qualité de
|
||||
parent, puis le nom du parent en premier, puis le nom du membre,
|
||||
puis son numéro :
|
||||
@ -86,7 +86,7 @@ Tri par ville
|
||||
- is_parent ASC, nom_membre DESC, numero DESC
|
||||
***** DONE 04-90 lister membres sur plusieurs pages
|
||||
**** DONE consulter fiche
|
||||
*** DONE 05 rechercher des membres
|
||||
*** DONE 05 rechercher des membres [3/3]
|
||||
**** Remarques :
|
||||
- si la recherche trouve un seul résultat, elle affiche directement la
|
||||
fiche du membre
|
||||
@ -102,16 +102,18 @@ Tri par ville
|
||||
**** DONE chercher par numéro
|
||||
***** DONE 05-11 un résultat
|
||||
***** DONE 05-12 aucun résultat
|
||||
**** DONE par courriel
|
||||
**** DONE par courriel [3/3]
|
||||
***** DONE 05-21 un seul résultat
|
||||
- => fiche membre
|
||||
***** DONE 05-22 0 résultat
|
||||
- => onglet « Recherche avancée »
|
||||
***** DONE 05-23 plusieurs résultats
|
||||
***** DONE 05-23 plusieurs résultast
|
||||
La recherche rapide ne se fait plus que dans les catégories non cachées !!!
|
||||
- => onglet « Recherche avancée »
|
||||
*** DONE 06 supprimer un membre
|
||||
- NB : le tri des membres ne change pas après suppression
|
||||
**** DONE 06-01 plusieurs membres sélectionnés
|
||||
**** TODO 06-01 plusieurs membres sélectionnés
|
||||
- le runner ne trouve pas le bouton suppriùmer du dialogue de confirmation de suppression
|
||||
**** DONE 06-02 sélectionné = admin
|
||||
**** aucun membre sélectionné => action interdite
|
||||
*** DONE 07 modifier un membre
|
||||
@ -303,7 +305,7 @@ Même si on ne saisit pas un numéro, il sera automatiquement affecté
|
||||
*** DONE 13 changer l'ordre des champs de la fiche membre
|
||||
**** DONE 13-01 intervertir numéro et nom
|
||||
- est-ce utile de tester d'autres changements d'ordre ?
|
||||
*** DONE 14 configuration membres Catégories
|
||||
*** DONE 14 configuration membres Catégories [5/5]
|
||||
**** DONE 14-01 ajouter une catégorie
|
||||
**** DONE 14-01b ajouter deux catégories de même non
|
||||
**** DONE 14-02 supprimer une catégorie non vide
|
||||
@ -322,7 +324,7 @@ Même si on ne saisit pas un numéro, il sera automatiquement affecté
|
||||
- lui attribuer un mot de passe
|
||||
- essayer de connecter le membre
|
||||
- vérifier l'échec
|
||||
*** DONE Droits
|
||||
*** DONE Droits [9/9]
|
||||
- vérifier que le droit lecture/écriture/administration fonctionne
|
||||
bien, notamment via le bouton "connexion à la place du membre"
|
||||
- Gestion des membres
|
||||
@ -379,6 +381,8 @@ Un autre test pour la compta :
|
||||
produits, que le nom du compte est bon, etc.
|
||||
|
||||
** Notes
|
||||
*** sélecteur dropdown
|
||||
- il faut absolument fermer le dropdown avant de cliquer ailleurs
|
||||
*** parcours table
|
||||
- compter le nombre d'éléments de la table => nb_elem
|
||||
- itérer avec un compteur (while) => num
|
||||
|
597
tri.js
Normal file
597
tri.js
Normal file
@ -0,0 +1,597 @@
|
||||
// trier par numéro
|
||||
function trierNumeros(tnumeros, tnoms, croissant = true)
|
||||
{
|
||||
let tab = [];
|
||||
for (let i = 0; i < tnumeros.length; ++i)
|
||||
{
|
||||
let o = Object();
|
||||
o.numero = tnumeros[i];
|
||||
o.nom = tnoms[i];
|
||||
tab.push(o);
|
||||
}
|
||||
ordre = croissant ? 1 : -1;
|
||||
tab.sort((a, b) => { return ordre * (a.numero - b.numero); });
|
||||
return tab;
|
||||
}
|
||||
|
||||
// trier par nom puis par numéro
|
||||
function trierNoms(tnoms, tnumeros, croissant = true)
|
||||
{
|
||||
let tab = [];
|
||||
for (let i = 0; i < tnoms.length; ++i)
|
||||
{
|
||||
let o = Object();
|
||||
o.nom = tnoms[i];
|
||||
o.numero = tnumeros[i];
|
||||
tab.push(o);
|
||||
}
|
||||
|
||||
tab.sort((a, b) => {
|
||||
if (! croissant) { [a, b] = [b, a]; }
|
||||
let comp = a.nom.localeCompare(b.nom);
|
||||
if (comp == 0) { comp = a.numero - b.numero; }
|
||||
return comp;
|
||||
});
|
||||
return tab;
|
||||
}
|
||||
|
||||
// afficher un tableau
|
||||
function afficher(msg, tab)
|
||||
{
|
||||
console.log("\n" + msg);
|
||||
for (let i = 0; i < tab.length; ++i)
|
||||
{
|
||||
console.log(tab[i]);
|
||||
}
|
||||
}
|
||||
|
||||
// trier par ville puis par numéro
|
||||
// ville (dé)croissant, numéro (dé)croissant
|
||||
// ville vide en fin(début), numéro (dé)croissant
|
||||
function trierVilles(tvilles, tnumeros, croissant = true)
|
||||
{
|
||||
let tab = [];
|
||||
for (let i = 0; i < tvilles.length; ++i) {
|
||||
let o = Object();
|
||||
o.ville = tvilles[i];
|
||||
o.numero = tnumeros[i];
|
||||
tab.push(o);
|
||||
}
|
||||
|
||||
tab.sort((a, b) => {
|
||||
if (! croissant) { [a, b] = [b, a]; }
|
||||
|
||||
// une ville au moins vide ?
|
||||
if (a.ville == '' && b.ville == '') { return a.numero - b.numero; }
|
||||
if (a.ville == '') { return 1; }
|
||||
if (b.ville == '') { return -1; }
|
||||
|
||||
// deux villes non vides
|
||||
let comp = a.ville.localeCompare(b.ville);
|
||||
if (comp == 0) { comp = a.numero - b.numero; }
|
||||
return comp;
|
||||
});
|
||||
return tab;
|
||||
}
|
||||
|
||||
// trier les membres selon le parent
|
||||
// - parent (dé)croissant, nom membre (dé)croissant, numéro (dé)croissant
|
||||
// - parent vide à la fin, nom membre (dé)croissant, numéro (dé)croissant
|
||||
function trierParents(tparents, tnoms, tnumeros, croissant = true)
|
||||
{
|
||||
let tab = [];
|
||||
for (let i = 0; i < tnumeros.length; ++i) {
|
||||
let o = Object();
|
||||
o.numero = tnumeros[i];
|
||||
o.nom = tnoms[i];
|
||||
o.parent = tparents[i];
|
||||
tab.push(o);
|
||||
}
|
||||
tab.sort((a, b) => {
|
||||
ordre = croissant ? 1 : -1;
|
||||
|
||||
// un parent au moins est vide ?
|
||||
if (a.parent == '' && b.parent == '') {
|
||||
let comp = a.nom.localeCompare(b.nom);
|
||||
if (comp == 0) { comp = a.numero - b.numero; }
|
||||
return comp * ordre;
|
||||
}
|
||||
if (a.parent == '') { return 1; }
|
||||
if (b.parent == '') { return -1; }
|
||||
|
||||
// deux parents non vides
|
||||
let comp = a.parent.localeCompare(b.parent);
|
||||
if (comp == 0) { comp = a.nom.localeCompare(b.nom); }
|
||||
if (comp == 0) { comp = a.numero - b.numero; }
|
||||
return comp * ordre;
|
||||
});
|
||||
|
||||
return tab;
|
||||
}
|
||||
|
||||
// trier les membres selon la colonne responsable
|
||||
// - non vide au début, nom membre (dé)croissant, numéro (dé)croissant
|
||||
// - vide à la fin, nom membre (dé)croissant, numéro (dé)croissant
|
||||
function trierResp(tresp, tnoms, tnumeros, croissant = true)
|
||||
{
|
||||
let tab = [];
|
||||
for (let i = 0; i < tnumeros.length; ++i) {
|
||||
let o = Object();
|
||||
o.numero = tnumeros[i];
|
||||
o.nom = tnoms[i];
|
||||
o.resp = tresp[i];
|
||||
tab.push(o);
|
||||
}
|
||||
tab.sort((a, b) => {
|
||||
ordre = croissant ? 1 : -1;
|
||||
|
||||
// un resp au moins est vide ?
|
||||
if (a.resp == '' && b.resp == '') {
|
||||
let comp = a.nom.localeCompare(b.nom);
|
||||
if (comp == 0) { comp = a.numero - b.numero; }
|
||||
return comp * ordre;
|
||||
}
|
||||
if (a.resp == '') { return 1; }
|
||||
if (b.resp == '') { return -1; }
|
||||
|
||||
// deux resp non vides (forcément = "Oui")
|
||||
let comp = a.nom.localeCompare(b.nom);
|
||||
if (comp == 0) { comp = a.numero - b.numero; }
|
||||
return comp * ordre;
|
||||
});
|
||||
|
||||
return tab;
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// les données et les tests
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
const tnumeros = [
|
||||
1, 2, 3, 4, 5, 6, 7, 8, 9, 110,
|
||||
111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
|
||||
121, 122, 123
|
||||
];
|
||||
|
||||
const tnoms = [
|
||||
"Lambert Paul", "Sjqeaz Njguqô", "Gfjkms Ôfyike", "Xnunèp Tmhàxz", "Xhràèk Ùmunyv",
|
||||
"Jgévxù Wohyrv", "Mèkixt Ùyimtd", "Zhamberlain Luuc", "Ézhaée Ùùpwab", "Éàkhhô Psyauà",
|
||||
"Lambert Paul", "Zphjéà Irôezqé", "Mpùuky Blégmmz", "Htôtkl Sxgtrô", "Kcfyè Nsvmvq",
|
||||
"Hdzcpèn Rddpdafx", "Èàrgkx Idèpoù", "Rhocry Dlùvwpq", "Ziùcwe Hpqltrs", "Brkcàg Nigcyi",
|
||||
"Jtinjôù Wmwiônj", "Cylsx Nzoèwl", "Éxiqnh Fcbwizà"
|
||||
];
|
||||
|
||||
const tvilles = [
|
||||
"", "Erawvcyfézgrfoi", "Jbqmqeyemdbstcf", "Ùhkfwuvgpcuèùqa", "Yécewxefmepôàeé",
|
||||
"La Havane", "Fyàwxsbedwanxqt", "", "Sipkàoféuslgiiu", "Psôhègébulaùdzm",
|
||||
"Pioùôutôeyytùlà", "", "", "", "",
|
||||
"", "", "", "La Havane", "", "", "La Havane", ""
|
||||
];
|
||||
|
||||
const parents = [
|
||||
"", "", "", "", "",
|
||||
"", "Jgévxù Wohyrv", "", "Zhamberlain Luuc", "",
|
||||
"", "", "", "Xhràèk Ùmunyv", "Xnunèp Tmhàxz",
|
||||
"", "Jgévxù Wohyrv", "", "Zhamberlain Luuc", "Gfjkms Ôfyike",
|
||||
"Sjqeaz Njguqô", "Jgévxù Wohyrv", "Sjqeaz Njguqô"
|
||||
];
|
||||
|
||||
const tresp = [
|
||||
"", "Oui", "Oui", "Oui", "Oui",
|
||||
"Oui", "", "Oui", "", "",
|
||||
"", "", "", "", "",
|
||||
"", "", "", "", "",
|
||||
"", "", ""
|
||||
];
|
||||
|
||||
// console.log("p.l = " + parents.length + ", nom.l = " + tnoms.length + ", num.l = " + tnumeros.length + ", r.l = " + resp.length);
|
||||
|
||||
// trier par nom croissant puis décroissant
|
||||
let tab_noms = trierNoms(tnoms, tnumeros);
|
||||
afficher("Tri par nom croissant :", tab_noms);
|
||||
|
||||
tab_noms = trierNoms(tnoms, tnumeros, false);
|
||||
afficher("Tri par nom décroissant :", tab_noms);
|
||||
|
||||
// trier par ville croissante puis décroissante
|
||||
let tab_villes = trierVilles(tvilles, tnumeros);
|
||||
afficher("Tri par ville croissant :", tab_villes);
|
||||
|
||||
tab_villes = trierVilles(tvilles, tnumeros, false);
|
||||
afficher("Tri par ville décroissant :", tab_villes);
|
||||
|
||||
// trier par parent croissant
|
||||
let tab_parents = trierParents(parents, tnoms, tnumeros);
|
||||
afficher("Tri par parent croissant :", tab_parents);
|
||||
|
||||
tab_parents = trierParents(parents, tnoms, tnumeros, false);
|
||||
afficher("Tri par parent décroissant :", tab_parents);
|
||||
|
||||
// trier par resp croissant
|
||||
let tab_resp = trierResp(tresp, tnoms, tnumeros);
|
||||
afficher("Tri par resp croissant :", tab_resp);
|
||||
|
||||
tab_resp = trierResp(tresp, tnoms, tnumeros, false);
|
||||
afficher("Tri par resp décroissant :", tab_resp);
|
||||
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// 1. première ville vide et dernière ville vide
|
||||
// ==> comparer numéro premier et numéro dernier, inverser si besoin
|
||||
// 2. première ville vide et dernière ville non vide
|
||||
// décroissant : inverser si besoin
|
||||
// 3. première ville non vide et dernière ville vide
|
||||
// croissant : inverser si besoin
|
||||
// 4. première ville non vide et dernière ville non vide
|
||||
// 4.1 première ville < dernière ville : croissant, inverser si besoin
|
||||
// 4.2 première ville > dernière ville : décroissant, inverser si besoin
|
||||
// 4.3 première ville = dernière ville
|
||||
// ==> comparer numéro premier et numéro dernier, inverser si besoin
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
if (${premiere_ville} == "" && ${derniere_ville} == "")
|
||||
{
|
||||
if (${numero_premier} > ${numero_dernier})
|
||||
{
|
||||
// décroissant : inverser si besoin
|
||||
} else {
|
||||
// croissant : inverser si besoin
|
||||
}
|
||||
}
|
||||
else if (${premiere_ville} == "" && ${derniere_ville} != "")
|
||||
{
|
||||
// décroissant : inverser si besoin
|
||||
}
|
||||
else if (${premiere_ville} != "" && ${derniere_ville} == "")
|
||||
{
|
||||
// croissant : inverser si besoin
|
||||
}
|
||||
else if (${premiere_ville} != "" && && ${derniere_ville} != "")
|
||||
{
|
||||
if (${premiere_ville}.localeCompare(${derniere_ville}) < 0)
|
||||
{
|
||||
// croissant : inverser si besoin
|
||||
} else if (${premiere_ville}.localeCompare(${derniere_ville}) > 0)
|
||||
{
|
||||
// décroissant : inverser si besoin
|
||||
} else {
|
||||
if (${numero_premier} > ${numero_dernier})
|
||||
{
|
||||
// décroissant : inverser si besoin
|
||||
} else {
|
||||
// croissant : inverser si besoin
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// simplification ordre croissant
|
||||
if (${premiere_ville} == "" && ${derniere_ville} == ""
|
||||
&&
|
||||
${numero_premier} > ${numero_dernier})
|
||||
{
|
||||
// décroissant : inverser
|
||||
}
|
||||
else if (${premiere_ville} == "" && ${derniere_ville} != "")
|
||||
{
|
||||
// décroissant : inverser
|
||||
}
|
||||
else if (${premiere_ville} != "" && && ${derniere_ville} != "")
|
||||
{
|
||||
if (${premiere_ville}.localeCompare(${derniere_ville}) > 0
|
||||
||
|
||||
(${premiere_ville}.localeCompare(${derniere_ville}) == 0
|
||||
&&
|
||||
${numero_premier} > ${numero_dernier}))
|
||||
{
|
||||
// décroissant : inverser
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// simplification ordre décroissant
|
||||
if (${premiere_ville} == "" && ${derniere_ville} == ""
|
||||
&&
|
||||
${numero_premier} < ${numero_dernier})
|
||||
{
|
||||
// croissant : inverser
|
||||
}
|
||||
else if (${premiere_ville} != "" && ${derniere_ville} == "")
|
||||
{
|
||||
// croissant : inverser
|
||||
}
|
||||
else if (${premiere_ville} != "" && && ${derniere_ville} != "")
|
||||
{
|
||||
if (${premiere_ville}.localeCompare(${derniere_ville}) < 0
|
||||
||
|
||||
(${premiere_ville}.localeCompare(${derniere_ville}) == 0
|
||||
&&
|
||||
${numero_premier} < ${numero_dernier}))
|
||||
{
|
||||
// croissant : inverser
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// contrôler si les membres sont triés par ordre (dé)croissant du nom du parent
|
||||
//
|
||||
// 1) au moins 2 parents non vides (donc forcément les deux premiers)
|
||||
// - parent1 < parent2 => croissant
|
||||
// - parent1 > parent2 => décroissant
|
||||
// - parent1 = parent2
|
||||
// - membre1 < membre2 => croissant
|
||||
// - membre1 > membre2 => décroissant
|
||||
// - membre1 = membre2
|
||||
// - numéro1 < numéro 2 => croissant
|
||||
// - numéro1 > numéro 2 => décroissant
|
||||
// 2) un seul parent non vide (donc le premier)
|
||||
// - membre2 < membre3 => croissant
|
||||
// - membre2 > membre3 => décroissant
|
||||
// - membre2 = membre3
|
||||
// - numéro2 < numéro 3 => croissant
|
||||
// - numéro2 > numéro 3 => décroissant
|
||||
|
||||
if (${nb_parents} >= 2)
|
||||
{
|
||||
if (${parent1}.localeCompare(${parent2}) < 0)
|
||||
{
|
||||
// croissant
|
||||
}
|
||||
else if (${parent1}.localeCompare(${parent2}) > 0)
|
||||
{
|
||||
// décroissant
|
||||
}
|
||||
else if (${membre1}.localeCompare(${membre2}) < 0)
|
||||
{
|
||||
// croissant
|
||||
}
|
||||
else if (${membre1}.localeCompare(${membre2}) > 0)
|
||||
{
|
||||
// décroissant
|
||||
}
|
||||
else if (${numero1} < ${numero2})
|
||||
{
|
||||
// croissant
|
||||
}
|
||||
else //if (${numero1} > ${numero2})
|
||||
{
|
||||
// décroissant
|
||||
}
|
||||
}
|
||||
// un seul parent
|
||||
else if (${nb_total_membres} > 2)
|
||||
{
|
||||
if (${membre2}.localeCompare(${membre3}) < 0)
|
||||
{
|
||||
// croissant
|
||||
}
|
||||
else if (${membre2}.localeCompare(${membre3}) > 0)
|
||||
{
|
||||
// décroissant
|
||||
}
|
||||
else if (${numero2} < ${numero3})
|
||||
{
|
||||
// croissant
|
||||
}
|
||||
else //if (${numero2} > ${numero3})
|
||||
{
|
||||
// décroissant
|
||||
}
|
||||
}
|
||||
|
||||
// simplification ordre croissant
|
||||
if (${nb_parents}) >= 2)
|
||||
{
|
||||
if ((${parent1}.localeCompare(${parent2}) > 0)
|
||||
||
|
||||
(${parent1}.localeCompare(${parent2}) == 0
|
||||
&& ${membre1}.localeCompare(${membre2}) > 0)
|
||||
||
|
||||
(${parent1}.localeCompare(${parent2}) == 0
|
||||
&& ${membre1}.localeCompare(${membre2}) == 0
|
||||
&& ${numero1} > ${numero2}))
|
||||
{
|
||||
// décroissant => inverser
|
||||
}
|
||||
}
|
||||
// un seul parent
|
||||
else if (${nb_total_membres} > 2)
|
||||
{
|
||||
if ((${membre2}.localeCompare(${membre3}) > 0)
|
||||
||
|
||||
(${membre2}.localeCompare(${membre3}) == 0
|
||||
&& ${numero2} > ${numero3}))
|
||||
{
|
||||
// décroissant => inverser
|
||||
}
|
||||
}
|
||||
|
||||
// simplification ordre décroissant
|
||||
if (${nb_parents}) >= 2)
|
||||
{
|
||||
if ((${parent1}.localeCompare(${parent2}) < 0)
|
||||
||
|
||||
(${parent1}.localeCompare(${parent2}) == 0
|
||||
&& ${membre1}.localeCompare(${membre2}) < 0)
|
||||
||
|
||||
(${parent1}.localeCompare(${parent2}) == 0
|
||||
&& ${membre1}.localeCompare(${membre2}) == 0
|
||||
&& ${numero1} < ${numero2}))
|
||||
{
|
||||
// croissant => inverser
|
||||
}
|
||||
}
|
||||
// un seul parent
|
||||
else if (${nb_total_membres} > 2)
|
||||
{
|
||||
if ((${membre2}.localeCompare(${membre3}) < 0)
|
||||
||
|
||||
(${membre2}.localeCompare(${membre3}) == 0
|
||||
&& ${numero2} < ${numero3}))
|
||||
{
|
||||
// croissant => inverser
|
||||
}
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// contrôler si les membres sont triés par ordre (dé)croissant de la colonne responsable
|
||||
// colonne responsable non vide en tête
|
||||
//
|
||||
// 1) au moins 2 oui dans la colonne responsable (donc forcément les deux premiers)
|
||||
// - membre1 < membre2 => croissant
|
||||
// - membre1 > membre2 => décroissant
|
||||
// - membre1 = membre2
|
||||
// - numéro1 < numéro 2 => croissant
|
||||
// - numéro1 > numéro 2 => décroissant
|
||||
// 2) un seul oui dans la colonne responsable (donc le premier)
|
||||
// - numéro2 < numéro 3 => croissant
|
||||
// - numéro2 > numéro 3 => décroissant
|
||||
|
||||
if (${nb_resp} >= 2)
|
||||
{
|
||||
if (${membre1}.localeCompare(${membre2}) < 0)
|
||||
{
|
||||
// croissant
|
||||
}
|
||||
else if (${membre1}.localeCompare(${membre2}) > 0)
|
||||
{
|
||||
// décroissant
|
||||
}
|
||||
else if (${numero1} < ${numero2})
|
||||
{
|
||||
// croissant
|
||||
}
|
||||
else //if (${numero1} > ${numero2})
|
||||
{
|
||||
// décroissant
|
||||
}
|
||||
}
|
||||
// un seul responsable
|
||||
else if (${nb_total_membres} > 2)
|
||||
{
|
||||
if (${membre2}.localeCompare(${membre3}) < 0)
|
||||
{
|
||||
// croissant
|
||||
}
|
||||
else if (${membre2}.localeCompare(${membre3}) > 0)
|
||||
{
|
||||
// décroissant
|
||||
}
|
||||
else if (${numero2} < ${numero3})
|
||||
{
|
||||
// croissant
|
||||
}
|
||||
else //if (${numero2} > ${numero3})
|
||||
{
|
||||
// décroissant
|
||||
}
|
||||
}
|
||||
|
||||
// simplification ordre croissant
|
||||
if (${nb_resp}) >= 2)
|
||||
{
|
||||
if (${membre1}.localeCompare(${membre2}) > 0
|
||||
||
|
||||
(${membre1}.localeCompare(${membre2}) == 0
|
||||
&& ${numero1} > ${numero2}))
|
||||
{
|
||||
// décroissant => inverser
|
||||
}
|
||||
}
|
||||
// un seul responsable
|
||||
else if (${nb_total_membres} > 2)
|
||||
{
|
||||
if (${membre2}.localeCompare(${membre3}) > 0
|
||||
||
|
||||
(${membre2}.localeCompare(${membre3}) == 0
|
||||
&& ${numero2} > ${numero3}))
|
||||
{
|
||||
// décroissant => inverser
|
||||
}
|
||||
}
|
||||
|
||||
// simplification ordre décroissant
|
||||
if (${nb_resp}) >= 2)
|
||||
{
|
||||
if (${membre1}.localeCompare(${membre2}) < 0
|
||||
||
|
||||
(${membre1}.localeCompare(${membre2}) == 0
|
||||
&& ${numero1} < ${numero2}))
|
||||
{
|
||||
// croissant => inverser
|
||||
}
|
||||
}
|
||||
// un seul responsable
|
||||
else if (${nb_total_membres} > 2)
|
||||
{
|
||||
if (${membre2}.localeCompare(${membre3}) < 0
|
||||
||
|
||||
(${membre2}.localeCompare(${membre3}) == 0
|
||||
&& ${numero2} < ${numero3}))
|
||||
{
|
||||
// croissant => inverser
|
||||
}
|
||||
}
|
||||
|
||||
let numeros = [ 8, 5, 9, 2, 3, 6, 7, 4, 1 ];
|
||||
|
||||
let noms = [ "Yopduu Cxùbvnn", "Xeosnm Rixwxé", "Vonôdjz Jcpùuèf", "Tnczgèb Ùttypmt",
|
||||
"Sdcrdi Vzùmbim", "Kgazmà Éurbdv", "Izgzwùz Evjsqjeù","Hmupazn Chrédki",
|
||||
"Lambert Paul" ];
|
||||
|
||||
let parents = [ "Lambert Paul", "Lambert Paul", "Lambert Paul", "Lambert Paul",
|
||||
"Lambert Paul", "Lambert Paul", "Lambert Paul", "Lambert Paul", "" ];
|
||||
|
||||
function inverser(numeros, noms, parents)
|
||||
{
|
||||
for (let i = 0; i < numeros.length; ++i) {
|
||||
if (parents[i] != "") {
|
||||
premier = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
for (let i = numeros.length - 1; i >= 0; --i) {
|
||||
if (parents[i] != "") {
|
||||
dernier = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
console.log("premier : ", numeros[premier], noms[premier], parents[premier]);
|
||||
console.log("dernier : ", numeros[dernier], noms[dernier], parents[dernier]);
|
||||
|
||||
if (parents[premier].localeCompare(parents[dernier]) < 0)
|
||||
{
|
||||
console.log(parents[premier], "<", parents[dernier]);
|
||||
}
|
||||
if (parents[premier].localeCompare(parents[dernier]) == 0 &&
|
||||
noms[premier].localeCompare(noms[dernier]) < 0)
|
||||
{
|
||||
console.log(parents[premier], "=", parents[dernier]);
|
||||
console.log(noms[premier], "<", noms[dernier]);
|
||||
}
|
||||
if (parents[premier].localeCompare(parents[dernier]) == 0 &&
|
||||
noms[premier].localeCompare(noms[dernier]) == 0 &&
|
||||
numeros[premier] < numeros[dernier])
|
||||
{
|
||||
console.log(parents[premier], "=", parents[dernier]);
|
||||
console.log(noms[premier], "=", noms[dernier]);
|
||||
console.log(numeros[premier], "<", numeros[dernier]);
|
||||
}
|
||||
|
||||
if (parents[premier].localeCompare(parents[dernier]) < 0
|
||||
||
|
||||
(parents[premier].localeCompare(parents[dernier]) == 0 &&
|
||||
noms[premier].localeCompare(noms[dernier]) < 0)
|
||||
||
|
||||
(parents[premier].localeCompare(parents[dernier]) == 0 &&
|
||||
noms[premier].localeCompare(noms[dernier]) == 0 &&
|
||||
numeros[premier] < numeros[dernier]))
|
||||
{
|
||||
console.log("Inverser le tri");
|
||||
}
|
||||
else {
|
||||
console.log("Tri ok");
|
||||
}
|
||||
}
|
||||
inverser(numeros, noms, parents);
|
||||
|
Loading…
Reference in New Issue
Block a user