diff --git a/swad_action.c b/swad_action.c index f6851e59e..c3d8daa8d 100644 --- a/swad_action.c +++ b/swad_action.c @@ -693,13 +693,13 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] = [ActSeeMyExaEvtResCrs] = {1867,-1,TabUnk,ActSeeAllExa ,0x208,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaRes_ShowMyExaResultsInCrs ,NULL}, [ActSeeMyExaEvtResExa] = {1868,-1,TabUnk,ActSeeAllExa ,0x208,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaRes_ShowMyExaResultsInExa ,NULL}, - [ActSeeMyExaEvtResEvt] = {1869,-1,TabUnk,ActSeeAllExa ,0x208,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaRes_ShowMyExaResultsInEvt ,NULL}, + [ActSeeMyExaEvtResEvt] = {1869,-1,TabUnk,ActSeeAllExa ,0x208,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaRes_ShowMyExaResultsInSes ,NULL}, [ActSeeOneExaEvtResMe] = {1870,-1,TabUnk,ActSeeAllExa ,0x208,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaRes_ShowOneExaResult ,NULL}, [ActReqSeeAllExaEvtRes] = {1871,-1,TabUnk,ActSeeAllExa ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaRes_SelUsrsToViewExaResults ,NULL}, [ActSeeAllExaEvtResCrs] = {1872,-1,TabUnk,ActSeeAllExa ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaRes_ShowAllExaResultsInCrs ,NULL}, [ActSeeAllExaEvtResExa] = {1873,-1,TabUnk,ActSeeAllExa ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaRes_ShowAllExaResultsInExa ,NULL}, - [ActSeeAllExaEvtResEvt] = {1874,-1,TabUnk,ActSeeAllExa ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaRes_ShowAllExaResultsInEvt ,NULL}, + [ActSeeAllExaEvtResEvt] = {1874,-1,TabUnk,ActSeeAllExa ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaRes_ShowAllExaResultsInSes ,NULL}, [ActSeeOneExaEvtResOth] = {1875,-1,TabUnk,ActSeeAllExa ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaRes_ShowOneExaResult ,NULL}, [ActChgVisResExaEvtUsr] = {1876,-1,TabUnk,ActSeeAllExa ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaSes_ToggleVisResultsSesUsr ,NULL}, @@ -730,7 +730,6 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] = [ActSeeExaPrn ] = {1904,-1,TabUnk,ActSeeAllExa ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaPrn_ShowExamPrint ,NULL}, [ActAnsExaPrn ] = {1906,-1,TabUnk,ActSeeAllExa ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_AJAX_RFRESH,NULL ,ExaPrn_ReceivePrintAnswer ,NULL}, - [ActEndExaPrn ] = {1905,-1,TabUnk,ActSeeAllExa ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaPrn_EndPrintAnswer ,NULL}, [ActSeeGam ] = {1650,-1,TabUnk,ActSeeAllGam ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Gam_SeeOneGame ,NULL}, @@ -3714,7 +3713,7 @@ Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD] = // Do not reuse un ActEdiOneExaEvt, // #1902 ActChgExaEvt, // #1903 ActSeeExaPrn, // #1904 - ActEndExaPrn, // #1905 + -1, // #1905 (obsolete action) ActAnsExaPrn, // #1906 ActEdiTag, // #1907 }; diff --git a/swad_action.h b/swad_action.h index 577f4cdf0..968b5352d 100644 --- a/swad_action.h +++ b/swad_action.h @@ -695,83 +695,82 @@ typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to #define ActSeeExaPrn (ActChgCrsTT1stDay + 164) #define ActAnsExaPrn (ActChgCrsTT1stDay + 165) -#define ActEndExaPrn (ActChgCrsTT1stDay + 166) -#define ActSeeGam (ActChgCrsTT1stDay + 167) -#define ActReqRemMch (ActChgCrsTT1stDay + 168) -#define ActRemMch (ActChgCrsTT1stDay + 169) -#define ActReqNewMch (ActChgCrsTT1stDay + 170) -#define ActNewMch (ActChgCrsTT1stDay + 171) -#define ActResMch (ActChgCrsTT1stDay + 172) -#define ActBckMch (ActChgCrsTT1stDay + 173) -#define ActPlyPauMch (ActChgCrsTT1stDay + 174) -#define ActFwdMch (ActChgCrsTT1stDay + 175) -#define ActChgNumColMch (ActChgCrsTT1stDay + 176) -#define ActChgVisResMchQst (ActChgCrsTT1stDay + 177) -#define ActMchCntDwn (ActChgCrsTT1stDay + 178) -#define ActRefMchTch (ActChgCrsTT1stDay + 179) +#define ActSeeGam (ActChgCrsTT1stDay + 166) +#define ActReqRemMch (ActChgCrsTT1stDay + 167) +#define ActRemMch (ActChgCrsTT1stDay + 168) +#define ActReqNewMch (ActChgCrsTT1stDay + 169) +#define ActNewMch (ActChgCrsTT1stDay + 170) +#define ActResMch (ActChgCrsTT1stDay + 171) +#define ActBckMch (ActChgCrsTT1stDay + 172) +#define ActPlyPauMch (ActChgCrsTT1stDay + 173) +#define ActFwdMch (ActChgCrsTT1stDay + 174) +#define ActChgNumColMch (ActChgCrsTT1stDay + 175) +#define ActChgVisResMchQst (ActChgCrsTT1stDay + 176) +#define ActMchCntDwn (ActChgCrsTT1stDay + 177) +#define ActRefMchTch (ActChgCrsTT1stDay + 178) -#define ActJoiMch (ActChgCrsTT1stDay + 180) -#define ActSeeMchAnsQstStd (ActChgCrsTT1stDay + 181) -#define ActRemMchAnsQstStd (ActChgCrsTT1stDay + 182) -#define ActAnsMchQstStd (ActChgCrsTT1stDay + 183) -#define ActRefMchStd (ActChgCrsTT1stDay + 184) +#define ActJoiMch (ActChgCrsTT1stDay + 179) +#define ActSeeMchAnsQstStd (ActChgCrsTT1stDay + 180) +#define ActRemMchAnsQstStd (ActChgCrsTT1stDay + 181) +#define ActAnsMchQstStd (ActChgCrsTT1stDay + 182) +#define ActRefMchStd (ActChgCrsTT1stDay + 183) -#define ActSeeMyMchResCrs (ActChgCrsTT1stDay + 185) -#define ActSeeMyMchResGam (ActChgCrsTT1stDay + 186) -#define ActSeeMyMchResMch (ActChgCrsTT1stDay + 187) -#define ActSeeOneMchResMe (ActChgCrsTT1stDay + 188) +#define ActSeeMyMchResCrs (ActChgCrsTT1stDay + 184) +#define ActSeeMyMchResGam (ActChgCrsTT1stDay + 185) +#define ActSeeMyMchResMch (ActChgCrsTT1stDay + 186) +#define ActSeeOneMchResMe (ActChgCrsTT1stDay + 187) -#define ActReqSeeAllMchRes (ActChgCrsTT1stDay + 189) -#define ActSeeAllMchResCrs (ActChgCrsTT1stDay + 190) -#define ActSeeAllMchResGam (ActChgCrsTT1stDay + 191) -#define ActSeeAllMchResMch (ActChgCrsTT1stDay + 192) -#define ActSeeOneMchResOth (ActChgCrsTT1stDay + 193) +#define ActReqSeeAllMchRes (ActChgCrsTT1stDay + 188) +#define ActSeeAllMchResCrs (ActChgCrsTT1stDay + 189) +#define ActSeeAllMchResGam (ActChgCrsTT1stDay + 190) +#define ActSeeAllMchResMch (ActChgCrsTT1stDay + 191) +#define ActSeeOneMchResOth (ActChgCrsTT1stDay + 192) -#define ActChgVisResMchUsr (ActChgCrsTT1stDay + 194) +#define ActChgVisResMchUsr (ActChgCrsTT1stDay + 193) -#define ActFrmNewGam (ActChgCrsTT1stDay + 195) -#define ActEdiOneGam (ActChgCrsTT1stDay + 196) -#define ActNewGam (ActChgCrsTT1stDay + 197) -#define ActChgGam (ActChgCrsTT1stDay + 198) -#define ActReqRemGam (ActChgCrsTT1stDay + 199) -#define ActRemGam (ActChgCrsTT1stDay + 200) -#define ActHidGam (ActChgCrsTT1stDay + 201) -#define ActShoGam (ActChgCrsTT1stDay + 202) -#define ActAddOneGamQst (ActChgCrsTT1stDay + 203) -#define ActGamLstTstQst (ActChgCrsTT1stDay + 204) -#define ActAddTstQstToGam (ActChgCrsTT1stDay + 205) -#define ActReqRemGamQst (ActChgCrsTT1stDay + 206) -#define ActRemGamQst (ActChgCrsTT1stDay + 207) -#define ActUp_GamQst (ActChgCrsTT1stDay + 208) -#define ActDwnGamQst (ActChgCrsTT1stDay + 209) +#define ActFrmNewGam (ActChgCrsTT1stDay + 194) +#define ActEdiOneGam (ActChgCrsTT1stDay + 195) +#define ActNewGam (ActChgCrsTT1stDay + 196) +#define ActChgGam (ActChgCrsTT1stDay + 197) +#define ActReqRemGam (ActChgCrsTT1stDay + 198) +#define ActRemGam (ActChgCrsTT1stDay + 199) +#define ActHidGam (ActChgCrsTT1stDay + 200) +#define ActShoGam (ActChgCrsTT1stDay + 201) +#define ActAddOneGamQst (ActChgCrsTT1stDay + 202) +#define ActGamLstTstQst (ActChgCrsTT1stDay + 203) +#define ActAddTstQstToGam (ActChgCrsTT1stDay + 204) +#define ActReqRemGamQst (ActChgCrsTT1stDay + 205) +#define ActRemGamQst (ActChgCrsTT1stDay + 206) +#define ActUp_GamQst (ActChgCrsTT1stDay + 207) +#define ActDwnGamQst (ActChgCrsTT1stDay + 208) -#define ActSeeSvy (ActChgCrsTT1stDay + 210) -#define ActAnsSvy (ActChgCrsTT1stDay + 211) -#define ActFrmNewSvy (ActChgCrsTT1stDay + 212) -#define ActEdiOneSvy (ActChgCrsTT1stDay + 213) -#define ActNewSvy (ActChgCrsTT1stDay + 214) -#define ActChgSvy (ActChgCrsTT1stDay + 215) -#define ActReqRemSvy (ActChgCrsTT1stDay + 216) -#define ActRemSvy (ActChgCrsTT1stDay + 217) -#define ActReqRstSvy (ActChgCrsTT1stDay + 218) -#define ActRstSvy (ActChgCrsTT1stDay + 219) -#define ActHidSvy (ActChgCrsTT1stDay + 220) -#define ActShoSvy (ActChgCrsTT1stDay + 221) -#define ActEdiOneSvyQst (ActChgCrsTT1stDay + 222) -#define ActRcvSvyQst (ActChgCrsTT1stDay + 223) -#define ActReqRemSvyQst (ActChgCrsTT1stDay + 224) -#define ActRemSvyQst (ActChgCrsTT1stDay + 225) +#define ActSeeSvy (ActChgCrsTT1stDay + 209) +#define ActAnsSvy (ActChgCrsTT1stDay + 210) +#define ActFrmNewSvy (ActChgCrsTT1stDay + 211) +#define ActEdiOneSvy (ActChgCrsTT1stDay + 212) +#define ActNewSvy (ActChgCrsTT1stDay + 213) +#define ActChgSvy (ActChgCrsTT1stDay + 214) +#define ActReqRemSvy (ActChgCrsTT1stDay + 215) +#define ActRemSvy (ActChgCrsTT1stDay + 216) +#define ActReqRstSvy (ActChgCrsTT1stDay + 217) +#define ActRstSvy (ActChgCrsTT1stDay + 218) +#define ActHidSvy (ActChgCrsTT1stDay + 219) +#define ActShoSvy (ActChgCrsTT1stDay + 220) +#define ActEdiOneSvyQst (ActChgCrsTT1stDay + 221) +#define ActRcvSvyQst (ActChgCrsTT1stDay + 222) +#define ActReqRemSvyQst (ActChgCrsTT1stDay + 223) +#define ActRemSvyQst (ActChgCrsTT1stDay + 224) -#define ActSeeOneExaAnn (ActChgCrsTT1stDay + 226) -#define ActSeeDatExaAnn (ActChgCrsTT1stDay + 227) -#define ActEdiExaAnn (ActChgCrsTT1stDay + 228) -#define ActRcvExaAnn (ActChgCrsTT1stDay + 229) -#define ActPrnExaAnn (ActChgCrsTT1stDay + 230) -#define ActReqRemExaAnn (ActChgCrsTT1stDay + 231) -#define ActRemExaAnn (ActChgCrsTT1stDay + 232) -#define ActHidExaAnn (ActChgCrsTT1stDay + 233) -#define ActShoExaAnn (ActChgCrsTT1stDay + 234) +#define ActSeeOneExaAnn (ActChgCrsTT1stDay + 225) +#define ActSeeDatExaAnn (ActChgCrsTT1stDay + 226) +#define ActEdiExaAnn (ActChgCrsTT1stDay + 227) +#define ActRcvExaAnn (ActChgCrsTT1stDay + 228) +#define ActPrnExaAnn (ActChgCrsTT1stDay + 229) +#define ActReqRemExaAnn (ActChgCrsTT1stDay + 230) +#define ActRemExaAnn (ActChgCrsTT1stDay + 231) +#define ActHidExaAnn (ActChgCrsTT1stDay + 232) +#define ActShoExaAnn (ActChgCrsTT1stDay + 233) /*****************************************************************************/ /******************************** Files tab **********************************/ diff --git a/swad_changelog.h b/swad_changelog.h index 8558d7d9f..3a753e586 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -557,13 +557,14 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - * En OpenSWAD: ps2pdf source.ps destination.pdf */ -#define Log_PLATFORM_VERSION "SWAD 19.235.1 (2020-05-17)" +#define Log_PLATFORM_VERSION "SWAD 19.235.2 (2020-05-17)" #define CSS_FILE "swad19.230.1.css" #define JS_FILE "swad19.230.3.js" /* TODO: Comprobar si el directorio público que devuelve Ses_GetPublicDirFromCache sigue existiendo. // Si no existe, hay que crear un nuevo directorio y meterlo en cache + Version 19.235.2: May 17, 2020 Changes in exam prints. (301216 lines) Version 19.235.1: May 17, 2020 Changes in edition of bank of questions. (301193 lines) Version 19.235: May 17, 2020 New module swad_tag for question tags. (301147 lines) Version 19.234: May 17, 2020 Option to edit tags in bank of questions. (301061 lines) diff --git a/swad_exam_print.c b/swad_exam_print.c index 5263730e0..2f066504d 100644 --- a/swad_exam_print.c +++ b/swad_exam_print.c @@ -75,13 +75,14 @@ static void ExaPrn_GenerateChoiceIndexes (struct TstPrn_PrintedQuestion *Printed bool Shuffle); static void ExaPrn_CreatePrintInDB (struct ExaPrn_Print *Print); -static void ExaPrn_ShowExamPrintToFillIt (const char *Title, - struct ExaPrn_Print *Print); -static void ExaPrn_ShowTableWithQstsToFill (struct ExaPrn_Print *Print); -static void ExaPrn_WriteQstAndAnsToFill (struct ExaPrn_Print *Print, +static void ExaPrn_ShowExamPrintToFillIt (struct Exa_Exams *Exams, + const struct Exa_Exam *Exam, + const struct ExaPrn_Print *Print); +static void ExaPrn_ShowTableWithQstsToFill (const struct ExaPrn_Print *Print); +static void ExaPrn_WriteQstAndAnsToFill (const struct ExaPrn_Print *Print, unsigned NumQst, const struct Tst_Question *Question); -static void ExaPrn_WriteAnswersToFill (struct ExaPrn_Print *Print, +static void ExaPrn_WriteAnswersToFill (const struct ExaPrn_Print *Print, unsigned NumQst, const struct Tst_Question *Question); static void ExaPrn_WriteIntAnsToFill (const struct ExaPrn_Print *Print, @@ -90,7 +91,7 @@ static void ExaPrn_WriteFloatAnsToFill (const struct ExaPrn_Print *Print, unsigned NumQst); static void ExaPrn_WriteTFAnsToFill (const struct ExaPrn_Print *Print, unsigned NumQst); -static void ExaPrn_WriteChoiceAnsToFill (struct ExaPrn_Print *Print, +static void ExaPrn_WriteChoiceAnsToFill (const struct ExaPrn_Print *Print, unsigned NumQst, const struct Tst_Question *Question); static void ExaPrn_WriteTextAnsToFill (const struct ExaPrn_Print *Print, @@ -162,6 +163,7 @@ static void ExaPrn_ResetPrintExceptEvtCodAndUsrCod (struct ExaPrn_Print *Print) void ExaPrn_ShowExamPrint (void) { + extern const char *Txt_You_dont_have_access_to_the_exam; struct Exa_Exams Exams; struct Exa_Exam Exam; struct ExaSes_Session Session; @@ -201,10 +203,10 @@ void ExaPrn_ShowExamPrint (void) } /***** Show test exam to be answered *****/ - ExaPrn_ShowExamPrintToFillIt (Exam.Title,&Print); + ExaPrn_ShowExamPrintToFillIt (&Exams,&Exam,&Print); } else - Ale_ShowAlert (Ale_INFO,"Usted no tiene acceso al examen."); // TODO: Need translation!!!! + Ale_ShowAlert (Ale_INFO,Txt_You_dont_have_access_to_the_exam); } /*****************************************************************************/ @@ -564,13 +566,15 @@ void ExaPrn_GetPrintQuestionsFromDB (struct ExaPrn_Print *Print) /******************** Show an exam print to be answered **********************/ /*****************************************************************************/ -static void ExaPrn_ShowExamPrintToFillIt (const char *Title, - struct ExaPrn_Print *Print) +static void ExaPrn_ShowExamPrintToFillIt (struct Exa_Exams *Exams, + const struct Exa_Exam *Exam, + const struct ExaPrn_Print *Print) { extern const char *Hlp_ASSESSMENT_Exams; + extern const char *Txt_I_have_finished; /***** Begin box *****/ - Box_BoxBegin (NULL,Title, + Box_BoxBegin (NULL,Exam->Title, NULL,NULL, Hlp_ASSESSMENT_Exams,Box_NOT_CLOSABLE); Lay_WriteHeaderClassPhoto (false,false, @@ -586,9 +590,9 @@ static void ExaPrn_ShowExamPrintToFillIt (const char *Title, HTM_DIV_End (); // Used for AJAX based refresh /***** Form to end/close this exam print *****/ - Frm_StartForm (ActEndExaPrn); - // ExaSes_PutParamSesCod (Print->SesCod); - Btn_PutCreateButton ("He terminado"); // TODO: Need translations!!! + Frm_StartForm (ActSeeOneExaEvtResMe); + ExaSes_PutParamsEdit (Exams); + Btn_PutCreateButton (Txt_I_have_finished); Frm_EndForm (); } @@ -600,7 +604,7 @@ static void ExaPrn_ShowExamPrintToFillIt (const char *Title, /********* Show the main part (table) of an exam print to be answered ********/ /*****************************************************************************/ -static void ExaPrn_ShowTableWithQstsToFill (struct ExaPrn_Print *Print) +static void ExaPrn_ShowTableWithQstsToFill (const struct ExaPrn_Print *Print) { unsigned NumQst; struct Tst_Question Question; @@ -635,7 +639,7 @@ static void ExaPrn_ShowTableWithQstsToFill (struct ExaPrn_Print *Print) /********** Write a row of a test, with one question and its answer **********/ /*****************************************************************************/ -static void ExaPrn_WriteQstAndAnsToFill (struct ExaPrn_Print *Print, +static void ExaPrn_WriteQstAndAnsToFill (const struct ExaPrn_Print *Print, unsigned NumQst, const struct Tst_Question *Question) { @@ -697,7 +701,7 @@ static void ExaPrn_WriteQstAndAnsToFill (struct ExaPrn_Print *Print, /***************** Write answers of a question to fill them ******************/ /*****************************************************************************/ -static void ExaPrn_WriteAnswersToFill (struct ExaPrn_Print *Print, +static void ExaPrn_WriteAnswersToFill (const struct ExaPrn_Print *Print, unsigned NumQst, const struct Tst_Question *Question) { @@ -807,7 +811,7 @@ static void ExaPrn_WriteTFAnsToFill (const struct ExaPrn_Print *Print, /******** Write single or multiple choice answer when seeing a test **********/ /*****************************************************************************/ -static void ExaPrn_WriteChoiceAnsToFill (struct ExaPrn_Print *Print, +static void ExaPrn_WriteChoiceAnsToFill (const struct ExaPrn_Print *Print, unsigned NumQst, const struct Tst_Question *Question) { @@ -908,6 +912,7 @@ static void ExaPrn_WriteTextAnsToFill (const struct ExaPrn_Print *Print, void ExaPrn_ReceivePrintAnswer (void) { + extern const char *Txt_You_dont_have_access_to_the_exam; struct ExaPrn_Print Print; unsigned NumQst; @@ -945,7 +950,7 @@ void ExaPrn_ReceivePrintAnswer (void) ExaPrn_ShowTableWithQstsToFill (&Print); } else - Ale_ShowAlert (Ale_INFO,"Usted no tiene acceso al examen."); // TODO: Need translation!!!! + Ale_ShowAlert (Ale_INFO,Txt_You_dont_have_access_to_the_exam); } /*****************************************************************************/ @@ -1404,6 +1409,9 @@ static void ExaPrn_UpdatePrintInDB (const struct ExaPrn_Print *Print) void ExaPrn_EndPrintAnswer (void) { Ale_ShowAlert (Ale_INFO,"Terminar de contestar el examen."); + + + } /*****************************************************************************/ diff --git a/swad_exam_result.c b/swad_exam_result.c index f010a16bd..d3b7c5777 100644 --- a/swad_exam_result.c +++ b/swad_exam_result.c @@ -211,10 +211,10 @@ static void ExaRes_ListMySesResultsInExa (struct Exa_Exams *Exams,long ExaCod) } /*****************************************************************************/ -/***************** Show my sessions results in a given session ******************/ +/****************** Show my exam results in a given session ******************/ /*****************************************************************************/ -void ExaRes_ShowMyExaResultsInEvt (void) +void ExaRes_ShowMyExaResultsInSes (void) { extern const char *Txt_Results_of_session_X; struct Exa_Exams Exams; @@ -459,7 +459,7 @@ static void ExaRes_ListAllSesResultsInExa (struct Exa_Exams *Exams,long ExaCod) /** Show sessions results of a session for the users who answered in that session */ /*****************************************************************************/ -void ExaRes_ShowAllExaResultsInEvt (void) +void ExaRes_ShowAllExaResultsInSes (void) { extern const char *Txt_Results_of_session_X; struct Exa_Exams Exams; diff --git a/swad_exam_result.h b/swad_exam_result.h index cd0c6f74c..90af0ce6e 100644 --- a/swad_exam_result.h +++ b/swad_exam_result.h @@ -42,12 +42,12 @@ void ExaRes_ShowMyExaResultsInCrs (void); void ExaRes_ShowMyExaResultsInExa (void); -void ExaRes_ShowMyExaResultsInEvt (void); +void ExaRes_ShowMyExaResultsInSes (void); void ExaRes_ShowAllExaResultsInCrs (void); void ExaRes_SelUsrsToViewExaResults (void); void ExaRes_ShowAllExaResultsInExa (void); -void ExaRes_ShowAllExaResultsInEvt (void); +void ExaRes_ShowAllExaResultsInSes (void); void ExaRes_ShowOneExaResult (void); diff --git a/swad_exam_session.c b/swad_exam_session.c index 283cac532..0d8f0ca0e 100644 --- a/swad_exam_session.c +++ b/swad_exam_session.c @@ -110,8 +110,6 @@ static void ExaSes_RemoveSessionsInExamFromTable (long ExaCod,const char *TableN static void ExaSes_RemoveSessionInCourseFromTable (long CrsCod,const char *TableName); static void ExaSes_RemoveUsrSesResultsInCrs (long UsrCod,long CrsCod,const char *TableName); -static void ExaSes_PutParamSesCod (long SesCod); - static void ExaSes_PutFormSession (const struct ExaSes_Session *Session); static void ExaSes_ShowLstGrpsToCreateSession (long SesCod); @@ -1154,7 +1152,7 @@ void ExaSes_PutParamsEdit (void *Exams) /**************** Write parameter with code of exam session ******************/ /*****************************************************************************/ -static void ExaSes_PutParamSesCod (long SesCod) +void ExaSes_PutParamSesCod (long SesCod) { Par_PutHiddenParamLong (NULL,"SesCod",SesCod); } diff --git a/swad_exam_session.h b/swad_exam_session.h index aa2eaf3fc..d36fa34ad 100644 --- a/swad_exam_session.h +++ b/swad_exam_session.h @@ -70,6 +70,7 @@ void ExaSes_HideSession (void); void ExaSes_UnhideSession (void); void ExaSes_PutParamsEdit (void *Exams); +void ExaSes_PutParamSesCod (long SesCod); void ExaSes_GetAndCheckParameters (struct Exa_Exams *Exams, struct Exa_Exam *Exam, struct ExaSes_Session *Session); diff --git a/swad_text.c b/swad_text.c index 4adc571ee..8da7a79d6 100644 --- a/swad_text.c +++ b/swad_text.c @@ -15813,6 +15813,27 @@ const char *Txt_I_understand_that_this_action_can_not_be_undone = "Eu entendo que esta ação não pode ser desfeita."; #endif +const char *Txt_I_have_finished = +#if L==1 // ca + "He acabat"; +#elif L==2 // de + "Ich bin fertig"; +#elif L==3 // en + "I have finished"; +#elif L==4 // es + "He terminado"; +#elif L==5 // fr + "J'ai fini"; +#elif L==6 // gn + "He terminado"; // Okoteve traducción +#elif L==7 // it + "Ho finito"; +#elif L==8 // pl + "Skończyłem"; +#elif L==9 // pt + "Acabei"; +#endif + const char *Txt_Icons = #if L==1 // ca "Icones"; @@ -57866,6 +57887,27 @@ const char *Txt_You_dont_follow_any_user = "Você não segue nenhum usuário."; #endif +const char *Txt_You_dont_have_access_to_the_exam = +#if L==1 // ca + "No té accés a l'examen."; +#elif L==2 // de + "Sie haben keinen Zugang zur Prüfung."; +#elif L==3 // en + "You don't have access to the exam."; +#elif L==4 // es + "No tiene acceso al examen."; +#elif L==5 // fr + "Vous n'avez pas accès à l'examen."; +#elif L==6 // gn + "No tiene acceso al examen."; // Okoteve traducción +#elif L==7 // it + "Non hai accesso all'esame."; +#elif L==8 // pl + "Nie masz dostępu do egzaminu."; +#elif L==9 // pt + "Você não tem acesso ao exame."; +#endif + const char *Txt_You_dont_have_permission_to_perform_this_action = #if L==1 // ca "Vostè no té permís" diff --git a/swad_text_action.c b/swad_text_action.c index bd6bafbc0..1f7ee05eb 100644 --- a/swad_text_action.c +++ b/swad_text_action.c @@ -10959,27 +10959,6 @@ const char *Txt_Actions[Act_NUM_ACTIONS] = "" // Potrzebujesz tlumaczenie #elif L==9 // pt "" // Precisa de tradução -#endif - , - [ActEndExaPrn] = -#if L==1 // ca - "" // Necessita traducció -#elif L==2 // de - "" // Need Übersetzung -#elif L==3 // en - "End exam print" -#elif L==4 // es - "Finalizar impresión de examen" -#elif L==5 // fr - "" // Besoin de traduction -#elif L==6 // gn - "" // Okoteve traducción -#elif L==7 // it - "" // Bisogno di traduzione -#elif L==8 // pl - "" // Potrzebujesz tlumaczenie -#elif L==9 // pt - "" // Precisa de tradução #endif , [ActSeeGam] =