diff --git a/src/main/java/fr/atlantique/imt/inf211/jobmngt/controller/JobOfferController.java b/src/main/java/fr/atlantique/imt/inf211/jobmngt/controller/JobOfferController.java index 1010ee4b5bc5e85c4d258b21c37d5a97bc56c343..53fc3eb2c478dccd242a62a425e4e01f359b8fe1 100644 --- a/src/main/java/fr/atlantique/imt/inf211/jobmngt/controller/JobOfferController.java +++ b/src/main/java/fr/atlantique/imt/inf211/jobmngt/controller/JobOfferController.java @@ -1,11 +1,12 @@ package fr.atlantique.imt.inf211.jobmngt.controller; -import java.util.Date; import java.util.List; import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; @@ -17,7 +18,9 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.servlet.mvc.support.RedirectAttributes; +import fr.atlantique.imt.inf211.jobmngt.entity.Company; import fr.atlantique.imt.inf211.jobmngt.entity.JobOffer; +import fr.atlantique.imt.inf211.jobmngt.entity.QualificationLevel; import fr.atlantique.imt.inf211.jobmngt.entity.Sector; import fr.atlantique.imt.inf211.jobmngt.service.CompanyService; import fr.atlantique.imt.inf211.jobmngt.service.JobOfferService; @@ -28,12 +31,13 @@ import fr.atlantique.imt.inf211.jobmngt.service.SectorService; @RequestMapping("/jobs") public class JobOfferController { + private static final Logger log = LoggerFactory.getLogger(JobOfferController.class); // ✅ Ajout du logger + private final JobOfferService jobOfferService; private final CompanyService companyService; private final QualificationLevelService qualificationLevelService; private final SectorService sectorService; - @Autowired public JobOfferController(JobOfferService jobOfferService, CompanyService companyService, @@ -49,8 +53,8 @@ public class JobOfferController { @GetMapping public String listJobOffers(Model model) { List<JobOffer> jobOffers = jobOfferService.getAllJobOffers(); - System.out.println("🔎 Nombre d'offres récupérées: " + jobOffers.size()); - + log.info("🔎 Nombre d'offres récupérées: {}", jobOffers.size()); + model.addAttribute("jobOffers", jobOffers); return "jobOffer/jobOfferList"; } @@ -68,74 +72,74 @@ public class JobOfferController { } } - // ✅ Affiche le formulaire de création avec sélection des secteurs + // ✅ Affiche le formulaire de création @GetMapping("/create") public String showCreateForm(Model model) { - JobOffer jobOffer = new JobOffer(); - jobOffer.setPublicationDate(new Date()); - - model.addAttribute("jobOffer", jobOffer); - model.addAttribute("companies", companyService.getAllCompanies()); - model.addAttribute("qualificationLevels", qualificationLevelService.listOfQualificationLevels()); - model.addAttribute("sectors", sectorService.listOfSectors()); - + List<QualificationLevel> levels = qualificationLevelService.listOfQualificationLevels(); + List<Company> companies = companyService.getAllCompanies(); + List<Sector> sectors = sectorService.listOfSectors(); + + // Ajout des logs pour voir si les listes sont vides + log.info("Loaded Qualification Levels: {}", levels.size()); + log.info("Loaded Companies: {}", companies.size()); + log.info("Loaded Sectors: {}", sectors.size()); + + model.addAttribute("jobOffer", new JobOffer()); + model.addAttribute("qualificationLevels", levels); + model.addAttribute("companies", companies); + model.addAttribute("sectors", sectors); return "jobOffer/jobOfferForm"; } // ✅ Enregistre une offre avec gestion des secteurs et des erreurs - -@PostMapping("/save") -public String saveJobOffer(@ModelAttribute JobOffer jobOffer, - @RequestParam(value = "sectorIds", required = false) List<Integer> sectorIds, - RedirectAttributes redirectAttributes) { - try { - System.out.println("🔹 Tentative d'enregistrement: " + jobOffer); - - // Associer les secteurs sélectionnés à l'offre d'emploi - if (sectorIds != null && !sectorIds.isEmpty()) { - Set<Sector> selectedSectors = sectorIds.stream() - .map(sectorService::findById) - .filter(Optional::isPresent) - .map(Optional::get) - .collect(Collectors.toSet()); // Convertir la liste en Set - - jobOffer.setSectors(selectedSectors); // Affectation corrigée - } - - jobOfferService.saveJobOffer(jobOffer); - System.out.println("✅ Enregistrement réussi !"); - redirectAttributes.addFlashAttribute("successMessage", "✅ Offre d'emploi créée avec succès !"); - return "redirect:/jobs"; - } catch (Exception e) { - System.err.println("❌ Erreur lors de l'enregistrement: " + e.getMessage()); - redirectAttributes.addFlashAttribute("errorMessage", "❌ Erreur lors de la création de l'offre !"); - return "redirect:/jobs/create"; - } -} - - -// ✅ Supprime une offre d'emploi -@GetMapping("/delete/{id}") -public String deleteJobOffer(@PathVariable("id") int id, RedirectAttributes redirectAttributes) { - Optional<JobOffer> jobOfferOpt = jobOfferService.findById(id); - - if (jobOfferOpt.isPresent()) { + @PostMapping("/save") + public String saveJobOffer(@ModelAttribute JobOffer jobOffer, + @RequestParam(value = "sectorIds", required = false) List<Integer> sectorIds, + RedirectAttributes redirectAttributes) { try { - jobOfferService.deleteJobOffer(id); - redirectAttributes.addFlashAttribute("successMessage", "✅ Offre d'emploi supprimée avec succès !"); + log.info("🔹 Tentative d'enregistrement: {}", jobOffer); + + // Associer les secteurs sélectionnés à l'offre d'emploi + if (sectorIds != null && !sectorIds.isEmpty()) { + Set<Sector> selectedSectors = sectorIds.stream() + .map(sectorService::findById) + .filter(Optional::isPresent) + .map(Optional::get) + .collect(Collectors.toSet()); + + jobOffer.setSectors(selectedSectors); + } + + jobOfferService.saveJobOffer(jobOffer); + log.info("✅ Enregistrement réussi !"); + redirectAttributes.addFlashAttribute("successMessage", "✅ Offre d'emploi créée avec succès !"); + return "redirect:/jobs"; } catch (Exception e) { - redirectAttributes.addFlashAttribute("errorMessage", "❌ Erreur lors de la suppression de l'offre !"); + log.error("❌ Erreur lors de l'enregistrement: {}", e.getMessage()); + redirectAttributes.addFlashAttribute("errorMessage", "❌ Erreur lors de la création de l'offre !"); + return "redirect:/jobs/create"; } - } else { - redirectAttributes.addFlashAttribute("errorMessage", "❌ L'offre d'emploi avec ID " + id + " n'existe pas !"); } - - return "redirect:/jobs"; -} - + // ✅ Supprime une offre d'emploi + @GetMapping("/delete/{id}") + public String deleteJobOffer(@PathVariable("id") int id, RedirectAttributes redirectAttributes) { + Optional<JobOffer> jobOfferOpt = jobOfferService.findById(id); + if (jobOfferOpt.isPresent()) { + try { + jobOfferService.deleteJobOffer(id); + redirectAttributes.addFlashAttribute("successMessage", "✅ Offre d'emploi supprimée avec succès !"); + } catch (Exception e) { + log.error("❌ Erreur lors de la suppression de l'offre: {}", e.getMessage()); + redirectAttributes.addFlashAttribute("errorMessage", "❌ Erreur lors de la suppression de l'offre !"); + } + } else { + redirectAttributes.addFlashAttribute("errorMessage", "❌ L'offre d'emploi avec ID " + id + " n'existe pas !"); + } + return "redirect:/jobs"; + } // ✅ Affiche le formulaire de modification @GetMapping("/{id}/edit") @@ -153,7 +157,3 @@ public String deleteJobOffer(@PathVariable("id") int id, RedirectAttributes redi } } } - - - - diff --git a/src/main/java/fr/atlantique/imt/inf211/jobmngt/entity/JobOffer.java b/src/main/java/fr/atlantique/imt/inf211/jobmngt/entity/JobOffer.java index 9fca25d69c2c2f225d73e3e3952b78a3b5b43804..e40553f1cff25a581971a66dcd3a54e5efc1ab04 100644 --- a/src/main/java/fr/atlantique/imt/inf211/jobmngt/entity/JobOffer.java +++ b/src/main/java/fr/atlantique/imt/inf211/jobmngt/entity/JobOffer.java @@ -8,6 +8,7 @@ import org.springframework.format.annotation.DateTimeFormat; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import jakarta.persistence.CascadeType; import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.FetchType; @@ -33,14 +34,14 @@ public class JobOffer implements java.io.Serializable { @SequenceGenerator(name = "JOBOFFER_ID_GENERATOR", sequenceName = "JOBOFFER_ID_SEQ", allocationSize = 1) @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "JOBOFFER_ID_GENERATOR") @Column(name="id", unique = true, nullable = false) - private int id; + private Integer id; // 🔹 Modifié de int à Integer @ManyToOne(fetch = FetchType.LAZY) - @JoinColumn(name = "compid", nullable = false) + @JoinColumn(name = "compid", nullable = true) // 🔹 nullable = true pour éviter les erreurs si null private Company company; @ManyToOne(fetch = FetchType.LAZY) - @JoinColumn(name = "qualiflevelid", nullable = false) + @JoinColumn(name = "qualiflevelid", nullable = true) // 🔹 nullable = true pour éviter les erreurs si null private QualificationLevel qualificationLevel; @Column(name="title", nullable = false, length = 50) @@ -50,30 +51,30 @@ public class JobOffer implements java.io.Serializable { private String taskDescription; @Temporal(TemporalType.DATE) -@DateTimeFormat(pattern = "yyyy-MM-dd") -@Column(name="publicationdate") -private Date publicationDate; + @DateTimeFormat(pattern = "yyyy-MM-dd") + @Column(name="publicationdate") + private Date publicationDate; - @ManyToMany(fetch = FetchType.LAZY) + @ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL) // 🔹 Ajout du cascade pour assurer la persistance @JoinTable(name="indexjoboffersector", schema="public", joinColumns = { @JoinColumn(name="jobofferid", nullable = false, updatable = false) }, inverseJoinColumns = { @JoinColumn(name="sectorid", nullable = false, updatable = false) }) @JsonIgnoreProperties({"applications", "jobOffers"}) // Empêche les boucles JSON infinies private Set<Sector> sectors = new HashSet<>(); - @OneToMany(fetch = FetchType.LAZY, mappedBy = "jobOffer") // Correction du mappedBy + @OneToMany(fetch = FetchType.LAZY, mappedBy = "jobOffer", cascade = CascadeType.ALL) // 🔹 Ajout du cascade private Set<OfferMessage> offerMessages = new HashSet<>(); public JobOffer() {} - public JobOffer(int id, Company company, QualificationLevel qualificationLevel, String title) { + public JobOffer(Integer id, Company company, QualificationLevel qualificationLevel, String title) { this.id = id; this.company = company; this.qualificationLevel = qualificationLevel; this.title = title; } - public JobOffer(int id, Company company, QualificationLevel qualificationLevel, String title, + public JobOffer(Integer id, Company company, QualificationLevel qualificationLevel, String title, String taskDescription, Date publicationDate, Set<Sector> sectors, Set<OfferMessage> offerMessages) { this.id = id; this.company = company; @@ -85,8 +86,8 @@ private Date publicationDate; this.offerMessages = offerMessages; } - public int getId() { return id; } - public void setId(int id) { this.id = id; } + public Integer getId() { return id; } + public void setId(Integer id) { this.id = id; } public Company getCompany() { return company; } public void setCompany(Company company) { this.company = company; } @@ -114,12 +115,16 @@ private Date publicationDate; + + // package fr.atlantique.imt.inf211.jobmngt.entity; // import java.util.Date; // import java.util.HashSet; // import java.util.Set; +// import org.springframework.format.annotation.DateTimeFormat; + // import com.fasterxml.jackson.annotation.JsonIgnoreProperties; // import jakarta.persistence.Column; @@ -164,8 +169,9 @@ private Date publicationDate; // private String taskDescription; // @Temporal(TemporalType.DATE) -// @Column(name="publicationdate") -// private Date publicationDate; +// @DateTimeFormat(pattern = "yyyy-MM-dd") +// @Column(name="publicationdate") +// private Date publicationDate; // @ManyToMany(fetch = FetchType.LAZY) // @JoinTable(name="indexjoboffersector", schema="public", @@ -224,3 +230,116 @@ private Date publicationDate; // } + + + +// // package fr.atlantique.imt.inf211.jobmngt.entity; + +// // import java.util.Date; +// // import java.util.HashSet; +// // import java.util.Set; + +// // import com.fasterxml.jackson.annotation.JsonIgnoreProperties; + +// // import jakarta.persistence.Column; +// // import jakarta.persistence.Entity; +// // import jakarta.persistence.FetchType; +// // import jakarta.persistence.GeneratedValue; +// // import jakarta.persistence.GenerationType; +// // import jakarta.persistence.Id; +// // import jakarta.persistence.JoinColumn; +// // import jakarta.persistence.JoinTable; +// // import jakarta.persistence.ManyToMany; +// // import jakarta.persistence.ManyToOne; +// // import jakarta.persistence.OneToMany; +// // import jakarta.persistence.SequenceGenerator; +// // import jakarta.persistence.Table; +// // import jakarta.persistence.Temporal; +// // import jakarta.persistence.TemporalType; + +// // @Entity +// // @Table(name="joboffer", schema="public") +// // @JsonIgnoreProperties({"offerMessages"}) // ✅ Évite la surcharge JSON circulaire +// // public class JobOffer implements java.io.Serializable { + +// // @Id +// // @SequenceGenerator(name = "JOBOFFER_ID_GENERATOR", sequenceName = "JOBOFFER_ID_SEQ", allocationSize = 1) +// // @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "JOBOFFER_ID_GENERATOR") +// // @Column(name="id", unique = true, nullable = false) +// // private int id; + +// // @ManyToOne(fetch = FetchType.LAZY) +// // @JoinColumn(name = "compid", nullable = false) +// // private Company company; + +// // @ManyToOne(fetch = FetchType.LAZY) +// // @JoinColumn(name = "qualiflevelid", nullable = false) +// // private QualificationLevel qualificationLevel; + +// // @Column(name="title", nullable = false, length = 50) +// // private String title; + +// // @Column(name="taskdescription") +// // private String taskDescription; + +// // @Temporal(TemporalType.DATE) +// // @Column(name="publicationdate") +// // private Date publicationDate; + +// // @ManyToMany(fetch = FetchType.LAZY) +// // @JoinTable(name="indexjoboffersector", schema="public", +// // joinColumns = { @JoinColumn(name="jobofferid", nullable = false, updatable = false) }, +// // inverseJoinColumns = { @JoinColumn(name="sectorid", nullable = false, updatable = false) }) +// // @JsonIgnoreProperties({"applications", "jobOffers"}) // Empêche les boucles JSON infinies +// // private Set<Sector> sectors = new HashSet<>(); + +// // @OneToMany(fetch = FetchType.LAZY, mappedBy = "jobOffer") // Correction du mappedBy +// // private Set<OfferMessage> offerMessages = new HashSet<>(); + +// // public JobOffer() {} + +// // public JobOffer(int id, Company company, QualificationLevel qualificationLevel, String title) { +// // this.id = id; +// // this.company = company; +// // this.qualificationLevel = qualificationLevel; +// // this.title = title; +// // } + +// // public JobOffer(int id, Company company, QualificationLevel qualificationLevel, String title, +// // String taskDescription, Date publicationDate, Set<Sector> sectors, Set<OfferMessage> offerMessages) { +// // this.id = id; +// // this.company = company; +// // this.qualificationLevel = qualificationLevel; +// // this.title = title; +// // this.taskDescription = taskDescription; +// // this.publicationDate = publicationDate; +// // this.sectors = sectors; +// // this.offerMessages = offerMessages; +// // } + +// // public int getId() { return id; } +// // public void setId(int id) { this.id = id; } + +// // public Company getCompany() { return company; } +// // public void setCompany(Company company) { this.company = company; } + +// // public QualificationLevel getQualificationLevel() { return qualificationLevel; } +// // public void setQualificationLevel(QualificationLevel qualificationLevel) { this.qualificationLevel = qualificationLevel; } + +// // public String getTitle() { return title; } +// // public void setTitle(String title) { this.title = title; } + +// // public String getTaskDescription() { return taskDescription; } +// // public void setTaskDescription(String taskDescription) { this.taskDescription = taskDescription; } + +// // public Date getPublicationDate() { return publicationDate; } +// // public void setPublicationDate(Date publicationDate) { this.publicationDate = publicationDate; } + +// // public Set<Sector> getSectors() { return sectors; } +// // public void setSectors(Set<Sector> sectors) { this.sectors = sectors; } + +// // public Set<OfferMessage> getOfferMessages() { return offerMessages; } +// // public void setOfferMessages(Set<OfferMessage> offerMessages) { this.offerMessages = offerMessages; } +// // } + + diff --git a/src/main/resources/templates/jobOffer/jobOfferForm.html b/src/main/resources/templates/jobOffer/jobOfferForm.html index 0558085fa23b76bcce22e83ebde189ef7c43a496..0ca49b5302a9d081cc88bbf048edc0db161e2a9e 100644 --- a/src/main/resources/templates/jobOffer/jobOfferForm.html +++ b/src/main/resources/templates/jobOffer/jobOfferForm.html @@ -28,18 +28,28 @@ <div class="mb-3"> <label class="form-label">Entreprise :</label> - <select class="form-select" th:field="*{company.id}" required> + <select class="form-select" th:field="*{company}"> <option value="">-- Sélectionner une entreprise --</option> - <option th:each="company : ${companies}" th:value="${company.id}" th:text="${company.denomination}"></option> + <option th:each="company : ${companies}" + th:value="${company.id}" + th:text="${company.denomination}" + th:selected="${company.id == jobOffer.company?.id}"></option> + </option> </select> + </div> <div class="mb-3"> <label class="form-label">Niveau de qualification :</label> - <select class="form-select" th:field="*{qualificationLevel.id}" required> + <select class="form-select" th:field="*{qualificationLevel}"> <option value="">Sélectionner un niveau de qualification</option> - <option th:each="level : ${qualificationLevels}" th:value="${level.id}" th:text="${level.label}"></option> + <option th:each="level : ${qualificationLevels}" + th:value="${level.id}" + th:text="${level.label}" + th:selected="${level.id == jobOffer.qualificationLevel?.id}"> + </option> </select> + </div> <div class="mb-3"> diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/JobmngtApplication.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/JobmngtApplication.class index 2b36ca8b345ac2dd44982ef1e6536e08114e7ef7..f0a90d1bbf5e1de067104184ac2327e4bc6ec7c1 100644 Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/JobmngtApplication.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/JobmngtApplication.class differ diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/config/WebConfig.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/config/WebConfig.class index 50d5c3e4b986652913b1a08586ee99d4b13ff9fb..52731e8e29e734dfac6fcc14f364098385bfd1a1 100644 Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/config/WebConfig.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/config/WebConfig.class differ diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/CompanyController.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/CompanyController.class index d1170384285d05a36a5981b3d1e94267dbdd2c68..f82f106ca446fb9c55739963ad76affd60c635f7 100644 Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/CompanyController.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/CompanyController.class differ diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/JobOfferController.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/JobOfferController.class index 9f41a81ba0a1182ffade403e17cb48fcb56b657d..bfe9fe60e37394bf72797cf237f323f6f87cfd9f 100644 Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/JobOfferController.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/JobOfferController.class differ diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/LoginController.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/LoginController.class index 4b6498c7530594a9ae6854bfdabd29b9635afd40..d9fb4b45fb7bed50b16ddb729369a2127c75833a 100644 Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/LoginController.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/LoginController.class differ diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/PagesController.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/PagesController.class index 0ef37c9b68e7a07cc1bb5892a079629c4eb40aa4..947d212e8ad107f1e14b34dc66b858003ed260ec 100644 Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/PagesController.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/PagesController.class differ diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/QualificationLevelController.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/QualificationLevelController.class index 98cf3b272d023db55d6abbd8ff8b653c15631e83..a192bc80992984f36a4c4d20b52f60a87282e06f 100644 Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/QualificationLevelController.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/QualificationLevelController.class differ diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/SectorController.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/SectorController.class index f49fea088c92f617ccf9219442953394520f1905..891e652c6835417fc6eb01c4fa8296edae1ee9ac 100644 Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/SectorController.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/SectorController.class differ diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/TestApplicationDaoController.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/TestApplicationDaoController.class index 55f4edd1d63c3a3fff908f8cdbd86d838c6098b3..ed3e253a93495fd012ddec42c8bee89ac98d2b53 100644 Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/TestApplicationDaoController.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/TestApplicationDaoController.class differ diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/TestCandidateDaoController.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/TestCandidateDaoController.class index 4ca7e48df762c43255ef536566476274db75a8fb..444a5a490ef89aa9628f35636121dd5d655c50b8 100644 Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/TestCandidateDaoController.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/TestCandidateDaoController.class differ diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/converter/CompanyConverter.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/converter/CompanyConverter.class index 63f6a7a42c4a8879294bfd611192931bdfdc3e42..0602d9553e6903813a9589831d9aeb7caba404e3 100644 Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/converter/CompanyConverter.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/converter/CompanyConverter.class differ diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/converter/QualificationLevelConverter.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/converter/QualificationLevelConverter.class index a7cad172986cd07edce9de3784f3e927efcbfb62..05e27f36faa70b259e1585fc12b039b53890aedb 100644 Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/converter/QualificationLevelConverter.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/converter/QualificationLevelConverter.class differ diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/AppUserDao.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/AppUserDao.class index 4dbc86467838cb1ed89cc2c06242f59e43de5aea..032e02035d15e3cd03cc5465cf6782a91152f9bc 100644 Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/AppUserDao.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/AppUserDao.class differ diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/ApplicationDao.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/ApplicationDao.class index 5316c2e21b992e548726b36413db759b471a7355..59dd1b34f782a818d37e64c4454adcf9a13137df 100644 Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/ApplicationDao.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/ApplicationDao.class differ diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/ApplicationMessageDao.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/ApplicationMessageDao.class index 56c4b4b35f7e8dff2a54a4aca76fc7ccd4a06708..34cddd48297530f563983d20ec2e73bb96bf0f3f 100644 Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/ApplicationMessageDao.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/ApplicationMessageDao.class differ diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/CandidateDao.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/CandidateDao.class index 5d842c4aeb3f92bb2182f013a7477e42bca828e2..7e91fcfad637efbf05ea240ee8fef31c84b7a136 100644 Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/CandidateDao.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/CandidateDao.class differ diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/CompanyDao.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/CompanyDao.class index a77b4ac627b6d60f29b54a4a635daee196f50e11..a3b4fc84d219694e61934d693919802797cd5766 100644 Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/CompanyDao.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/CompanyDao.class differ diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/JobOfferDao.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/JobOfferDao.class index 8135d3d754e03900af1d7f62cd7ac4372c63ceb3..e0a3941d0b8dfaf6fbcfe0e17e15c2d0228b2a1d 100644 Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/JobOfferDao.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/JobOfferDao.class differ diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/OfferMessageDao.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/OfferMessageDao.class index 302b39e7f7dd0dda1d8f17acee94d675dfe0e537..e2e091720c172faf1caf03efab85aea2c3a52172 100644 Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/OfferMessageDao.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/OfferMessageDao.class differ diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/QualificationLevelDao.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/QualificationLevelDao.class index 8007f008519c4bf388d1662bebad7f2dcaa43986..b21f278c1e8896ad2f35c7f18a051f72769ba46a 100644 Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/QualificationLevelDao.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/QualificationLevelDao.class differ diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/SectorDao.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/SectorDao.class index c1db9938c31e57cb8f5ebde626e3252982288c8d..f48edc2c76094ce5b76bb6b44c83a78cb9d3b444 100644 Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/SectorDao.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/SectorDao.class differ diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/AppUser.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/AppUser.class index 090606a3afcb7e323b9644541b2b5bab499e6c61..ca1884563592394285cda6b3c92ce79bbb94cb11 100644 Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/AppUser.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/AppUser.class differ diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/Application.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/Application.class index a1798658fa1cd8eafa8efd9d54d46ff187903e09..572bd81d49af528d4f85be3005e84686055e7fca 100644 Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/Application.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/Application.class differ diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/ApplicationMessage.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/ApplicationMessage.class index 3ea69a3c3b7a79cc8e8032110bc7340cb4dd49ff..94b5d8300bea8f896a3b89ebe32d6d49e72167ef 100644 Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/ApplicationMessage.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/ApplicationMessage.class differ diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/Candidate.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/Candidate.class index 135543e0180417a02d8be1df9de1e55ba45586f5..1e2bc7aa657a3cfe9be477d995cdb16276863040 100644 Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/Candidate.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/Candidate.class differ diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/Company.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/Company.class index b4ad0767547e4589999f73681efb75643f1e8dba..88e7c290df5a474746a4a5e6a05f1b15e2e4fb9b 100644 Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/Company.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/Company.class differ diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/JobOffer.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/JobOffer.class index 61a93fe538220e4542dcfda3e234b66f3129e8eb..3f45ee85c76714c08736c3b87a0abf933ad28598 100644 Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/JobOffer.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/JobOffer.class differ diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/OfferMessage.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/OfferMessage.class index 2bf7663fdb299a1f49f3cfa134e7ee56109f1ff1..c3808951a49b5bab19ef144587e807649ef7254b 100644 Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/OfferMessage.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/OfferMessage.class differ diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/QualificationLevel.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/QualificationLevel.class index 79b9c5db3994ec9fc109e6191645f40a949a30ff..b9fff9b0711bc03004b71f3a6436d5583a60c8ae 100644 Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/QualificationLevel.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/QualificationLevel.class differ diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/Sector.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/Sector.class index dc2efbc4ec65c937d69e1b36c9c0b999dadd6a65..4a368de5745fae2cbcee9180b53724f6df60f07a 100644 Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/Sector.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/Sector.class differ diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/service/AppUserService.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/service/AppUserService.class index 347b8c84689a6cc0ce961a09f81891b049a7dec3..9d72472a36a6ab69616234ea7df7a8b0f74d3aa5 100644 Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/service/AppUserService.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/service/AppUserService.class differ diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/service/AppUserServiceImpl.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/service/AppUserServiceImpl.class index b7d4f38bb88c61a88aa0531663e2870e6d6b3e81..3228527ea8ab8d6aa2fbdc25684e9fe6230ed4e0 100644 Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/service/AppUserServiceImpl.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/service/AppUserServiceImpl.class differ diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/service/CompanyService.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/service/CompanyService.class index 531c366e00e39c8d642c1344b34582c97fe73e08..93a8ac4e9eb534b2a33c89577994b42861a9b591 100644 Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/service/CompanyService.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/service/CompanyService.class differ diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/service/CompanyServiceImpl.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/service/CompanyServiceImpl.class index 09fe787187dc629f4a20da6c0bc7a44da1b98f7c..b3302e1b01375a5341b5b8bbd2171cfb4325f1c6 100644 Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/service/CompanyServiceImpl.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/service/CompanyServiceImpl.class differ diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/service/JobOfferService.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/service/JobOfferService.class index 331abe9a8037f5ae8fb6f5bf213ae75d3cd11c95..8f6bbd0630294b379b6a414b49f8d65a3fab234c 100644 Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/service/JobOfferService.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/service/JobOfferService.class differ diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/service/JobOfferServiceImpl.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/service/JobOfferServiceImpl.class index b31ebdd0f1410eafdb2fc43b7d4075be7231953d..f930041ea34da1c4d72afe84b1996bc755c5acc6 100644 Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/service/JobOfferServiceImpl.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/service/JobOfferServiceImpl.class differ diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/service/QualificationLevelService.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/service/QualificationLevelService.class index 7a4e5225c47f3dab34667a8cfc9803ed7bec921d..9041f0c3c890f54d2e7470b8a8e0ad3971f33fd9 100644 Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/service/QualificationLevelService.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/service/QualificationLevelService.class differ diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/service/QualificationLevelServiceImpl.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/service/QualificationLevelServiceImpl.class index 6049bdc562c34eb51c1f9679269235aadf7405c9..9f737f2170baba0914e5b3a9f691d97a9a47a0fc 100644 Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/service/QualificationLevelServiceImpl.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/service/QualificationLevelServiceImpl.class differ diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/service/SectorService.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/service/SectorService.class index 5be15b782d2d0cd74185a87f92377df93af168e1..61d79354cd1102fc1cbb5035aa590819dcdbc583 100644 Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/service/SectorService.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/service/SectorService.class differ diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/service/SectorServiceImpl.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/service/SectorServiceImpl.class index 90b4a8325a54961845e28db89251f1b8340f6949..8c17b588ea26399177cd62cc785a7da081b85237 100644 Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/service/SectorServiceImpl.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/service/SectorServiceImpl.class differ diff --git a/target/classes/templates/jobOffer/jobOfferForm.html b/target/classes/templates/jobOffer/jobOfferForm.html index 0558085fa23b76bcce22e83ebde189ef7c43a496..0ca49b5302a9d081cc88bbf048edc0db161e2a9e 100644 --- a/target/classes/templates/jobOffer/jobOfferForm.html +++ b/target/classes/templates/jobOffer/jobOfferForm.html @@ -28,18 +28,28 @@ <div class="mb-3"> <label class="form-label">Entreprise :</label> - <select class="form-select" th:field="*{company.id}" required> + <select class="form-select" th:field="*{company}"> <option value="">-- Sélectionner une entreprise --</option> - <option th:each="company : ${companies}" th:value="${company.id}" th:text="${company.denomination}"></option> + <option th:each="company : ${companies}" + th:value="${company.id}" + th:text="${company.denomination}" + th:selected="${company.id == jobOffer.company?.id}"></option> + </option> </select> + </div> <div class="mb-3"> <label class="form-label">Niveau de qualification :</label> - <select class="form-select" th:field="*{qualificationLevel.id}" required> + <select class="form-select" th:field="*{qualificationLevel}"> <option value="">Sélectionner un niveau de qualification</option> - <option th:each="level : ${qualificationLevels}" th:value="${level.id}" th:text="${level.label}"></option> + <option th:each="level : ${qualificationLevels}" + th:value="${level.id}" + th:text="${level.label}" + th:selected="${level.id == jobOffer.qualificationLevel?.id}"> + </option> </select> + </div> <div class="mb-3"> diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst index 3fbf0199ecdd981b89c10b376794a6c6848f72f2..c2aca4e012601b284d90f155d1b155452e5a7046 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -1,42 +1,42 @@ -C:\Users\rania\Desktop\jobmngt_copie\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\converter\QualificationLevelConverter.java -C:\Users\rania\Desktop\jobmngt_copie\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\config\WebConfig.java -C:\Users\rania\Desktop\jobmngt_copie\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\controller\TestCompanyDaoController.java -C:\Users\rania\Desktop\jobmngt_copie\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\controller\CompanyController.java -C:\Users\rania\Desktop\jobmngt_copie\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\dao\SectorDao.java -C:\Users\rania\Desktop\jobmngt_copie\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\service\AppUserService.java -C:\Users\rania\Desktop\jobmngt_copie\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\entity\QualificationLevel.java -C:\Users\rania\Desktop\jobmngt_copie\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\controller\TestCandidateDaoController.java -C:\Users\rania\Desktop\jobmngt_copie\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\dao\ApplicationMessageDao.java -C:\Users\rania\Desktop\jobmngt_copie\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\dao\JobOfferDao.java -C:\Users\rania\Desktop\jobmngt_copie\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\entity\JobOffer.java -C:\Users\rania\Desktop\jobmngt_copie\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\dao\AppUserDao.java -C:\Users\rania\Desktop\jobmngt_copie\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\controller\LoginController.java -C:\Users\rania\Desktop\jobmngt_copie\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\controller\PagesController.java -C:\Users\rania\Desktop\jobmngt_copie\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\entity\ApplicationMessage.java -C:\Users\rania\Desktop\jobmngt_copie\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\dao\CompanyDao.java -C:\Users\rania\Desktop\jobmngt_copie\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\JobmngtApplication.java -C:\Users\rania\Desktop\jobmngt_copie\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\service\SectorService.java -C:\Users\rania\Desktop\jobmngt_copie\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\service\QualificationLevelServiceImpl.java -C:\Users\rania\Desktop\jobmngt_copie\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\service\SectorServiceImpl.java -C:\Users\rania\Desktop\jobmngt_copie\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\dao\ApplicationDao.java -C:\Users\rania\Desktop\jobmngt_copie\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\entity\AppUser.java -C:\Users\rania\Desktop\jobmngt_copie\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\controller\JobOfferController.java -C:\Users\rania\Desktop\jobmngt_copie\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\service\QualificationLevelService.java -C:\Users\rania\Desktop\jobmngt_copie\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\entity\OfferMessage.java -C:\Users\rania\Desktop\jobmngt_copie\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\service\JobOfferServiceImpl.java -C:\Users\rania\Desktop\jobmngt_copie\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\entity\Candidate.java -C:\Users\rania\Desktop\jobmngt_copie\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\controller\QualificationLevelController.java -C:\Users\rania\Desktop\jobmngt_copie\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\controller\SectorController.java -C:\Users\rania\Desktop\jobmngt_copie\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\dao\QualificationLevelDao.java -C:\Users\rania\Desktop\jobmngt_copie\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\converter\CompanyConverter.java -C:\Users\rania\Desktop\jobmngt_copie\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\service\CompanyServiceImpl.java -C:\Users\rania\Desktop\jobmngt_copie\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\entity\Sector.java -C:\Users\rania\Desktop\jobmngt_copie\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\service\CompanyService.java -C:\Users\rania\Desktop\jobmngt_copie\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\service\JobOfferService.java -C:\Users\rania\Desktop\jobmngt_copie\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\controller\TestJobOfferDaoController.java -C:\Users\rania\Desktop\jobmngt_copie\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\entity\Company.java -C:\Users\rania\Desktop\jobmngt_copie\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\dao\CandidateDao.java -C:\Users\rania\Desktop\jobmngt_copie\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\dao\OfferMessageDao.java -C:\Users\rania\Desktop\jobmngt_copie\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\service\AppUserServiceImpl.java -C:\Users\rania\Desktop\jobmngt_copie\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\controller\TestApplicationDaoController.java -C:\Users\rania\Desktop\jobmngt_copie\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\entity\Application.java +C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\JobmngtApplication.java +C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\controller\TestJobOfferDaoController.java +C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\service\CompanyServiceImpl.java +C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\service\JobOfferServiceImpl.java +C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\entity\OfferMessage.java +C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\entity\Company.java +C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\service\JobOfferService.java +C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\controller\CompanyController.java +C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\converter\QualificationLevelConverter.java +C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\controller\TestCompanyDaoController.java +C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\converter\CompanyConverter.java +C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\entity\AppUser.java +C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\entity\Candidate.java +C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\entity\QualificationLevel.java +C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\entity\Sector.java +C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\dao\CandidateDao.java +C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\config\WebConfig.java +C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\service\AppUserServiceImpl.java +C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\service\CompanyService.java +C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\dao\JobOfferDao.java +C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\dao\ApplicationMessageDao.java +C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\dao\OfferMessageDao.java +C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\service\SectorServiceImpl.java +C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\entity\JobOffer.java +C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\controller\SectorController.java +C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\dao\SectorDao.java +C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\dao\CompanyDao.java +C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\entity\ApplicationMessage.java +C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\service\AppUserService.java +C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\controller\QualificationLevelController.java +C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\controller\JobOfferController.java +C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\controller\LoginController.java +C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\controller\PagesController.java +C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\controller\TestApplicationDaoController.java +C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\dao\QualificationLevelDao.java +C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\service\SectorService.java +C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\controller\TestCandidateDaoController.java +C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\service\QualificationLevelService.java +C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\dao\AppUserDao.java +C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\dao\ApplicationDao.java +C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\service\QualificationLevelServiceImpl.java +C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\entity\Application.java