Checkpoint: Ajout de 4 nouveaux templates de rappels
## Modifications effectuées : ### AdminEmailTemplates.tsx Ajout de 4 nouveaux types de templates dans la liste : - "Rappel 3" (value: rappel3) - "Rappel 4" (value: rappel4) - "Rappel 5" (value: rappel5) - "Rappel 6" (value: rappel6) ### AdminRappels.tsx Ajout des mêmes templates dans TEMPLATE_TYPES avec des délais par défaut : - Rappel 3 : 14 jours avant - Rappel 4 : 21 jours avant - Rappel 5 : 30 jours avant - Rappel 6 : 60 jours avant ### server/db.ts (initializeDefaultEmailTemplates) Ajout de 4 nouveaux templates par défaut basés sur le contenu du "Rappel 1" : - Même structure HTML - Même message de base - Prêts à être personnalisés ## Note importante Ces nouveaux templates ne seront créés que lors de l'initialisation des templates par défaut (bouton "Initialiser les templates par défaut" dans Configuration > Templates d'emails). Si vous avez déjà initialisé les templates, vous devrez créer manuellement ces 4 nouveaux templates ou réinitialiser la base de données.
This commit is contained in:
@@ -250,6 +250,10 @@ export default function AdminEmailTemplates() {
|
||||
{ value: "teaser", label: "Email teaser" },
|
||||
{ value: "rappel", label: "Rappel 1" },
|
||||
{ value: "rappelJ1", label: "Rappel 2" },
|
||||
{ value: "rappel3", label: "Rappel 3" },
|
||||
{ value: "rappel4", label: "Rappel 4" },
|
||||
{ value: "rappel5", label: "Rappel 5" },
|
||||
{ value: "rappel6", label: "Rappel 6" },
|
||||
{ value: "reset_password", label: "Réinitialisation de mot de passe" },
|
||||
];
|
||||
|
||||
|
||||
@@ -29,6 +29,10 @@ import { toast } from "sonner";
|
||||
const TEMPLATE_TYPES = [
|
||||
{ value: "rappel", label: "Rappel 1", joursAvant: 7 },
|
||||
{ value: "rappelJ1", label: "Rappel 2", joursAvant: 1 },
|
||||
{ value: "rappel3", label: "Rappel 3", joursAvant: 14 },
|
||||
{ value: "rappel4", label: "Rappel 4", joursAvant: 21 },
|
||||
{ value: "rappel5", label: "Rappel 5", joursAvant: 30 },
|
||||
{ value: "rappel6", label: "Rappel 6", joursAvant: 60 },
|
||||
];
|
||||
|
||||
export default function AdminRappels() {
|
||||
|
||||
108
server/db.ts
108
server/db.ts
@@ -700,6 +700,114 @@ export async function initializeDefaultEmailTemplates() {
|
||||
footerText: "Cet email a été envoyé automatiquement par le système de gestion des formations Itinova. Pour toute question, veuillez contacter le service RH.",
|
||||
active: true,
|
||||
},
|
||||
{
|
||||
type: "rappel3",
|
||||
name: "Rappel 3",
|
||||
logoUrl: null,
|
||||
primaryColor: "#2563eb",
|
||||
headerBgColor: "#2563eb",
|
||||
headerTextColor: "#ffffff",
|
||||
headerTitle: "Formation Manager Itinova",
|
||||
bodyContent: `<h2>Rappel : Votre formation commence bientôt !</h2>
|
||||
<p>Bonjour {{prenomApprenant}} {{nomApprenant}},</p>
|
||||
|
||||
<p>Nous vous rappelons que votre formation <strong>{{nomFormation}}</strong> commence dans une semaine.</p>
|
||||
|
||||
<div class="info-box">
|
||||
<p><strong>Séquence :</strong> {{nomSequence}}</p>
|
||||
<h4>Dates :</h4>
|
||||
{{datesHTML}}
|
||||
<p><strong>Lieu :</strong> {{lieu}}</p>
|
||||
<p><strong>Formateur :</strong> {{formateur}}</p>
|
||||
</div>
|
||||
|
||||
<p>N'oubliez pas d'apporter le matériel nécessaire et de vous présenter à l'heure indiquée.</p>
|
||||
|
||||
<p>À très bientôt !</p>`,
|
||||
footerText: "Cet email a été envoyé automatiquement par le système de gestion des formations Itinova. Pour toute question, veuillez contacter le service RH.",
|
||||
active: true,
|
||||
},
|
||||
{
|
||||
type: "rappel4",
|
||||
name: "Rappel 4",
|
||||
logoUrl: null,
|
||||
primaryColor: "#2563eb",
|
||||
headerBgColor: "#2563eb",
|
||||
headerTextColor: "#ffffff",
|
||||
headerTitle: "Formation Manager Itinova",
|
||||
bodyContent: `<h2>Rappel : Votre formation commence bientôt !</h2>
|
||||
<p>Bonjour {{prenomApprenant}} {{nomApprenant}},</p>
|
||||
|
||||
<p>Nous vous rappelons que votre formation <strong>{{nomFormation}}</strong> commence dans une semaine.</p>
|
||||
|
||||
<div class="info-box">
|
||||
<p><strong>Séquence :</strong> {{nomSequence}}</p>
|
||||
<h4>Dates :</h4>
|
||||
{{datesHTML}}
|
||||
<p><strong>Lieu :</strong> {{lieu}}</p>
|
||||
<p><strong>Formateur :</strong> {{formateur}}</p>
|
||||
</div>
|
||||
|
||||
<p>N'oubliez pas d'apporter le matériel nécessaire et de vous présenter à l'heure indiquée.</p>
|
||||
|
||||
<p>À très bientôt !</p>`,
|
||||
footerText: "Cet email a été envoyé automatiquement par le système de gestion des formations Itinova. Pour toute question, veuillez contacter le service RH.",
|
||||
active: true,
|
||||
},
|
||||
{
|
||||
type: "rappel5",
|
||||
name: "Rappel 5",
|
||||
logoUrl: null,
|
||||
primaryColor: "#2563eb",
|
||||
headerBgColor: "#2563eb",
|
||||
headerTextColor: "#ffffff",
|
||||
headerTitle: "Formation Manager Itinova",
|
||||
bodyContent: `<h2>Rappel : Votre formation commence bientôt !</h2>
|
||||
<p>Bonjour {{prenomApprenant}} {{nomApprenant}},</p>
|
||||
|
||||
<p>Nous vous rappelons que votre formation <strong>{{nomFormation}}</strong> commence dans une semaine.</p>
|
||||
|
||||
<div class="info-box">
|
||||
<p><strong>Séquence :</strong> {{nomSequence}}</p>
|
||||
<h4>Dates :</h4>
|
||||
{{datesHTML}}
|
||||
<p><strong>Lieu :</strong> {{lieu}}</p>
|
||||
<p><strong>Formateur :</strong> {{formateur}}</p>
|
||||
</div>
|
||||
|
||||
<p>N'oubliez pas d'apporter le matériel nécessaire et de vous présenter à l'heure indiquée.</p>
|
||||
|
||||
<p>À très bientôt !</p>`,
|
||||
footerText: "Cet email a été envoyé automatiquement par le système de gestion des formations Itinova. Pour toute question, veuillez contacter le service RH.",
|
||||
active: true,
|
||||
},
|
||||
{
|
||||
type: "rappel6",
|
||||
name: "Rappel 6",
|
||||
logoUrl: null,
|
||||
primaryColor: "#2563eb",
|
||||
headerBgColor: "#2563eb",
|
||||
headerTextColor: "#ffffff",
|
||||
headerTitle: "Formation Manager Itinova",
|
||||
bodyContent: `<h2>Rappel : Votre formation commence bientôt !</h2>
|
||||
<p>Bonjour {{prenomApprenant}} {{nomApprenant}},</p>
|
||||
|
||||
<p>Nous vous rappelons que votre formation <strong>{{nomFormation}}</strong> commence dans une semaine.</p>
|
||||
|
||||
<div class="info-box">
|
||||
<p><strong>Séquence :</strong> {{nomSequence}}</p>
|
||||
<h4>Dates :</h4>
|
||||
{{datesHTML}}
|
||||
<p><strong>Lieu :</strong> {{lieu}}</p>
|
||||
<p><strong>Formateur :</strong> {{formateur}}</p>
|
||||
</div>
|
||||
|
||||
<p>N'oubliez pas d'apporter le matériel nécessaire et de vous présenter à l'heure indiquée.</p>
|
||||
|
||||
<p>À très bientôt !</p>`,
|
||||
footerText: "Cet email a été envoyé automatiquement par le système de gestion des formations Itinova. Pour toute question, veuillez contacter le service RH.",
|
||||
active: true,
|
||||
},
|
||||
{
|
||||
type: "reset_password",
|
||||
name: "Réinitialisation de mot de passe",
|
||||
|
||||
5
todo.md
5
todo.md
@@ -507,3 +507,8 @@
|
||||
## Renommage du label dans la gestion des rappels
|
||||
- [x] Renommer "Type de rappel" en "Template d'email utilisé" dans les dialogues de création/modification
|
||||
- [x] Renommer "Type" en "Template" dans le header du tableau
|
||||
|
||||
## Ajout de 4 nouveaux templates de rappels
|
||||
- [x] Ajouter "Rappel 3", "Rappel 4", "Rappel 5", "Rappel 6" dans AdminEmailTemplates.tsx
|
||||
- [x] Ajouter les mêmes templates dans AdminRappels.tsx avec délais (14, 21, 30, 60 jours)
|
||||
- [x] Modifier initializeDefaultEmailTemplates dans db.ts pour créer ces templates basés sur Rappel 1
|
||||
|
||||
Reference in New Issue
Block a user