From 9002836da067b5e721e7572edc0605eee9606a30 Mon Sep 17 00:00:00 2001 From: "b.nodon" Date: Fri, 6 Mar 2026 11:50:15 +0100 Subject: [PATCH 1/4] =?UTF-8?q?J1:=20Admin/Styles/Create=20#64:=20-=20Cr?= =?UTF-8?q?=C3=A9ation=20de=20StyleCreateViewModel=20-=20Cr=C3=A9ation=20d?= =?UTF-8?q?e=20la=20vue=20create=20-=20Integration=20du=20create=20dans=20?= =?UTF-8?q?le=20controller?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/StylesController.cs | 29 ++++++++++++ .../ViewModels/Styles/StyleCreateViewModel.cs | 20 ++++++++ .../Administration/Views/Styles/Create.cshtml | 46 +++++++++++++++++++ 3 files changed, 95 insertions(+) create mode 100644 Webzine.WebApplication/Areas/Administration/ViewModels/Styles/StyleCreateViewModel.cs create mode 100644 Webzine.WebApplication/Areas/Administration/Views/Styles/Create.cshtml diff --git a/Webzine.WebApplication/Areas/Administration/Controllers/StylesController.cs b/Webzine.WebApplication/Areas/Administration/Controllers/StylesController.cs index e044b81..6cda50f 100644 --- a/Webzine.WebApplication/Areas/Administration/Controllers/StylesController.cs +++ b/Webzine.WebApplication/Areas/Administration/Controllers/StylesController.cs @@ -64,6 +64,35 @@ namespace Webzine.WebApplication.Areas.Administration.Controllers return View(viewModel); } + // GET: Administration/Styles/Create + public ActionResult Create() + { + return View(); + } + + // POST: Administration/Styles/Create + [HttpPost] + [ValidateAntiForgeryToken] + public ActionResult Create(StyleCreateViewModel model) + { + if (!ModelState.IsValid) + { + return View(model); + } + + try + { + _logger.LogInformation("Nouveau style créé : {Libelle}", model.Libelle); + return RedirectToAction(nameof(Index)); + } + catch (Exception e) + { + _logger.LogError(e, "Erreur lors de la création du style"); + ModelState.AddModelError("", "Une erreur est survenue lors de la création."); + return View(model); + } + } + // GET: Administration/Styles/Delete/5 public ActionResult Delete(int id) diff --git a/Webzine.WebApplication/Areas/Administration/ViewModels/Styles/StyleCreateViewModel.cs b/Webzine.WebApplication/Areas/Administration/ViewModels/Styles/StyleCreateViewModel.cs new file mode 100644 index 0000000..53cfe1e --- /dev/null +++ b/Webzine.WebApplication/Areas/Administration/ViewModels/Styles/StyleCreateViewModel.cs @@ -0,0 +1,20 @@ +// +// Copyright (c) Webzine. Tout droit réservé. +// + + +namespace Webzine.WebApplication.Areas.Administration.ViewModels.Style +{ + /// + /// ViewModel pour la création d'un style en administration. + /// + + public class StyleCreateViewModel + { + /// + /// Obtient ou définit le libellé du style. + /// + + public string Libelle { get; set; } + } +} diff --git a/Webzine.WebApplication/Areas/Administration/Views/Styles/Create.cshtml b/Webzine.WebApplication/Areas/Administration/Views/Styles/Create.cshtml new file mode 100644 index 0000000..0ac8105 --- /dev/null +++ b/Webzine.WebApplication/Areas/Administration/Views/Styles/Create.cshtml @@ -0,0 +1,46 @@ +@model Webzine.WebApplication.Areas.Administration.ViewModels.Style.StyleCreateViewModel + +@{ + ViewData["Title"] = "Créer un style"; +} + +
+

Créer un style

+
+ +
+ + @* Utilisation de d-flex pour aligner les éléments sur une ligne *@ +
+ + @* Label *@ +
+ +
+ + @* Input *@ +
+ +
+ + @* Bouton *@ +
+ +
+
+ + @* Zone d'erreur en dessous *@ +
+ +
+ +
+ + +
+ + From 58de77a5325b63383fcf17a6e69ae930ecf99baa Mon Sep 17 00:00:00 2001 From: "b.nodon" Date: Fri, 6 Mar 2026 13:21:34 +0100 Subject: [PATCH 2/4] =?UTF-8?q?J1:=20Admin/Styles/Edit=20#65:=20-=20Cr?= =?UTF-8?q?=C3=A9ation=20de=20StyleEditViewModel=20-=20Cr=C3=A9ation=20de?= =?UTF-8?q?=20la=20vue=20edit=20-=20Integration=20du=20edit=20dans=20le=20?= =?UTF-8?q?controller?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/StylesController.cs | 53 ++++++++++++++++++- .../ViewModels/Styles/StyleEditViewModel.cs | 27 ++++++++++ .../Administration/Views/Styles/Edit.cshtml | 47 ++++++++++++++++ .../Administration/Views/Styles/Index.cshtml | 36 ++++++------- 4 files changed, 144 insertions(+), 19 deletions(-) create mode 100644 Webzine.WebApplication/Areas/Administration/ViewModels/Styles/StyleEditViewModel.cs create mode 100644 Webzine.WebApplication/Areas/Administration/Views/Styles/Edit.cshtml diff --git a/Webzine.WebApplication/Areas/Administration/Controllers/StylesController.cs b/Webzine.WebApplication/Areas/Administration/Controllers/StylesController.cs index 6cda50f..547c654 100644 --- a/Webzine.WebApplication/Areas/Administration/Controllers/StylesController.cs +++ b/Webzine.WebApplication/Areas/Administration/Controllers/StylesController.cs @@ -94,6 +94,7 @@ namespace Webzine.WebApplication.Areas.Administration.Controllers } + // GET: Administration/Styles/Delete/5 public ActionResult Delete(int id) { @@ -130,5 +131,55 @@ namespace Webzine.WebApplication.Areas.Administration.Controllers return View(model); } } + + // GET: Administration/Styles/Edit/5 + [HttpGet] + public ActionResult Edit(int id) + { + // Recherche du style (simulation avec la liste _styles) + var style = _styles.FirstOrDefault(s => s.IdStyle == id); + + if (style == null) + { + return NotFound(); + } + + // Mapping vers le ViewModel + var model = new StyleEditViewModel + { + IdStyle = style.IdStyle, + Libelle = style.Libelle + }; + + return View(model); + } + + // POST: Administration/Styles/Edit/5 + [HttpPost] + [ValidateAntiForgeryToken] + public ActionResult Edit(int id, StyleEditViewModel model) + { + if (!ModelState.IsValid) + { + return View(model); + } + + try + { + // TODO : Mettre à jour en base de données ici + // var styleDb = _context.Styles.Find(id); + // styleDb.Libelle = model.Libelle; + // _context.SaveChanges(); + + _logger.LogInformation("Style {Id} mis à jour : {Libelle}", id, model.Libelle); + return RedirectToAction(nameof(Index)); + } + catch (Exception e) + { + _logger.LogError(e, "Erreur lors de la modification du style {Id}", id); + ModelState.AddModelError("", "Une erreur est survenue lors de la modification."); + return View(model); + } + } } -} \ No newline at end of file +} diff --git a/Webzine.WebApplication/Areas/Administration/ViewModels/Styles/StyleEditViewModel.cs b/Webzine.WebApplication/Areas/Administration/ViewModels/Styles/StyleEditViewModel.cs new file mode 100644 index 0000000..ce12b73 --- /dev/null +++ b/Webzine.WebApplication/Areas/Administration/ViewModels/Styles/StyleEditViewModel.cs @@ -0,0 +1,27 @@ +// +// Copyright (c) Webzine. Tout droit réservé. +// + + +namespace Webzine.WebApplication.Areas.Administration.ViewModels.Style +{ + /// + /// ViewModel pour la modification d'un style en administration. + /// + + public class StyleEditViewModel + { + + /// + /// Obtient ou définit le libellé du style. + /// + + public int IdStyle { get; set; } + + /// + /// Obtient ou définit le libellé du style. + /// + + public string Libelle { get; set; } + } +} diff --git a/Webzine.WebApplication/Areas/Administration/Views/Styles/Edit.cshtml b/Webzine.WebApplication/Areas/Administration/Views/Styles/Edit.cshtml new file mode 100644 index 0000000..e9b763b --- /dev/null +++ b/Webzine.WebApplication/Areas/Administration/Views/Styles/Edit.cshtml @@ -0,0 +1,47 @@ +@model Webzine.WebApplication.Areas.Administration.ViewModels.Style.StyleEditViewModel + +@{ + ViewData["Title"] = "Editer un style"; +} + +
+

Editer un style

+
+ +
+ + @* Champ caché pour l'ID *@ + + + @* Conteneur Flex pour alignement horizontal (Label - Input - Bouton) *@ +
+ + @* Label *@ +
+ +
+ + @* Input *@ +
+ +
+ + @* Bouton *@ +
+ +
+
+ + @* Zone d'erreur spécifique au champ *@ +
+ +
+ +
+ + +
diff --git a/Webzine.WebApplication/Areas/Administration/Views/Styles/Index.cshtml b/Webzine.WebApplication/Areas/Administration/Views/Styles/Index.cshtml index 216f9cb..7aaa93d 100644 --- a/Webzine.WebApplication/Areas/Administration/Views/Styles/Index.cshtml +++ b/Webzine.WebApplication/Areas/Administration/Views/Styles/Index.cshtml @@ -4,22 +4,23 @@ ViewData["Title"] = "Styles"; } -
-
-

Gestion des Styles

- @* Lien vers la création (optionnel si vous n'avez pas encore fait l'action Create) *@ +
+ +

Styles

+
+ +
- - +
+ - - - + + @@ -28,15 +29,14 @@ @foreach (Webzine.Entity.Style style in Model.Styles) { - - - @@ -46,7 +46,7 @@ else { - + } From 3f1cc9d2f523634f870945ebd732565f95598015 Mon Sep 17 00:00:00 2001 From: Loic Masi Date: Fri, 6 Mar 2026 13:46:08 +0100 Subject: [PATCH 3/4] Ajout du footer --- Webzine.Documentation/Rapport/equipe 1 - rapport.md | 3 ++- Webzine.WebApplication/Views/Shared/_Footer.cshtml | 13 +++++++++++++ Webzine.WebApplication/Views/Shared/_Layout.cshtml | 3 ++- 3 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 Webzine.WebApplication/Views/Shared/_Footer.cshtml diff --git a/Webzine.Documentation/Rapport/equipe 1 - rapport.md b/Webzine.Documentation/Rapport/equipe 1 - rapport.md index 0912423..76f195f 100644 --- a/Webzine.Documentation/Rapport/equipe 1 - rapport.md +++ b/Webzine.Documentation/Rapport/equipe 1 - rapport.md @@ -17,4 +17,5 @@ 06/03 : - Récupération des modifications depuis 'dev' - Ajout des redirections vers les pages 'Administration' -- Adaptation du layout principal pour adaptation entre public et administration \ No newline at end of file +- Adaptation du layout principal pour adaptation entre public et administration +- Ajout du Footer (sur toutes les pages) \ No newline at end of file diff --git a/Webzine.WebApplication/Views/Shared/_Footer.cshtml b/Webzine.WebApplication/Views/Shared/_Footer.cshtml new file mode 100644 index 0000000..08e1ee0 --- /dev/null +++ b/Webzine.WebApplication/Views/Shared/_Footer.cshtml @@ -0,0 +1,13 @@ +@* + For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860 +*@ +@{ +} +
+
+
+ + © ASP .NET Core - DIIAGE 2025 - 2026 +
+
+
\ No newline at end of file diff --git a/Webzine.WebApplication/Views/Shared/_Layout.cshtml b/Webzine.WebApplication/Views/Shared/_Layout.cshtml index 0d6fe8c..ee7cb0d 100644 --- a/Webzine.WebApplication/Views/Shared/_Layout.cshtml +++ b/Webzine.WebApplication/Views/Shared/_Layout.cshtml @@ -15,7 +15,7 @@ -
+
@@ -26,6 +26,7 @@ }
+
\ No newline at end of file From a5d168dd169f6bafcba5a57fd6d9df0bf0e156ab Mon Sep 17 00:00:00 2001 From: mirage <119869686+ClementBobin@users.noreply.github.com> Date: Fri, 6 Mar 2026 14:28:16 +0100 Subject: [PATCH 4/4] refactor: Remove outdated TODO comments in StylesController --- .../Areas/Administration/Controllers/StylesController.cs | 5 ----- 1 file changed, 5 deletions(-) diff --git a/Webzine.WebApplication/Areas/Administration/Controllers/StylesController.cs b/Webzine.WebApplication/Areas/Administration/Controllers/StylesController.cs index 547c654..0f4be27 100644 --- a/Webzine.WebApplication/Areas/Administration/Controllers/StylesController.cs +++ b/Webzine.WebApplication/Areas/Administration/Controllers/StylesController.cs @@ -166,11 +166,6 @@ namespace Webzine.WebApplication.Areas.Administration.Controllers try { - // TODO : Mettre à jour en base de données ici - // var styleDb = _context.Styles.Find(id); - // styleDb.Libelle = model.Libelle; - // _context.SaveChanges(); - _logger.LogInformation("Style {Id} mis à jour : {Libelle}", id, model.Libelle); return RedirectToAction(nameof(Index)); }
#LibelléActionsLibelléActions
- @style.IdStyle - + @style.Libelle - @* Bouton Supprimer (correspond à votre action Delete) *@ - + + + + +
Aucun style disponible.Aucun style disponible.