Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e8baeab0e0 | |||
| d0fde2f2e8 |
@@ -35,6 +35,9 @@ public class Adherent {
|
|||||||
@Column(nullable = false, length = 100)
|
@Column(nullable = false, length = 100)
|
||||||
private String email;
|
private String email;
|
||||||
|
|
||||||
|
@Column(length = 20)
|
||||||
|
private String telephone;
|
||||||
|
|
||||||
@Column(name = "representant_legal", length = 150)
|
@Column(name = "representant_legal", length = 150)
|
||||||
private String representantLegal;
|
private String representantLegal;
|
||||||
|
|
||||||
@@ -78,6 +81,9 @@ public class Adherent {
|
|||||||
public String getEmail() { return email; }
|
public String getEmail() { return email; }
|
||||||
public void setEmail(String email) { this.email = email; }
|
public void setEmail(String email) { this.email = email; }
|
||||||
|
|
||||||
|
public String getTelephone() { return telephone; }
|
||||||
|
public void setTelephone(String telephone) { this.telephone = telephone; }
|
||||||
|
|
||||||
public String getRepresentantLegal() { return representantLegal; }
|
public String getRepresentantLegal() { return representantLegal; }
|
||||||
public void setRepresentantLegal(String representantLegal) { this.representantLegal = representantLegal; }
|
public void setRepresentantLegal(String representantLegal) { this.representantLegal = representantLegal; }
|
||||||
|
|
||||||
|
|||||||
@@ -14,6 +14,9 @@ public class Equipement {
|
|||||||
@Column(nullable = false, length = 100)
|
@Column(nullable = false, length = 100)
|
||||||
private String nom;
|
private String nom;
|
||||||
|
|
||||||
|
@Column(length = 100)
|
||||||
|
private String reference;
|
||||||
|
|
||||||
@Column(columnDefinition = "TEXT")
|
@Column(columnDefinition = "TEXT")
|
||||||
private String description;
|
private String description;
|
||||||
|
|
||||||
@@ -30,6 +33,9 @@ public class Equipement {
|
|||||||
public String getNom() { return nom; }
|
public String getNom() { return nom; }
|
||||||
public void setNom(String nom) { this.nom = nom; }
|
public void setNom(String nom) { this.nom = nom; }
|
||||||
|
|
||||||
|
public String getReference() { return reference; }
|
||||||
|
public void setReference(String reference) { this.reference = reference; }
|
||||||
|
|
||||||
public String getDescription() { return description; }
|
public String getDescription() { return description; }
|
||||||
public void setDescription(String description) { this.description = description; }
|
public void setDescription(String description) { this.description = description; }
|
||||||
|
|
||||||
|
|||||||
@@ -33,6 +33,9 @@ public class PreInscription {
|
|||||||
@Column(nullable = false, length = 150)
|
@Column(nullable = false, length = 150)
|
||||||
private String email;
|
private String email;
|
||||||
|
|
||||||
|
@Column(length = 20)
|
||||||
|
private String telephone;
|
||||||
|
|
||||||
@Column(name = "representant_legal", length = 150)
|
@Column(name = "representant_legal", length = 150)
|
||||||
private String representantLegal;
|
private String representantLegal;
|
||||||
|
|
||||||
@@ -74,6 +77,9 @@ public class PreInscription {
|
|||||||
public String getEmail() { return email; }
|
public String getEmail() { return email; }
|
||||||
public void setEmail(String email) { this.email = email; }
|
public void setEmail(String email) { this.email = email; }
|
||||||
|
|
||||||
|
public String getTelephone() { return telephone; }
|
||||||
|
public void setTelephone(String telephone) { this.telephone = telephone; }
|
||||||
|
|
||||||
public String getRepresentantLegal() { return representantLegal; }
|
public String getRepresentantLegal() { return representantLegal; }
|
||||||
public void setRepresentantLegal(String representantLegal) { this.representantLegal = representantLegal; }
|
public void setRepresentantLegal(String representantLegal) { this.representantLegal = representantLegal; }
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ public class DotationService {
|
|||||||
sb.append('\ufeff');
|
sb.append('\ufeff');
|
||||||
|
|
||||||
// Header
|
// Header
|
||||||
sb.append("Catégorie;Nom;Prénom;Poste;Sexe;Équipement;Taille;Flocage;Numéro\n");
|
sb.append("Catégorie;Nom;Prénom;Poste;Sexe;Équipement;Référence;Taille;Flocage;Numéro\n");
|
||||||
|
|
||||||
for (Dotation d : dotations) {
|
for (Dotation d : dotations) {
|
||||||
String categorie = d.getLicence().getCategorie() != null ? d.getLicence().getCategorie().getNom() : "";
|
String categorie = d.getLicence().getCategorie() != null ? d.getLicence().getCategorie().getNom() : "";
|
||||||
@@ -33,6 +33,7 @@ public class DotationService {
|
|||||||
String poste = d.getLicence().getAdherent().getTypeMaillot() != null ? d.getLicence().getAdherent().getTypeMaillot() : "";
|
String poste = d.getLicence().getAdherent().getTypeMaillot() != null ? d.getLicence().getAdherent().getTypeMaillot() : "";
|
||||||
String sexe = d.getLicence().getAdherent().getSexe() != null ? d.getLicence().getAdherent().getSexe() : "";
|
String sexe = d.getLicence().getAdherent().getSexe() != null ? d.getLicence().getAdherent().getSexe() : "";
|
||||||
String equipement = d.getEquipement() != null ? d.getEquipement().getNom() : "";
|
String equipement = d.getEquipement() != null ? d.getEquipement().getNom() : "";
|
||||||
|
String reference = d.getEquipement() != null && d.getEquipement().getReference() != null ? d.getEquipement().getReference() : "";
|
||||||
String taille = d.getTaille() != null ? d.getTaille() : "";
|
String taille = d.getTaille() != null ? d.getTaille() : "";
|
||||||
String flocage = d.getFlocage() != null ? d.getFlocage() : "";
|
String flocage = d.getFlocage() != null ? d.getFlocage() : "";
|
||||||
String numero = d.getNumero() != null ? d.getNumero() : "";
|
String numero = d.getNumero() != null ? d.getNumero() : "";
|
||||||
@@ -43,6 +44,7 @@ public class DotationService {
|
|||||||
.append(escapeCsv(poste)).append(";")
|
.append(escapeCsv(poste)).append(";")
|
||||||
.append(escapeCsv(sexe)).append(";")
|
.append(escapeCsv(sexe)).append(";")
|
||||||
.append(escapeCsv(equipement)).append(";")
|
.append(escapeCsv(equipement)).append(";")
|
||||||
|
.append(escapeCsv(reference)).append(";")
|
||||||
.append(escapeCsv(taille)).append(";")
|
.append(escapeCsv(taille)).append(";")
|
||||||
.append(escapeCsv(flocage)).append(";")
|
.append(escapeCsv(flocage)).append(";")
|
||||||
.append(escapeCsv(numero)).append("\n");
|
.append(escapeCsv(numero)).append("\n");
|
||||||
@@ -57,7 +59,7 @@ public class DotationService {
|
|||||||
sb.append('\ufeff');
|
sb.append('\ufeff');
|
||||||
|
|
||||||
// Header
|
// Header
|
||||||
sb.append("Saison;Catégorie;Nom;Prénom;Poste;Sexe;Équipement;Taille;Flocage;Numéro;Fourni\n");
|
sb.append("Saison;Catégorie;Nom;Prénom;Poste;Sexe;Équipement;Référence;Taille;Flocage;Numéro;Fourni\n");
|
||||||
|
|
||||||
for (Dotation d : dotations) {
|
for (Dotation d : dotations) {
|
||||||
String saison = d.getLicence().getSaison() != null ? d.getLicence().getSaison().getNom() : "";
|
String saison = d.getLicence().getSaison() != null ? d.getLicence().getSaison().getNom() : "";
|
||||||
@@ -67,6 +69,7 @@ public class DotationService {
|
|||||||
String poste = d.getLicence().getAdherent().getTypeMaillot() != null ? d.getLicence().getAdherent().getTypeMaillot() : "";
|
String poste = d.getLicence().getAdherent().getTypeMaillot() != null ? d.getLicence().getAdherent().getTypeMaillot() : "";
|
||||||
String sexe = d.getLicence().getAdherent().getSexe() != null ? d.getLicence().getAdherent().getSexe() : "";
|
String sexe = d.getLicence().getAdherent().getSexe() != null ? d.getLicence().getAdherent().getSexe() : "";
|
||||||
String equipement = d.getEquipement() != null ? d.getEquipement().getNom() : "";
|
String equipement = d.getEquipement() != null ? d.getEquipement().getNom() : "";
|
||||||
|
String reference = d.getEquipement() != null && d.getEquipement().getReference() != null ? d.getEquipement().getReference() : "";
|
||||||
String taille = d.getTaille() != null ? d.getTaille() : "";
|
String taille = d.getTaille() != null ? d.getTaille() : "";
|
||||||
String flocage = d.getFlocage() != null ? d.getFlocage() : "";
|
String flocage = d.getFlocage() != null ? d.getFlocage() : "";
|
||||||
String numero = d.getNumero() != null ? d.getNumero() : "";
|
String numero = d.getNumero() != null ? d.getNumero() : "";
|
||||||
@@ -79,6 +82,7 @@ public class DotationService {
|
|||||||
.append(escapeCsv(poste)).append(";")
|
.append(escapeCsv(poste)).append(";")
|
||||||
.append(escapeCsv(sexe)).append(";")
|
.append(escapeCsv(sexe)).append(";")
|
||||||
.append(escapeCsv(equipement)).append(";")
|
.append(escapeCsv(equipement)).append(";")
|
||||||
|
.append(escapeCsv(reference)).append(";")
|
||||||
.append(escapeCsv(taille)).append(";")
|
.append(escapeCsv(taille)).append(";")
|
||||||
.append(escapeCsv(flocage)).append(";")
|
.append(escapeCsv(flocage)).append(";")
|
||||||
.append(escapeCsv(numero)).append(";")
|
.append(escapeCsv(numero)).append(";")
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ public class PreInscriptionService {
|
|||||||
adherent.setLieuNaissancePays(pre.getLieuNaissancePays());
|
adherent.setLieuNaissancePays(pre.getLieuNaissancePays());
|
||||||
adherent.setNationalite(pre.getNationalite());
|
adherent.setNationalite(pre.getNationalite());
|
||||||
adherent.setEmail(pre.getEmail());
|
adherent.setEmail(pre.getEmail());
|
||||||
|
adherent.setTelephone(pre.getTelephone());
|
||||||
adherent.setRepresentantLegal(pre.getRepresentantLegal());
|
adherent.setRepresentantLegal(pre.getRepresentantLegal());
|
||||||
// Par défaut
|
// Par défaut
|
||||||
adherent.setSexe("MASCULIN");
|
adherent.setSexe("MASCULIN");
|
||||||
|
|||||||
@@ -0,0 +1,2 @@
|
|||||||
|
ALTER TABLE adherent ADD COLUMN telephone VARCHAR(20);
|
||||||
|
ALTER TABLE pre_inscription ADD COLUMN telephone VARCHAR(20);
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
ALTER TABLE equipement ADD COLUMN reference VARCHAR(100);
|
||||||
@@ -117,6 +117,15 @@
|
|||||||
th:classappend="${#fields.hasErrors('email')} ? 'border-red-500' : ''">
|
th:classappend="${#fields.hasErrors('email')} ? 'border-red-500' : ''">
|
||||||
<p th:if="${#fields.hasErrors('email')}" th:errors="*{email}" class="mt-1 text-xs text-red-600"></p>
|
<p th:if="${#fields.hasErrors('email')}" th:errors="*{email}" class="mt-1 text-xs text-red-600"></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- Téléphone -->
|
||||||
|
<div>
|
||||||
|
<label for="telephone" class="block text-sm font-medium text-gray-700 mb-1">Téléphone</label>
|
||||||
|
<input type="tel" id="telephone" th:field="*{telephone}"
|
||||||
|
class="w-full border border-gray-300 rounded-lg px-4 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none transition-colors"
|
||||||
|
th:classappend="${#fields.hasErrors('telephone')} ? 'border-red-500' : ''">
|
||||||
|
<p th:if="${#fields.hasErrors('telephone')}" th:errors="*{telephone}" class="mt-1 text-xs text-red-600"></p>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
|
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
|
||||||
|
|||||||
@@ -20,10 +20,7 @@
|
|||||||
<!-- Header -->
|
<!-- Header -->
|
||||||
<header class="h-16 bg-white border-b border-gray-200 flex items-center justify-between px-6">
|
<header class="h-16 bg-white border-b border-gray-200 flex items-center justify-between px-6">
|
||||||
<h2 class="text-lg font-semibold text-gray-800">Tableau de bord</h2>
|
<h2 class="text-lg font-semibold text-gray-800">Tableau de bord</h2>
|
||||||
<a href="/admin/equipements/export-commande" class="bg-indigo-50 text-indigo-600 border border-indigo-200 px-4 py-2 rounded-lg text-sm font-medium hover:bg-indigo-100 transition-colors flex items-center">
|
|
||||||
<svg class="w-4 h-4 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 10v6m0 0l-3-3m3 3l3-3m2 8H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"></path></svg>
|
|
||||||
Export CSV Équipements
|
|
||||||
</a>
|
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<!-- Main section -->
|
<!-- Main section -->
|
||||||
|
|||||||
@@ -27,6 +27,11 @@
|
|||||||
<input type="text" th:field="*{nom}" required class="w-full border border-gray-300 rounded-lg px-4 py-2 text-sm focus:ring-2 focus:ring-blue-500 outline-none">
|
<input type="text" th:field="*{nom}" required class="w-full border border-gray-300 rounded-lg px-4 py-2 text-sm focus:ring-2 focus:ring-blue-500 outline-none">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<label class="block text-sm font-medium text-gray-700 mb-1">Référence</label>
|
||||||
|
<input type="text" th:field="*{reference}" class="w-full border border-gray-300 rounded-lg px-4 py-2 text-sm focus:ring-2 focus:ring-blue-500 outline-none">
|
||||||
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<label class="block text-sm font-medium text-gray-700 mb-1">Description (ex: Maillot domicile officiel)</label>
|
<label class="block text-sm font-medium text-gray-700 mb-1">Description (ex: Maillot domicile officiel)</label>
|
||||||
<textarea th:field="*{description}" rows="3" class="w-full border border-gray-300 rounded-lg px-4 py-2 text-sm focus:ring-2 focus:ring-blue-500 outline-none"></textarea>
|
<textarea th:field="*{description}" rows="3" class="w-full border border-gray-300 rounded-lg px-4 py-2 text-sm focus:ring-2 focus:ring-blue-500 outline-none"></textarea>
|
||||||
|
|||||||
@@ -60,6 +60,7 @@
|
|||||||
<th class="py-3 px-4 font-medium text-left">Poste / Sexe</th>
|
<th class="py-3 px-4 font-medium text-left">Poste / Sexe</th>
|
||||||
<th class="py-3 px-4 font-medium text-left">Catégorie</th>
|
<th class="py-3 px-4 font-medium text-left">Catégorie</th>
|
||||||
<th class="py-3 px-4 font-medium text-left">Équipement</th>
|
<th class="py-3 px-4 font-medium text-left">Équipement</th>
|
||||||
|
<th class="py-3 px-4 font-medium text-left">Référence</th>
|
||||||
<th class="py-3 px-4 font-medium text-left">Taille / Floc.</th>
|
<th class="py-3 px-4 font-medium text-left">Taille / Floc.</th>
|
||||||
<th class="py-3 px-4 font-medium text-center">Fourni</th>
|
<th class="py-3 px-4 font-medium text-center">Fourni</th>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -78,6 +79,7 @@
|
|||||||
</td>
|
</td>
|
||||||
<td class="py-3 px-4 text-gray-600" th:text="${dotation.licence.categorie != null ? dotation.licence.categorie.nom : '-'}">Catégorie</td>
|
<td class="py-3 px-4 text-gray-600" th:text="${dotation.licence.categorie != null ? dotation.licence.categorie.nom : '-'}">Catégorie</td>
|
||||||
<td class="py-3 px-4 text-gray-900 font-medium" th:text="${dotation.equipement != null ? dotation.equipement.nom : '-'}">Maillot</td>
|
<td class="py-3 px-4 text-gray-900 font-medium" th:text="${dotation.equipement != null ? dotation.equipement.nom : '-'}">Maillot</td>
|
||||||
|
<td class="py-3 px-4 text-gray-600 font-mono text-xs" th:text="${dotation.equipement != null && dotation.equipement.reference != null ? dotation.equipement.reference : '-'}">REF-01</td>
|
||||||
<td class="py-3 px-4 text-gray-600">
|
<td class="py-3 px-4 text-gray-600">
|
||||||
<div th:text="'T: ' + (${dotation.taille != null && !dotation.taille.isEmpty() ? dotation.taille : '-'})">Taille</div>
|
<div th:text="'T: ' + (${dotation.taille != null && !dotation.taille.isEmpty() ? dotation.taille : '-'})">Taille</div>
|
||||||
<div th:if="${dotation.flocage != null && !dotation.flocage.isEmpty()}" th:text="'F: ' + ${dotation.flocage}">Flocage</div>
|
<div th:if="${dotation.flocage != null && !dotation.flocage.isEmpty()}" th:text="'F: ' + ${dotation.flocage}">Flocage</div>
|
||||||
|
|||||||
@@ -56,9 +56,15 @@
|
|||||||
<input type="text" id="representantLegal" th:field="*{representantLegal}" placeholder="Nom et Prénom du parent" class="w-full border border-gray-300 rounded-lg px-4 py-2 text-sm focus:ring-2 focus:ring-blue-500 outline-none">
|
<input type="text" id="representantLegal" th:field="*{representantLegal}" placeholder="Nom et Prénom du parent" class="w-full border border-gray-300 rounded-lg px-4 py-2 text-sm focus:ring-2 focus:ring-blue-500 outline-none">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
|
||||||
<label class="block text-sm font-medium text-gray-700 mb-1">Email <span class="text-red-500">*</span></label>
|
<div>
|
||||||
<input type="email" th:field="*{email}" required class="w-full border border-gray-300 rounded-lg px-4 py-2 text-sm focus:ring-2 focus:ring-blue-500 outline-none">
|
<label class="block text-sm font-medium text-gray-700 mb-1">Email <span class="text-red-500">*</span></label>
|
||||||
|
<input type="email" th:field="*{email}" required class="w-full border border-gray-300 rounded-lg px-4 py-2 text-sm focus:ring-2 focus:ring-blue-500 outline-none">
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<label class="block text-sm font-medium text-gray-700 mb-1">Téléphone</label>
|
||||||
|
<input type="tel" th:field="*{telephone}" class="w-full border border-gray-300 rounded-lg px-4 py-2 text-sm focus:ring-2 focus:ring-blue-500 outline-none">
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex items-start pt-2">
|
<div class="flex items-start pt-2">
|
||||||
|
|||||||
Reference in New Issue
Block a user