Salut,

Tu as aussi la possibilité de faire des requêtes SQL en base, mais il faut les écrire avec des jointures entre tables, c'est peut être mieux que sur un export.

Ceci dit ce serait tellement mieux directement avec Galette, et cela marchait très bien en 0.9.x même en expérimental. une partie du code ayant été revu, cela a du introduire des incohérences, mais je pense que le soucis n'est pas hyper dégradé, bien sûr cela demande du boulot à Johan, mais cela rendrait les recherches hyper efficaces.

Cordialement,

GEORGES BEYNA

Frederic Tezorc a écrit :
Hello,

J'avais plus ou moins la même requête pour les recherches avancées et notamment dans les recherches libres avec les dates.
Hormis le RGPD, j'ai également les renouvellements de vaccins obligatoires (club canin) ou les certificats médicaux.
Actuellement, j'exporte tout et je filtre avec Open Office par exemple.

Tu avais déjà posé la même question en décembre 2023 (le 24 ;))

Bon! je n'ai pas répondu à ta question et j'avais également fait d'autres demandes dans le passé 
La recherche libre est une fonction expérimentale :
- Anomalie #1473 - recherche champ booléen
Souhaits #1464 - recherche avec date
ou encore Souhaits #1485 - recherche si présence fichier téléchargé



Le lun. 22 juil. 2024 à 07:50, Contact CID Auditeur <contact@cid-auditeur.com> a écrit :

Bonjour à tous,

Je relance ce sujet assez important pour l'assoc dont j'ai la charge en tant que webmaster et dans le cadre du respect du RGPD "Droit à l'oubli". J'ai un champs dynamique concernant la démission de l'assoc, et au bout d'un an je dois détruire les fiches membres concernées. Celui-ci était analysé par une requête de recherche avancée et produisait une liste de membres à détruire.

Cela ne concerne donc que la recherche avancée libre sur un champs de dates (coeur ou dynamique).

Au départ il propose bien :


Il comprends bien que l'on travaille sur des dates, suite à l'entrée d'une date et lancement, le résultat est vierge.

Requête produite au départ : SELECT DISTINCT `a`.*, `status`.`priorite_statut` AS `priorite_statut` FROM `oitar_adherents` AS `a` LEFT JOIN `oitar_socials` AS `so` ON `a`.`id_adh`=`so`.`id_adh` LEFT JOIN `oitar_adherents` AS `parent` ON `a`.`parent_id`=`parent`.`id_adh` INNER JOIN `oitar_statuts` AS `status` ON `a`.`id_statut`=`status`.`id_statut` LEFT JOIN (SELECT `df`.`item_id` AS `item_id`, `df`.`field_val` AS `val` FROM `oitar_dynamic_fields` AS `df` WHERE `df`.`field_form` = 'adh' AND `df`.`field_id` = '36') AS `df36` ON `a`.`id_adh` = `df36`.`item_id` WHERE a.activite_adh=true AND STR_TO_DATE(df36.val, '%d/%m/%Y') < STR_TO_DATE('2023-06-01', '%d/%m/%Y') ORDER BY `nom_adh` ASC, `prenom_adh` ASC LIMIT 100 OFFSET 0

Si on demande la modification des critères alors il présente cela :


Il a perdu la notion de Avant - Après.

Dans les versions antérieures 0.9.x cela marchait très bien, je l'utilisais très très souvent (et j'avais même des requêtes enregistrées).

PRECISIONS : si on fait la même chose avec le champs du coeur Date de naissance, dans cette recherche libre :


Ca marche, il y a un résultat, mais il perd aussi cette notion Avant - Après à la modification des critères, avec une proposition d'analyse comme la copie d'écran N°2.

Requête produite au départ : SELECT DISTINCT `a`.*, `status`.`priorite_statut` AS `priorite_statut` FROM `oitar_adherents` AS `a` LEFT JOIN `oitar_socials` AS `so` ON `a`.`id_adh`=`so`.`id_adh` LEFT JOIN `oitar_adherents` AS `parent` ON `a`.`parent_id`=`parent`.`id_adh` INNER JOIN `oitar_statuts` AS `status` ON `a`.`id_statut`=`status`.`id_statut` WHERE a.activite_adh=true AND a.ddn_adh< '2023-06-01' ORDER BY `nom_adh` ASC, `prenom_adh` ASC LIMIT 100 OFFSET 0

Requête produite si modif : SELECT DISTINCT `a`.*, `status`.`priorite_statut` AS `priorite_statut` FROM `oitar_adherents` AS `a` LEFT JOIN `oitar_socials` AS `so` ON `a`.`id_adh`=`so`.`id_adh` LEFT JOIN `oitar_adherents` AS `parent` ON `a`.`parent_id`=`parent`.`id_adh` INNER JOIN `oitar_statuts` AS `status` ON `a`.`id_statut`=`status`.`id_statut` WHERE a.activite_adh=true AND LOWER(a.ddn_adh) = '2023-06-01' ORDER BY `nom_adh` ASC, `prenom_adh` ASC LIMIT 100 OFFSET 0

Si vous avez des idées, c'est une fonction importante et hyper utile sur des champs de type date.

Cordialement,

GEORGES BEYNA


_______________________________________________
Galette-users mailing list -- galette-users@mailman3.com
To unsubscribe send an email to galette-users-leave@mailman3.com

_______________________________________________
Galette-users mailing list -- galette-users@mailman3.com
To unsubscribe send an email to galette-users-leave@mailman3.com