diff --git a/build.gradle b/build.gradle index 36226f9..92f3afb 100644 --- a/build.gradle +++ b/build.gradle @@ -14,10 +14,21 @@ repositories { dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' + implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' + implementation 'org.springframework.boot:spring-boot-devtools' + implementation 'nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect' + + implementation 'org.webjars:bootstrap:5.1.3' + implementation 'org.webjars:jquery:3.6.0' + implementation 'org.webjars:font-awesome:6.1.0' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'com.h2database:h2:2.1.210' + implementation 'org.hibernate.validator:hibernate-validator' + + implementation 'org.springdoc:springdoc-openapi-ui:1.6.5' + testImplementation 'org.springframework.boot:spring-boot-starter-test' } diff --git a/front/src/components/ReportStudentCategory.jsx b/front/src/components/ReportStudentCategory.jsx new file mode 100644 index 0000000..d496dc6 --- /dev/null +++ b/front/src/components/ReportStudentCategory.jsx @@ -0,0 +1,72 @@ +import DataService from '../services/DataService'; +import Student from '../models/Student'; +import Category from '../models/Category'; +import { useState, useEffect } from 'react'; +import Form from 'react-bootstrap/Form'; +import Button from 'react-bootstrap/Button'; +import DrivingSchool from '../models/DrivingSchool'; +import { Link} from "react-router-dom"; +export default function ReportStudentCategory(props) { + const headersEmp = [ + {name: 'surname', label: "Фамилия"}, + {name: 'name', label: "Имя"}, + {name: 'categoriesString', label: 'Категории'}, + {name: 'phoneNumber', label: "Номер телефона"}, + ]; + + + const url = "/student/category?cat=id" + const urlCat = '/category'; + + const [itemsCat, setItemsCat] = useState([]); + + const [itemsStud, setItemsStud] = useState([]); + + useEffect(() => { + loadItemsCtegories(); + }); + + function loadItemsCtegories() { + DataService.readAll(urlCat, (data) => new Category(data)) + .then(data => setItemsCat(data)); + } + + function loadItemsStudents(selectedCategory) { + DataService.readAll(url.replace("id", selectedCategory), (data) => new Student(data)) + .then(data => setItemsStud(data)); + } + + return
{header.label} | ) + } +Автошкола | +
---|---|
{item[header.name]} | ) + } +{item['drivingSchool'].name} | +
# | +ID | +Название | +Элементы управления | +
---|---|---|---|
+ | + | + |
+
+ Изменить
+
+
+
+ |
+
# | +ID | +Фамилия | +Имя | +Номер телефона | +Категории | ++ |
---|---|---|---|---|---|---|
+ | + | + | + | + | + | + Отчислить + Категории + | +
# | +ID | +Название | +Студенты | +Элементы управления | +
---|---|---|---|---|
+ | + | + | + |
+
+ Изменить
+
+
+
+ |
+
Название категории | +Количество студентов | +
---|---|
+ | + |
# | +ID | +Фамилия | +Имя | +Номер телефона | +Категории | +Элементы управления | +
---|---|---|---|---|---|---|
+ | + | + | + | + | + |
+
+
+ Изменить
+
+
+
+
+ |
+