merge : new database.

This commit is contained in:
damien DELPY 2024-12-03 23:16:01 +01:00
commit a9ea4f44e0
No known key found for this signature in database
10 changed files with 129 additions and 42 deletions

View File

@ -3,6 +3,7 @@ import { Model } from '../types/model';
import { Either, eitherLeft, eitherRight, Pair, createPair } from '../utils/utils'; import { Either, eitherLeft, eitherRight, Pair, createPair } from '../utils/utils';
import { Piece } from '../types/piece'; import { Piece } from '../types/piece';
import { getPiece } from './pieces.service'; import { getPiece } from './pieces.service';
import memberService from './member.service';
type DBModel = { type DBModel = {
id_modele: number; id_modele: number;
@ -37,7 +38,7 @@ async function db2Model(data: DBModel) {
id: data.id_modele, id: data.id_modele,
name: data.nom_modele, name: data.nom_modele,
url: data.url_notice_modele, url: data.url_notice_modele,
creator: data.id_membre, creator: (await memberService.getMember(data.id_membre)).left,
inheritFrom: data.id_modele_2, inheritFrom: data.id_modele_2,
pieces: await getPiecesFromModel(data.id_modele), pieces: await getPiecesFromModel(data.id_modele),
review: await getNoteFromModel(data.id_modele), review: await getNoteFromModel(data.id_modele),

View File

@ -6,6 +6,7 @@
.header { .header {
background-color: var(--fg); background-color: var(--fg);
color: var(--bg); color: var(--bg);
margin-bottom: 20px;
} }
.header a { .header a {

View File

@ -0,0 +1,29 @@
.list li {
list-style-type: none;
}
.list li {
background: #C1292E;
transition: .2s ease-in-out;
border-radius: 8px;
text-align: center;
min-width: 150px;
}
.list {
display: grid;
grid-template-columns: repeat(2, 1fr);
grid-template-rows: repeat(auto, 1fr);
width: fit-content;
gap: 10px;
}
.list li a {
display: block;
color: white;
font-weight: bold;
font-size: .9rem;
text-decoration: none;
padding: 8px 13px;
cursor: pointer;
}

View File

@ -1,5 +1,6 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
@ -9,26 +10,50 @@
<%- include('partials/links.ejs') %> <%- include('partials/links.ejs') %>
</head> </head>
<body> <body>
<%- include('partials/header.ejs') %> <%- include('partials/header.ejs') %>
<main>
<h1> <h1>
Liste des membres qui ont proposés le plus de modèles Liste des membres qui ont proposés le plus de modèles
</h1> </h1>
<ul> <table>
<thead>
<tr>
<th>Nom</th>
<th>Nombre de modèle proposés</th>
<th></th>
</tr>
<% members.forEach(function(member) { %> <% members.forEach(function(member) { %>
<li> <tr>
<span> <td>
<%= member.nb_models %> <a href="/membres/byid/<%=member.id_member%>">
</span>
<a href="/membres/byname/<%=member.name%>">
<%= member.name %> <%= member.name %>
</a> </a>
</li> </td>
<td>
<%= member.nb_models %>
</td>
<td>
<a href="/membres/byid/<%=member.id_member%>">
<i class="fa-solid fa-eye"></i>
</a>
</td>
</tr>
<% }); %> <% }); %>
</thead>
<tbody>
</tbody>
</table>
<ul>
</ul> </ul>
</main>
</body> </body>

View File

@ -14,16 +14,16 @@
<body> <body>
<%- include('partials/header.ejs') %> <%- include('partials/header.ejs') %>
<main>
<h1> <h1>
<%= model.name %> <%= model.name %>
</h1> </h1>
<pre> <pre>
<main>
id : <%= model.id %> id : <%= model.id %>
url : <%= model.url %> url : <%= model.url %>
creator : <%= model.creator %> creator : <%= model.creator.name %>
inheritFrom : <%= model.inheritFrom %> inheritFrom : <%= model.inheritFrom %>
<h2>Liste des pièces nécessaires</h2> <h2>Liste des pièces nécessaires</h2>
<table> <table>

View File

@ -33,7 +33,7 @@
<tr> <tr>
<td><%=model.id%></td> <td><%=model.id%></td>
<td><%=model.name%></td> <td><%=model.name%></td>
<td><a href="/membres/byid/<%=model.creator%>"><i class="fa-solid fa-user"></i> <%=model.creator%></a></td> <td><a href="/membres/byid/<%=model.creator.id_member%>"><i class="fa-solid fa-user"></i> <%=model.creator.name%></a></td>
<td><%=model.review.first%>/5 (<%=model.review.second%> avis)</td> <td><%=model.review.first%>/5 (<%=model.review.second%> avis)</td>
<td><a href="/models/byname/<%=model.name%>"><i class="fa-solid fa-eye"></i></a></td> <td><a href="/models/byname/<%=model.name%>"><i class="fa-solid fa-eye"></i></a></td>
</tr> </tr>

View File

@ -19,6 +19,12 @@
</li> </li>
</a> </a>
<a href="/pieces">
<li>
Pièces
</li>
</a>
<a href="/rendu"> <a href="/rendu">
<li> <li>
Rendus Rendus

View File

@ -1,5 +1,6 @@
<script src="https://kit.fontawesome.com/62d2ff68ea.js" crossorigin="anonymous"></script> <script src="https://kit.fontawesome.com/62d2ff68ea.js" crossorigin="anonymous"></script>
<link href="/static/css/colors.css" rel="stylesheet" /> <link href="/static/css/colors.css" rel="stylesheet" />
<link href="/static/css/list.css" rel="stylesheet" />
<link href="/static/css/header.css" rel="stylesheet" /> <link href="/static/css/header.css" rel="stylesheet" />
<link href="/static/css/table.css" rel="stylesheet" /> <link href="/static/css/table.css" rel="stylesheet" />
<link href="/static/css/reset.css" rel="stylesheet" /> <link href="/static/css/reset.css" rel="stylesheet" />

View File

@ -1,5 +1,6 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
@ -9,20 +10,42 @@
<%- include('partials/links.ejs') %> <%- include('partials/links.ejs') %>
</head> </head>
<body> <body>
<%- include('partials/header.ejs') %> <%- include('partials/header.ejs') %>
<a href="/models/fromfan"><p>Liste des modèles proposés par des fans</p></a> <main>
<h2 style="margin-top: 13px;margin-bottom: 13px;">Requêtes prédéfinies</h2>
<a href="/models/bynote"><p>Liste des modèles par note décroissante</p></a>
<a href="javascript:let now = new Date();now.setUTCFullYear(now.getUTCFullYear() - 5);window.location.pathname = '/boxes/from/' + `${now.getUTCFullYear()}-${now.getUTCMonth() + 1}-${now.getUTCDate()}`;"> <ul class="list">
<p>Liste des boites ayant moins de 5 ans</p>
<li>
<a href="/models/fromfan">
Liste des modèles proposés par des fans
</a> </a>
</li>
<li>
<a href="/models/bynote">
Liste des modèles par note décroissante
</a>
</li>
<li>
<a
href="javascript:let now = new Date();now.setUTCFullYear(now.getUTCFullYear() - 5);window.location.pathname = '/boxes/from/' + `${now.getUTCFullYear()}-${now.getUTCMonth() + 1}-${now.getUTCDate()}`;">
Liste des boites ayant moins de 5 ans
</a>
</li>
<li>
<a href="/membres/bynbmodels"> <a href="/membres/bynbmodels">
<p>Liste des membres qui ont proposés le plus de modèles</p> Liste des membres qui ont proposés le plus de modèles
</a> </a>
</li>
</ul>
</main>
</body> </body>
</html> </html>

View File

@ -1,11 +1,12 @@
import { Pair } from '../utils/utils'; import { Pair } from '../utils/utils';
import { Member } from './member';
import { Piece } from './piece'; import { Piece } from './piece';
type Model = { type Model = {
id: number; id: number;
name: string; name: string;
url: string; url: string;
creator: number; creator: Member;
inheritFrom: number; inheritFrom: number;
pieces: Array<Pair<Piece, number>> pieces: Array<Pair<Piece, number>>
review: Pair<number, number> review: Pair<number, number>