Merge pull request 'j3/fix/form' (#194) from j3/fix/form into dev

Reviewed-on: https://10.4.0.131/gitea/DI1-P4-E1/Webzine/pulls/194
Reviewed-by: c.bobin <clement.bobin@diiage.org>
This commit is contained in:
c.bobin
2026-04-03 15:56:17 +02:00
12 changed files with 47 additions and 8 deletions

View File

@@ -5,9 +5,9 @@ using Business.Contracts;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Rendering;
using Webzine.Business.Contracts.Dto;
using Webzine.Entity;
using Webzine.Repository.Contracts;
using Webzine.Business.Contracts.Dto;
using Webzine.WebApplication.Areas.Administration.ViewModels.Titre;
/// <summary>

View File

@@ -10,12 +10,15 @@
/// <summary>
/// Nom de l'artiste.
/// </summary>
[Required]
[Required(ErrorMessage = "Le nom de l'auteur est obligatoire.")]
[StringLength(50, ErrorMessage = "Le nom ne doit pas dépasser 50 caractères.")]
public string Nom { get; set; }
/// <summary>
/// Biographie de l'artiste.
/// </summary>
/// </summary>*
[Required(ErrorMessage = "La biographie ne peux pas etre vide.")]
public string Biographie { get; set; }
}
}

View File

@@ -16,12 +16,15 @@
/// <summary>
/// Nom de l'artiste.
/// </summary>
[Required]
[Required(ErrorMessage = "Le nom de l'auteur est obligatoire.")]
[StringLength(50, ErrorMessage = "Le nom ne doit pas dépasser 50 caractères.")]
public string Nom { get; set; }
/// <summary>
/// Biographie de l'artiste.
/// </summary>
[Required(ErrorMessage = "Le contenu de la biographie ne peut pas être vide.")]
public string Biographie { get; set; }
}
}

View File

@@ -14,7 +14,7 @@ namespace Webzine.WebApplication.Areas.Administration.ViewModels.Style
/// <summary>
/// Obtient ou définit le libellé du style.
/// </summary>
[Required]
[Required(ErrorMessage = "Le libelle du style est obligatoire.")]
public string Libelle { get; set; }
}
}

View File

@@ -19,7 +19,7 @@ namespace Webzine.WebApplication.Areas.Administration.ViewModels.Style
/// <summary>
/// Obtient ou definit le libelle du style.
/// </summary>
[Required]
[Required(ErrorMessage = "Le libelle du style est obligatoire.")]
public string Libelle { get; set; }
}
}

View File

@@ -1,5 +1,7 @@
namespace Webzine.WebApplication.Areas.Administration.ViewModels.Titre;
using System.ComponentModel.DataAnnotations;
using Microsoft.AspNetCore.Mvc.Rendering;
/// <summary>
@@ -15,36 +17,47 @@ public class AdminTitreForm
/// <summary>
/// Définit l'identifiant de l'artiste associé au titre.
/// </summary>
[Required(ErrorMessage = "L'id de l'artiste est obligatoire.")]
public int IdArtiste { get; set; }
/// <summary>
/// Définit le titre du titre.
/// </summary>
[Required(ErrorMessage = "Le labelle est obligatoire.")]
public string Libelle { get; set; }
/// <summary>
/// Définit le nom de l'album associé au titre.
/// </summary>
[Required(ErrorMessage = "L'album est obligatoire.")]
public string Album { get; set; }
/// <summary>
/// Définit la chronique du titre, peut-être une critique ou une description du titre.
/// </summary>
[Required(ErrorMessage = "La chronique est obligatoire.")]
public string Chronique { get; set; }
/// <summary>
/// Définit la date de sortie du titre.
/// </summary>
[Required(ErrorMessage = "La date de est obligatoire.")]
public DateTime DateSortie { get; set; }
/// <summary>
/// Définit la durée du titre en secondes.
/// </summary>
[Required(ErrorMessage = "La durée est obligatoire.")]
public int Duree { get; set; }
/// <summary>
/// Définit l'URL de la jaquette de l'album associé au titre.
/// </summary>
[Required(ErrorMessage = "L'Url de la jaquette est obligatoire.")]
public string UrlJaquette { get; set; }
/// <summary>

View File

@@ -11,6 +11,8 @@
<label class="col-md-3 col-form-label">Nom de l'artiste<span class="text-danger">*</span></label>
<div class="col-md-9">
<input asp-for="Nom" class="form-control" />
<span asp-validation-for="Nom" class="text-danger"></span>
</div>
</div>
@@ -19,6 +21,8 @@
<label class="col-md-3 col-form-label">Biographie</label>
<div class="col-md-9">
<textarea asp-for="Biographie" class="form-control" rows="5"></textarea>
<span asp-validation-for="Biographie" class="text-danger"></span>
</div>
</div>

View File

@@ -6,6 +6,8 @@
<label class="col-md-3 col-form-label">Nom de l'artiste<span class="text-danger">*</span></label>
<div class="col-md-9">
<input asp-for="Nom" class="form-control" />
<span asp-validation-for="Nom" class="text-danger"></span>
</div>
</div>
@@ -14,7 +16,10 @@
<label class="col-md-3 col-form-label">Biographie</label>
<div class="col-md-9">
<textarea asp-for="Biographie" class="form-control" rows="5"></textarea>
<span asp-validation-for="Biographie" class="text-danger"></span>
</div>
</div>
<!-- BOUTONS -->

View File

@@ -8,6 +8,8 @@
<select asp-for="IdArtiste"
asp-items="Model.Artistes"
class="form-select"></select>
<span asp-validation-for="IdArtiste" class="text-danger"></span>
</div>
</div>
@@ -16,6 +18,7 @@
<label class="col-md-3 col-form-label">Titre<span class="text-danger">*</span></label>
<div class="col-md-9">
<input asp-for="Libelle" class="form-control"/>
<span asp-validation-for="Libelle" class="text-danger"></span>
</div>
</div>
@@ -24,6 +27,7 @@
<label class="col-md-3 col-form-label">Album<span class="text-danger">*</span></label>
<div class="col-md-9">
<input asp-for="Album" class="form-control"/>
<span asp-validation-for="Album" class="text-danger"></span>
</div>
</div>
@@ -34,6 +38,8 @@
<textarea asp-for="Chronique"
class="form-control"
rows="5"></textarea>
<span asp-validation-for="Chronique" class="text-danger"></span>
</div>
</div>
@@ -55,6 +61,8 @@
class="form-control"
type="number"
min="0" />
<span asp-validation-for="Duree" class="text-danger"></span>
<span class="input-group-text text-muted">seconds</span>
</div>
</div>
@@ -66,6 +74,8 @@
<div class="col-md-9">
<input asp-for="UrlJaquette"
class="form-control"/>
<span asp-validation-for="UrlJaquette" class="text-danger"></span>
</div>
</div>

View File

@@ -10,4 +10,4 @@ public class EfPerformanceOptions
/// Valeur par défaut : 200 ms.
/// </summary>
public int SeuilMs { get; set; } = 200;
}
}

View File

@@ -33,6 +33,7 @@ try
options.Filters.Add<ValidationActionFilter>();
options.Filters.Add<GlobalExceptionFilter>();
})
// Ajoute la compilation des vues lors de l'execution de l'application.
// Cela nous evite de recompiler l'application a chaque modification de vue.
// Necessite le package Nuget Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.