#124 Pagination faite pour la page d'accueil, ordonnée par date de création puis du libelle. Début de pagination pour les artistes.

This commit is contained in:
josephine.vetu
2026-04-02 16:24:17 +02:00
parent ae80c3e14e
commit 06cdb351ec
8 changed files with 67 additions and 17 deletions

View File

@@ -21,6 +21,7 @@
/// </summary>
/// <param name="logger">Service de journalisation injecté pour enregistrer les événements et les erreurs.</param>
/// <param name="configuration">Service d'injection de configuration pour accéder aux paramètres de l'application.</param>
/// <param name="titreRepository">Service d'injection du dépôt de titres pour accéder aux données des titres.</param>
public AccueilController(
ILogger<AccueilController> logger,
IConfiguration configuration,
@@ -36,24 +37,25 @@
/// <summary>
/// Affiche la page d'accueil du webzine, présentant les derniers titres et les titres les plus populaires.
/// </summary>
/// <param name="page">Le numéro de page pour la pagination des titres (par défaut à 0).</param>
/// <returns>La vue Index avec le ViewModel contenant les listes de titres à afficher.</returns>
public IActionResult Index()
public IActionResult Index(int page = 0)
{
this.logger.LogInformation("Arrivée sur la page d'accueil");
var derniereChronique = this.configuration.GetValue<int>("Webzine:NombreDerniereChronique");
var nbTopTitres = this.configuration.GetValue<int>("Webzine:NombreDeTopTitres");
var titres = this.titreRepository.FindAll();
var titres_paginé = this.titreRepository.FindTitres(page * derniereChronique, derniereChronique);
var top_titres = this.titreRepository.FindAll()
.OrderByDescending(t => t.NbLikes)
.Take(nbTopTitres);
var vm = new AccueilIndexViewModel
{
DerniersTitres = titres.Take(derniereChronique).ToList(),
TopTitres = titres
.OrderByDescending(t => t.NbLikes)
.Take(nbTopTitres)
.ToList(),
DerniersTitres = titres_paginé.ToList(),
TopTitres = top_titres.ToList(),
Page = page,
};
return this.View(vm);

View File

@@ -23,8 +23,8 @@
// public int NombreDeTitre { get; set; } = 0;
/// <summary>
/// Obtient ou définit le nombre de titre paginé.
/// Obtient ou définit le numéro de page pour la pagination des titres affichés sur la page d'accueil.
/// </summary>
// public int Pagination { get; set; } = 0;
public int Page { get; set; } = 0;
}
}

View File

@@ -74,9 +74,11 @@
}
<!-- Bouton -->
<div class="row justify-content-end">
<button class="btn btn-secondary col-auto mt-3">
Titres plus anciens >>
</button>
<a asp-action="Index" asp-route-page="@(Model.Page + 1)"
class="btn btn-secondary col-auto mt-3">
Titres plus anciens >>
</button>
</a>
</div>
</div>