mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-29 16:03:21 +00:00
feat: Champ de recherche de l'élève [#16]
This commit is contained in:
@ -16,9 +16,11 @@ import { useRouter } from 'next/navigation';
|
||||
import {
|
||||
fetchStudents,
|
||||
fetchStudentCompetencies,
|
||||
searchStudents,
|
||||
} from '@/app/actions/subscriptionAction';
|
||||
import { useEstablishment } from '@/context/EstablishmentContext';
|
||||
import { useClasses } from '@/context/ClassesContext';
|
||||
import StudentInput from '@/components/Grades/StudentInput';
|
||||
|
||||
export default function Page() {
|
||||
const router = useRouter();
|
||||
@ -147,7 +149,19 @@ export default function Page() {
|
||||
<h2 className="text-xl font-semibold mb-4">Sélectionner un élève</h2>
|
||||
<div className="flex flex-col sm:flex-row sm:items-end gap-4">
|
||||
<div className="flex-1">
|
||||
<SelectChoice
|
||||
<StudentInput
|
||||
label="Recherche élève"
|
||||
selectedStudent={
|
||||
students.find((s) => s.id === formData.selectedStudent) || null
|
||||
}
|
||||
setSelectedStudent={(student) =>
|
||||
handleChange('selectedStudent', student?.id || '')
|
||||
}
|
||||
searchStudents={searchStudents}
|
||||
establishmentId={selectedEstablishmentId}
|
||||
required
|
||||
/>
|
||||
{/* <SelectChoice
|
||||
name="selectedStudent"
|
||||
label="Élève"
|
||||
placeHolder="Sélectionnez un élève"
|
||||
@ -155,10 +169,12 @@ export default function Page() {
|
||||
callback={(e) => handleChange('selectedStudent', e.target.value)}
|
||||
choices={students.map((student) => ({
|
||||
value: student.id,
|
||||
label: `${student.last_name} ${student.first_name} - ${getNiveauLabel(student.level)} (${student.associated_class_name})`,
|
||||
label: `${student.last_name} ${student.first_name} - ${getNiveauLabel(
|
||||
student.level
|
||||
)} (${student.associated_class_name})`,
|
||||
}))}
|
||||
required
|
||||
/>
|
||||
/> */}
|
||||
</div>
|
||||
<Button
|
||||
text="Réaliser le bilan de compétences"
|
||||
|
||||
@ -5,6 +5,7 @@ import {
|
||||
BE_SUBSCRIPTION_LAST_GUARDIAN_ID_URL,
|
||||
BE_SUBSCRIPTION_ABSENCES_URL,
|
||||
BE_SUBSCRIPTION_STUDENT_COMPETENCIES_URL,
|
||||
BE_SUBSCRIPTION_SEARCH_STUDENTS_URL,
|
||||
} from '@/utils/Url';
|
||||
|
||||
import { CURRENT_YEAR_FILTER } from '@/utils/constants';
|
||||
@ -128,6 +129,18 @@ export const archiveRegisterForm = (id) => {
|
||||
.catch(errorHandler);
|
||||
};
|
||||
|
||||
export const searchStudents = (establishmentId, query) => {
|
||||
const url = `${BE_SUBSCRIPTION_SEARCH_STUDENTS_URL}/?establishment_id=${establishmentId}&q=${encodeURIComponent(query)}`;
|
||||
return fetch(url, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
})
|
||||
.then(requestResponseHandler)
|
||||
.catch(errorHandler);
|
||||
};
|
||||
|
||||
export const fetchStudents = (establishment, id = null, status = null) => {
|
||||
let url;
|
||||
if (id) {
|
||||
|
||||
Reference in New Issue
Block a user