From 349289579e6fe15ac92e5a1cf1b127657425a301 Mon Sep 17 00:00:00 2001 From: Pierre-Louis BERTRAND <plbertrand@takima.fr> Date: Sun, 8 Oct 2023 19:10:56 +0200 Subject: [PATCH] more data and major page working --- back-skeleton/initdb/2_DEFAULT_ENTRIES.sql | 10 +++++++++- .../major-students/major-students.component.html | 3 ++- .../majors/major-students/major-students.component.ts | 3 ++- .../majors/major-students/major-students.resolver.ts | 6 +++--- .../src/app/majors/majors.component.html | 1 - .../src/app/services/constantsMock.service.ts | 2 +- .../src/app/services/major.service.ts | 8 +++----- 7 files changed, 20 insertions(+), 13 deletions(-) diff --git a/back-skeleton/initdb/2_DEFAULT_ENTRIES.sql b/back-skeleton/initdb/2_DEFAULT_ENTRIES.sql index 321b728..1b1ea1b 100644 --- a/back-skeleton/initdb/2_DEFAULT_ENTRIES.sql +++ b/back-skeleton/initdb/2_DEFAULT_ENTRIES.sql @@ -1,4 +1,12 @@ -INSERT INTO majors (id, name, description) VALUES (1, 'MIN', 'Ouaiiis du code partout'); +INSERT INTO majors (id, name, description) VALUES (1, 'Ingéniérie du Numérique', 'Ouaiiis du code partout'); +INSERT INTO majors (id, name, description) VALUES (2, 'Structure & Matériaux', 'Beaucoup de béton et des poutres (snif elle a été renomée)'); +INSERT INTO majors (id, name, description) VALUES (3, 'Aéronautique & Espace', 'Vive le vent'); +INSERT INTO majors (id, name, description) VALUES (4, 'Data Engineering', 'Trop cool plein de données à ordonner'); +INSERT INTO majors (id, name, description) VALUES (5, 'Energie & Environnement', 'On est full green'); +INSERT INTO majors (id, name, description) VALUES (6, 'Engineering Management', 'Des managers de qualité'); +INSERT INTO majors (id, name, description) VALUES (7, 'Ingénierie & Santé', 'On connait tous les os et tous les muscles du corps humain'); +INSERT INTO majors (id, name, description) VALUES (8, 'Ingénierie & Architecture durable', 'Objectif 0 carbon'); +INSERT INTO majors (id, name, description) VALUES (9, 'Design Industriel Durable', 'Ca existait pas pour la P2022 ça'); INSERT INTO students (id, first_name, last_name, birthdate, major_id, image) VALUES (1, 'Paul', 'Harrohide', '2002-06-15', 1, null); INSERT INTO students (id, first_name, last_name, birthdate, major_id, image) VALUES (2, 'Jean', 'Bonbeur', '2001-08-21', 1, null); diff --git a/epf-front-skeleton-main/src/app/majors/major-students/major-students.component.html b/epf-front-skeleton-main/src/app/majors/major-students/major-students.component.html index cd8c378..eaa1ff0 100644 --- a/epf-front-skeleton-main/src/app/majors/major-students/major-students.component.html +++ b/epf-front-skeleton-main/src/app/majors/major-students/major-students.component.html @@ -12,7 +12,8 @@ </thead> <tbody> <ng-container *ngIf="studentsFromMajor$ | async; let studentsFromMajor"> - <tr *ngFor="let student of (studentsFromMajor.students)"> + <h2 *ngIf="studentsFromMajor.length === 0">Aucun étudiant dans cette Majeure</h2> + <tr *ngFor="let student of (studentsFromMajor)"> <td>{{ student.firstName }}</td> <td>{{ student.lastName }}</td> <td>{{ student.birthdate | date : "dd/MM/yyyy" }}</td> diff --git a/epf-front-skeleton-main/src/app/majors/major-students/major-students.component.ts b/epf-front-skeleton-main/src/app/majors/major-students/major-students.component.ts index ffcb404..82c251f 100644 --- a/epf-front-skeleton-main/src/app/majors/major-students/major-students.component.ts +++ b/epf-front-skeleton-main/src/app/majors/major-students/major-students.component.ts @@ -2,6 +2,7 @@ import { Component, OnInit } from "@angular/core" import { map, Observable } from "rxjs" import { ActivatedRoute } from "@angular/router" import { MajorStudentsDto } from "../../models/dto/MajorStudentsDto" +import { Student } from "../../models/student.model" @Component({ selector: "epf-major-students", @@ -9,7 +10,7 @@ import { MajorStudentsDto } from "../../models/dto/MajorStudentsDto" styleUrls: ["./major-students.component.scss"], }) export class MajorStudentsComponent implements OnInit { - studentsFromMajor$: Observable<MajorStudentsDto> = this._route.data.pipe(map((data) => data["studentsFromMajor"])) + studentsFromMajor$: Observable<Student[]> = this._route.data.pipe(map((data) => data["studentsFromMajor"])) constructor(private _route: ActivatedRoute) { } diff --git a/epf-front-skeleton-main/src/app/majors/major-students/major-students.resolver.ts b/epf-front-skeleton-main/src/app/majors/major-students/major-students.resolver.ts index 83b3bd2..71c0844 100644 --- a/epf-front-skeleton-main/src/app/majors/major-students/major-students.resolver.ts +++ b/epf-front-skeleton-main/src/app/majors/major-students/major-students.resolver.ts @@ -2,16 +2,16 @@ import { Injectable } from "@angular/core" import { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from "@angular/router" import { Observable } from "rxjs" import { MajorService } from "../../services/major.service" -import { MajorStudentsDto } from "../../models/dto/MajorStudentsDto" +import { Student } from "../../models/student.model" @Injectable({ providedIn: "root", }) -export class MajorStudentsResolver implements Resolve<MajorStudentsDto> { +export class MajorStudentsResolver implements Resolve<Student[]> { constructor(private majorService: MajorService) { } - resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<MajorStudentsDto> { + resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<Student[]> { return this.majorService.findStudentsFromMajor(route.params["id"]) } } diff --git a/epf-front-skeleton-main/src/app/majors/majors.component.html b/epf-front-skeleton-main/src/app/majors/majors.component.html index ba79aa8..7c3a077 100644 --- a/epf-front-skeleton-main/src/app/majors/majors.component.html +++ b/epf-front-skeleton-main/src/app/majors/majors.component.html @@ -1,6 +1,5 @@ <div class="d-flex align-items-center"> <h1>Majors</h1> - <a mat-raised-button color="primary" routerLink="/major-details/new">New</a> </div> <table class="table table-hover"> <thead> diff --git a/epf-front-skeleton-main/src/app/services/constantsMock.service.ts b/epf-front-skeleton-main/src/app/services/constantsMock.service.ts index 05b709a..1561a1b 100644 --- a/epf-front-skeleton-main/src/app/services/constantsMock.service.ts +++ b/epf-front-skeleton-main/src/app/services/constantsMock.service.ts @@ -19,7 +19,7 @@ export class ConstantsMockService { private math: Course = {name: "Maths", hours: 30} private management: Course = {name: "Lean Management", hours: 30} - private min: Major = {name: "Ingéniérie du Numérique", description: "Des lignes de code partout !!", id: 1n, students: []} + private min: Major = {name: "Ingéniérie du Numérique", description: "Des lignes de code partout !!", id: 1n, students: []} private msm: Major = {name: "Structure & Matériaux", description: "Beaucoup de béton et des poutres (snif elle a été renomée)", id: 2n, students: []} private mae: Major = {name: "Aéronautique & Espace", description: "Vive le vent", id: 3n, students: []} diff --git a/epf-front-skeleton-main/src/app/services/major.service.ts b/epf-front-skeleton-main/src/app/services/major.service.ts index 87cafcb..8337b71 100644 --- a/epf-front-skeleton-main/src/app/services/major.service.ts +++ b/epf-front-skeleton-main/src/app/services/major.service.ts @@ -5,6 +5,7 @@ import { MajorStudentsDto } from "models/dto/MajorStudentsDto" import { MajorsAndCoursesDto } from "models/dto/majorsAndCoursesDto" import { ConstantsMockService } from "./constantsMock.service" import { HttpClient } from "@angular/common/http" +import { Student } from "../models/student.model" @Injectable({ providedIn: "root", @@ -23,11 +24,8 @@ export class MajorService { return this.http.get<Major[]>(this.majorUrl) } - findStudentsFromMajor(majorId: string): Observable<MajorStudentsDto> { - let major = this.findById(BigInt(majorId)) - return new Observable((observer) => - observer.next(new MajorStudentsDto(major!!, this.constantsMockService.students.filter(s => s.major === major))), - ) + findStudentsFromMajor(majorId: string): Observable<Student[]> { + return this.http.get<Student[]>(this.majorUrl + `/${majorId}/students`) } findById(id: bigint) { -- GitLab