feat: Configuration des compétences par cycle [#16]

This commit is contained in:
N3WT DE COMPET
2025-05-18 00:45:49 +02:00
parent 2888f8dcce
commit 4e5aab6db7
29 changed files with 1001 additions and 82 deletions

View File

@ -557,13 +557,13 @@ export default function Page() {
/>
{/* Popups */}
<Popup
visible={popupVisible}
isOpen={popupVisible}
message={popupMessage}
onConfirm={() => setPopupVisible(false)}
uniqueConfirmButton={true}
/>
<Popup
visible={confirmPopupVisible}
isOpen={confirmPopupVisible}
message={confirmPopupMessage}
onConfirm={confirmPopupOnConfirm}
onCancel={() => setConfirmPopupVisible(false)}

View File

@ -182,7 +182,7 @@ export default function Layout({ children }) {
<Footer softwareName={softwareName} softwareVersion={softwareVersion} />
<Popup
visible={isPopupVisible}
isOpen={isPopupVisible}
message="Êtes-vous sûr(e) de vouloir vous déconnecter ?"
onConfirm={confirmDisconnect}
onCancel={() => setIsPopupVisible(false)}

View File

@ -548,7 +548,7 @@ export default function Page() {
{/* Popup */}
<Popup
visible={popupVisible}
isOpen={popupVisible}
message={popupMessage}
onConfirm={() => setPopupVisible(false)}
onCancel={() => setPopupVisible(false)}

View File

@ -22,6 +22,7 @@ import {
fetchTuitionPaymentPlans,
fetchRegistrationPaymentModes,
fetchTuitionPaymentModes,
fetchEstablishmentCompetencies,
} from '@/app/actions/schoolAction';
import { fetchProfiles } from '@/app/actions/authAction';
import SidebarTabs from '@/components/SidebarTabs';
@ -30,6 +31,7 @@ import { fetchRegistrationSchoolFileMasters } from '@/app/actions/registerFileGr
import logger from '@/utils/logger';
import { useEstablishment } from '@/context/EstablishmentContext';
import { PlanningProvider, PlanningModes } from '@/context/PlanningContext';
import CompetenciesList from '@/components/Structure/Competencies/CompetenciesList';
export default function Page() {
const [specialities, setSpecialities] = useState([]);
@ -45,6 +47,9 @@ export default function Page() {
const [registrationPaymentModes, setRegistrationPaymentModes] = useState([]);
const [tuitionPaymentModes, setTuitionPaymentModes] = useState([]);
const [profiles, setProfiles] = useState([]);
const [establishmentCompetencies, setEstablishmentCompetencies] = useState(
[]
);
const csrfToken = useCsrfToken();
const { selectedEstablishmentId } = useEstablishment();
@ -98,9 +103,22 @@ export default function Page() {
.catch((error) => {
logger.error('Error fetching profileRoles:', error);
});
// Fetch data for establishment competencies
handleEstablishmentCompetencies();
}
}, [selectedEstablishmentId]);
const handleEstablishmentCompetencies = (cycle = 1) => {
fetchEstablishmentCompetencies(selectedEstablishmentId, cycle)
.then((data) => {
setEstablishmentCompetencies(data);
})
.catch((error) =>
logger.error('Error fetching setEstablishmentCompetencies:', error)
);
};
const handleSpecialities = () => {
fetchSpecialities(selectedEstablishmentId)
.then((data) => {
@ -339,6 +357,18 @@ export default function Page() {
</div>
),
},
{
id: 'Competencies',
label: 'Compétences',
content: (
<div className="h-full overflow-y-auto p-4">
<CompetenciesList
establishmentCompetencies={establishmentCompetencies}
onChangeCycle={handleEstablishmentCompetencies}
/>
</div>
),
},
];
return (

View File

@ -837,13 +837,13 @@ export default function Page({ params: { locale } }) {
) : null}
</div>
<Popup
visible={popupVisible}
isOpen={popupVisible}
message={popupMessage}
onConfirm={() => setPopupVisible(false)}
uniqueConfirmButton={true}
/>
<Popup
visible={confirmPopupVisible}
isOpen={confirmPopupVisible}
message={confirmPopupMessage}
onConfirm={confirmPopupOnConfirm}
onCancel={() => setConfirmPopupVisible(false)}

View File

@ -113,7 +113,7 @@ export default function Page() {
</div>
</div>
<Popup
visible={popupVisible}
isOpen={popupVisible}
message={popupMessage}
onConfirm={popupConfirmAction}
onCancel={() => setPopupVisible(false)}