mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-29 07:53:23 +00:00
fix: searchTerm inscription
This commit is contained in:
@ -88,6 +88,7 @@ class RegisterFormView(APIView):
|
|||||||
filter = request.GET.get('filter', '').strip()
|
filter = request.GET.get('filter', '').strip()
|
||||||
page_size = request.GET.get('page_size', None)
|
page_size = request.GET.get('page_size', None)
|
||||||
establishment_id = request.GET.get('establishment_id', None)
|
establishment_id = request.GET.get('establishment_id', None)
|
||||||
|
search = request.GET.get('search', '').strip() # <-- Ajout du paramètre search
|
||||||
|
|
||||||
# Gestion du page_size
|
# Gestion du page_size
|
||||||
if page_size is not None:
|
if page_size is not None:
|
||||||
@ -113,7 +114,14 @@ class RegisterFormView(APIView):
|
|||||||
registerForms_List = None
|
registerForms_List = None
|
||||||
|
|
||||||
if registerForms_List:
|
if registerForms_List:
|
||||||
registerForms_List = registerForms_List.filter(establishment=establishment_id).order_by('-last_update')
|
registerForms_List = registerForms_List.filter(establishment=establishment_id)
|
||||||
|
# Ajout du filtre search sur le nom et prénom de l'élève
|
||||||
|
if search:
|
||||||
|
registerForms_List = registerForms_List.filter(
|
||||||
|
Q(student__first_name__icontains=search) |
|
||||||
|
Q(student__last_name__icontains=search)
|
||||||
|
)
|
||||||
|
registerForms_List = registerForms_List.order_by('-last_update')
|
||||||
|
|
||||||
if not registerForms_List:
|
if not registerForms_List:
|
||||||
return JsonResponse({'error': 'aucune donnée trouvée', 'count': 0}, safe=False)
|
return JsonResponse({'error': 'aucune donnée trouvée', 'count': 0}, safe=False)
|
||||||
|
|||||||
@ -133,9 +133,8 @@ export default function Page({ params: { locale } }) {
|
|||||||
const registerFormCurrrentYearDataHandler = (data) => {
|
const registerFormCurrrentYearDataHandler = (data) => {
|
||||||
if (data) {
|
if (data) {
|
||||||
const { registerForms, count, page_size } = data;
|
const { registerForms, count, page_size } = data;
|
||||||
if (registerForms) {
|
setRegistrationFormsDataCurrentYear(registerForms);
|
||||||
setRegistrationFormsDataCurrentYear(registerForms);
|
|
||||||
}
|
|
||||||
const calculatedTotalPages =
|
const calculatedTotalPages =
|
||||||
count === 0 ? count : Math.ceil(count / page_size);
|
count === 0 ? count : Math.ceil(count / page_size);
|
||||||
setTotalCurrentYear(count);
|
setTotalCurrentYear(count);
|
||||||
@ -153,9 +152,8 @@ export default function Page({ params: { locale } }) {
|
|||||||
const registerFormNextYearDataHandler = (data) => {
|
const registerFormNextYearDataHandler = (data) => {
|
||||||
if (data) {
|
if (data) {
|
||||||
const { registerForms, count, page_size } = data;
|
const { registerForms, count, page_size } = data;
|
||||||
if (registerForms) {
|
setRegistrationFormsDataNextYear(registerForms);
|
||||||
setRegistrationFormsDataNextYear(registerForms);
|
|
||||||
}
|
|
||||||
const calculatedTotalPages =
|
const calculatedTotalPages =
|
||||||
count === 0 ? count : Math.ceil(count / page_size);
|
count === 0 ? count : Math.ceil(count / page_size);
|
||||||
setTotalNextYear(count);
|
setTotalNextYear(count);
|
||||||
@ -173,9 +171,7 @@ export default function Page({ params: { locale } }) {
|
|||||||
const registerFormHistoricalDataHandler = (data) => {
|
const registerFormHistoricalDataHandler = (data) => {
|
||||||
if (data) {
|
if (data) {
|
||||||
const { registerForms, count, page_size } = data;
|
const { registerForms, count, page_size } = data;
|
||||||
if (registerForms) {
|
setRegistrationFormsDataHistorical(registerForms);
|
||||||
setRegistrationFormsDataHistorical(registerForms);
|
|
||||||
}
|
|
||||||
|
|
||||||
const calculatedTotalPages =
|
const calculatedTotalPages =
|
||||||
count === 0 ? count : Math.ceil(count / page_size);
|
count === 0 ? count : Math.ceil(count / page_size);
|
||||||
@ -225,12 +221,11 @@ export default function Page({ params: { locale } }) {
|
|||||||
|
|
||||||
fetchDataAndSetState();
|
fetchDataAndSetState();
|
||||||
}
|
}
|
||||||
}, [selectedEstablishmentId, reloadFetch, currentSchoolYearPage, searchTerm]);
|
}, [selectedEstablishmentId, reloadFetch]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (selectedEstablishmentId) {
|
if (selectedEstablishmentId) {
|
||||||
const fetchDataAndSetState = () => {
|
const fetchDataAndSetState = () => {
|
||||||
setIsLoading(true);
|
|
||||||
fetchRegisterForms(
|
fetchRegisterForms(
|
||||||
selectedEstablishmentId,
|
selectedEstablishmentId,
|
||||||
CURRENT_YEAR_FILTER,
|
CURRENT_YEAR_FILTER,
|
||||||
@ -247,7 +242,6 @@ export default function Page({ params: { locale } }) {
|
|||||||
.then(registerFormHistoricalDataHandler)
|
.then(registerFormHistoricalDataHandler)
|
||||||
.catch(requestErrorHandler);
|
.catch(requestErrorHandler);
|
||||||
|
|
||||||
setIsLoading(false);
|
|
||||||
setReloadFetch(false);
|
setReloadFetch(false);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -256,7 +250,7 @@ export default function Page({ params: { locale } }) {
|
|||||||
}, 500); // Debounce la recherche
|
}, 500); // Debounce la recherche
|
||||||
return () => clearTimeout(timeoutId);
|
return () => clearTimeout(timeoutId);
|
||||||
}
|
}
|
||||||
}, [searchTerm]);
|
}, [searchTerm, selectedEstablishmentId, currentSchoolYearPage, itemsPerPage]);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* UseEffect to update page count of tab
|
* UseEffect to update page count of tab
|
||||||
@ -705,7 +699,7 @@ export default function Page({ params: { locale } }) {
|
|||||||
];
|
];
|
||||||
|
|
||||||
let emptyMessage;
|
let emptyMessage;
|
||||||
if (activeTab === CURRENT_YEAR_FILTER) {
|
if (activeTab === CURRENT_YEAR_FILTER && searchTerm === '') {
|
||||||
emptyMessage = (
|
emptyMessage = (
|
||||||
<AlertMessage
|
<AlertMessage
|
||||||
type="warning"
|
type="warning"
|
||||||
@ -713,7 +707,7 @@ export default function Page({ params: { locale } }) {
|
|||||||
message="Veuillez procéder à la création d'un nouveau dossier d'inscription pour l'année scolaire en cours."
|
message="Veuillez procéder à la création d'un nouveau dossier d'inscription pour l'année scolaire en cours."
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
} else if (activeTab === NEXT_YEAR_FILTER) {
|
} else if (activeTab === NEXT_YEAR_FILTER && searchTerm === '') {
|
||||||
emptyMessage = (
|
emptyMessage = (
|
||||||
<AlertMessage
|
<AlertMessage
|
||||||
type="info"
|
type="info"
|
||||||
@ -721,7 +715,7 @@ export default function Page({ params: { locale } }) {
|
|||||||
message="Aucun dossier n'a encore été créé pour la prochaine année scolaire."
|
message="Aucun dossier n'a encore été créé pour la prochaine année scolaire."
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
} else if (activeTab === HISTORICAL_FILTER) {
|
} else if (activeTab === HISTORICAL_FILTER && searchTerm === '') {
|
||||||
emptyMessage = (
|
emptyMessage = (
|
||||||
<AlertMessage
|
<AlertMessage
|
||||||
type="info"
|
type="info"
|
||||||
|
|||||||
Reference in New Issue
Block a user