mirror of https://github.com/acanas/swad-core.git
Version19.235.2
This commit is contained in:
parent
b44885a767
commit
7c87e9f456
|
@ -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},
|
[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},
|
[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},
|
[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},
|
[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},
|
[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},
|
[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},
|
[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},
|
[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},
|
[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},
|
[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},
|
[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
|
ActEdiOneExaEvt, // #1902
|
||||||
ActChgExaEvt, // #1903
|
ActChgExaEvt, // #1903
|
||||||
ActSeeExaPrn, // #1904
|
ActSeeExaPrn, // #1904
|
||||||
ActEndExaPrn, // #1905
|
-1, // #1905 (obsolete action)
|
||||||
ActAnsExaPrn, // #1906
|
ActAnsExaPrn, // #1906
|
||||||
ActEdiTag, // #1907
|
ActEdiTag, // #1907
|
||||||
};
|
};
|
||||||
|
|
137
swad_action.h
137
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 ActSeeExaPrn (ActChgCrsTT1stDay + 164)
|
||||||
#define ActAnsExaPrn (ActChgCrsTT1stDay + 165)
|
#define ActAnsExaPrn (ActChgCrsTT1stDay + 165)
|
||||||
#define ActEndExaPrn (ActChgCrsTT1stDay + 166)
|
|
||||||
|
|
||||||
#define ActSeeGam (ActChgCrsTT1stDay + 167)
|
#define ActSeeGam (ActChgCrsTT1stDay + 166)
|
||||||
#define ActReqRemMch (ActChgCrsTT1stDay + 168)
|
#define ActReqRemMch (ActChgCrsTT1stDay + 167)
|
||||||
#define ActRemMch (ActChgCrsTT1stDay + 169)
|
#define ActRemMch (ActChgCrsTT1stDay + 168)
|
||||||
#define ActReqNewMch (ActChgCrsTT1stDay + 170)
|
#define ActReqNewMch (ActChgCrsTT1stDay + 169)
|
||||||
#define ActNewMch (ActChgCrsTT1stDay + 171)
|
#define ActNewMch (ActChgCrsTT1stDay + 170)
|
||||||
#define ActResMch (ActChgCrsTT1stDay + 172)
|
#define ActResMch (ActChgCrsTT1stDay + 171)
|
||||||
#define ActBckMch (ActChgCrsTT1stDay + 173)
|
#define ActBckMch (ActChgCrsTT1stDay + 172)
|
||||||
#define ActPlyPauMch (ActChgCrsTT1stDay + 174)
|
#define ActPlyPauMch (ActChgCrsTT1stDay + 173)
|
||||||
#define ActFwdMch (ActChgCrsTT1stDay + 175)
|
#define ActFwdMch (ActChgCrsTT1stDay + 174)
|
||||||
#define ActChgNumColMch (ActChgCrsTT1stDay + 176)
|
#define ActChgNumColMch (ActChgCrsTT1stDay + 175)
|
||||||
#define ActChgVisResMchQst (ActChgCrsTT1stDay + 177)
|
#define ActChgVisResMchQst (ActChgCrsTT1stDay + 176)
|
||||||
#define ActMchCntDwn (ActChgCrsTT1stDay + 178)
|
#define ActMchCntDwn (ActChgCrsTT1stDay + 177)
|
||||||
#define ActRefMchTch (ActChgCrsTT1stDay + 179)
|
#define ActRefMchTch (ActChgCrsTT1stDay + 178)
|
||||||
|
|
||||||
#define ActJoiMch (ActChgCrsTT1stDay + 180)
|
#define ActJoiMch (ActChgCrsTT1stDay + 179)
|
||||||
#define ActSeeMchAnsQstStd (ActChgCrsTT1stDay + 181)
|
#define ActSeeMchAnsQstStd (ActChgCrsTT1stDay + 180)
|
||||||
#define ActRemMchAnsQstStd (ActChgCrsTT1stDay + 182)
|
#define ActRemMchAnsQstStd (ActChgCrsTT1stDay + 181)
|
||||||
#define ActAnsMchQstStd (ActChgCrsTT1stDay + 183)
|
#define ActAnsMchQstStd (ActChgCrsTT1stDay + 182)
|
||||||
#define ActRefMchStd (ActChgCrsTT1stDay + 184)
|
#define ActRefMchStd (ActChgCrsTT1stDay + 183)
|
||||||
|
|
||||||
#define ActSeeMyMchResCrs (ActChgCrsTT1stDay + 185)
|
#define ActSeeMyMchResCrs (ActChgCrsTT1stDay + 184)
|
||||||
#define ActSeeMyMchResGam (ActChgCrsTT1stDay + 186)
|
#define ActSeeMyMchResGam (ActChgCrsTT1stDay + 185)
|
||||||
#define ActSeeMyMchResMch (ActChgCrsTT1stDay + 187)
|
#define ActSeeMyMchResMch (ActChgCrsTT1stDay + 186)
|
||||||
#define ActSeeOneMchResMe (ActChgCrsTT1stDay + 188)
|
#define ActSeeOneMchResMe (ActChgCrsTT1stDay + 187)
|
||||||
|
|
||||||
#define ActReqSeeAllMchRes (ActChgCrsTT1stDay + 189)
|
#define ActReqSeeAllMchRes (ActChgCrsTT1stDay + 188)
|
||||||
#define ActSeeAllMchResCrs (ActChgCrsTT1stDay + 190)
|
#define ActSeeAllMchResCrs (ActChgCrsTT1stDay + 189)
|
||||||
#define ActSeeAllMchResGam (ActChgCrsTT1stDay + 191)
|
#define ActSeeAllMchResGam (ActChgCrsTT1stDay + 190)
|
||||||
#define ActSeeAllMchResMch (ActChgCrsTT1stDay + 192)
|
#define ActSeeAllMchResMch (ActChgCrsTT1stDay + 191)
|
||||||
#define ActSeeOneMchResOth (ActChgCrsTT1stDay + 193)
|
#define ActSeeOneMchResOth (ActChgCrsTT1stDay + 192)
|
||||||
|
|
||||||
#define ActChgVisResMchUsr (ActChgCrsTT1stDay + 194)
|
#define ActChgVisResMchUsr (ActChgCrsTT1stDay + 193)
|
||||||
|
|
||||||
#define ActFrmNewGam (ActChgCrsTT1stDay + 195)
|
#define ActFrmNewGam (ActChgCrsTT1stDay + 194)
|
||||||
#define ActEdiOneGam (ActChgCrsTT1stDay + 196)
|
#define ActEdiOneGam (ActChgCrsTT1stDay + 195)
|
||||||
#define ActNewGam (ActChgCrsTT1stDay + 197)
|
#define ActNewGam (ActChgCrsTT1stDay + 196)
|
||||||
#define ActChgGam (ActChgCrsTT1stDay + 198)
|
#define ActChgGam (ActChgCrsTT1stDay + 197)
|
||||||
#define ActReqRemGam (ActChgCrsTT1stDay + 199)
|
#define ActReqRemGam (ActChgCrsTT1stDay + 198)
|
||||||
#define ActRemGam (ActChgCrsTT1stDay + 200)
|
#define ActRemGam (ActChgCrsTT1stDay + 199)
|
||||||
#define ActHidGam (ActChgCrsTT1stDay + 201)
|
#define ActHidGam (ActChgCrsTT1stDay + 200)
|
||||||
#define ActShoGam (ActChgCrsTT1stDay + 202)
|
#define ActShoGam (ActChgCrsTT1stDay + 201)
|
||||||
#define ActAddOneGamQst (ActChgCrsTT1stDay + 203)
|
#define ActAddOneGamQst (ActChgCrsTT1stDay + 202)
|
||||||
#define ActGamLstTstQst (ActChgCrsTT1stDay + 204)
|
#define ActGamLstTstQst (ActChgCrsTT1stDay + 203)
|
||||||
#define ActAddTstQstToGam (ActChgCrsTT1stDay + 205)
|
#define ActAddTstQstToGam (ActChgCrsTT1stDay + 204)
|
||||||
#define ActReqRemGamQst (ActChgCrsTT1stDay + 206)
|
#define ActReqRemGamQst (ActChgCrsTT1stDay + 205)
|
||||||
#define ActRemGamQst (ActChgCrsTT1stDay + 207)
|
#define ActRemGamQst (ActChgCrsTT1stDay + 206)
|
||||||
#define ActUp_GamQst (ActChgCrsTT1stDay + 208)
|
#define ActUp_GamQst (ActChgCrsTT1stDay + 207)
|
||||||
#define ActDwnGamQst (ActChgCrsTT1stDay + 209)
|
#define ActDwnGamQst (ActChgCrsTT1stDay + 208)
|
||||||
|
|
||||||
#define ActSeeSvy (ActChgCrsTT1stDay + 210)
|
#define ActSeeSvy (ActChgCrsTT1stDay + 209)
|
||||||
#define ActAnsSvy (ActChgCrsTT1stDay + 211)
|
#define ActAnsSvy (ActChgCrsTT1stDay + 210)
|
||||||
#define ActFrmNewSvy (ActChgCrsTT1stDay + 212)
|
#define ActFrmNewSvy (ActChgCrsTT1stDay + 211)
|
||||||
#define ActEdiOneSvy (ActChgCrsTT1stDay + 213)
|
#define ActEdiOneSvy (ActChgCrsTT1stDay + 212)
|
||||||
#define ActNewSvy (ActChgCrsTT1stDay + 214)
|
#define ActNewSvy (ActChgCrsTT1stDay + 213)
|
||||||
#define ActChgSvy (ActChgCrsTT1stDay + 215)
|
#define ActChgSvy (ActChgCrsTT1stDay + 214)
|
||||||
#define ActReqRemSvy (ActChgCrsTT1stDay + 216)
|
#define ActReqRemSvy (ActChgCrsTT1stDay + 215)
|
||||||
#define ActRemSvy (ActChgCrsTT1stDay + 217)
|
#define ActRemSvy (ActChgCrsTT1stDay + 216)
|
||||||
#define ActReqRstSvy (ActChgCrsTT1stDay + 218)
|
#define ActReqRstSvy (ActChgCrsTT1stDay + 217)
|
||||||
#define ActRstSvy (ActChgCrsTT1stDay + 219)
|
#define ActRstSvy (ActChgCrsTT1stDay + 218)
|
||||||
#define ActHidSvy (ActChgCrsTT1stDay + 220)
|
#define ActHidSvy (ActChgCrsTT1stDay + 219)
|
||||||
#define ActShoSvy (ActChgCrsTT1stDay + 221)
|
#define ActShoSvy (ActChgCrsTT1stDay + 220)
|
||||||
#define ActEdiOneSvyQst (ActChgCrsTT1stDay + 222)
|
#define ActEdiOneSvyQst (ActChgCrsTT1stDay + 221)
|
||||||
#define ActRcvSvyQst (ActChgCrsTT1stDay + 223)
|
#define ActRcvSvyQst (ActChgCrsTT1stDay + 222)
|
||||||
#define ActReqRemSvyQst (ActChgCrsTT1stDay + 224)
|
#define ActReqRemSvyQst (ActChgCrsTT1stDay + 223)
|
||||||
#define ActRemSvyQst (ActChgCrsTT1stDay + 225)
|
#define ActRemSvyQst (ActChgCrsTT1stDay + 224)
|
||||||
|
|
||||||
#define ActSeeOneExaAnn (ActChgCrsTT1stDay + 226)
|
#define ActSeeOneExaAnn (ActChgCrsTT1stDay + 225)
|
||||||
#define ActSeeDatExaAnn (ActChgCrsTT1stDay + 227)
|
#define ActSeeDatExaAnn (ActChgCrsTT1stDay + 226)
|
||||||
#define ActEdiExaAnn (ActChgCrsTT1stDay + 228)
|
#define ActEdiExaAnn (ActChgCrsTT1stDay + 227)
|
||||||
#define ActRcvExaAnn (ActChgCrsTT1stDay + 229)
|
#define ActRcvExaAnn (ActChgCrsTT1stDay + 228)
|
||||||
#define ActPrnExaAnn (ActChgCrsTT1stDay + 230)
|
#define ActPrnExaAnn (ActChgCrsTT1stDay + 229)
|
||||||
#define ActReqRemExaAnn (ActChgCrsTT1stDay + 231)
|
#define ActReqRemExaAnn (ActChgCrsTT1stDay + 230)
|
||||||
#define ActRemExaAnn (ActChgCrsTT1stDay + 232)
|
#define ActRemExaAnn (ActChgCrsTT1stDay + 231)
|
||||||
#define ActHidExaAnn (ActChgCrsTT1stDay + 233)
|
#define ActHidExaAnn (ActChgCrsTT1stDay + 232)
|
||||||
#define ActShoExaAnn (ActChgCrsTT1stDay + 234)
|
#define ActShoExaAnn (ActChgCrsTT1stDay + 233)
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/******************************** Files tab **********************************/
|
/******************************** Files tab **********************************/
|
||||||
|
|
|
@ -557,13 +557,14 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - *
|
||||||
En OpenSWAD:
|
En OpenSWAD:
|
||||||
ps2pdf source.ps destination.pdf
|
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 CSS_FILE "swad19.230.1.css"
|
||||||
#define JS_FILE "swad19.230.3.js"
|
#define JS_FILE "swad19.230.3.js"
|
||||||
/*
|
/*
|
||||||
TODO: Comprobar si el directorio público que devuelve Ses_GetPublicDirFromCache sigue existiendo.
|
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
|
// 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.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.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)
|
Version 19.234: May 17, 2020 Option to edit tags in bank of questions. (301061 lines)
|
||||||
|
|
|
@ -75,13 +75,14 @@ static void ExaPrn_GenerateChoiceIndexes (struct TstPrn_PrintedQuestion *Printed
|
||||||
bool Shuffle);
|
bool Shuffle);
|
||||||
static void ExaPrn_CreatePrintInDB (struct ExaPrn_Print *Print);
|
static void ExaPrn_CreatePrintInDB (struct ExaPrn_Print *Print);
|
||||||
|
|
||||||
static void ExaPrn_ShowExamPrintToFillIt (const char *Title,
|
static void ExaPrn_ShowExamPrintToFillIt (struct Exa_Exams *Exams,
|
||||||
struct ExaPrn_Print *Print);
|
const struct Exa_Exam *Exam,
|
||||||
static void ExaPrn_ShowTableWithQstsToFill (struct ExaPrn_Print *Print);
|
const struct ExaPrn_Print *Print);
|
||||||
static void ExaPrn_WriteQstAndAnsToFill (struct ExaPrn_Print *Print,
|
static void ExaPrn_ShowTableWithQstsToFill (const struct ExaPrn_Print *Print);
|
||||||
|
static void ExaPrn_WriteQstAndAnsToFill (const struct ExaPrn_Print *Print,
|
||||||
unsigned NumQst,
|
unsigned NumQst,
|
||||||
const struct Tst_Question *Question);
|
const struct Tst_Question *Question);
|
||||||
static void ExaPrn_WriteAnswersToFill (struct ExaPrn_Print *Print,
|
static void ExaPrn_WriteAnswersToFill (const struct ExaPrn_Print *Print,
|
||||||
unsigned NumQst,
|
unsigned NumQst,
|
||||||
const struct Tst_Question *Question);
|
const struct Tst_Question *Question);
|
||||||
static void ExaPrn_WriteIntAnsToFill (const struct ExaPrn_Print *Print,
|
static void ExaPrn_WriteIntAnsToFill (const struct ExaPrn_Print *Print,
|
||||||
|
@ -90,7 +91,7 @@ static void ExaPrn_WriteFloatAnsToFill (const struct ExaPrn_Print *Print,
|
||||||
unsigned NumQst);
|
unsigned NumQst);
|
||||||
static void ExaPrn_WriteTFAnsToFill (const struct ExaPrn_Print *Print,
|
static void ExaPrn_WriteTFAnsToFill (const struct ExaPrn_Print *Print,
|
||||||
unsigned NumQst);
|
unsigned NumQst);
|
||||||
static void ExaPrn_WriteChoiceAnsToFill (struct ExaPrn_Print *Print,
|
static void ExaPrn_WriteChoiceAnsToFill (const struct ExaPrn_Print *Print,
|
||||||
unsigned NumQst,
|
unsigned NumQst,
|
||||||
const struct Tst_Question *Question);
|
const struct Tst_Question *Question);
|
||||||
static void ExaPrn_WriteTextAnsToFill (const struct ExaPrn_Print *Print,
|
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)
|
void ExaPrn_ShowExamPrint (void)
|
||||||
{
|
{
|
||||||
|
extern const char *Txt_You_dont_have_access_to_the_exam;
|
||||||
struct Exa_Exams Exams;
|
struct Exa_Exams Exams;
|
||||||
struct Exa_Exam Exam;
|
struct Exa_Exam Exam;
|
||||||
struct ExaSes_Session Session;
|
struct ExaSes_Session Session;
|
||||||
|
@ -201,10 +203,10 @@ void ExaPrn_ShowExamPrint (void)
|
||||||
}
|
}
|
||||||
|
|
||||||
/***** Show test exam to be answered *****/
|
/***** Show test exam to be answered *****/
|
||||||
ExaPrn_ShowExamPrintToFillIt (Exam.Title,&Print);
|
ExaPrn_ShowExamPrintToFillIt (&Exams,&Exam,&Print);
|
||||||
}
|
}
|
||||||
else
|
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 **********************/
|
/******************** Show an exam print to be answered **********************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
static void ExaPrn_ShowExamPrintToFillIt (const char *Title,
|
static void ExaPrn_ShowExamPrintToFillIt (struct Exa_Exams *Exams,
|
||||||
struct ExaPrn_Print *Print)
|
const struct Exa_Exam *Exam,
|
||||||
|
const struct ExaPrn_Print *Print)
|
||||||
{
|
{
|
||||||
extern const char *Hlp_ASSESSMENT_Exams;
|
extern const char *Hlp_ASSESSMENT_Exams;
|
||||||
|
extern const char *Txt_I_have_finished;
|
||||||
|
|
||||||
/***** Begin box *****/
|
/***** Begin box *****/
|
||||||
Box_BoxBegin (NULL,Title,
|
Box_BoxBegin (NULL,Exam->Title,
|
||||||
NULL,NULL,
|
NULL,NULL,
|
||||||
Hlp_ASSESSMENT_Exams,Box_NOT_CLOSABLE);
|
Hlp_ASSESSMENT_Exams,Box_NOT_CLOSABLE);
|
||||||
Lay_WriteHeaderClassPhoto (false,false,
|
Lay_WriteHeaderClassPhoto (false,false,
|
||||||
|
@ -586,9 +590,9 @@ static void ExaPrn_ShowExamPrintToFillIt (const char *Title,
|
||||||
HTM_DIV_End (); // Used for AJAX based refresh
|
HTM_DIV_End (); // Used for AJAX based refresh
|
||||||
|
|
||||||
/***** Form to end/close this exam print *****/
|
/***** Form to end/close this exam print *****/
|
||||||
Frm_StartForm (ActEndExaPrn);
|
Frm_StartForm (ActSeeOneExaEvtResMe);
|
||||||
// ExaSes_PutParamSesCod (Print->SesCod);
|
ExaSes_PutParamsEdit (Exams);
|
||||||
Btn_PutCreateButton ("He terminado"); // TODO: Need translations!!!
|
Btn_PutCreateButton (Txt_I_have_finished);
|
||||||
Frm_EndForm ();
|
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 ********/
|
/********* 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;
|
unsigned NumQst;
|
||||||
struct Tst_Question Question;
|
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 **********/
|
/********** 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,
|
unsigned NumQst,
|
||||||
const struct Tst_Question *Question)
|
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 ******************/
|
/***************** 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,
|
unsigned NumQst,
|
||||||
const struct Tst_Question *Question)
|
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 **********/
|
/******** 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,
|
unsigned NumQst,
|
||||||
const struct Tst_Question *Question)
|
const struct Tst_Question *Question)
|
||||||
{
|
{
|
||||||
|
@ -908,6 +912,7 @@ static void ExaPrn_WriteTextAnsToFill (const struct ExaPrn_Print *Print,
|
||||||
|
|
||||||
void ExaPrn_ReceivePrintAnswer (void)
|
void ExaPrn_ReceivePrintAnswer (void)
|
||||||
{
|
{
|
||||||
|
extern const char *Txt_You_dont_have_access_to_the_exam;
|
||||||
struct ExaPrn_Print Print;
|
struct ExaPrn_Print Print;
|
||||||
unsigned NumQst;
|
unsigned NumQst;
|
||||||
|
|
||||||
|
@ -945,7 +950,7 @@ void ExaPrn_ReceivePrintAnswer (void)
|
||||||
ExaPrn_ShowTableWithQstsToFill (&Print);
|
ExaPrn_ShowTableWithQstsToFill (&Print);
|
||||||
}
|
}
|
||||||
else
|
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)
|
void ExaPrn_EndPrintAnswer (void)
|
||||||
{
|
{
|
||||||
Ale_ShowAlert (Ale_INFO,"Terminar de contestar el examen.");
|
Ale_ShowAlert (Ale_INFO,"Terminar de contestar el examen.");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
|
@ -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;
|
extern const char *Txt_Results_of_session_X;
|
||||||
struct Exa_Exams Exams;
|
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 */
|
/** 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;
|
extern const char *Txt_Results_of_session_X;
|
||||||
struct Exa_Exams Exams;
|
struct Exa_Exams Exams;
|
||||||
|
|
|
@ -42,12 +42,12 @@
|
||||||
|
|
||||||
void ExaRes_ShowMyExaResultsInCrs (void);
|
void ExaRes_ShowMyExaResultsInCrs (void);
|
||||||
void ExaRes_ShowMyExaResultsInExa (void);
|
void ExaRes_ShowMyExaResultsInExa (void);
|
||||||
void ExaRes_ShowMyExaResultsInEvt (void);
|
void ExaRes_ShowMyExaResultsInSes (void);
|
||||||
|
|
||||||
void ExaRes_ShowAllExaResultsInCrs (void);
|
void ExaRes_ShowAllExaResultsInCrs (void);
|
||||||
void ExaRes_SelUsrsToViewExaResults (void);
|
void ExaRes_SelUsrsToViewExaResults (void);
|
||||||
void ExaRes_ShowAllExaResultsInExa (void);
|
void ExaRes_ShowAllExaResultsInExa (void);
|
||||||
void ExaRes_ShowAllExaResultsInEvt (void);
|
void ExaRes_ShowAllExaResultsInSes (void);
|
||||||
|
|
||||||
void ExaRes_ShowOneExaResult (void);
|
void ExaRes_ShowOneExaResult (void);
|
||||||
|
|
||||||
|
|
|
@ -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_RemoveSessionInCourseFromTable (long CrsCod,const char *TableName);
|
||||||
static void ExaSes_RemoveUsrSesResultsInCrs (long UsrCod,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_PutFormSession (const struct ExaSes_Session *Session);
|
||||||
static void ExaSes_ShowLstGrpsToCreateSession (long SesCod);
|
static void ExaSes_ShowLstGrpsToCreateSession (long SesCod);
|
||||||
|
|
||||||
|
@ -1154,7 +1152,7 @@ void ExaSes_PutParamsEdit (void *Exams)
|
||||||
/**************** Write parameter with code of exam session ******************/
|
/**************** Write parameter with code of exam session ******************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
static void ExaSes_PutParamSesCod (long SesCod)
|
void ExaSes_PutParamSesCod (long SesCod)
|
||||||
{
|
{
|
||||||
Par_PutHiddenParamLong (NULL,"SesCod",SesCod);
|
Par_PutHiddenParamLong (NULL,"SesCod",SesCod);
|
||||||
}
|
}
|
||||||
|
|
|
@ -70,6 +70,7 @@ void ExaSes_HideSession (void);
|
||||||
void ExaSes_UnhideSession (void);
|
void ExaSes_UnhideSession (void);
|
||||||
|
|
||||||
void ExaSes_PutParamsEdit (void *Exams);
|
void ExaSes_PutParamsEdit (void *Exams);
|
||||||
|
void ExaSes_PutParamSesCod (long SesCod);
|
||||||
void ExaSes_GetAndCheckParameters (struct Exa_Exams *Exams,
|
void ExaSes_GetAndCheckParameters (struct Exa_Exams *Exams,
|
||||||
struct Exa_Exam *Exam,
|
struct Exa_Exam *Exam,
|
||||||
struct ExaSes_Session *Session);
|
struct ExaSes_Session *Session);
|
||||||
|
|
42
swad_text.c
42
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.";
|
"Eu entendo que esta ação não pode ser desfeita.";
|
||||||
#endif
|
#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 =
|
const char *Txt_Icons =
|
||||||
#if L==1 // ca
|
#if L==1 // ca
|
||||||
"Icones";
|
"Icones";
|
||||||
|
@ -57866,6 +57887,27 @@ const char *Txt_You_dont_follow_any_user =
|
||||||
"Você não segue nenhum usuário.";
|
"Você não segue nenhum usuário.";
|
||||||
#endif
|
#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 =
|
const char *Txt_You_dont_have_permission_to_perform_this_action =
|
||||||
#if L==1 // ca
|
#if L==1 // ca
|
||||||
"Vostè no té permís"
|
"Vostè no té permís"
|
||||||
|
|
|
@ -10959,27 +10959,6 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
|
||||||
"" // Potrzebujesz tlumaczenie
|
"" // Potrzebujesz tlumaczenie
|
||||||
#elif L==9 // pt
|
#elif L==9 // pt
|
||||||
"" // Precisa de tradução
|
"" // 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
|
#endif
|
||||||
,
|
,
|
||||||
[ActSeeGam] =
|
[ActSeeGam] =
|
||||||
|
|
Loading…
Reference in New Issue