mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-29 07:53:23 +00:00
fix: calcul nombre de pages dans chaque tab
This commit is contained in:
@ -71,14 +71,20 @@ export default function Page({ params: { locale } }) {
|
||||
const currentSchoolYear = getCurrentSchoolYear(); // Exemple : "2024-2025"
|
||||
const nextSchoolYear = getNextSchoolYear(); // Exemple : "2025-2026"
|
||||
const historicalYears = getHistoricalYears();
|
||||
const [totalCurrentSchoolYearPages, setTotalCurrentSchoolYearPages] =
|
||||
useState(1);
|
||||
const [totalNextSchoolYearPages, setTotalNextSchoolYearPages] = useState(1);
|
||||
const [totalHistoricalPages, setTotalHistoricalPages] = useState(1);
|
||||
const [currentSchoolYearPage, setCurrentSchoolYearPage] = useState(1);
|
||||
const [currentSchoolNextYearPage, setCurrentSchoolNextYearPage] = useState(1);
|
||||
const [currentSchoolHistoricalYearPage, setCurrentSchoolHistoricalYearPage] =
|
||||
useState(1);
|
||||
const [searchTerm, setSearchTerm] = useState('');
|
||||
const [alertPage, setAlertPage] = useState(false);
|
||||
const [isLoading, setIsLoading] = useState(false);
|
||||
const [activeTab, setActiveTab] = useState('currentYear');
|
||||
const [currentPage, setCurrentPage] = useState(1);
|
||||
const [totalPages, setTotalPages] = useState(1);
|
||||
const [totalCurrentYear, setTotalCurrentYear] = useState(0);
|
||||
const [totalSubscribed, setTotalNextYear] = useState(0);
|
||||
const [totalNextYear, setTotalNextYear] = useState(0);
|
||||
const [totalHistorical, setTotalHistorical] = useState(0);
|
||||
const [itemsPerPage, setItemsPerPage] = useState(10); // Définir le nombre d'éléments par page
|
||||
|
||||
@ -131,7 +137,7 @@ export default function Page({ params: { locale } }) {
|
||||
* @param {Array} data.registerForms - The array of registration forms.
|
||||
* @param {number} data.count - The total count of registration forms.
|
||||
*/
|
||||
const registerFormPendingDataHandler = (data) => {
|
||||
const registerFormCurrrentYearDataHandler = (data) => {
|
||||
if (data) {
|
||||
const { registerForms, count, page_size } = data;
|
||||
if (registerForms) {
|
||||
@ -140,7 +146,7 @@ export default function Page({ params: { locale } }) {
|
||||
const calculatedTotalPages =
|
||||
count === 0 ? 1 : Math.ceil(count / page_size);
|
||||
setTotalCurrentYear(count);
|
||||
setTotalPages(calculatedTotalPages);
|
||||
setTotalCurrentSchoolYearPages(calculatedTotalPages);
|
||||
}
|
||||
};
|
||||
|
||||
@ -151,13 +157,16 @@ export default function Page({ params: { locale } }) {
|
||||
* @param {Array} data.registerForms - An array of registration forms.
|
||||
* @param {number} data.count - The total count of subscribed forms.
|
||||
*/
|
||||
const registerFormSubscribedDataHandler = (data) => {
|
||||
const registerFormNextYearDataHandler = (data) => {
|
||||
if (data) {
|
||||
const { registerForms, count, page_size } = data;
|
||||
setTotalNextYear(count);
|
||||
if (registerForms) {
|
||||
setRegistrationFormsDataNextYear(registerForms);
|
||||
}
|
||||
const calculatedTotalPages =
|
||||
count === 0 ? 1 : Math.ceil(count / page_size);
|
||||
setTotalNextYear(count);
|
||||
setTotalNextSchoolYearPages(calculatedTotalPages);
|
||||
}
|
||||
};
|
||||
|
||||
@ -168,14 +177,17 @@ export default function Page({ params: { locale } }) {
|
||||
* @param {Array} data.registerForms - The array of archived register forms.
|
||||
* @param {number} data.count - The total count of archived register forms.
|
||||
*/
|
||||
const registerFormArchivedDataHandler = (data) => {
|
||||
const registerFormHistoricalDataHandler = (data) => {
|
||||
if (data) {
|
||||
const { registerForms, count, page_size } = data;
|
||||
|
||||
setTotalHistorical(count);
|
||||
if (registerForms) {
|
||||
setRegistrationFormsDataHistorical(registerForms);
|
||||
}
|
||||
|
||||
const calculatedTotalPages =
|
||||
count === 0 ? 1 : Math.ceil(count / page_size);
|
||||
setTotalHistorical(count);
|
||||
setTotalHistoricalPages(calculatedTotalPages);
|
||||
}
|
||||
};
|
||||
|
||||
@ -187,11 +199,11 @@ export default function Page({ params: { locale } }) {
|
||||
fetchRegisterForms(
|
||||
selectedEstablishmentId,
|
||||
CURRENT_YEAR,
|
||||
currentPage,
|
||||
currentSchoolYearPage,
|
||||
itemsPerPage,
|
||||
searchTerm
|
||||
)
|
||||
.then(registerFormPendingDataHandler)
|
||||
.then(registerFormCurrrentYearDataHandler)
|
||||
.catch(requestErrorHandler),
|
||||
|
||||
fetchClasses(selectedEstablishmentId)
|
||||
@ -201,10 +213,10 @@ export default function Page({ params: { locale } }) {
|
||||
.catch(requestErrorHandler),
|
||||
|
||||
fetchRegisterForms(selectedEstablishmentId, NEXT_YEAR)
|
||||
.then(registerFormSubscribedDataHandler)
|
||||
.then(registerFormNextYearDataHandler)
|
||||
.catch(requestErrorHandler),
|
||||
fetchRegisterForms(selectedEstablishmentId, HISTORICAL)
|
||||
.then(registerFormArchivedDataHandler)
|
||||
.then(registerFormHistoricalDataHandler)
|
||||
.catch(requestErrorHandler),
|
||||
fetchProfiles()
|
||||
.then((data) => {
|
||||
@ -227,7 +239,7 @@ export default function Page({ params: { locale } }) {
|
||||
|
||||
fetchDataAndSetState();
|
||||
}
|
||||
}, [selectedEstablishmentId, reloadFetch, currentPage, searchTerm]);
|
||||
}, [selectedEstablishmentId, reloadFetch, currentSchoolYearPage, searchTerm]);
|
||||
|
||||
useEffect(() => {
|
||||
if (selectedEstablishmentId) {
|
||||
@ -236,17 +248,17 @@ export default function Page({ params: { locale } }) {
|
||||
fetchRegisterForms(
|
||||
selectedEstablishmentId,
|
||||
CURRENT_YEAR,
|
||||
currentPage,
|
||||
currentSchoolYearPage,
|
||||
itemsPerPage,
|
||||
searchTerm
|
||||
)
|
||||
.then(registerFormPendingDataHandler)
|
||||
.then(registerFormCurrrentYearDataHandler)
|
||||
.catch(requestErrorHandler);
|
||||
fetchRegisterForms(selectedEstablishmentId, NEXT_YEAR)
|
||||
.then(registerFormSubscribedDataHandler)
|
||||
.then(registerFormNextYearDataHandler)
|
||||
.catch(requestErrorHandler);
|
||||
fetchRegisterForms(selectedEstablishmentId, HISTORICAL)
|
||||
.then(registerFormArchivedDataHandler)
|
||||
.then(registerFormHistoricalDataHandler)
|
||||
.catch(requestErrorHandler);
|
||||
|
||||
setIsLoading(false);
|
||||
@ -265,13 +277,15 @@ export default function Page({ params: { locale } }) {
|
||||
*/
|
||||
useEffect(() => {
|
||||
if (activeTab === 'currentYear') {
|
||||
setTotalPages(Math.ceil(totalCurrentYear / itemsPerPage));
|
||||
setTotalCurrentSchoolYearPages(
|
||||
Math.ceil(totalCurrentYear / itemsPerPage)
|
||||
);
|
||||
} else if (activeTab === 'nextYear') {
|
||||
setTotalPages(Math.ceil(totalSubscribed / itemsPerPage));
|
||||
setTotalNextSchoolYearPages(Math.ceil(totalNextYear / itemsPerPage));
|
||||
} else if (activeTab === 'historical') {
|
||||
setTotalPages(Math.ceil(totalHistorical / itemsPerPage));
|
||||
setTotalHistoricalPages(Math.ceil(totalHistorical / itemsPerPage));
|
||||
}
|
||||
}, [currentPage]);
|
||||
}, [currentSchoolYearPage]);
|
||||
|
||||
const handleSepaFileUpload = (file, row) => {
|
||||
if (!file || !row) {
|
||||
@ -377,7 +391,7 @@ export default function Page({ params: { locale } }) {
|
||||
};
|
||||
|
||||
const handlePageChange = (newPage) => {
|
||||
setCurrentPage(newPage);
|
||||
setCurrentSchoolYearPage(newPage);
|
||||
};
|
||||
|
||||
const updateRF = (updatedData) => {
|
||||
@ -756,7 +770,7 @@ export default function Page({ params: { locale } }) {
|
||||
<>
|
||||
{nextSchoolYear}
|
||||
<span className="ml-2 text-sm text-gray-400">
|
||||
({totalSubscribed})
|
||||
({totalNextYear})
|
||||
</span>
|
||||
</>
|
||||
}
|
||||
@ -813,7 +827,7 @@ export default function Page({ params: { locale } }) {
|
||||
<div className="w-full">
|
||||
<DjangoCSRFToken csrfToken={csrfToken} />
|
||||
<Table
|
||||
key={`${currentPage}-${searchTerm}`}
|
||||
key={`${currentSchoolYearPage}-${searchTerm}`}
|
||||
data={
|
||||
activeTab === 'currentYear'
|
||||
? registrationFormsDataCurrentYear
|
||||
@ -823,8 +837,20 @@ export default function Page({ params: { locale } }) {
|
||||
}
|
||||
columns={columns}
|
||||
itemsPerPage={itemsPerPage}
|
||||
currentPage={currentPage}
|
||||
totalPages={totalPages}
|
||||
currentPage={
|
||||
activeTab === 'currentYear'
|
||||
? currentSchoolYearPage
|
||||
: activeTab === 'nextYear'
|
||||
? currentSchoolNextYearPage
|
||||
: currentSchoolHistoricalYearPage
|
||||
}
|
||||
totalPages={
|
||||
activeTab === 'currentYear'
|
||||
? totalCurrentSchoolYearPages
|
||||
: activeTab === 'nextYear'
|
||||
? totalNextSchoolYearPages
|
||||
: totalHistoricalPages
|
||||
}
|
||||
onPageChange={handlePageChange}
|
||||
/>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user