Optimize view of GPUs admin page.

This commit is contained in:
2019-05-20 01:07:06 +01:00
parent 2a65efab4f
commit f54a8599ea
4 changed files with 67 additions and 6 deletions

View File

@@ -31,6 +31,7 @@
using System.Linq; using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using Cicm.Database.Models; using Cicm.Database.Models;
using cicm_web.Areas.Admin.Models;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Rendering; using Microsoft.AspNetCore.Mvc.Rendering;
@@ -55,7 +56,14 @@ namespace cicm_web.Areas.Admin.Controllers
{ {
IIncludableQueryable<Gpu, Company> cicmContext = _context.Gpus.Include(g => g.Company); IIncludableQueryable<Gpu, Company> cicmContext = _context.Gpus.Include(g => g.Company);
return View(await cicmContext.OrderBy(g => g.Company.Name).ThenBy(g => g.Name).ThenBy(g => g.Introduced) return View(await cicmContext.OrderBy(g => g.Company.Name).ThenBy(g => g.Name).ThenBy(g => g.Introduced)
.ToListAsync()); .Select(g => new GpuViewModel
{
Id = g.Id,
Company = g.Company.Name,
Introduced = g.Introduced,
ModelCode = g.ModelCode,
Name = g.Name
}).ToListAsync());
} }
// GET: Admin/Gpus/Details/5 // GET: Admin/Gpus/Details/5

View File

@@ -0,0 +1,53 @@
/******************************************************************************
// Canary Islands Computer Museum Website
// ----------------------------------------------------------------------------
//
// Filename : Gpu.cs
// Author(s) : Natalia Portillo <claunia@claunia.com>
//
// --[ Description ] ----------------------------------------------------------
//
// Describes chips (or chipsets) whose primary function is to generate
// graphics (raster, vectorial, 3D, etc).
//
// --[ License ] --------------------------------------------------------------
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//
// ----------------------------------------------------------------------------
// Copyright © 2003-2018 Natalia Portillo
*******************************************************************************/
using System;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace cicm_web.Areas.Admin.Models
{
public class GpuViewModel
{
public string Company;
public int Id;
[DisplayFormat(DataFormatString = "{0:d}")]
[DataType(DataType.Date)]
public DateTime? Introduced;
[DisplayName("Model code")]
public string ModelCode;
public string Name;
[NotMapped]
public string IntroducedView => Introduced?.ToShortDateString() ?? "Unknown";
}
}

View File

@@ -29,8 +29,8 @@
// Copyright © 2003-2018 Natalia Portillo // Copyright © 2003-2018 Natalia Portillo
*******************************************************************************/ *******************************************************************************/
} }
@using Cicm.Database.Models @using cicm_web.Areas.Admin.Models
@model IEnumerable<Cicm.Database.Models.Gpu> @model IEnumerable<cicm_web.Areas.Admin.Models.GpuViewModel>
@{ @{
ViewData["Title"] = "GPUs (Admin)"; ViewData["Title"] = "GPUs (Admin)";
@@ -63,11 +63,11 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@foreach(Gpu item in Model) @foreach(GpuViewModel item in Model)
{ {
<tr> <tr>
<td> <td>
@Html.DisplayFor(modelItem => item.Company.Name) @Html.DisplayFor(modelItem => item.Company)
</td> </td>
<td> <td>
@Html.DisplayFor(modelItem => item.Name) @Html.DisplayFor(modelItem => item.Name)

View File

@@ -2,7 +2,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
<Version>3.0.99.548</Version> <Version>3.0.99.549</Version>
<Company>Canary Islands Computer Museum</Company> <Company>Canary Islands Computer Museum</Company>
<Copyright>Copyright © 2003-2018 Natalia Portillo</Copyright> <Copyright>Copyright © 2003-2018 Natalia Portillo</Copyright>
<Product>Canary Islands Computer Museum Website</Product> <Product>Canary Islands Computer Museum Website</Product>