fix: searchTerm inscription

This commit is contained in:
N3WT DE COMPET
2025-05-31 03:03:51 +02:00
parent 78d96f82f9
commit 8f0cf16f70
2 changed files with 19 additions and 17 deletions

View File

@ -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)

View File

@ -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);
}
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);
}
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);
}
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"