feat: add new fields in pre-registration and sync with adherent and dotations

This commit is contained in:
2026-07-05 12:47:46 +02:00
parent 6dd45deb8c
commit 5ee9be467b
7 changed files with 159 additions and 4 deletions
@@ -7,7 +7,9 @@ import com.astalange.core.repository.PreInscriptionRepository;
import com.astalange.core.repository.TokenPreInscriptionRepository;
import com.astalange.core.repository.SaisonRepository;
import com.astalange.core.repository.CategorieRepository;
import com.astalange.core.repository.EquipementRepository;
import com.astalange.core.entity.Categorie;
import com.astalange.core.entity.Equipement;
import com.astalange.core.service.CaptchaValidationService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
@@ -20,6 +22,8 @@ import java.time.LocalDate;
import java.util.UUID;
import java.util.List;
import java.math.BigDecimal;
import java.util.Set;
import java.util.TreeSet;
@Controller
@RequestMapping("/inscription-public")
@@ -30,17 +34,20 @@ public class PublicInscriptionController {
private final PreInscriptionRepository preInscriptionRepository;
private final SaisonRepository saisonRepository;
private final CategorieRepository categorieRepository;
private final EquipementRepository equipementRepository;
public PublicInscriptionController(CaptchaValidationService captchaValidationService,
TokenPreInscriptionRepository tokenRepository,
PreInscriptionRepository preInscriptionRepository,
SaisonRepository saisonRepository,
CategorieRepository categorieRepository) {
CategorieRepository categorieRepository,
EquipementRepository equipementRepository) {
this.captchaValidationService = captchaValidationService;
this.tokenRepository = tokenRepository;
this.preInscriptionRepository = preInscriptionRepository;
this.saisonRepository = saisonRepository;
this.categorieRepository = categorieRepository;
this.equipementRepository = equipementRepository;
}
@Value("${captcha.sitekey:1x00000000000000000000AA}")
@@ -97,6 +104,34 @@ public class PublicInscriptionController {
model.addAttribute("preInscription", new PreInscription());
model.addAttribute("tokenUuid", tokenUuid);
// Fetch tailles and pointures
List<Equipement> equipements = equipementRepository.findAll();
Set<String> tailles = new TreeSet<>();
Set<String> pointures = new TreeSet<>();
for (Equipement eq : equipements) {
if (activeSaison.equals(eq.getSaison()) && eq.getTaillesDisponibles() != null && !eq.getTaillesDisponibles().trim().isEmpty()) {
String[] parts = eq.getTaillesDisponibles().split(",");
for (String p : parts) {
String val = p.trim();
if (!val.isEmpty()) {
try {
int num = Integer.parseInt(val);
if (num >= 25 && num <= 50) {
pointures.add(val);
} else {
tailles.add(val);
}
} catch (NumberFormatException e) {
tailles.add(val);
}
}
}
}
}
model.addAttribute("taillesDisponibles", tailles);
model.addAttribute("pointuresDisponibles", pointures);
return "public/formulaire";
}