from doc_helpers import *

def steps(d,items):
    for i,s in enumerate(items,1):p(d,f'{i}. {s}')
def guide():
    d=base('Guide d’utilisation — Outils administratifs')
    title(d,'Guide d’utilisation','Word et Excel • Version de démonstration 1.0')
    p(d,'Ce guide accompagne le classeur 03_Gestion_organisme.xlsx et les outils Word 04 à 08. Les chemins indiqués correspondent à Word et Excel pour ordinateur; les libellés peuvent varier légèrement selon la version.')
    heading(d,'Démarrage en cinq minutes',1,'Depart')
    steps(d,['Extraire toute l’archive dans un même dossier. Conserver les noms des fichiers. Travailler sur une copie du dossier de démonstration.','Ouvrir 03_Gestion_organisme.xlsx. Les cellules jaunes sont à saisir; les cellules bleues contiennent des formules. Le calcul du classeur doit être automatique.','Consulter Parametres : dates de la campagne, historique, taux, année, date de référence et mois analysé. Le jeu fourni utilise le 14 septembre 2026 comme date de référence.','À partir d’Accueil, ouvrir Facture : le rendez-vous R014 affiche un total hors taxes de 95 $. Ouvrir Portrait : le total annuel est de 2 521,25 $.','Lire les procédures suivantes avant de remplacer les données fictives. Aucun dossier clinique ni renseignement réel de client n’est inclus.'])
    heading(d,'Navigation',2)
    for label,mark in [('Clients et rendez-vous','Saisie'),('Messages','Messages'),('Rabais et facturation','Facturation'),('Portrait et bilan','Bilan'),('Lettres et publipostage','Lettres'),('Dépannage et entretien','Entretien')]:link(p(d),label,anchor=mark)
    heading(d,'Limites du prototype',2)
    p(d,'La capacité prévue est de 50 clients, 300 rendez-vous et 300 messages. Les lignes préparées sont 2 à 51 pour Clients et Fusion, et 2 à 301 pour RendezVous et Messages. Ne pas saisir au-delà avant d’étendre toutes les plages liées et de refaire les tests. La protection sans mot de passe limite les erreurs de manipulation; les droits d’accès sont gérés dans l’espace de stockage.')
    newpage(d,'1. Paramétrer le dossier')
    table(d,['Cellule','Contenu','Valeur de démonstration'],[['Parametres!B2','Début de la promotion','2026-09-01'],['Parametres!B3','Fin de la promotion incluse','2027-08-31'],['Parametres!B4','Début de l’historique admissible','2025-09-01'],['Parametres!B5','Taux du rabais','5 %'],['Parametres!B6','Année du bilan','2026'],['Parametres!B7','Date de référence pour les contrôles','2026-09-14'],['Parametres!B8','Premier jour du mois du portrait','2026-09-01'],['Services!C2:C4','Tarifs horaires fictifs','180 $, 120 $ et 100 $'],['Services!D2:D4','Capacité mensuelle en heures','80 h par service']],[4.2,7.2,4.6])
    p(d,'Les dates doivent être confirmées par la direction. L’historique prend fin la veille du début de la promotion. Actualiser B7 chaque jour pour que les alertes de suivi correspondent à la date courante. La capacité représente les heures de service disponibles pour le mois sélectionné et doit être adaptée aux congés ou absences.')
    p(d,'Les tarifs du catalogue alimentent toutes les lignes. Pour préserver une période clôturée, archiver son classeur et ses factures avant toute modification du tarif ou des dates de campagne. Une nouvelle campagne utilise une nouvelle copie du dossier, après reprise de l’historique nécessaire.')
    heading(d,'Réinitialisation pour un usage réel',2)
    steps(d,['Conserver le dossier de démonstration pour les exercices. Créer une copie de travail datée.','Dans la copie, effacer uniquement les cellules jaunes des lignes fictives de Clients, RendezVous et Messages. Préserver les formules bleues.','Inscrire les clients réels autorisés et importer ou saisir l’historique contrôlé. Compléter tous les champs nécessaires à l’envoi.','Vérifier les paramètres, les alertes, les cas de rabais et les modèles avant toute émission.'])
    newpage(d,'2. Clients et rendez-vous','Saisie')
    heading(d,'Créer ou retrouver un client',2)
    steps(d,['Rechercher la personne dans Clients avant de créer une nouvelle ligne. Conserver le même ID_Client lorsqu’elle utilise plusieurs services.','Renseigner A:J : identifiant unique, prénom, nom, adresse, ville, province, code postal, téléphone, courriel et statut Actuel.','Vérifier M : Controle doit afficher OK. K (Admissible) se calcule depuis l’historique; ne pas le saisir manuellement. L reprend le nom complet.'])
    heading(d,'Inscrire une consultation',2)
    steps(d,['Dans RendezVous, utiliser la prochaine ligne disponible et un ID_Rdv unique. Saisir la date et choisir l’ID_Client en colonne C.','Choisir le Service en E. Le client, le professionnel et le tarif se remplissent automatiquement. Saisir les heures prévues en G.','Pour une réservation, saisir 0 en H et choisir Planifié en I. Après confirmation du professionnel, inscrire les heures réelles et le statut Réalisé.','Choisir Brouillon en P tant que la facture n’est pas validée. Consulter S (Alerte). Une erreur d’identifiant, de durée ou de statut doit être résolue à la source.','En cas d’annulation ou d’absence, sélectionner le statut correspondant. Le prototype ne facture pas de frais d’annulation.'])
    heading(d,'Exemple contrôlé',2)
    p(d,'R014 correspond à C001, en sexologie, le 1er septembre 2026. La durée réalisée est de 1 h, le tarif de 100 $, le rabais de 5 $ et le montant net de 95 $. R023 présente volontairement 1 h prévue et 1,25 h réalisée : la mention Écart heures appelle une vérification du professionnel. Si les 1,25 h sont confirmées, inscrire en T (Justification_ecart) la raison administrative, le nom de la personne ayant confirmé et la date. L’alerte est levée; les heures prévues et réalisées restent distinctes. Si une durée a été mal saisie, corriger cette donnée après confirmation.')
    p(d,'Les listes de validation empêchent les saisies ordinaires non autorisées. Un collage peut contourner certains contrôles; les alertes de la colonne S doivent donc toujours être consultées. Une alerte visuelle ne constitue pas à elle seule un blocage technique de l’impression.')
    newpage(d,'3. Recevoir et suivre un message','Messages')
    steps(d,['Ouvrir Messages depuis Accueil. Inscrire un ID_Message unique et la date de réception.','Renseigner le nom ou l’ID du client, son numéro de rappel et le service demandé. Le professionnel responsable apparaît en F.','Résumer uniquement la demande administrative en G : rappel, disponibilité ou modification de rendez-vous.','Choisir À transmettre en H. Acheminer effectivement le message au professionnel selon le circuit interne, puis choisir Transmis et saisir la date en I.','Lorsque la demande est réglée, choisir Traité et saisir la date en J. Les dates doivent respecter l’ordre réception → transmission → traitement.','En début et en fin de journée, filtrer les messages non traités et vérifier K. Une demande de plus d’un jour civil affiche À relancer.'])
    heading(d,'Points de contrôle',2)
    p(d,'Le registre calcule le destinataire et l’alerte; il n’envoie aucun message automatiquement. La réception reste responsable de la transmission et du suivi. Un remplacement doit commencer par la lecture des messages en attente. L’objectif d’un jour civil est une hypothèse de travail à adapter aux heures d’ouverture; les demandes urgentes suivent les consignes de l’organisme.')
    p(d,'Dans l’exemple, M001 a été reçu le 10 septembre et demeure à transmettre au 14 septembre : il apparaît en alerte. M002 est transmis depuis le 13 septembre. M003 a été traité et possède ses deux dates de suivi.')
    heading(d,'Erreur d’orientation',2)
    p(d,'Corriger le service dans la même ligne et prévenir la personne à qui le message a déjà été transmis. Le nom du professionnel est recalculé. Ne pas créer une seconde ligne pour le même message, sauf si une nouvelle demande distincte est reçue.')
    newpage(d,'4. Appliquer le rabais et produire une facture','Facturation')
    heading(d,'Lire la règle',2)
    p(d,'Admissible = Oui lorsque le client possède une consultation de sexologie Réalisée dans l’année de référence. Le taux de 5 % est ensuite appliqué seulement à une consultation de sexologie réalisée pendant la promotion. Les prestations d’un autre service, les annulations, les réservations et les dates exclues n’obtiennent pas le rabais.')
    codebox(d,'Logique de RendezVous!L15 :\nSI aucun rendez-vous → vide\nSINON SI statut ≠ Réalisé → 0 %\nSINON SI service ≠ Sexologie → 0 %\nSINON SI admissibilité ≠ Oui → 0 %\nSINON SI date comprise entre début et fin inclus → taux paramétré\nSINON → 0 %')
    heading(d,'Émettre après contrôle',2)
    steps(d,['Dans RendezVous, faire confirmer le client, la date et la durée. Corriger les alertes. Le statut doit être Réalisé.','Dans Facture!C6, choisir l’identifiant du rendez-vous. Les montants et les renseignements de la consultation sont repris automatiquement.','Vérifier le brut, le taux, le montant du rabais et le total hors taxes. Comparer avec le journal. Les mentions fiscales et les coordonnées réelles doivent être paramétrées avant une facture réelle.','Attribuer un numéro unique dans RendezVous!Q, puis choisir Émise en P. Revenir à Facture et vérifier le numéro affiché.','Exporter la zone d’impression en PDF dans le dossier d’archives autorisé. Exemple de nom : DEMO-014_C001_2026-09-01.pdf. Conserver la trace de toute correction ultérieure.'])
    p(d,'Le statut Prête à contrôler indique que les principales vérifications de saisie réussissent. Il ne vaut pas approbation de la comptabilité. Une ligne en alerte affiche Émission bloquée dans l’outil, mais Excel reste capable d’imprimer : la procédure de validation demeure obligatoire.')
    newpage(d,'5. Produire le portrait mensuel et le bilan','Bilan')
    heading(d,'Dans Excel',2)
    steps(d,['Mettre à jour Parametres!B6 pour l’année, B7 pour la date de référence et B8 pour le premier jour du mois étudié.','Vérifier les alertes dans Portrait!B28 et E28. Corriger les saisies ou consigner les explications validées.','Lire A5:H18 pour les heures réalisées et les montants annuels. Lire A21:G24 pour la capacité, les heures réservées et l’occupation du mois.','Comparer les heures réalisées et émises en B30 et E30. Consulter les dates précises de RendezVous avant d’annoncer des disponibilités.','Enregistrer le classeur après recalcul. Le graphique en A35 présente les heures par service.'])
    heading(d,'Dans Word',2)
    steps(d,['Ouvrir 07_Bilan_annuel_lie.docx dans Word pour ordinateur. Si nécessaire, aller à Fichier > Informations > Modifier les liaisons vers les fichiers et choisir la nouvelle source 03_Gestion_organisme.xlsx.','Actualiser les liaisons connues, puis sélectionner le document avec Ctrl+A et appuyer sur F9. Répéter pour que les formules de contrôle utilisent les valeurs liées actualisées.','Comparer le total du bilan avec Portrait!H18. Vérifier l’écart dans Contrôle des montants : le résultat attendu est 0,00 $.','Compléter la date, les noms de validation et les commentaires. Produire un PDF figé du bilan approuvé.'])
    p(d,'Les liens Synthèse, Portrait mensuel et Contrôle des montants permettent de naviguer dans le document. Alt+F9 permet d’afficher ou de masquer les codes de champ. Une valeur déjà affichée peut être un résultat mémorisé : un montant visible ne prouve pas que la liaison a été actualisée.')
    newpage(d,'6. Lettres et publipostage','Lettres')
    heading(d,'Utiliser les modèles des professionnelles',2)
    steps(d,['Double-cliquer sur 05_Modele_lettre_psychologie.dotx ou 06_Modele_lettre_sexologie.dotx pour créer une nouvelle lettre.','Remplacer les textes entre crochets. Conserver les éléments administratifs, l’objet et la signature de la professionnelle.','Compléter le téléphone, le poste, le courriel et l’adresse réels de la signature. Le nom typographique ne remplace pas une signature manuscrite lorsque celle-ci est requise.','Enregistrer le nouveau document en .docx avec un nom distinct. Pour modifier le modèle lui-même, l’ouvrir depuis Fichier > Ouvrir et enregistrer en .dotx.'])
    heading(d,'Préparer la campagne anniversaire',2)
    steps(d,['Enregistrer Excel après vérification de Clients et de l’historique. Fusion contient une ligne par personne; Envoyer doit être Oui pour les destinataires retenus.','Ouvrir 04_Lettre_anniversaire_publipostage.docx. La source est configurée sur le classeur fourni. Si Word demande la source, utiliser Publipostage > Sélection des destinataires > Utiliser une liste existante, choisir le classeur puis Fusion$.','Dans Modifier la liste de destinataires, filtrer Envoyer égal à Oui. Dans la démonstration, 12 personnes doivent être retenues.','Utiliser Aperçu des résultats. C001 doit lire l’offre de 5 %; C003 doit lire uniquement l’anniversaire. C007, qui utilise deux services, ne doit apparaître qu’une fois.','Compléter la date d’envoi et les coordonnées de l’organisme. Choisir Terminer et fusionner > Modifier des documents individuels.','Contrôler les 12 lettres : 6 comportent l’offre et 6 n’en comportent pas. Enregistrer le document fusionné et son PDF. L’envoi s’effectue ensuite selon le circuit approuvé.'])
    p(d,'08_Exemples_lettres_anniversaire.docx fournit deux résultats attendus rédigés pour comparaison. Ce fichier n’est pas la preuve d’une fusion exécutée par Word. Si une lettre se dédouble, rechercher un doublon de client dans la source avant de recommencer.')
    newpage(d,'7. Dépannage et entretien','Entretien')
    table(d,['Symptôme','Cause à vérifier','Correction'],[['Client inconnu','Identifiant absent ou dupliqué dans Clients','Rechercher la bonne personne; corriger l’identifiant à la source.'],['Rabais absent ou injustifié','Statut, service, date ou historique incorrect','Comparer la consultation et la période; ne pas écraser la formule du taux.'],['Montant ancien dans Word','Classeur non enregistré ou liaison rompue','Enregistrer Excel, rétablir la source, actualiser les liens puis les champs.'],['Des lettres vides apparaissent','Filtre Envoyer non appliqué','Filtrer Envoyer=Oui dans les destinataires Word.'],['Message non reçu par le professionnel','Registre rempli, mais transmission non effectuée','Acheminer le message et inscrire sa date de transmission.'],['Classeur verrouillé','Copie locale ou version sans coédition','Essayer la copie .xlsx dans l’espace professionnel pris en charge.'],['Formule effacée','Collage sur une cellule de calcul','Restaurer depuis une copie contrôlée; refaire le test concerné.'],['Plage pleine','50 clients ou 300 lignes atteints','Faire étendre les plages, listes, formules, sources de fusion et contrôles par la technicienne.']],[4,5.5,6.5])
    heading(d,'Essai d’utilisation du guide',2)
    p(d,'Faire exécuter cinq tâches par deux personnes : créer un message, inscrire un rendez-vous, afficher une facture, préparer une lettre et actualiser un bilan. Noter pour chaque tâche le résultat, le temps, l’aide requise et l’étape à clarifier. Cible : cinq tâches réussies sur cinq; ce résultat reste à mesurer avec les utilisatrices.')
    heading(d,'Coédition et entretien',2)
    p(d,'Après confirmation de l’espace Microsoft 365, déposer une copie .xlsx dans OneDrive professionnel ou SharePoint Online avec les droits nécessaires. Deux personnes saisissent deux lignes différentes et vérifient la conservation des modifications. Cet essai n’a pas été exécuté pendant la préparation. Chaque semaine, vérifier les anomalies et les archives; chaque mois, revoir les paramètres et le journal des corrections.')
    pa=p(d);link(pa,'Retour au démarrage',anchor='Depart')
    save(d,'02_Guide_utilisation.docx')

def personal():
    d=base('00V6 — Parcours professionnel à personnaliser')
    title(d,'[Prénom et nom]','Curriculum vitæ')
    p(d,'[Ville, province] • [Téléphone] • [Courriel professionnel]\n[Profil professionnel en ligne, si pertinent]')
    p(d,'TRAME À PERSONNALISER — Renseignements personnels non fournis. Retirer cette mention après avoir complété et vérifié chaque fait. Si une équivalence ou substitution 00V6 s’applique, suivre les consignes de l’établissement.','Caption')
    heading(d,'Profil professionnel',2)
    p(d,'[Fonction ou domaine d’expérience réel]. [Nombre d’années, si pertinent] d’expérience en [activités vérifiables]. Intérêt pour un poste en [fonction visée]. [Deux compétences illustrées par des réalisations réelles].')
    heading(d,'Compétences',2)
    p(d,'• Bureautique : [logiciels et opérations réellement maîtrisés].\n• Coordination : [tâches et responsabilités exercées].\n• Communication : [rédaction, service à la clientèle, langues et niveau réel].\n• Organisation : [méthodes de classement ou de suivi utilisées].')
    heading(d,'Expérience professionnelle',2)
    p(d,'[Titre du poste] — [Employeur, ville] | [Mois/année – mois/année]\n• [Action réalisée, contexte et résultat concret].\n• [Responsabilité exercée et effet observable].')
    p(d,'[Titre du poste précédent] — [Employeur, ville] | [Dates]\n• [Réalisation réelle et pertinente pour le poste visé].')
    heading(d,'Formation et perfectionnement',2)
    p(d,'DEC en Techniques de bureautique — [Établissement]\n[Démarche RAC / en cours / diplôme obtenu : préciser le statut exact et la date]\n[Autre formation pertinente, établissement, année]')
    heading(d,'Projet de formation et portfolio',2)
    p(d,'Épreuve synthèse : réorganisation administrative d’un organisme fictif.\n[Préciser les outils compris, les manipulations maîtrisées et les contributions personnelles au dossier].')
    newpage(d,'Lettre de présentation professionnelle')
    p(d,'[Prénom et nom]\n[Ville, province]\n[Téléphone] • [Courriel]')
    p(d,'[Lieu], le [date]');p(d,'[Nom de la personne responsable]\n[Fonction]\n[Organisation]\n[Adresse]')
    heading(d,'Objet : Candidature au poste de [titre du poste]',2)
    p(d,'[Madame, Monsieur ou formule adaptée],')
    p(d,'Je vous présente ma candidature au poste de [titre] au sein de [organisation]. Mon expérience en [domaine réel] et ma formation en [formation et statut exact] correspondent à votre besoin de [besoin tiré de l’offre d’emploi].')
    p(d,'Dans mon poste de [fonction réelle] chez [employeur], j’ai [réalisation vérifiable]. Cette démarche a permis de [résultat réel, chiffré seulement s’il peut être confirmé]. Elle illustre ma capacité à [compétence directement liée au poste].')
    p(d,'Je souhaite mettre à contribution mes compétences en [deux compétences maîtrisées] et mon intérêt pour [mission ou activité précise de l’organisation]. Ma démarche de formation m’a également permis de [apprentissage personnel que vous pouvez expliquer et démontrer].')
    p(d,'Je serais disponible pour une entrevue afin de discuter de ma candidature et de la contribution que je pourrais apporter à votre équipe. Je vous remercie de l’attention portée à ma demande.')
    p(d,'Veuillez recevoir mes salutations distinguées.');p(d,'[Prénom et nom]\nPièce jointe : curriculum vitæ')
    newpage(d,'Préparation à l’entretien RAC')
    p(d,'Les réponses doivent décrire votre vécu. Utiliser la méthode STAR : situation, tâche, actions et résultat. Préparer un exemple réel de 60 à 90 secondes; ne pas apprendre une expérience inventée.')
    questions=[('Quelle a été votre plus grande réalisation dans vos emplois ?','Choisir un résultat dont vous pouvez expliquer votre rôle exact.','Dans [contexte], il fallait [objectif]. J’étais responsable de [tâche]. J’ai [actions précises]. Le résultat a été [effet observable]. J’en ai retenu [apprentissage].'),('Quelles sont vos principales forces ?','Retenir deux ou trois forces liées à un poste de bureautique.','Mes forces sont [force 1] et [force 2]. Elles se manifestent lorsque je [comportement concret]. Je peux les illustrer par [preuve].'),('Décrivez une situation qui illustre une de vos forces.','Décrire une situation distincte ou approfondir un exemple du CV.','Lors de [situation réelle], j’ai utilisé [force] pour [action]. Cela a permis [résultat]. La contribution des autres personnes était [précision].'),('Que faites-vous pour améliorer un de vos points à améliorer ?','Choisir une difficulté réelle et montrer une action en cours.','Je souhaite améliorer [habileté]. J’ai mis en place [formation, méthode ou pratique]. Je mesure mes progrès par [indicateur ou rétroaction].')]
    for q,tip,ans in questions:heading(d,q,2);p(d,tip);p(d,ans)
    newpage(d,'Préparation à l’entretien — suite')
    for q,tip,ans in [('Si je parlais à un de vos collègues, que me dirait-il sur vous ?','S’appuyer sur une rétroaction déjà reçue, sans attribuer des propos inventés.','Un commentaire que j’ai reçu est [propos ou idée réellement exprimée]. Il concernait [situation]. Je crois que mes collègues souligneraient [qualité démontrée], tout en m’encourageant à [amélioration].'),('Pour quelle raison avez-vous entrepris de faire votre DEC ?','Expliquer votre motivation personnelle et le lien avec la RAC.','J’ai entrepris cette démarche pour [motivation réelle]. Mon expérience m’a appris [acquis]. Le DEC me permet de [objectif personnel ou professionnel].'),('Quel est votre objectif de carrière dans 5 ans, dans 10 ans ?','Distinguer un objectif crédible et les étapes nécessaires.','Dans cinq ans, je souhaite [objectif]. Pour y arriver, je prévois [étapes]. Dans dix ans, j’aimerais [orientation], selon [conditions ou évolution souhaitée].')]:heading(d,q,2);p(d,tip);p(d,ans)
    heading(d,'Préparation du portfolio',2)
    table(d,['Pièce','Preuve personnelle à réunir'],[['CV et lettre','Dates, titres, employeurs et coordonnées vérifiés'],['Diplômes et attestations','Copies des documents réellement obtenus'],['Deux réalisations','Contexte, rôle personnel, résultat et preuve autorisée'],['Travail ESP','Expliquer les formules, les règles et les limites des outils'],['Autocritique','Forces, point à améliorer, limites et plan de développement']],[5,11])
    save(d,'10_Parcours_professionnel_a_personnaliser.docx')

def checklist():
    d=base('Grille de relecture — État du dossier')
    title(d,'Grille de relecture','Évaluation de conformité au 14 septembre 2026')
    p(d,'Légende : VÉRIFIÉ = élément présent et contrôlé; PARTIEL = élément préparé, vérification complémentaire nécessaire; À FAIRE = action personnelle ou essai non exécuté. Cette grille ne déclare pas une répétition orale ou un test Office comme réalisé.')
    groups=[('Analyse et planification',[
    ('Problématiques mises en évidence','VÉRIFIÉ','Rapport A : neuf problèmes et leurs causes probables.'),('Résultats à atteindre et objectifs clairs','VÉRIFIÉ','Rapport B : objectifs par solution.'),('Pertinence des automatisations justifiée','VÉRIFIÉ','Rapport A et C.'),('Comparaison prévue des résultats attendus et obtenus','VÉRIFIÉ','Rapport D et indicateurs avant/après.')]),
    ('Automatisations et implantation',[
    ('Automatisation optimale des tâches','PARTIEL','Outils créés; exécution native Word à confirmer.'),('Plus de trois automatisations différentes par logiciel','VÉRIFIÉ','Quatre catégories Word, cinq Excel, parmi celles autorisées.'),('Stratégie d’implantation présentée','VÉRIFIÉ','Calendrier J1 à J20 et responsabilités.'),('Faisabilité de la stratégie vérifiée','PARTIEL','Dépendances analysées; licences et coédition à confirmer.')]),
    ('Validation et suivi',[
    ('Tests effectués ou prévus','VÉRIFIÉ','Recalcul effectué; essais Office et humains planifiés.'),('Atteinte des objectifs et résultats attendus vérifiée','PARTIEL','Calculs réussis; délais, coédition et Word à mesurer.'),('Moyen prévu pour mesurer l’efficacité du changement','VÉRIFIÉ','Temps, erreurs et messages avant/après.'),('Corrections apportées ou prévues','VÉRIFIÉ','Procédures de reprise et contrôles avant diffusion.')]),
    ('Qualité rédactionnelle et normes administratives',[
    ('Liens entre les paragraphes','VÉRIFIÉ','Organisation par idées et transitions relues.'),('Termes clairs et précis','VÉRIFIÉ','Vocabulaire administratif et termes définis.'),('Formulation impersonnelle du rapport','VÉRIFIÉ','Rapport rédigé sans expérience personnelle inventée.'),('Syntaxe et tournures de phrases','VÉRIFIÉ','Relecture rédactionnelle effectuée.'),('Introduction, développement et conclusion','VÉRIFIÉ','Sections complètes; conclusion en trois paragraphes.'),('Bibliographie et annexes','PARTIEL','Références et aperçus inclus; captures des menus Office à ajouter.'),('Structure d’un rapport professionnel','VÉRIFIÉ','Page titre, sommaire, sections et tableaux.'),('Pagination, marges et paragraphes','VÉRIFIÉ','Format lettre, marges régulières et pagination.'),('En-têtes et pieds de page','VÉRIFIÉ','Présents dans les documents.'),('Page titre, table des matières et liste des tableaux/figures','PARTIEL','Structure créée; renseignements personnels à compléter.')]),
    ('Présentation PowerPoint',[
    ('Diapositives lisibles et peu chargées','VÉRIFIÉ','Une idée principale par diapositive.'),('Transition simple','VÉRIFIÉ','Fondu discret entre les diapositives.'),('Navigation optimale','VÉRIFIÉ','Progression linéaire et sommaire.'),('Allure professionnelle','VÉRIFIÉ','Palette et hiérarchie de titres cohérentes.'),('Adaptation aux deux directrices','VÉRIFIÉ','Décisions, facturation et fonctionnement du bureau.'),('Termes précis et langage professionnel','VÉRIFIÉ','Notes de présentation rédigées.'),('Liens entre les parties et conclusion','VÉRIFIÉ','Transitions orales prévues dans les notes.'),('Gestes et déplacements pertinents','À FAIRE','Gestes simples indiqués; pratique personnelle requise.'),('Contact visuel','À FAIRE','Regarder la caméra; pratiquer avec une personne témoin.'),('Respiration, débit, voix et articulation','À FAIRE','Consignes fournies; mise en pratique personnelle.'),('Répétitions pour aisance et durée','À FAIRE','Canevas de 20 minutes fourni; chronométrer plusieurs répétitions.')]),
    ('Présentation matérielle et remise',[
    ('Travail écrit présent','VÉRIFIÉ','01_Rapport_ESP_00VB.'),('PowerPoint présent','VÉRIFIÉ','09_Presentation_orale_20min.pptx.'),('Grille de relecture présente','VÉRIFIÉ','Le présent document.'),('Documents professionnels et normes administratives','PARTIEL','Mise en page préparée; identité et coordonnées à compléter.'),('Grammaire, orthographe et ponctuation','VÉRIFIÉ','Relecture des textes du dossier effectuée.'),('Partie 00V6 ou équivalence','À FAIRE','Personnaliser le fichier 10 ou confirmer la dispense.'),('Envoi électronique aux spécialistes','À FAIRE','Archive préparée; destinataires et envoi non fournis.')])]
    for gi,(titletext,rows) in enumerate(groups):
        if gi in [2,4,5]:d.add_page_break()
        heading(d,titletext,2);table(d,['Point à observer','État','Preuve / action restante'],rows,[7,2.3,6.7])
    save(d,'11_Grille_relecture.docx')

if __name__=='__main__':guide();personal();checklist();print('Guide, parcours et grille créés.')
