<aside> <img src="/icons/list-indent_blue.svg" alt="/icons/list-indent_blue.svg" width="40px" /> Table des matières
<aside> <img src="/icons/chat_blue.svg" alt="/icons/chat_blue.svg" width="40px" /> 📢 Français
📢 English
</aside>
</aside>
Il ne s'agit pas de n'importe quels événements manquants mais des événements Niveau d'instruction dont je me sers notamment pour mon projet Signatures dont j'ai déjà parlé:
Afin d'alimenter les individus en enregistrements indiquant s'ils savaient signer ou non, et pour ceux qui savaient, d'être en mesure de savoir comment leur signature a varié au long de la vie de son porteur; j'ai besoin de représenter chaque version de cette signature dont je dispose et donc de m'assurer que chaque acte que j'ai à disposition dans mes sources sur lequel je suis susceptible de trouver une signature a bien été traduit en autant d'événements Niveau d'instruction que de signatures sur l’acte.
Pour cela j'ai développé le script Supertool suivant, script qui tourne dans les Evénements :
[Gramps SuperTool script file]
version=1
[title]
Sources signables sans événement Niveau d'instruction
[category]
Events
[initial_statements]
sources_signees = filter("88. Sources signées par les participants - 143p", "Source")
signatures = filter("88. Type[{'Niveau d'instruction': [Illettré, Lettré]}] - 312p")
faux_positif = filter("90. Tag[{'Filtre': 'Faux positif'}, 'E.487p'] - 160p", 'Citation')
excluded_event_types = ["Medical Information"]
[statements]
if len(citations) == 0:
non_trouve = False
else:
for citation in citations:
if faux_positif(citation):
non_trouve = False
else:
if not sources_signees(citation.source):
non_trouve = False
else:
for citator in citation.citators:
if "Event[" in str(citator) and citator.type not in excluded_event_types:
if signatures(citator):
non_trouve = False
else:
non_trouve = True
else:
non_trouve = False
[filter]
non_trouve
[expressions]
gramps_id
[scope]
selected
[unwind_lists]
False
[commit_changes]
False
[summary_only]
False
Tout d'abord il initialise 3 filtres standards qui existent déjà dans mes bibliothèques de filtres:
Un filtre qui se trouve dans les Sources: 88. Sources signées par les participants - 143p
Ce filtre Sources, vient filtrer celles que j'ai taggées comme disposant potentiellement d'une signature : les sources d’état civil, les courriers ou les cartes postales, etc.
Un second dans les Evénements: 88. Type[{'Niveau d'instruction': [Illettré, Lettré]}] - 312p
Ce filtre Evénement filtrant les événements Niveau d'instruction indiquant dans leur description si l'individu Sait signer ou Ne sait pas signer.
Un troisième dans les Citations: 90. Tag[{'Filtre': 'Faux positif'}, 'E.487p'] - 160p
Enfin, ce filtre Citations vient repérer les citations que j'ai tagguées - ou que je tagguerai - comme n'étant pas pertinentes dans le cadre de cette recherche de signatures.
Ensuite, vient la logique elle même:
Avec des filtres ! 🤪
Dans la vue Individus j'ai créé un filtre qui appelle le filtre Evénement qui fait tourner le script Supertool afin de trouver les porteurs des événements qui donnent une piste pour créer les Niveau d'instruction manquants.
J'ouvre un à un les individus que ce filtre trouve.
J'ai aussi un second filtre Individu qui retourne l'individu actif.
Je vais alors dans la vue Evénement dans laquelle j'ai un autre filtre classique qui sélectionne les événements communs au filtre SuperTool et à l'individu actif.
Il me montre alors quelques événements pour lesquels il me suffit de vérifier dans les références de chacune de leurs citations si se trouvent déjà des événements Niveau d'instruction. Si ce n'est pas le cas je les créais ou je taggue la citation comme étant sans intérêt.
Une fois fait, le filtre (étape 2) peut tourner à nouveau afin de vérifier si aucun événement avec des citations porteuses de signatures ne ressort encore.
Je peux alors passer à l'individu suivant et recommencer (étape 1).
<aside> <img src="/icons/arrow-turn-left_blue.svg" alt="/icons/arrow-turn-left_blue.svg" width="40px" /> Retour au blog Ma généalogie avec Gramps
</aside>
<aside> <img src="/icons/info-alternate_blue.svg" alt="/icons/info-alternate_blue.svg" width="40px" /> Et pour en savoir plus
</aside>
<aside> <img src="/icons/shuffle_blue.svg" alt="/icons/shuffle_blue.svg" width="40px" /> Une page au hasard
</aside>