diff --git a/swad_changelog.h b/swad_changelog.h index adec0560..99d83643 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -629,10 +629,11 @@ TODO: Emilce Barrera Mesa: Podr TODO: Emilce Barrera Mesa: Mis estudiantes presentan muchas dificultades a la hora de poner la foto porque la plataforma es muy exigente respecto al fondo de la imagen. */ -#define Log_PLATFORM_VERSION "SWAD 22.120.10 (2023-09-09)" +#define Log_PLATFORM_VERSION "SWAD 22.120.11 (2023-09-09)" #define CSS_FILE "swad22.120.4.css" #define JS_FILE "swad22.49.js" /* + Version 22.120.11:Sep 09, 2023 Code refactoring related to hidden-visible in exam sessions. (337594 lines) Version 22.120.10:Sep 09, 2023 Code refactoring related to hidden-visible in exams. (337604 lines) Version 22.120.9: Sep 09, 2023 Code refactoring related to hidden-visible in attendance. (337607 lines) Version 22.120.8: Sep 09, 2023 Code refactoring related to hidden-visible in assignments. (337610 lines) diff --git a/swad_exam_database.c b/swad_exam_database.c index ad4aa988..12b43515 100644 --- a/swad_exam_database.c +++ b/swad_exam_database.c @@ -1530,7 +1530,8 @@ void Exa_DB_ToggleVisResultsSesUsr (const struct ExaSes_Session *Session) /******************************** Hide a session *****************************/ /*****************************************************************************/ -void Exa_DB_HideUnhideSession (const struct ExaSes_Session *Session,bool Hide) +void Exa_DB_HideUnhideSession (const struct ExaSes_Session *Session, + HidVis_HiddenOrVisible_t HiddenOrVisible) { DB_QueryUPDATE ("can not hide exam sessions", "UPDATE exa_sessions," @@ -1540,8 +1541,8 @@ void Exa_DB_HideUnhideSession (const struct ExaSes_Session *Session,bool Hide) " AND exa_sessions.ExaCod=%ld" // Extra check " AND exa_sessions.ExaCod=exa_exams.ExaCod" " AND exa_exams.CrsCod=%ld", // Extra check - Hide ? 'Y' : - 'N', + HiddenOrVisible == HidVis_HIDDEN ? 'Y' : + 'N', Session->SesCod, Session->ExaCod, Gbl.Hierarchy.Crs.CrsCod); diff --git a/swad_exam_database.h b/swad_exam_database.h index 31008d33..fb4ab522 100644 --- a/swad_exam_database.h +++ b/swad_exam_database.h @@ -118,7 +118,8 @@ unsigned Exa_DB_GetSessions (MYSQL_RES **mysql_res,long ExaCod); unsigned Exa_DB_GetSessionDataByCod (MYSQL_RES **mysql_res,long SesCod); void Exa_DB_GetSessionTitle (long SesCod,char Title[ExaSes_MAX_BYTES_TITLE + 1]); void Exa_DB_ToggleVisResultsSesUsr (const struct ExaSes_Session *Session); -void Exa_DB_HideUnhideSession (const struct ExaSes_Session *Session,bool Hide); +void Exa_DB_HideUnhideSession (const struct ExaSes_Session *Session, + HidVis_HiddenOrVisible_t HiddenOrVisible); void Exa_DB_RemoveSessionFromAllTables (long SesCod); void Exa_DB_RemoveAllSessionsFromExam (long ExaCod); void Exa_DB_RemoveAllSessionsFromCrs (long CrsCod); diff --git a/swad_exam_session.c b/swad_exam_session.c index 5d91ce1a..f39afc6c 100644 --- a/swad_exam_session.c +++ b/swad_exam_session.c @@ -96,6 +96,8 @@ static void ExaSes_ListOneOrMoreSessionsResultTch (struct Exa_Exams *Exams, static void ExaSes_GetSessionDataFromRow (MYSQL_RES *mysql_res, struct ExaSes_Session *Session); +static void ExaSes_HideUnhideSession (HidVis_HiddenOrVisible_t HiddenOrVisible); + static void ExaSes_PutFormSession (struct ExaSes_Session *Session); static void ExaSes_ParsFormSession (void *Session); @@ -859,10 +861,20 @@ void ExaSes_RemoveSession (void) } /*****************************************************************************/ -/******************************** Hide a session *****************************/ +/*************************** Hide/unhide a session ***************************/ /*****************************************************************************/ void ExaSes_HideSession (void) + { + ExaSes_HideUnhideSession (HidVis_HIDDEN); + } + +void ExaSes_UnhideSession (void) + { + ExaSes_HideUnhideSession (HidVis_VISIBLE); + } + +static void ExaSes_HideUnhideSession (HidVis_HiddenOrVisible_t HiddenOrVisible) { struct Exa_Exams Exams; struct ExaSes_Session Session; @@ -880,36 +892,7 @@ void ExaSes_HideSession (void) Err_NoPermissionExit (); /***** Hide session *****/ - Exa_DB_HideUnhideSession (&Session,true); - - /***** Show current exam *****/ - Exa_ShowOnlyOneExam (&Exams,&Session, - false); // Do not put form for session - } - -/*****************************************************************************/ -/***************************** Unhide an session *****************************/ -/*****************************************************************************/ - -void ExaSes_UnhideSession (void) - { - struct Exa_Exams Exams; - struct ExaSes_Session Session; - - /***** Reset exams context *****/ - Exa_ResetExams (&Exams); - Exa_ResetExam (&Exams.Exam); - ExaSes_ResetSession (&Session); - - /***** Get and check parameters *****/ - ExaSes_GetAndCheckPars (&Exams,&Session); - - /***** Check if I can remove this exam session *****/ - if (!ExaSes_CheckIfICanEditThisSession (Session.UsrCod)) - Err_NoPermissionExit (); - - /***** Unhide session *****/ - Exa_DB_HideUnhideSession (&Session,false); + Exa_DB_HideUnhideSession (&Session,HiddenOrVisible); /***** Show current exam *****/ Exa_ShowOnlyOneExam (&Exams,&Session,