feat: ajouter l'envoi par e-mail du planning hebdomadaire global aux éducateurs
AS Talange CI/CD Pipeline / Build & Run Unit Tests (push) Successful in 5m3s
AS Talange CI/CD Pipeline / Deploy to Test Environment (push) Successful in 7m7s

This commit is contained in:
2026-08-09 00:28:16 +02:00
parent 1e2bc23603
commit cb281aa3e0
5 changed files with 408 additions and 4 deletions
@@ -7,6 +7,7 @@ import com.astalange.core.repository.EducateurRepository;
import com.astalange.core.repository.EquipeRepository;
import com.astalange.core.repository.SaisonRepository;
import com.astalange.core.repository.TerrainRepository;
import com.astalange.core.service.PlanningEmailService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
@@ -25,19 +26,22 @@ public class PlanningController {
private final SaisonRepository saisonRepository;
private final EquipeRepository equipeRepository;
private final EducateurRepository educateurRepository;
private final PlanningEmailService planningEmailService;
public PlanningController(CreneauEntrainementRepository creneauRepository,
TerrainRepository terrainRepository,
CategorieRepository categorieRepository,
SaisonRepository saisonRepository,
EquipeRepository equipeRepository,
EducateurRepository educateurRepository) {
EducateurRepository educateurRepository,
PlanningEmailService planningEmailService) {
this.creneauRepository = creneauRepository;
this.terrainRepository = terrainRepository;
this.categorieRepository = categorieRepository;
this.saisonRepository = saisonRepository;
this.equipeRepository = equipeRepository;
this.educateurRepository = educateurRepository;
this.planningEmailService = planningEmailService;
}
@GetMapping
@@ -202,4 +206,16 @@ public class PlanningController {
redirectAttributes.addFlashAttribute("success", "Créneau d'entraînement supprimé avec succès.");
return "redirect:/planning?jour=" + jour.name();
}
@PostMapping("/envoyer-educateurs")
public String envoyerPlanningEducateurs(@RequestParam(required = false) JourSemaine jour, RedirectAttributes redirectAttributes) {
int count = planningEmailService.sendPlanningGlobalToEducateurs();
if (count > 0) {
redirectAttributes.addFlashAttribute("success", "Le planning global de la semaine a été envoyé par e-mail à " + count + " éducateur(s).");
} else {
redirectAttributes.addFlashAttribute("error", "Aucun e-mail n'a pu être envoyé. Vérifiez qu'une saison est active et que des éducateurs possèdent un e-mail valide.");
}
String returnJour = (jour != null) ? jour.name() : "LUNDI";
return "redirect:/planning?jour=" + returnJour;
}
}