#88 Modifications simples: mauvaises balises HTML, fautes d'orthographes, DashBoard attributs à traduire en français.

This commit is contained in:
josephine.vetu
2026-03-24 14:59:24 +01:00
parent 5fcd68261a
commit e804e13df6
11 changed files with 72 additions and 130 deletions

View File

@@ -41,40 +41,40 @@ public class DashboardController : Controller
/// <returns>La vue Index du tableau de bord.</returns>
public IActionResult Index()
{
var mostChronicledArtist = _titres
var artisteLePlusChronique = _titres
.GroupBy(t => t.Artiste)
.OrderByDescending(g => g.Count())
.FirstOrDefault();
var topArtistAlbums = _titres
var albumLePlusChronique = _titres
.GroupBy(t => t.Artiste)
.OrderByDescending(g => g.Select(t => t.Album).Distinct().Count())
.FirstOrDefault();
var mostPlayedTrack = _titres
var musiqueLaPlusJouee = _titres
.OrderByDescending(t => t.NbLectures)
.FirstOrDefault();
var model = new DashboardViewModel
{
ArtistCount = _artistes.Count,
NombreArtistes = _artistes.Count,
MostChronicledArtistName = mostChronicledArtist?.Key.Nom,
ArtisteLePlusChronique = artisteLePlusChronique?.Key.Nom,
TopArtistAlbumsName = topArtistAlbums?.Key.Nom,
AlbumLePlusChronique = albumLePlusChronique?.Key.Nom,
BiographyCount = _artistes.Count(a => !string.IsNullOrEmpty(a.Biographie)),
NombreBiographies = _artistes.Count(a => !string.IsNullOrEmpty(a.Biographie)),
MostPlayedTrackId = mostPlayedTrack?.IdTitre ?? 0,
MostPlayedTrack = mostPlayedTrack?.Libelle,
IdMusiqueLaPlusJouee = musiqueLaPlusJouee?.IdTitre ?? 0,
MusiqueLaPlusJouee = musiqueLaPlusJouee?.Libelle,
TrackCount = _titres.Count,
NombreTitres = _titres.Count,
GenreCount = _styles.Count,
NombreGenres = _styles.Count,
TotalPlays = _titres.Sum(t => t.NbLectures),
NombreLectures = _titres.Sum(t => t.NbLectures),
TotalLikes = _titres.Sum(t => t.NbLikes)
NombreLikes = _titres.Sum(t => t.NbLikes)
};
return View(model);

View File

@@ -8,49 +8,49 @@ public class DashboardViewModel
/// <summary>
/// Définit le nombre total d'artistes chroniqués dans le webzine.
/// </summary>
public int ArtistCount { get; set; }
public int NombreArtistes { get; set; }
/// <summary>
/// Définit le nom de l'artiste le plus chroniqué dans le webzine.
/// </summary>
public string MostChronicledArtistName { get; set; }
public string ArtisteLePlusChronique { get; set; }
/// <summary>
/// Définit le nom de l'album le plus chroniqué dans le webzine.
/// </summary>
public string TopArtistAlbumsName { get; set; }
public string AlbumLePlusChronique { get; set; }
/// <summary>
/// Définit le nombre total de biographies d'artistes dans le webzine.
/// </summary>
public int BiographyCount { get; set; }
public int NombreBiographies { get; set; }
/// <summary>
/// Définit l'identifiant de la biographie d'artiste la plus lue dans le webzine.
/// </summary>
public int MostPlayedTrackId { get; set; }
public int IdMusiqueLaPlusJouee { get; set; }
/// <summary>
/// Définit le nom de la biographie d'artiste la plus lue dans le webzine.
/// </summary>
public string MostPlayedTrack { get; set; }
public string MusiqueLaPlusJouee { get; set; }
/// <summary>
/// Définit le nombre total de titres chroniqués dans le webzine.
/// </summary>
public int TrackCount { get; set; }
public int NombreTitres { get; set; }
/// <summary>
/// Définit le nombre total de genres musicaux chroniqués dans le webzine.
/// </summary>
public int GenreCount { get; set; }
public int NombreGenres { get; set; }
/// <summary>
/// Définit le nombre total de chroniques d'albums dans le webzine.
/// </summary>
public int TotalPlays { get; set; }
public int NombreLectures { get; set; }
/// <summary>
/// Définit le nombre total de likes sur les chroniques d'albums dans le webzine.
/// </summary>
public int TotalLikes { get; set; }
public int NombreLikes { get; set; }
}

View File

@@ -30,12 +30,12 @@
<td class="text-center p-2">
<a asp-action="Edit" asp-route-id="@artiste.IdArtiste"
class="text-primary">
>
<i class="fa fa-edit"></i>
</a>
<a asp-action="Delete" asp-route-id="@artiste.IdArtiste"
class="text-primary">
>
<i class="fa fa-trash"></i>
</a>

View File

@@ -16,11 +16,11 @@
<div class="mb-4">
<h4>@Model.Contenu</h4>
<div class="text-muted"> // TODO y a des balises pour les citations, <blockquote></blockquote>
<blockquote>
— <strong>@Model.Auteur</strong>
le @Model.DateCreation.ToString("dd/MM/yyyy HH:mm:ss") // TODO à virer, c'est pas très lisible, trouver un format de date plus sympa, ou même afficher "il y a X minutes/heures/jours" comme sur les réseaux sociaux
le @Model.DateCreation.ToString("dd/MM/yyyy HH:mm:ss")
sur <em>@Model.TitreLibelle</em>
</div>
</blockquote>
</div>
<form asp-action="Delete" method="post">

View File

@@ -2,7 +2,7 @@
<h1 class="mb-4">Tableau de bord</h1>
<hr />
<hr/>
<div class="container">
@@ -11,17 +11,16 @@
<!-- ARTISTS -->
<div class="col-md-4">
<a asp-area="Administration"
asp-controller="Artiste"
class="text-decoration-none">
asp-controller="Artiste">
<div class="card shadow-sm p-4 bg-light h-100 dashboard-card">
<i class="fa fa-users fa-3x text-primary mb-3"></i>
<h3 class="text-primary">
@Model.ArtistCount
<h3>
@Model.NombreArtistes
</h3>
<p class="text-primary">
<p>
artistes
</p>
</div>
@@ -29,24 +28,20 @@
</a>
</div>
<!-- Test remote -->
<!-- L'ARTIST LE PLUS CHRONICLED --> // TODO faute de frappe, à virer
<!-- L'ARTIST LE PLUS CHRONIQUE -->
<div class="col-md-4">
<a asp-area=""
asp-controller="Artiste"
asp-route-nom="@Model.MostChronicledArtistName" // TODO enlever texte décorationnel, pas maintenable
class="text-decoration-none">
asp-route-nom="@Model.ArtisteLePlusChronique">
<div class="card shadow-sm p-4 bg-light h-100 dashboard-card">
<i class="fa fa-user fa-3x text-primary mb-3"></i>
<h3 class="text-primary"> // TODO c'est déjà par défaut en couleur primaire, pas besoin de le redéfinir
@Model.MostChronicledArtistName
<h3>
@Model.ArtisteLePlusChronique
</h3>
<p class="text-primary">
artiste le plus chroniqué
</p>
<p>artiste le plus chroniqué</p>
</div>
</a>
@@ -56,17 +51,16 @@
<div class="col-md-4">
<a asp-area=""
asp-controller="Artiste"
asp-route-nom="@Model.TopArtistAlbumsName"
class="text-decoration-none">
asp-route-nom="@Model.AlbumLePlusChronique">
<div class="card shadow-sm p-4 bg-light h-100 dashboard-card">
<i class="fa fa-trophy fa-3x text-primary mb-3"></i>
<h3 class="text-primary">
@Model.TopArtistAlbumsName
<h3>
@Model.AlbumLePlusChronique
</h3>
<p class="text-primary">
<p>
artiste avec le plus d'albums distincts
</p>
</div>
@@ -77,17 +71,16 @@
<!-- BIOGRAPHIES -->
<div class="col-md-4">
<a asp-area="Administration"
asp-controller="Titre"
class="text-decoration-none">
asp-controller="Titre">
<div class="card shadow-sm p-4 bg-light h-100 dashboard-card">
<i class="fa fa-book fa-3x text-primary mb-3"></i>
<h3 class="text-primary">
@Model.BiographyCount
<h3>
@Model.NombreBiographies
</h3>
<p class="text-primary">
<p>
biographies d'artistes
</p>
</div>
@@ -100,17 +93,16 @@
<a asp-area=""
asp-controller="Titre"
asp-action="Details"
asp-route-id="@Model.MostPlayedTrackId"
class="text-decoration-none">
asp-route-id="@Model.IdMusiqueLaPlusJouee">
<div class="card shadow-sm p-4 bg-light h-100 dashboard-card">
<i class="fa fa-compact-disc fa-3x text-primary mb-3"></i>
<h4 class="text-primary">
@Model.MostPlayedTrack
<h4>
@Model.MusiqueLaPlusJouee
</h4>
<p class="text-primary">
<p>
titre le plus lu
</p>
</div>
@@ -121,17 +113,16 @@
<!-- TITRE NOMBRE -->
<div class="col-md-4">
<a asp-area="Administration"
asp-controller="Titre"
class="text-decoration-none">
asp-controller="Titre">
<div class="card shadow-sm p-4 bg-light h-100 dashboard-card">
<i class="fa fa-music fa-3x text-primary mb-3"></i>
<h3 class="text-primary">
@Model.TrackCount
<h3>
@Model.NombreTitres
</h3>
<p class="text-primary">
<p>
titres
</p>
</div>
@@ -142,17 +133,16 @@
<!-- GENRES -->
<div class="col-md-4">
<a asp-area="Administration"
asp-controller="Styles"
class="text-decoration-none">
asp-controller="Styles">
<div class="card shadow-sm p-4 bg-light h-100 dashboard-card">
<i class="fa fa-tags fa-3x text-primary mb-3"></i>
<h3 class="text-primary">
@Model.GenreCount
<h3>
@Model.NombreGenres
</h3>
<p class="text-primary">
<p>
styles de musique
</p>
</div>
@@ -166,7 +156,7 @@
<i class="fa fa-eye fa-3x text-dark mb-3"></i>
<h3>
@Model.TotalPlays
@Model.NombreLectures
</h3>
<p>
@@ -181,7 +171,7 @@
<i class="fa fa-thumbs-up fa-3x text-dark mb-3"></i>
<h3>
@Model.TotalLikes
@Model.NombreLikes
</h3>
<p>

View File

@@ -14,13 +14,9 @@
</p>
<div class="mb-4">
@* On affiche le Libellé en gros *@ // TODO c'est quoi ces commentaires Baptiste
@* On affiche le Libellé en gros *@
<h4>@Model.Libelle</h4>
@* On affiche l'ID discrètement en dessous *@
<div class="text-muted">
Identifiant technique : @Model.IdStyle
</div>
</div>
<form asp-action="Delete" method="post">

View File

@@ -36,7 +36,7 @@
<a asp-action="Edit" asp-route-id="@style.IdStyle" class="text-primary me-2" title="Éditer">
<i class="fas fa-edit"></i>
</a>
<a asp-action="Delete" asp-route-id="@style.IdStyle" class="text-primary" title="Supprimer">
<a asp-action="Delete" asp-route-id="@style.IdStyle" title="Supprimer">
<i class="fas fa-trash"></i>
</a>
</td>

View File

@@ -5,36 +5,6 @@
<h1>Derniers titres chroniqués</h1>
@* TEMPLATE TODO: virer *@
@* <div class="container">
<div class="container bg-light row p-3 mt-3">
<div class="col-auto">
<img class="img-thumbnail"
src="" />
</div>
<div class="col">
<a class="text-primary text-decoration-none fw-light h4">Justice - D.A.N.C.E</a>
<p class="mt-2 mb-3 text-muted ">
Insérer texte
</p>
<div class="d-flex flex-wrap align-items-center gap-3">
<a class="btn btn-primary btn-sm">Lire la suite</a>
<div class="d-flex align-items-center text-muted small">
<i class="fa-solid fa-calendar"></i>
Date :
17/12/2022 11:08:08
</div>
<div class="d-flex align-items-center text-muted small">
<i class="fa-solid fa-tags"></i>
<a class="text-decoration-none m-1">Insérer style</a>
</div>
</div>
</div>
</div>
</div> *@
<div class="container">
@foreach (var titre in Model.DerniersTitres)
{
@@ -76,7 +46,7 @@
<div class="d-flex align-items-center text-muted small">
<i class="fa-solid fa-tags"></i>
@* Style *@
<a asp-controller="Titre" asp-action="Style" asp-route-id="Pop" class="text-decoration-none m-1">Pop</a>
<a asp-controller="Titre" asp-action="Style" asp-route-id="Pop" class="m-1">Pop</a>
</div>
</div>
</div>
@@ -87,20 +57,6 @@
</div>
</div>
@* TEMPLATE *@
@* <div class="container">
<div class="row">
<div class="card col m-1" style="width: 18rem;">
<img class="card-img-top"
src="" alt="Alternate Text" />
<div class="card-body">
<a class="card-link" href="#">Album</a><br />
par <a class="card-link">Artiste</a>
</div>
</div>
</div>
</div> *@
<div class="container">
<h1 class="mt-5">Titres les plus populaires</h1>
<div class="row">

View File

@@ -21,42 +21,42 @@
<h2>Suivez-nous</h2>
<div class="row g-4 text-center">
<div class="col-md-4">
<a href="#" class="card h-100 p-4 shadow-sm border-0 bg-light-subtle text-decoration-none">
<a href="#" class="card h-100 p-4 shadow-sm border-0 bg-light-subtle">
<i class="fa-solid fa-link fa-3x text-primary mb-3"></i>
<div class="fw-bold text-primary">Site officiel du DIIAGE</div>
</a>
</div>
<div class="col-md-4">
<a href="#" class="card h-100 p-4 shadow-sm border-0 bg-light-subtle text-decoration-none">
<a href="#" class="card h-100 p-4 shadow-sm border-0 bg-light-subtle">
<i class="fa-brands fa-facebook fa-3x text-primary mb-3"></i>
<div class="fw-bold text-primary">Facebook</div>
</a>
</div>
<div class="col-md-4">
<a href="#" class="card h-100 p-4 shadow-sm border-0 bg-light-subtle text-decoration-none">
<a href="#" class="card h-100 p-4 shadow-sm border-0 bg-light-subtle">
<i class="fa-brands fa-instagram fa-3x text-primary mb-3"></i>
<div class="fw-bold text-primary">Instagram</div>
</a>
</div>
<div class="col-md-4">
<a href="#" class="card h-100 p-4 shadow-sm border-0 bg-light-subtle text-decoration-none">
<a href="#" class="card h-100 p-4 shadow-sm border-0 bg-light-subtle">
<i class="fa-brands fa-linkedin fa-3x text-primary mb-3"></i>
<div class="fw-bold text-primary">LinkedIn</div>
</a>
</div>
<div class="col-md-4">
<a href="#" class="card h-100 p-4 shadow-sm border-0 bg-light-subtle text-decoration-none">
<a href="#" class="card h-100 p-4 shadow-sm border-0 bg-light-subtle">
<i class="fa-solid fa-map fa-3x text-primary mb-3"></i>
<div class="fw-bold text-primary">Google Maps</div>
</a>
</div>
<div class="col-md-4">
<a href="#" class="card h-100 p-4 shadow-sm border-0 bg-light-subtle text-decoration-none">
<a href="#" class="card h-100 p-4 shadow-sm border-0 bg-light-subtle">
<i class="fa-brands fa-twitter fa-3x text-primary mb-3"></i>
<div class="fw-bold text-primary">Twitter</div>
</a>

View File

@@ -40,7 +40,7 @@
{
var style = Model.Details.Styles[i];
<a class="text-primary text-decoration-none fw-semibold"
<a class="text-primary fw-semibold"
asp-controller="Titre"
asp-action="Style"
asp-route-style="@style.Libelle">

View File

@@ -11,9 +11,9 @@
<Content Include="..\.dockerignore">
<Link>.dockerignore</Link>
</Content>
<Content Include="..\Webzine.Documentation\StyleCop\stylecop.json">
<AdditionalFiles Include="..\Webzine.Documentation\StyleCop\stylecop.json">
<Link>stylecop.json</Link>
</Content>
</AdditionalFiles>
</ItemGroup>
<ItemGroup>