diff --git a/back-skeleton/initdb/2_DEFAULT_ENTRIES.sql b/back-skeleton/initdb/2_DEFAULT_ENTRIES.sql index 321b728e0a2ed8dab2c7b00e9d6a898db1786cc2..1b1ea1b79674a7b56a5e43b179041796df54a193 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 cd8c378bf9d759ba0bb1b8afb038fdf9a17147c9..eaa1ff0d97c57817e5081b817545804f6a416464 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 ffcb4049312a927e32aaaa8a8df510cedb848cef..82c251f06ecdf7e1443c7d2e0d4dfe157d453d79 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 83b3bd26b87f951c3a6673aca6a517a0d26f10d2..71c08449811ca4549e09db1d403cdea76bfbef89 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 ba79aa86da69ced7b1b4a043eb71835dc0d4b131..7c3a077676811c626043bed354d254e9c5c03777 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 05b709a46289a3acb5f451128103bf2d739f7405..1561a1b51a2a4a6717ad984735f2f3d8e783c9f3 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 87cafcb4fa5d3bc8aeb4f571e743b5335b75294f..8337b71633ae0a7735007a6aa20f0990435a6486 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) {