mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-28 23:43:22 +00:00
fix: searchTerm inscription
This commit is contained in:
@ -88,6 +88,7 @@ class RegisterFormView(APIView):
|
||||
filter = request.GET.get('filter', '').strip()
|
||||
page_size = request.GET.get('page_size', None)
|
||||
establishment_id = request.GET.get('establishment_id', None)
|
||||
search = request.GET.get('search', '').strip() # <-- Ajout du paramètre search
|
||||
|
||||
# Gestion du page_size
|
||||
if page_size is not None:
|
||||
@ -113,7 +114,14 @@ class RegisterFormView(APIView):
|
||||
registerForms_List = None
|
||||
|
||||
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:
|
||||
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) => {
|
||||
if (data) {
|
||||
const { registerForms, count, page_size } = data;
|
||||
if (registerForms) {
|
||||
setRegistrationFormsDataCurrentYear(registerForms);
|
||||
}
|
||||
|
||||
const calculatedTotalPages =
|
||||
count === 0 ? count : Math.ceil(count / page_size);
|
||||
setTotalCurrentYear(count);
|
||||
@ -153,9 +152,8 @@ export default function Page({ params: { locale } }) {
|
||||
const registerFormNextYearDataHandler = (data) => {
|
||||
if (data) {
|
||||
const { registerForms, count, page_size } = data;
|
||||
if (registerForms) {
|
||||
setRegistrationFormsDataNextYear(registerForms);
|
||||
}
|
||||
|
||||
const calculatedTotalPages =
|
||||
count === 0 ? count : Math.ceil(count / page_size);
|
||||
setTotalNextYear(count);
|
||||
@ -173,9 +171,7 @@ export default function Page({ params: { locale } }) {
|
||||
const registerFormHistoricalDataHandler = (data) => {
|
||||
if (data) {
|
||||
const { registerForms, count, page_size } = data;
|
||||
if (registerForms) {
|
||||
setRegistrationFormsDataHistorical(registerForms);
|
||||
}
|
||||
|
||||
const calculatedTotalPages =
|
||||
count === 0 ? count : Math.ceil(count / page_size);
|
||||
@ -225,12 +221,11 @@ export default function Page({ params: { locale } }) {
|
||||
|
||||
fetchDataAndSetState();
|
||||
}
|
||||
}, [selectedEstablishmentId, reloadFetch, currentSchoolYearPage, searchTerm]);
|
||||
}, [selectedEstablishmentId, reloadFetch]);
|
||||
|
||||
useEffect(() => {
|
||||
if (selectedEstablishmentId) {
|
||||
const fetchDataAndSetState = () => {
|
||||
setIsLoading(true);
|
||||
fetchRegisterForms(
|
||||
selectedEstablishmentId,
|
||||
CURRENT_YEAR_FILTER,
|
||||
@ -247,7 +242,6 @@ export default function Page({ params: { locale } }) {
|
||||
.then(registerFormHistoricalDataHandler)
|
||||
.catch(requestErrorHandler);
|
||||
|
||||
setIsLoading(false);
|
||||
setReloadFetch(false);
|
||||
};
|
||||
|
||||
@ -256,7 +250,7 @@ export default function Page({ params: { locale } }) {
|
||||
}, 500); // Debounce la recherche
|
||||
return () => clearTimeout(timeoutId);
|
||||
}
|
||||
}, [searchTerm]);
|
||||
}, [searchTerm, selectedEstablishmentId, currentSchoolYearPage, itemsPerPage]);
|
||||
|
||||
/**
|
||||
* UseEffect to update page count of tab
|
||||
@ -705,7 +699,7 @@ export default function Page({ params: { locale } }) {
|
||||
];
|
||||
|
||||
let emptyMessage;
|
||||
if (activeTab === CURRENT_YEAR_FILTER) {
|
||||
if (activeTab === CURRENT_YEAR_FILTER && searchTerm === '') {
|
||||
emptyMessage = (
|
||||
<AlertMessage
|
||||
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."
|
||||
/>
|
||||
);
|
||||
} else if (activeTab === NEXT_YEAR_FILTER) {
|
||||
} else if (activeTab === NEXT_YEAR_FILTER && searchTerm === '') {
|
||||
emptyMessage = (
|
||||
<AlertMessage
|
||||
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."
|
||||
/>
|
||||
);
|
||||
} else if (activeTab === HISTORICAL_FILTER) {
|
||||
} else if (activeTab === HISTORICAL_FILTER && searchTerm === '') {
|
||||
emptyMessage = (
|
||||
<AlertMessage
|
||||
type="info"
|
||||
|
||||
Reference in New Issue
Block a user