mirror of
https://github.com/acanas/swad-core.git
synced 2024-06-10 10:45:23 +02:00
Version19.193.4
This commit is contained in:
parent
771711b8e2
commit
008747ced1
|
@ -9,7 +9,7 @@
|
||||||
|
|
||||||
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
|
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
|
||||||
|
|
||||||
<provider copy-of="extension" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"/>
|
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuildCommandParser" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser" keep-relative-paths="false" name="CDT GCC Build Output Parser" parameter="(g?cc)|([gc]\+\+)|(clang)" prefer-non-shared="true"/>
|
||||||
|
|
||||||
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="false" env-hash="-35536074215974130" id="org.eclipse.cdt.managedbuilder.core.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="false" env-hash="-35536074215974130" id="org.eclipse.cdt.managedbuilder.core.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||||
|
|
||||||
|
|
|
@ -4973,6 +4973,9 @@ int swad__getMatches (struct soap *soap,
|
||||||
"Bad web service key",
|
"Bad web service key",
|
||||||
"Web service key does not exist in database");
|
"Web service key does not exist in database");
|
||||||
|
|
||||||
|
/***** Reset game *****/
|
||||||
|
Gam_ResetGame (&Game);
|
||||||
|
|
||||||
/***** Get game data from database *****/
|
/***** Get game data from database *****/
|
||||||
Game.GamCod = (long) gameCode;
|
Game.GamCod = (long) gameCode;
|
||||||
if (Game.GamCod <= 0)
|
if (Game.GamCod <= 0)
|
||||||
|
@ -5130,8 +5133,8 @@ int swad__getMatchStatus (struct soap *soap,
|
||||||
struct swad__getMatchStatusOutput *getMatchStatusOut) // output
|
struct swad__getMatchStatusOutput *getMatchStatusOut) // output
|
||||||
{
|
{
|
||||||
int ReturnCode;
|
int ReturnCode;
|
||||||
struct Mch_Match Match;
|
|
||||||
struct Gam_Game Game;
|
struct Gam_Game Game;
|
||||||
|
struct Mch_Match Match;
|
||||||
bool ICanPlayThisMatchBasedOnGrps;
|
bool ICanPlayThisMatchBasedOnGrps;
|
||||||
unsigned NumOptions;
|
unsigned NumOptions;
|
||||||
struct Mch_UsrAnswer UsrAnswer;
|
struct Mch_UsrAnswer UsrAnswer;
|
||||||
|
@ -5148,6 +5151,10 @@ int swad__getMatchStatus (struct soap *soap,
|
||||||
"Bad web service key",
|
"Bad web service key",
|
||||||
"Web service key does not exist in database");
|
"Web service key does not exist in database");
|
||||||
|
|
||||||
|
/***** Reset game and match *****/
|
||||||
|
Gam_ResetGame (&Game);
|
||||||
|
Mch_ResetMatch (&Match);
|
||||||
|
|
||||||
/***** Get match data from database *****/
|
/***** Get match data from database *****/
|
||||||
Match.MchCod = (long) matchCode;
|
Match.MchCod = (long) matchCode;
|
||||||
if (Match.MchCod <= 0)
|
if (Match.MchCod <= 0)
|
||||||
|
|
|
@ -544,10 +544,11 @@ 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.193.3 (2020-04-23)"
|
#define Log_PLATFORM_VERSION "SWAD 19.193.4 (2020-04-23)"
|
||||||
#define CSS_FILE "swad19.193.1.css"
|
#define CSS_FILE "swad19.193.1.css"
|
||||||
#define JS_FILE "swad19.193.1.js"
|
#define JS_FILE "swad19.193.1.js"
|
||||||
/*
|
/*
|
||||||
|
Version 19.193.4: Apr 23, 2020 Fixed bugs in exams, exam events, games and matches. (297860 lines)
|
||||||
Version 19.193.3: Apr 23, 2020 Added new MIME type, reported by Jesús Garrido Manrique.
|
Version 19.193.3: Apr 23, 2020 Added new MIME type, reported by Jesús Garrido Manrique.
|
||||||
Changed text in test configuration. (297640 lines)
|
Changed text in test configuration. (297640 lines)
|
||||||
1 change necessary in database:
|
1 change necessary in database:
|
||||||
|
|
121
swad_exam.c
121
swad_exam.c
|
@ -134,8 +134,6 @@ static void Exa_PutParamsOneQst (void *Exams);
|
||||||
static void Exa_PutHiddenParamOrder (Exa_Order_t SelectedOrder);
|
static void Exa_PutHiddenParamOrder (Exa_Order_t SelectedOrder);
|
||||||
static Exa_Order_t Exa_GetParamOrder (void);
|
static Exa_Order_t Exa_GetParamOrder (void);
|
||||||
|
|
||||||
static void Exa_ResetExam (struct Exa_Exam *Exam);
|
|
||||||
|
|
||||||
static void Exa_GetExamTxtFromDB (long ExaCod,char Txt[Cns_MAX_BYTES_TEXT + 1]);
|
static void Exa_GetExamTxtFromDB (long ExaCod,char Txt[Cns_MAX_BYTES_TEXT + 1]);
|
||||||
|
|
||||||
static void Exa_RemoveExamFromAllTables (long ExaCod);
|
static void Exa_RemoveExamFromAllTables (long ExaCod);
|
||||||
|
@ -194,6 +192,27 @@ void Exa_ResetExams (struct Exa_Exams *Exams)
|
||||||
Exams->QstInd = 0; // Current question index
|
Exams->QstInd = 0; // Current question index
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/*************************** Initialize exam to empty ************************/
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
void Exa_ResetExam (struct Exa_Exam *Exam)
|
||||||
|
{
|
||||||
|
/***** Initialize to empty exam *****/
|
||||||
|
Exam->ExaCod = -1L;
|
||||||
|
Exam->CrsCod = -1L;
|
||||||
|
Exam->UsrCod = -1L;
|
||||||
|
Exam->MaxGrade = Exa_MAX_GRADE_DEFAULT;
|
||||||
|
Exam->Visibility = TstVis_VISIBILITY_DEFAULT;
|
||||||
|
Exam->TimeUTC[Dat_START_TIME] = (time_t) 0;
|
||||||
|
Exam->TimeUTC[Dat_END_TIME ] = (time_t) 0;
|
||||||
|
Exam->Title[0] = '\0';
|
||||||
|
Exam->NumQsts = 0;
|
||||||
|
Exam->NumEvts = 0;
|
||||||
|
Exam->NumUnfinishedEvts = 0;
|
||||||
|
Exam->Hidden = false;
|
||||||
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/***************************** List all exams ********************************/
|
/***************************** List all exams ********************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -202,7 +221,7 @@ void Exa_SeeAllExams (void)
|
||||||
{
|
{
|
||||||
struct Exa_Exams Exams;
|
struct Exa_Exams Exams;
|
||||||
|
|
||||||
/***** Reset exams *****/
|
/***** Reset exams context *****/
|
||||||
Exa_ResetExams (&Exams);
|
Exa_ResetExams (&Exams);
|
||||||
|
|
||||||
/***** Get parameters *****/
|
/***** Get parameters *****/
|
||||||
|
@ -421,9 +440,12 @@ void Exa_SeeOneExam (void)
|
||||||
struct Exa_Exams Exams;
|
struct Exa_Exams Exams;
|
||||||
struct Exa_Exam Exam;
|
struct Exa_Exam Exam;
|
||||||
|
|
||||||
/***** Reset exams *****/
|
/***** Reset exams context *****/
|
||||||
Exa_ResetExams (&Exams);
|
Exa_ResetExams (&Exams);
|
||||||
|
|
||||||
|
/***** Reset exam *****/
|
||||||
|
Exa_ResetExam (&Exam);
|
||||||
|
|
||||||
/***** Get parameters *****/
|
/***** Get parameters *****/
|
||||||
if ((Exam.ExaCod = Exa_GetParams (&Exams)) <= 0)
|
if ((Exam.ExaCod = Exa_GetParams (&Exams)) <= 0)
|
||||||
Lay_ShowErrorAndExit ("Code of exam is missing.");
|
Lay_ShowErrorAndExit ("Code of exam is missing.");
|
||||||
|
@ -1053,27 +1075,6 @@ void Exa_GetDataOfExamByCod (struct Exa_Exam *Exam)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
|
||||||
/*************************** Initialize exam to empty ************************/
|
|
||||||
/*****************************************************************************/
|
|
||||||
|
|
||||||
static void Exa_ResetExam (struct Exa_Exam *Exam)
|
|
||||||
{
|
|
||||||
/***** Initialize to empty exam *****/
|
|
||||||
Exam->ExaCod = -1L;
|
|
||||||
Exam->CrsCod = -1L;
|
|
||||||
Exam->UsrCod = -1L;
|
|
||||||
Exam->MaxGrade = Exa_MAX_GRADE_DEFAULT;
|
|
||||||
Exam->Visibility = TstVis_VISIBILITY_DEFAULT;
|
|
||||||
Exam->TimeUTC[Dat_START_TIME] = (time_t) 0;
|
|
||||||
Exam->TimeUTC[Dat_END_TIME ] = (time_t) 0;
|
|
||||||
Exam->Title[0] = '\0';
|
|
||||||
Exam->NumQsts = 0;
|
|
||||||
Exam->NumEvts = 0;
|
|
||||||
Exam->NumUnfinishedEvts = 0;
|
|
||||||
Exam->Hidden = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/***************************** Free list of exams ****************************/
|
/***************************** Free list of exams ****************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -1134,9 +1135,12 @@ void Exa_AskRemExam (void)
|
||||||
struct Exa_Exams Exams;
|
struct Exa_Exams Exams;
|
||||||
struct Exa_Exam Exam;
|
struct Exa_Exam Exam;
|
||||||
|
|
||||||
/***** Reset exams *****/
|
/***** Reset exams context *****/
|
||||||
Exa_ResetExams (&Exams);
|
Exa_ResetExams (&Exams);
|
||||||
|
|
||||||
|
/***** Reset exam *****/
|
||||||
|
Exa_ResetExam (&Exam);
|
||||||
|
|
||||||
/***** Get parameters *****/
|
/***** Get parameters *****/
|
||||||
if ((Exam.ExaCod = Exa_GetParams (&Exams)) <= 0)
|
if ((Exam.ExaCod = Exa_GetParams (&Exams)) <= 0)
|
||||||
Lay_ShowErrorAndExit ("Code of exam is missing.");
|
Lay_ShowErrorAndExit ("Code of exam is missing.");
|
||||||
|
@ -1168,9 +1172,12 @@ void Exa_RemoveExam (void)
|
||||||
struct Exa_Exams Exams;
|
struct Exa_Exams Exams;
|
||||||
struct Exa_Exam Exam;
|
struct Exa_Exam Exam;
|
||||||
|
|
||||||
/***** Reset exams *****/
|
/***** Reset exams context *****/
|
||||||
Exa_ResetExams (&Exams);
|
Exa_ResetExams (&Exams);
|
||||||
|
|
||||||
|
/***** Reset exam *****/
|
||||||
|
Exa_ResetExam (&Exam);
|
||||||
|
|
||||||
/***** Get exam code *****/
|
/***** Get exam code *****/
|
||||||
if ((Exam.ExaCod = Exa_GetParamExamCod ()) == -1L)
|
if ((Exam.ExaCod = Exa_GetParamExamCod ()) == -1L)
|
||||||
Lay_ShowErrorAndExit ("Code of exam is missing.");
|
Lay_ShowErrorAndExit ("Code of exam is missing.");
|
||||||
|
@ -1244,9 +1251,12 @@ void Exa_HideExam (void)
|
||||||
struct Exa_Exams Exams;
|
struct Exa_Exams Exams;
|
||||||
struct Exa_Exam Exam;
|
struct Exa_Exam Exam;
|
||||||
|
|
||||||
/***** Reset exams *****/
|
/***** Reset exams context *****/
|
||||||
Exa_ResetExams (&Exams);
|
Exa_ResetExams (&Exams);
|
||||||
|
|
||||||
|
/***** Reset exam *****/
|
||||||
|
Exa_ResetExam (&Exam);
|
||||||
|
|
||||||
/***** Get parameters *****/
|
/***** Get parameters *****/
|
||||||
if ((Exam.ExaCod = Exa_GetParams (&Exams)) <= 0)
|
if ((Exam.ExaCod = Exa_GetParams (&Exams)) <= 0)
|
||||||
Lay_ShowErrorAndExit ("Code of exam is missing.");
|
Lay_ShowErrorAndExit ("Code of exam is missing.");
|
||||||
|
@ -1274,9 +1284,12 @@ void Exa_UnhideExam (void)
|
||||||
struct Exa_Exams Exams;
|
struct Exa_Exams Exams;
|
||||||
struct Exa_Exam Exam;
|
struct Exa_Exam Exam;
|
||||||
|
|
||||||
/***** Reset exams *****/
|
/***** Reset exams context *****/
|
||||||
Exa_ResetExams (&Exams);
|
Exa_ResetExams (&Exams);
|
||||||
|
|
||||||
|
/***** Reset exam *****/
|
||||||
|
Exa_ResetExam (&Exam);
|
||||||
|
|
||||||
/***** Get parameters *****/
|
/***** Get parameters *****/
|
||||||
if ((Exam.ExaCod = Exa_GetParams (&Exams)) <= 0)
|
if ((Exam.ExaCod = Exa_GetParams (&Exams)) <= 0)
|
||||||
Lay_ShowErrorAndExit ("Code of exam is missing.");
|
Lay_ShowErrorAndExit ("Code of exam is missing.");
|
||||||
|
@ -1321,9 +1334,12 @@ void Exa_RequestCreatOrEditExam (void)
|
||||||
bool ItsANewExam;
|
bool ItsANewExam;
|
||||||
char Txt[Cns_MAX_BYTES_TEXT + 1];
|
char Txt[Cns_MAX_BYTES_TEXT + 1];
|
||||||
|
|
||||||
/***** Reset exams *****/
|
/***** Reset exams context *****/
|
||||||
Exa_ResetExams (&Exams);
|
Exa_ResetExams (&Exams);
|
||||||
|
|
||||||
|
/***** Reset exam *****/
|
||||||
|
Exa_ResetExam (&Exam);
|
||||||
|
|
||||||
/***** Check if I can edit exams *****/
|
/***** Check if I can edit exams *****/
|
||||||
if (!Exa_CheckIfICanEditExams ())
|
if (!Exa_CheckIfICanEditExams ())
|
||||||
Lay_NoPermissionExit ();
|
Lay_NoPermissionExit ();
|
||||||
|
@ -1476,9 +1492,12 @@ void Exa_RecFormExam (void)
|
||||||
bool ItsANewExam;
|
bool ItsANewExam;
|
||||||
char Txt[Cns_MAX_BYTES_TEXT + 1];
|
char Txt[Cns_MAX_BYTES_TEXT + 1];
|
||||||
|
|
||||||
/***** Reset exams *****/
|
/***** Reset exams context *****/
|
||||||
Exa_ResetExams (&Exams);
|
Exa_ResetExams (&Exams);
|
||||||
|
|
||||||
|
/***** Reset exam *****/
|
||||||
|
Exa_ResetExam (&Exam);
|
||||||
|
|
||||||
/***** Check if I can edit exams *****/
|
/***** Check if I can edit exams *****/
|
||||||
if (!Exa_CheckIfICanEditExams ())
|
if (!Exa_CheckIfICanEditExams ())
|
||||||
Lay_NoPermissionExit ();
|
Lay_NoPermissionExit ();
|
||||||
|
@ -1653,9 +1672,12 @@ void Exa_RequestNewQuestion (void)
|
||||||
struct Exa_Exams Exams;
|
struct Exa_Exams Exams;
|
||||||
struct Exa_Exam Exam;
|
struct Exa_Exam Exam;
|
||||||
|
|
||||||
/***** Reset exams *****/
|
/***** Reset exams context *****/
|
||||||
Exa_ResetExams (&Exams);
|
Exa_ResetExams (&Exams);
|
||||||
|
|
||||||
|
/***** Reset exam *****/
|
||||||
|
Exa_ResetExam (&Exam);
|
||||||
|
|
||||||
/***** Get parameters *****/
|
/***** Get parameters *****/
|
||||||
if ((Exam.ExaCod = Exa_GetParams (&Exams)) <= 0)
|
if ((Exam.ExaCod = Exa_GetParams (&Exams)) <= 0)
|
||||||
Lay_ShowErrorAndExit ("Code of exam is missing.");
|
Lay_ShowErrorAndExit ("Code of exam is missing.");
|
||||||
|
@ -1686,9 +1708,12 @@ void Exa_ListTstQuestionsToSelect (void)
|
||||||
struct Exa_Exams Exams;
|
struct Exa_Exams Exams;
|
||||||
struct Exa_Exam Exam;
|
struct Exa_Exam Exam;
|
||||||
|
|
||||||
/***** Reset exams *****/
|
/***** Reset exams context *****/
|
||||||
Exa_ResetExams (&Exams);
|
Exa_ResetExams (&Exams);
|
||||||
|
|
||||||
|
/***** Reset exam *****/
|
||||||
|
Exa_ResetExam (&Exam);
|
||||||
|
|
||||||
/***** Get parameters *****/
|
/***** Get parameters *****/
|
||||||
if ((Exam.ExaCod = Exa_GetParams (&Exams)) <= 0)
|
if ((Exam.ExaCod = Exa_GetParams (&Exams)) <= 0)
|
||||||
Lay_ShowErrorAndExit ("Code of exam is missing.");
|
Lay_ShowErrorAndExit ("Code of exam is missing.");
|
||||||
|
@ -2153,9 +2178,12 @@ void Exa_AddTstQuestionsToExam (void)
|
||||||
long QstCod;
|
long QstCod;
|
||||||
unsigned MaxQstInd;
|
unsigned MaxQstInd;
|
||||||
|
|
||||||
/***** Reset exams *****/
|
/***** Reset exams context *****/
|
||||||
Exa_ResetExams (&Exams);
|
Exa_ResetExams (&Exams);
|
||||||
|
|
||||||
|
/***** Reset exam *****/
|
||||||
|
Exa_ResetExam (&Exam);
|
||||||
|
|
||||||
/***** Get parameters *****/
|
/***** Get parameters *****/
|
||||||
if ((Exam.ExaCod = Exa_GetParams (&Exams)) <= 0)
|
if ((Exam.ExaCod = Exa_GetParams (&Exams)) <= 0)
|
||||||
Lay_ShowErrorAndExit ("Code of exam is missing.");
|
Lay_ShowErrorAndExit ("Code of exam is missing.");
|
||||||
|
@ -2273,9 +2301,12 @@ void Exa_RequestRemoveQst (void)
|
||||||
struct Exa_Exam Exam;
|
struct Exa_Exam Exam;
|
||||||
unsigned QstInd;
|
unsigned QstInd;
|
||||||
|
|
||||||
/***** Reset exams *****/
|
/***** Reset exams context *****/
|
||||||
Exa_ResetExams (&Exams);
|
Exa_ResetExams (&Exams);
|
||||||
|
|
||||||
|
/***** Reset exam *****/
|
||||||
|
Exa_ResetExam (&Exam);
|
||||||
|
|
||||||
/***** Get parameters *****/
|
/***** Get parameters *****/
|
||||||
if ((Exam.ExaCod = Exa_GetParams (&Exams)) <= 0)
|
if ((Exam.ExaCod = Exa_GetParams (&Exams)) <= 0)
|
||||||
Lay_ShowErrorAndExit ("Code of exam is missing.");
|
Lay_ShowErrorAndExit ("Code of exam is missing.");
|
||||||
|
@ -2316,9 +2347,12 @@ void Exa_RemoveQst (void)
|
||||||
struct Exa_Exam Exam;
|
struct Exa_Exam Exam;
|
||||||
unsigned QstInd;
|
unsigned QstInd;
|
||||||
|
|
||||||
/***** Reset exams *****/
|
/***** Reset exams context *****/
|
||||||
Exa_ResetExams (&Exams);
|
Exa_ResetExams (&Exams);
|
||||||
|
|
||||||
|
/***** Reset exam *****/
|
||||||
|
Exa_ResetExam (&Exam);
|
||||||
|
|
||||||
/***** Get parameters *****/
|
/***** Get parameters *****/
|
||||||
if ((Exam.ExaCod = Exa_GetParams (&Exams)) <= 0)
|
if ((Exam.ExaCod = Exa_GetParams (&Exams)) <= 0)
|
||||||
Lay_ShowErrorAndExit ("Code of exam is missing.");
|
Lay_ShowErrorAndExit ("Code of exam is missing.");
|
||||||
|
@ -2380,9 +2414,12 @@ void Exa_MoveUpQst (void)
|
||||||
unsigned QstIndTop;
|
unsigned QstIndTop;
|
||||||
unsigned QstIndBottom;
|
unsigned QstIndBottom;
|
||||||
|
|
||||||
/***** Reset exams *****/
|
/***** Reset exams context *****/
|
||||||
Exa_ResetExams (&Exams);
|
Exa_ResetExams (&Exams);
|
||||||
|
|
||||||
|
/***** Reset exam *****/
|
||||||
|
Exa_ResetExam (&Exam);
|
||||||
|
|
||||||
/***** Get parameters *****/
|
/***** Get parameters *****/
|
||||||
if ((Exam.ExaCod = Exa_GetParams (&Exams)) <= 0)
|
if ((Exam.ExaCod = Exa_GetParams (&Exams)) <= 0)
|
||||||
Lay_ShowErrorAndExit ("Code of exam is missing.");
|
Lay_ShowErrorAndExit ("Code of exam is missing.");
|
||||||
|
@ -2435,9 +2472,12 @@ void Exa_MoveDownQst (void)
|
||||||
unsigned QstIndBottom;
|
unsigned QstIndBottom;
|
||||||
unsigned MaxQstInd; // 0 if no questions
|
unsigned MaxQstInd; // 0 if no questions
|
||||||
|
|
||||||
/***** Reset exams *****/
|
/***** Reset exams context *****/
|
||||||
Exa_ResetExams (&Exams);
|
Exa_ResetExams (&Exams);
|
||||||
|
|
||||||
|
/***** Reset exam *****/
|
||||||
|
Exa_ResetExam (&Exam);
|
||||||
|
|
||||||
/***** Get parameters *****/
|
/***** Get parameters *****/
|
||||||
if ((Exam.ExaCod = Exa_GetParams (&Exams)) <= 0)
|
if ((Exam.ExaCod = Exa_GetParams (&Exams)) <= 0)
|
||||||
Lay_ShowErrorAndExit ("Code of exam is missing.");
|
Lay_ShowErrorAndExit ("Code of exam is missing.");
|
||||||
|
@ -2572,9 +2612,12 @@ void Exa_RequestNewEvent (void)
|
||||||
struct Exa_Exams Exams;
|
struct Exa_Exams Exams;
|
||||||
struct Exa_Exam Exam;
|
struct Exa_Exam Exam;
|
||||||
|
|
||||||
/***** Reset exams *****/
|
/***** Reset exams context *****/
|
||||||
Exa_ResetExams (&Exams);
|
Exa_ResetExams (&Exams);
|
||||||
|
|
||||||
|
/***** Reset exam *****/
|
||||||
|
Exa_ResetExam (&Exam);
|
||||||
|
|
||||||
/***** Get parameters *****/
|
/***** Get parameters *****/
|
||||||
if ((Exam.ExaCod = Exa_GetParams (&Exams)) <= 0)
|
if ((Exam.ExaCod = Exa_GetParams (&Exams)) <= 0)
|
||||||
Lay_ShowErrorAndExit ("Code of exam is missing.");
|
Lay_ShowErrorAndExit ("Code of exam is missing.");
|
||||||
|
|
|
@ -99,6 +99,7 @@ struct Exa_Exam
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
void Exa_ResetExams (struct Exa_Exams *Exams);
|
void Exa_ResetExams (struct Exa_Exams *Exams);
|
||||||
|
void Exa_ResetExam (struct Exa_Exam *Exam);
|
||||||
|
|
||||||
void Exa_SeeAllExams (void);
|
void Exa_SeeAllExams (void);
|
||||||
void Exa_SeeOneExam (void);
|
void Exa_SeeOneExam (void);
|
||||||
|
|
|
@ -247,6 +247,31 @@ long ExaEvt_GetEvtCodBeingPlayed (void)
|
||||||
return ExaEvt_EvtCodBeingPlayed;
|
return ExaEvt_EvtCodBeingPlayed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/****************************** Reset exam event *****************************/
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
void ExaEvt_ResetEvent (struct ExaEvt_Event *Event)
|
||||||
|
{
|
||||||
|
/***** Initialize to empty match *****/
|
||||||
|
Event->EvtCod = -1L;
|
||||||
|
Event->ExaCod = -1L;
|
||||||
|
Event->UsrCod = -1L;
|
||||||
|
Event->TimeUTC[Dat_START_TIME] = (time_t) 0;
|
||||||
|
Event->TimeUTC[Dat_END_TIME ] = (time_t) 0;
|
||||||
|
Event->Title[0] = '\0';
|
||||||
|
Event->Status.QstInd = 0;
|
||||||
|
Event->Status.QstCod = -1L;
|
||||||
|
Event->Status.QstStartTimeUTC = (time_t) 0;
|
||||||
|
Event->Status.Showing = ExaEvt_SHOWING_DEFAULT;
|
||||||
|
Event->Status.Countdown = 0;
|
||||||
|
Event->Status.NumCols = 1;
|
||||||
|
Event->Status.ShowQstResults = false;
|
||||||
|
Event->Status.ShowUsrResults = false;
|
||||||
|
Event->Status.Happening = false;
|
||||||
|
Event->Status.NumParticipants = 0;
|
||||||
|
};
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/************************* List the events of an exam ************************/
|
/************************* List the events of an exam ************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -453,6 +478,9 @@ static void ExaEvt_ListOneOrMoreEvents (struct Exa_Exams *Exams,
|
||||||
struct ExaEvt_Event Event;
|
struct ExaEvt_Event Event;
|
||||||
bool ICanEditEvents = ExaEvt_CheckIfICanEditEvents ();
|
bool ICanEditEvents = ExaEvt_CheckIfICanEditEvents ();
|
||||||
|
|
||||||
|
/***** Reset event *****/
|
||||||
|
ExaEvt_ResetEvent (&Event);
|
||||||
|
|
||||||
/***** Write the heading *****/
|
/***** Write the heading *****/
|
||||||
HTM_TABLE_BeginWidePadding (2);
|
HTM_TABLE_BeginWidePadding (2);
|
||||||
ExaEvt_ListOneOrMoreEventsHeading (ICanEditEvents);
|
ExaEvt_ListOneOrMoreEventsHeading (ICanEditEvents);
|
||||||
|
@ -875,9 +903,13 @@ void ExaEvt_ToggleVisibilResultsEvtUsr (void)
|
||||||
struct Exa_Exam Exam;
|
struct Exa_Exam Exam;
|
||||||
struct ExaEvt_Event Event;
|
struct ExaEvt_Event Event;
|
||||||
|
|
||||||
/***** Reset exams *****/
|
/***** Reset exams context *****/
|
||||||
Exa_ResetExams (&Exams);
|
Exa_ResetExams (&Exams);
|
||||||
|
|
||||||
|
/***** Reset exam and event *****/
|
||||||
|
Exa_ResetExam (&Exam);
|
||||||
|
ExaEvt_ResetEvent (&Event);
|
||||||
|
|
||||||
/***** Get and check parameters *****/
|
/***** Get and check parameters *****/
|
||||||
ExaEvt_GetAndCheckParameters (&Exams,&Exam,&Event);
|
ExaEvt_GetAndCheckParameters (&Exams,&Exam,&Event);
|
||||||
|
|
||||||
|
@ -1017,9 +1049,13 @@ void ExaEvt_RequestRemoveEvent (void)
|
||||||
struct Exa_Exam Exam;
|
struct Exa_Exam Exam;
|
||||||
struct ExaEvt_Event Event;
|
struct ExaEvt_Event Event;
|
||||||
|
|
||||||
/***** Reset exams *****/
|
/***** Reset exams context *****/
|
||||||
Exa_ResetExams (&Exams);
|
Exa_ResetExams (&Exams);
|
||||||
|
|
||||||
|
/***** Reset exam and event *****/
|
||||||
|
Exa_ResetExam (&Exam);
|
||||||
|
ExaEvt_ResetEvent (&Event);
|
||||||
|
|
||||||
/***** Get and check parameters *****/
|
/***** Get and check parameters *****/
|
||||||
ExaEvt_GetAndCheckParameters (&Exams,&Exam,&Event);
|
ExaEvt_GetAndCheckParameters (&Exams,&Exam,&Event);
|
||||||
|
|
||||||
|
@ -1049,9 +1085,13 @@ void ExaEvt_RemoveEvent (void)
|
||||||
struct Exa_Exam Exam;
|
struct Exa_Exam Exam;
|
||||||
struct ExaEvt_Event Event;
|
struct ExaEvt_Event Event;
|
||||||
|
|
||||||
/***** Reset exams *****/
|
/***** Reset exams context *****/
|
||||||
Exa_ResetExams (&Exams);
|
Exa_ResetExams (&Exams);
|
||||||
|
|
||||||
|
/***** Reset exam and event *****/
|
||||||
|
Exa_ResetExam (&Exam);
|
||||||
|
ExaEvt_ResetEvent (&Event);
|
||||||
|
|
||||||
/***** Get and check parameters *****/
|
/***** Get and check parameters *****/
|
||||||
ExaEvt_GetAndCheckParameters (&Exams,&Exam,&Event);
|
ExaEvt_GetAndCheckParameters (&Exams,&Exam,&Event);
|
||||||
|
|
||||||
|
@ -1434,6 +1474,9 @@ void ExaEvt_ResumeEvent (void)
|
||||||
{
|
{
|
||||||
struct ExaEvt_Event Event;
|
struct ExaEvt_Event Event;
|
||||||
|
|
||||||
|
/***** Reset event *****/
|
||||||
|
ExaEvt_ResetEvent (&Event);
|
||||||
|
|
||||||
/***** Remove old participants.
|
/***** Remove old participants.
|
||||||
This function must be called by a teacher
|
This function must be called by a teacher
|
||||||
before getting exam event status. *****/
|
before getting exam event status. *****/
|
||||||
|
@ -1874,6 +1917,9 @@ void ExaEvt_PlayPauseEvent (void)
|
||||||
{
|
{
|
||||||
struct ExaEvt_Event Event;
|
struct ExaEvt_Event Event;
|
||||||
|
|
||||||
|
/***** Reset event *****/
|
||||||
|
ExaEvt_ResetEvent (&Event);
|
||||||
|
|
||||||
/***** Remove old participants.
|
/***** Remove old participants.
|
||||||
This function must be called by a teacher
|
This function must be called by a teacher
|
||||||
before getting exam event status. *****/
|
before getting exam event status. *****/
|
||||||
|
@ -1908,6 +1954,9 @@ void ExaEvt_ChangeNumColsEvt (void)
|
||||||
{
|
{
|
||||||
struct ExaEvt_Event Event;
|
struct ExaEvt_Event Event;
|
||||||
|
|
||||||
|
/***** Reset event *****/
|
||||||
|
ExaEvt_ResetEvent (&Event);
|
||||||
|
|
||||||
/***** Remove old participants.
|
/***** Remove old participants.
|
||||||
This function must be called by a teacher
|
This function must be called by a teacher
|
||||||
before getting exam event status. *****/
|
before getting exam event status. *****/
|
||||||
|
@ -1941,6 +1990,9 @@ void ExaEvt_ToggleVisibilResultsEvtQst (void)
|
||||||
{
|
{
|
||||||
struct ExaEvt_Event Event;
|
struct ExaEvt_Event Event;
|
||||||
|
|
||||||
|
/***** Reset event *****/
|
||||||
|
ExaEvt_ResetEvent (&Event);
|
||||||
|
|
||||||
/***** Remove old participants.
|
/***** Remove old participants.
|
||||||
This function must be called by a teacher
|
This function must be called by a teacher
|
||||||
before getting exam event status. *****/
|
before getting exam event status. *****/
|
||||||
|
@ -1973,6 +2025,9 @@ void ExaEvt_BackEvent (void)
|
||||||
{
|
{
|
||||||
struct ExaEvt_Event Event;
|
struct ExaEvt_Event Event;
|
||||||
|
|
||||||
|
/***** Reset event *****/
|
||||||
|
ExaEvt_ResetEvent (&Event);
|
||||||
|
|
||||||
/***** Remove old participants.
|
/***** Remove old participants.
|
||||||
This function must be called by a teacher
|
This function must be called by a teacher
|
||||||
before getting exam event status. *****/
|
before getting exam event status. *****/
|
||||||
|
@ -2002,6 +2057,9 @@ void ExaEvt_ForwardEvent (void)
|
||||||
{
|
{
|
||||||
struct ExaEvt_Event Event;
|
struct ExaEvt_Event Event;
|
||||||
|
|
||||||
|
/***** Reset event *****/
|
||||||
|
ExaEvt_ResetEvent (&Event);
|
||||||
|
|
||||||
/***** Remove old participants.
|
/***** Remove old participants.
|
||||||
This function must be called by a teacher
|
This function must be called by a teacher
|
||||||
before getting exam event status. *****/
|
before getting exam event status. *****/
|
||||||
|
@ -3624,6 +3682,9 @@ void ExaEvt_JoinEventAsStd (void)
|
||||||
{
|
{
|
||||||
struct ExaEvt_Event Event;
|
struct ExaEvt_Event Event;
|
||||||
|
|
||||||
|
/***** Reset event *****/
|
||||||
|
ExaEvt_ResetEvent (&Event);
|
||||||
|
|
||||||
/***** Get data of the exam event from database *****/
|
/***** Get data of the exam event from database *****/
|
||||||
Event.EvtCod = ExaEvt_GetEvtCodBeingPlayed ();
|
Event.EvtCod = ExaEvt_GetEvtCodBeingPlayed ();
|
||||||
ExaEvt_GetDataOfEventByCod (&Event);
|
ExaEvt_GetDataOfEventByCod (&Event);
|
||||||
|
@ -3643,6 +3704,9 @@ void ExaEvt_RemoveMyQuestionAnswer (void)
|
||||||
struct ExaEvt_Event Event;
|
struct ExaEvt_Event Event;
|
||||||
unsigned QstInd;
|
unsigned QstInd;
|
||||||
|
|
||||||
|
/***** Reset event *****/
|
||||||
|
ExaEvt_ResetEvent (&Event);
|
||||||
|
|
||||||
/***** Get data of the exam event from database *****/
|
/***** Get data of the exam event from database *****/
|
||||||
Event.EvtCod = ExaEvt_GetEvtCodBeingPlayed ();
|
Event.EvtCod = ExaEvt_GetEvtCodBeingPlayed ();
|
||||||
ExaEvt_GetDataOfEventByCod (&Event);
|
ExaEvt_GetDataOfEventByCod (&Event);
|
||||||
|
@ -3673,6 +3737,9 @@ void ExaEvt_StartCountdown (void)
|
||||||
struct ExaEvt_Event Event;
|
struct ExaEvt_Event Event;
|
||||||
long NewCountdown;
|
long NewCountdown;
|
||||||
|
|
||||||
|
/***** Reset event *****/
|
||||||
|
ExaEvt_ResetEvent (&Event);
|
||||||
|
|
||||||
/***** Get countdown parameter ****/
|
/***** Get countdown parameter ****/
|
||||||
NewCountdown = Par_GetParToLong ("Countdown");
|
NewCountdown = Par_GetParToLong ("Countdown");
|
||||||
|
|
||||||
|
@ -3707,6 +3774,9 @@ void ExaEvt_RefreshEventTch (void)
|
||||||
if (!Gbl.Session.IsOpen) // If session has been closed, do not write anything
|
if (!Gbl.Session.IsOpen) // If session has been closed, do not write anything
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
/***** Reset event *****/
|
||||||
|
ExaEvt_ResetEvent (&Event);
|
||||||
|
|
||||||
/***** Remove old participants.
|
/***** Remove old participants.
|
||||||
This function must be called by a teacher
|
This function must be called by a teacher
|
||||||
before getting exam event status. *****/
|
before getting exam event status. *****/
|
||||||
|
@ -3764,6 +3834,9 @@ void ExaEvt_RefreshEventStd (void)
|
||||||
if (!Gbl.Session.IsOpen) // If session has been closed, do not write anything
|
if (!Gbl.Session.IsOpen) // If session has been closed, do not write anything
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
/***** Reset event *****/
|
||||||
|
ExaEvt_ResetEvent (&Event);
|
||||||
|
|
||||||
/***** Get data of the exam event from database *****/
|
/***** Get data of the exam event from database *****/
|
||||||
Event.EvtCod = ExaEvt_GetEvtCodBeingPlayed ();
|
Event.EvtCod = ExaEvt_GetEvtCodBeingPlayed ();
|
||||||
ExaEvt_GetDataOfEventByCod (&Event);
|
ExaEvt_GetDataOfEventByCod (&Event);
|
||||||
|
@ -3826,6 +3899,9 @@ void ExaEvt_ReceiveQuestionAnswer (void)
|
||||||
struct ExaEvt_UsrAnswer UsrAnswer;
|
struct ExaEvt_UsrAnswer UsrAnswer;
|
||||||
struct TstRes_Result Result;
|
struct TstRes_Result Result;
|
||||||
|
|
||||||
|
/***** Reset event *****/
|
||||||
|
ExaEvt_ResetEvent (&Event);
|
||||||
|
|
||||||
/***** Get data of the exam event from database *****/
|
/***** Get data of the exam event from database *****/
|
||||||
Event.EvtCod = ExaEvt_GetEvtCodBeingPlayed ();
|
Event.EvtCod = ExaEvt_GetEvtCodBeingPlayed ();
|
||||||
ExaEvt_GetDataOfEventByCod (&Event);
|
ExaEvt_GetDataOfEventByCod (&Event);
|
||||||
|
|
|
@ -85,6 +85,8 @@ struct ExaEvt_UsrAnswer
|
||||||
|
|
||||||
long ExaEvt_GetEvtCodBeingPlayed (void);
|
long ExaEvt_GetEvtCodBeingPlayed (void);
|
||||||
|
|
||||||
|
void ExaEvt_ResetEvent (struct ExaEvt_Event *Event);
|
||||||
|
|
||||||
void ExaEvt_ListEvents (struct Exa_Exams *Exams,
|
void ExaEvt_ListEvents (struct Exa_Exams *Exams,
|
||||||
struct Exa_Exam *Exam,
|
struct Exa_Exam *Exam,
|
||||||
bool PutFormNewEvent);
|
bool PutFormNewEvent);
|
||||||
|
|
|
@ -116,7 +116,7 @@ void ExaRes_ShowMyExaResultsInCrs (void)
|
||||||
extern const char *Txt_Results;
|
extern const char *Txt_Results;
|
||||||
struct Exa_Exams Exams;
|
struct Exa_Exams Exams;
|
||||||
|
|
||||||
/***** Reset exams *****/
|
/***** Reset exams context *****/
|
||||||
Exa_ResetExams (&Exams);
|
Exa_ResetExams (&Exams);
|
||||||
|
|
||||||
/***** Get list of exams *****/
|
/***** Get list of exams *****/
|
||||||
|
@ -157,9 +157,12 @@ void ExaRes_ShowMyExaResultsInExa (void)
|
||||||
struct Exa_Exams Exams;
|
struct Exa_Exams Exams;
|
||||||
struct Exa_Exam Exam;
|
struct Exa_Exam Exam;
|
||||||
|
|
||||||
/***** Reset exams *****/
|
/***** Reset exams context *****/
|
||||||
Exa_ResetExams (&Exams);
|
Exa_ResetExams (&Exams);
|
||||||
|
|
||||||
|
/***** Reset exam *****/
|
||||||
|
Exa_ResetExam (&Exam);
|
||||||
|
|
||||||
/***** Get parameters *****/
|
/***** Get parameters *****/
|
||||||
if ((Exam.ExaCod = Exa_GetParams (&Exams)) <= 0)
|
if ((Exam.ExaCod = Exa_GetParams (&Exams)) <= 0)
|
||||||
Lay_ShowErrorAndExit ("Code of exam is missing.");
|
Lay_ShowErrorAndExit ("Code of exam is missing.");
|
||||||
|
@ -203,9 +206,13 @@ void ExaRes_ShowMyExaResultsInEvt (void)
|
||||||
struct Exa_Exam Exam;
|
struct Exa_Exam Exam;
|
||||||
struct ExaEvt_Event Event;
|
struct ExaEvt_Event Event;
|
||||||
|
|
||||||
/***** Reset exams *****/
|
/***** Reset exams context *****/
|
||||||
Exa_ResetExams (&Exams);
|
Exa_ResetExams (&Exams);
|
||||||
|
|
||||||
|
/***** Reset exam and event *****/
|
||||||
|
Exa_ResetExam (&Exam);
|
||||||
|
ExaEvt_ResetEvent (&Event);
|
||||||
|
|
||||||
/***** Get parameters *****/
|
/***** Get parameters *****/
|
||||||
if ((Exam.ExaCod = Exa_GetParams (&Exams)) <= 0)
|
if ((Exam.ExaCod = Exa_GetParams (&Exams)) <= 0)
|
||||||
Lay_ShowErrorAndExit ("Code of exam is missing.");
|
Lay_ShowErrorAndExit ("Code of exam is missing.");
|
||||||
|
@ -248,7 +255,7 @@ void ExaRes_ShowAllExaResultsInCrs (void)
|
||||||
{
|
{
|
||||||
struct Exa_Exams Exams;
|
struct Exa_Exams Exams;
|
||||||
|
|
||||||
/***** Reset exams *****/
|
/***** Reset exams context *****/
|
||||||
Exa_ResetExams (&Exams);
|
Exa_ResetExams (&Exams);
|
||||||
|
|
||||||
/***** Get users and show their events results *****/
|
/***** Get users and show their events results *****/
|
||||||
|
@ -319,7 +326,7 @@ void ExaRes_SelUsrsToViewExaResults (void)
|
||||||
{
|
{
|
||||||
struct Exa_Exams Exams;
|
struct Exa_Exams Exams;
|
||||||
|
|
||||||
/***** Reset exams *****/
|
/***** Reset exams context *****/
|
||||||
Exa_ResetExams (&Exams);
|
Exa_ResetExams (&Exams);
|
||||||
|
|
||||||
/***** Put form to select users *****/
|
/***** Put form to select users *****/
|
||||||
|
@ -352,9 +359,12 @@ void ExaRes_ShowAllExaResultsInExa (void)
|
||||||
struct Exa_Exams Exams;
|
struct Exa_Exams Exams;
|
||||||
struct Exa_Exam Exam;
|
struct Exa_Exam Exam;
|
||||||
|
|
||||||
/***** Reset exams *****/
|
/***** Reset exams context *****/
|
||||||
Exa_ResetExams (&Exams);
|
Exa_ResetExams (&Exams);
|
||||||
|
|
||||||
|
/***** Reset exam *****/
|
||||||
|
Exa_ResetExam (&Exam);
|
||||||
|
|
||||||
/***** Get parameters *****/
|
/***** Get parameters *****/
|
||||||
if ((Exam.ExaCod = Exa_GetParams (&Exams)) <= 0)
|
if ((Exam.ExaCod = Exa_GetParams (&Exams)) <= 0)
|
||||||
Lay_ShowErrorAndExit ("Code of exam is missing.");
|
Lay_ShowErrorAndExit ("Code of exam is missing.");
|
||||||
|
@ -439,9 +449,13 @@ void ExaRes_ShowAllExaResultsInEvt (void)
|
||||||
struct Exa_Exam Exam;
|
struct Exa_Exam Exam;
|
||||||
struct ExaEvt_Event Event;
|
struct ExaEvt_Event Event;
|
||||||
|
|
||||||
/***** Reset exams *****/
|
/***** Reset exams context *****/
|
||||||
Exa_ResetExams (&Exams);
|
Exa_ResetExams (&Exams);
|
||||||
|
|
||||||
|
/***** Reset exam and event *****/
|
||||||
|
Exa_ResetExam (&Exam);
|
||||||
|
ExaEvt_ResetEvent (&Event);
|
||||||
|
|
||||||
/***** Get parameters *****/
|
/***** Get parameters *****/
|
||||||
if ((Exam.ExaCod = Exa_GetParams (&Exams)) <= 0)
|
if ((Exam.ExaCod = Exa_GetParams (&Exams)) <= 0)
|
||||||
Lay_ShowErrorAndExit ("Code of exam is missing.");
|
Lay_ShowErrorAndExit ("Code of exam is missing.");
|
||||||
|
@ -568,6 +582,9 @@ static void ExaRes_ListExamsToSelect (struct Exa_Exams *Exams)
|
||||||
unsigned NumExam;
|
unsigned NumExam;
|
||||||
struct Exa_Exam Exam;
|
struct Exa_Exam Exam;
|
||||||
|
|
||||||
|
/***** Reset exam *****/
|
||||||
|
Exa_ResetExam (&Exam);
|
||||||
|
|
||||||
/***** Begin box *****/
|
/***** Begin box *****/
|
||||||
Box_BoxBegin (NULL,Txt_Exams,
|
Box_BoxBegin (NULL,Txt_Exams,
|
||||||
NULL,NULL,
|
NULL,NULL,
|
||||||
|
@ -745,6 +762,9 @@ static void ExaRes_ShowEvtResults (struct Exa_Exams *Exams,
|
||||||
unsigned Visibility;
|
unsigned Visibility;
|
||||||
time_t TimeUTC[Dat_NUM_START_END_TIME];
|
time_t TimeUTC[Dat_NUM_START_END_TIME];
|
||||||
|
|
||||||
|
/***** Reset event *****/
|
||||||
|
ExaEvt_ResetEvent (&Event);
|
||||||
|
|
||||||
/***** Set user *****/
|
/***** Set user *****/
|
||||||
UsrDat = (MeOrOther == Usr_ME) ? &Gbl.Usrs.Me.UsrDat :
|
UsrDat = (MeOrOther == Usr_ME) ? &Gbl.Usrs.Me.UsrDat :
|
||||||
&Gbl.Usrs.Other.UsrDat;
|
&Gbl.Usrs.Other.UsrDat;
|
||||||
|
@ -1068,9 +1088,13 @@ void ExaRes_ShowOneExaResult (void)
|
||||||
bool ICanViewResult;
|
bool ICanViewResult;
|
||||||
bool ICanViewScore;
|
bool ICanViewScore;
|
||||||
|
|
||||||
/***** Reset exams *****/
|
/***** Reset exams context *****/
|
||||||
Exa_ResetExams (&Exams);
|
Exa_ResetExams (&Exams);
|
||||||
|
|
||||||
|
/***** Reset exam and event *****/
|
||||||
|
Exa_ResetExam (&Exam);
|
||||||
|
ExaEvt_ResetEvent (&Event);
|
||||||
|
|
||||||
/***** Get and check parameters *****/
|
/***** Get and check parameters *****/
|
||||||
ExaEvt_GetAndCheckParameters (&Exams,&Exam,&Event);
|
ExaEvt_GetAndCheckParameters (&Exams,&Exam,&Event);
|
||||||
|
|
||||||
|
|
126
swad_game.c
126
swad_game.c
|
@ -131,8 +131,6 @@ static void Gam_PutParamsOneQst (void *Games);
|
||||||
static void Gam_PutHiddenParamOrder (Gam_Order_t SelectedOrder);
|
static void Gam_PutHiddenParamOrder (Gam_Order_t SelectedOrder);
|
||||||
static Gam_Order_t Gam_GetParamOrder (void);
|
static Gam_Order_t Gam_GetParamOrder (void);
|
||||||
|
|
||||||
static void Gam_ResetGame (struct Gam_Game *Game);
|
|
||||||
|
|
||||||
static void Gam_GetGameTxtFromDB (long GamCod,char Txt[Cns_MAX_BYTES_TEXT + 1]);
|
static void Gam_GetGameTxtFromDB (long GamCod,char Txt[Cns_MAX_BYTES_TEXT + 1]);
|
||||||
|
|
||||||
static void Gam_RemoveGameFromAllTables (long GamCod);
|
static void Gam_RemoveGameFromAllTables (long GamCod);
|
||||||
|
@ -173,7 +171,7 @@ static void Gam_ExchangeQuestions (long GamCod,
|
||||||
static bool Gam_CheckIfEditable (const struct Gam_Game *Game);
|
static bool Gam_CheckIfEditable (const struct Gam_Game *Game);
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/******************************* Reset games *********************************/
|
/*************************** Reset games context *****************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
void Gam_ResetGames (struct Gam_Games *Games)
|
void Gam_ResetGames (struct Gam_Games *Games)
|
||||||
|
@ -191,6 +189,27 @@ void Gam_ResetGames (struct Gam_Games *Games)
|
||||||
Games->QstInd = 0; // Current question index
|
Games->QstInd = 0; // Current question index
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/*************************** Initialize game to empty ************************/
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
void Gam_ResetGame (struct Gam_Game *Game)
|
||||||
|
{
|
||||||
|
/***** Initialize to empty game *****/
|
||||||
|
Game->GamCod = -1L;
|
||||||
|
Game->CrsCod = -1L;
|
||||||
|
Game->UsrCod = -1L;
|
||||||
|
Game->MaxGrade = Gam_MAX_GRADE_DEFAULT;
|
||||||
|
Game->Visibility = TstVis_VISIBILITY_DEFAULT;
|
||||||
|
Game->TimeUTC[Dat_START_TIME] = (time_t) 0;
|
||||||
|
Game->TimeUTC[Dat_END_TIME ] = (time_t) 0;
|
||||||
|
Game->Title[0] = '\0';
|
||||||
|
Game->NumQsts = 0;
|
||||||
|
Game->NumMchs = 0;
|
||||||
|
Game->NumUnfinishedMchs = 0;
|
||||||
|
Game->Hidden = false;
|
||||||
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/***************************** List all games ********************************/
|
/***************************** List all games ********************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -199,7 +218,7 @@ void Gam_SeeAllGames (void)
|
||||||
{
|
{
|
||||||
struct Gam_Games Games;
|
struct Gam_Games Games;
|
||||||
|
|
||||||
/***** Reset games *****/
|
/***** Reset games context *****/
|
||||||
Gam_ResetGames (&Games);
|
Gam_ResetGames (&Games);
|
||||||
|
|
||||||
/***** Get parameters *****/
|
/***** Get parameters *****/
|
||||||
|
@ -226,6 +245,9 @@ static void Gam_ListAllGames (struct Gam_Games *Games)
|
||||||
unsigned NumGame;
|
unsigned NumGame;
|
||||||
struct Gam_Game Game;
|
struct Gam_Game Game;
|
||||||
|
|
||||||
|
/***** Reset game *****/
|
||||||
|
Gam_ResetGame (&Game);
|
||||||
|
|
||||||
/***** Get number of groups in current course *****/
|
/***** Get number of groups in current course *****/
|
||||||
if (!Gbl.Crs.Grps.NumGrps)
|
if (!Gbl.Crs.Grps.NumGrps)
|
||||||
Gbl.Crs.Grps.WhichGrps = Grp_ALL_GROUPS;
|
Gbl.Crs.Grps.WhichGrps = Grp_ALL_GROUPS;
|
||||||
|
@ -418,9 +440,12 @@ void Gam_SeeOneGame (void)
|
||||||
struct Gam_Games Games;
|
struct Gam_Games Games;
|
||||||
struct Gam_Game Game;
|
struct Gam_Game Game;
|
||||||
|
|
||||||
/***** Reset games *****/
|
/***** Reset games context *****/
|
||||||
Gam_ResetGames (&Games);
|
Gam_ResetGames (&Games);
|
||||||
|
|
||||||
|
/***** Reset game *****/
|
||||||
|
Gam_ResetGame (&Game);
|
||||||
|
|
||||||
/***** Get parameters *****/
|
/***** Get parameters *****/
|
||||||
if ((Game.GamCod = Gam_GetParams (&Games)) <= 0)
|
if ((Game.GamCod = Gam_GetParams (&Games)) <= 0)
|
||||||
Lay_ShowErrorAndExit ("Code of game is missing.");
|
Lay_ShowErrorAndExit ("Code of game is missing.");
|
||||||
|
@ -1050,27 +1075,6 @@ void Gam_GetDataOfGameByCod (struct Gam_Game *Game)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
|
||||||
/*************************** Initialize game to empty ************************/
|
|
||||||
/*****************************************************************************/
|
|
||||||
|
|
||||||
static void Gam_ResetGame (struct Gam_Game *Game)
|
|
||||||
{
|
|
||||||
/***** Initialize to empty game *****/
|
|
||||||
Game->GamCod = -1L;
|
|
||||||
Game->CrsCod = -1L;
|
|
||||||
Game->UsrCod = -1L;
|
|
||||||
Game->MaxGrade = Gam_MAX_GRADE_DEFAULT;
|
|
||||||
Game->Visibility = TstVis_VISIBILITY_DEFAULT;
|
|
||||||
Game->TimeUTC[Dat_START_TIME] = (time_t) 0;
|
|
||||||
Game->TimeUTC[Dat_END_TIME ] = (time_t) 0;
|
|
||||||
Game->Title[0] = '\0';
|
|
||||||
Game->NumQsts = 0;
|
|
||||||
Game->NumMchs = 0;
|
|
||||||
Game->NumUnfinishedMchs = 0;
|
|
||||||
Game->Hidden = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/***************************** Free list of games ****************************/
|
/***************************** Free list of games ****************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -1131,9 +1135,12 @@ void Gam_AskRemGame (void)
|
||||||
struct Gam_Games Games;
|
struct Gam_Games Games;
|
||||||
struct Gam_Game Game;
|
struct Gam_Game Game;
|
||||||
|
|
||||||
/***** Reset games *****/
|
/***** Reset games context *****/
|
||||||
Gam_ResetGames (&Games);
|
Gam_ResetGames (&Games);
|
||||||
|
|
||||||
|
/***** Reset game *****/
|
||||||
|
Gam_ResetGame (&Game);
|
||||||
|
|
||||||
/***** Get parameters *****/
|
/***** Get parameters *****/
|
||||||
if ((Game.GamCod = Gam_GetParams (&Games)) <= 0)
|
if ((Game.GamCod = Gam_GetParams (&Games)) <= 0)
|
||||||
Lay_ShowErrorAndExit ("Code of game is missing.");
|
Lay_ShowErrorAndExit ("Code of game is missing.");
|
||||||
|
@ -1165,9 +1172,12 @@ void Gam_RemoveGame (void)
|
||||||
struct Gam_Games Games;
|
struct Gam_Games Games;
|
||||||
struct Gam_Game Game;
|
struct Gam_Game Game;
|
||||||
|
|
||||||
/***** Reset games *****/
|
/***** Reset games context *****/
|
||||||
Gam_ResetGames (&Games);
|
Gam_ResetGames (&Games);
|
||||||
|
|
||||||
|
/***** Reset game *****/
|
||||||
|
Gam_ResetGame (&Game);
|
||||||
|
|
||||||
/***** Get game code *****/
|
/***** Get game code *****/
|
||||||
if ((Game.GamCod = Gam_GetParamGameCod ()) == -1L)
|
if ((Game.GamCod = Gam_GetParamGameCod ()) == -1L)
|
||||||
Lay_ShowErrorAndExit ("Code of game is missing.");
|
Lay_ShowErrorAndExit ("Code of game is missing.");
|
||||||
|
@ -1241,9 +1251,12 @@ void Gam_HideGame (void)
|
||||||
struct Gam_Games Games;
|
struct Gam_Games Games;
|
||||||
struct Gam_Game Game;
|
struct Gam_Game Game;
|
||||||
|
|
||||||
/***** Reset games *****/
|
/***** Reset games context *****/
|
||||||
Gam_ResetGames (&Games);
|
Gam_ResetGames (&Games);
|
||||||
|
|
||||||
|
/***** Reset game *****/
|
||||||
|
Gam_ResetGame (&Game);
|
||||||
|
|
||||||
/***** Get parameters *****/
|
/***** Get parameters *****/
|
||||||
if ((Game.GamCod = Gam_GetParams (&Games)) <= 0)
|
if ((Game.GamCod = Gam_GetParams (&Games)) <= 0)
|
||||||
Lay_ShowErrorAndExit ("Code of game is missing.");
|
Lay_ShowErrorAndExit ("Code of game is missing.");
|
||||||
|
@ -1271,9 +1284,12 @@ void Gam_UnhideGame (void)
|
||||||
struct Gam_Games Games;
|
struct Gam_Games Games;
|
||||||
struct Gam_Game Game;
|
struct Gam_Game Game;
|
||||||
|
|
||||||
/***** Reset games *****/
|
/***** Reset games context *****/
|
||||||
Gam_ResetGames (&Games);
|
Gam_ResetGames (&Games);
|
||||||
|
|
||||||
|
/***** Reset game *****/
|
||||||
|
Gam_ResetGame (&Game);
|
||||||
|
|
||||||
/***** Get parameters *****/
|
/***** Get parameters *****/
|
||||||
if ((Game.GamCod = Gam_GetParams (&Games)) <= 0)
|
if ((Game.GamCod = Gam_GetParams (&Games)) <= 0)
|
||||||
Lay_ShowErrorAndExit ("Code of game is missing.");
|
Lay_ShowErrorAndExit ("Code of game is missing.");
|
||||||
|
@ -1318,9 +1334,12 @@ void Gam_RequestCreatOrEditGame (void)
|
||||||
bool ItsANewGame;
|
bool ItsANewGame;
|
||||||
char Txt[Cns_MAX_BYTES_TEXT + 1];
|
char Txt[Cns_MAX_BYTES_TEXT + 1];
|
||||||
|
|
||||||
/***** Reset games *****/
|
/***** Reset games context *****/
|
||||||
Gam_ResetGames (&Games);
|
Gam_ResetGames (&Games);
|
||||||
|
|
||||||
|
/***** Reset game *****/
|
||||||
|
Gam_ResetGame (&Game);
|
||||||
|
|
||||||
/***** Check if I can edit games *****/
|
/***** Check if I can edit games *****/
|
||||||
if (!Gam_CheckIfICanEditGames ())
|
if (!Gam_CheckIfICanEditGames ())
|
||||||
Lay_NoPermissionExit ();
|
Lay_NoPermissionExit ();
|
||||||
|
@ -1473,9 +1492,12 @@ void Gam_RecFormGame (void)
|
||||||
bool ItsANewGame;
|
bool ItsANewGame;
|
||||||
char Txt[Cns_MAX_BYTES_TEXT + 1];
|
char Txt[Cns_MAX_BYTES_TEXT + 1];
|
||||||
|
|
||||||
/***** Reset games *****/
|
/***** Reset games context *****/
|
||||||
Gam_ResetGames (&Games);
|
Gam_ResetGames (&Games);
|
||||||
|
|
||||||
|
/***** Reset game *****/
|
||||||
|
Gam_ResetGame (&Game);
|
||||||
|
|
||||||
/***** Check if I can edit games *****/
|
/***** Check if I can edit games *****/
|
||||||
if (!Gam_CheckIfICanEditGames ())
|
if (!Gam_CheckIfICanEditGames ())
|
||||||
Lay_NoPermissionExit ();
|
Lay_NoPermissionExit ();
|
||||||
|
@ -1650,9 +1672,12 @@ void Gam_RequestNewQuestion (void)
|
||||||
struct Gam_Games Games;
|
struct Gam_Games Games;
|
||||||
struct Gam_Game Game;
|
struct Gam_Game Game;
|
||||||
|
|
||||||
/***** Reset games *****/
|
/***** Reset games context *****/
|
||||||
Gam_ResetGames (&Games);
|
Gam_ResetGames (&Games);
|
||||||
|
|
||||||
|
/***** Reset game *****/
|
||||||
|
Gam_ResetGame (&Game);
|
||||||
|
|
||||||
/***** Get parameters *****/
|
/***** Get parameters *****/
|
||||||
if ((Game.GamCod = Gam_GetParams (&Games)) <= 0)
|
if ((Game.GamCod = Gam_GetParams (&Games)) <= 0)
|
||||||
Lay_ShowErrorAndExit ("Code of game is missing.");
|
Lay_ShowErrorAndExit ("Code of game is missing.");
|
||||||
|
@ -1683,9 +1708,12 @@ void Gam_ListTstQuestionsToSelect (void)
|
||||||
struct Gam_Games Games;
|
struct Gam_Games Games;
|
||||||
struct Gam_Game Game;
|
struct Gam_Game Game;
|
||||||
|
|
||||||
/***** Reset games *****/
|
/***** Reset games context *****/
|
||||||
Gam_ResetGames (&Games);
|
Gam_ResetGames (&Games);
|
||||||
|
|
||||||
|
/***** Reset game *****/
|
||||||
|
Gam_ResetGame (&Game);
|
||||||
|
|
||||||
/***** Get parameters *****/
|
/***** Get parameters *****/
|
||||||
if ((Game.GamCod = Gam_GetParams (&Games)) <= 0)
|
if ((Game.GamCod = Gam_GetParams (&Games)) <= 0)
|
||||||
Lay_ShowErrorAndExit ("Code of game is missing.");
|
Lay_ShowErrorAndExit ("Code of game is missing.");
|
||||||
|
@ -2150,9 +2178,12 @@ void Gam_AddTstQuestionsToGame (void)
|
||||||
long QstCod;
|
long QstCod;
|
||||||
unsigned MaxQstInd;
|
unsigned MaxQstInd;
|
||||||
|
|
||||||
/***** Reset games *****/
|
/***** Reset games context *****/
|
||||||
Gam_ResetGames (&Games);
|
Gam_ResetGames (&Games);
|
||||||
|
|
||||||
|
/***** Reset game *****/
|
||||||
|
Gam_ResetGame (&Game);
|
||||||
|
|
||||||
/***** Get parameters *****/
|
/***** Get parameters *****/
|
||||||
if ((Game.GamCod = Gam_GetParams (&Games)) <= 0)
|
if ((Game.GamCod = Gam_GetParams (&Games)) <= 0)
|
||||||
Lay_ShowErrorAndExit ("Code of game is missing.");
|
Lay_ShowErrorAndExit ("Code of game is missing.");
|
||||||
|
@ -2270,9 +2301,12 @@ void Gam_RequestRemoveQst (void)
|
||||||
struct Gam_Game Game;
|
struct Gam_Game Game;
|
||||||
unsigned QstInd;
|
unsigned QstInd;
|
||||||
|
|
||||||
/***** Reset games *****/
|
/***** Reset games context *****/
|
||||||
Gam_ResetGames (&Games);
|
Gam_ResetGames (&Games);
|
||||||
|
|
||||||
|
/***** Reset game *****/
|
||||||
|
Gam_ResetGame (&Game);
|
||||||
|
|
||||||
/***** Get parameters *****/
|
/***** Get parameters *****/
|
||||||
if ((Game.GamCod = Gam_GetParams (&Games)) <= 0)
|
if ((Game.GamCod = Gam_GetParams (&Games)) <= 0)
|
||||||
Lay_ShowErrorAndExit ("Code of game is missing.");
|
Lay_ShowErrorAndExit ("Code of game is missing.");
|
||||||
|
@ -2313,9 +2347,12 @@ void Gam_RemoveQst (void)
|
||||||
struct Gam_Game Game;
|
struct Gam_Game Game;
|
||||||
unsigned QstInd;
|
unsigned QstInd;
|
||||||
|
|
||||||
/***** Reset games *****/
|
/***** Reset games context *****/
|
||||||
Gam_ResetGames (&Games);
|
Gam_ResetGames (&Games);
|
||||||
|
|
||||||
|
/***** Reset game *****/
|
||||||
|
Gam_ResetGame (&Game);
|
||||||
|
|
||||||
/***** Get parameters *****/
|
/***** Get parameters *****/
|
||||||
if ((Game.GamCod = Gam_GetParams (&Games)) <= 0)
|
if ((Game.GamCod = Gam_GetParams (&Games)) <= 0)
|
||||||
Lay_ShowErrorAndExit ("Code of game is missing.");
|
Lay_ShowErrorAndExit ("Code of game is missing.");
|
||||||
|
@ -2377,9 +2414,12 @@ void Gam_MoveUpQst (void)
|
||||||
unsigned QstIndTop;
|
unsigned QstIndTop;
|
||||||
unsigned QstIndBottom;
|
unsigned QstIndBottom;
|
||||||
|
|
||||||
/***** Reset games *****/
|
/***** Reset games context *****/
|
||||||
Gam_ResetGames (&Games);
|
Gam_ResetGames (&Games);
|
||||||
|
|
||||||
|
/***** Reset game *****/
|
||||||
|
Gam_ResetGame (&Game);
|
||||||
|
|
||||||
/***** Get parameters *****/
|
/***** Get parameters *****/
|
||||||
if ((Game.GamCod = Gam_GetParams (&Games)) <= 0)
|
if ((Game.GamCod = Gam_GetParams (&Games)) <= 0)
|
||||||
Lay_ShowErrorAndExit ("Code of game is missing.");
|
Lay_ShowErrorAndExit ("Code of game is missing.");
|
||||||
|
@ -2432,9 +2472,12 @@ void Gam_MoveDownQst (void)
|
||||||
unsigned QstIndBottom;
|
unsigned QstIndBottom;
|
||||||
unsigned MaxQstInd; // 0 if no questions
|
unsigned MaxQstInd; // 0 if no questions
|
||||||
|
|
||||||
/***** Reset games *****/
|
/***** Reset games context *****/
|
||||||
Gam_ResetGames (&Games);
|
Gam_ResetGames (&Games);
|
||||||
|
|
||||||
|
/***** Reset game *****/
|
||||||
|
Gam_ResetGame (&Game);
|
||||||
|
|
||||||
/***** Get parameters *****/
|
/***** Get parameters *****/
|
||||||
if ((Game.GamCod = Gam_GetParams (&Games)) <= 0)
|
if ((Game.GamCod = Gam_GetParams (&Games)) <= 0)
|
||||||
Lay_ShowErrorAndExit ("Code of game is missing.");
|
Lay_ShowErrorAndExit ("Code of game is missing.");
|
||||||
|
@ -2569,9 +2612,12 @@ void Gam_RequestNewMatch (void)
|
||||||
struct Gam_Games Games;
|
struct Gam_Games Games;
|
||||||
struct Gam_Game Game;
|
struct Gam_Game Game;
|
||||||
|
|
||||||
/***** Reset games *****/
|
/***** Reset games context *****/
|
||||||
Gam_ResetGames (&Games);
|
Gam_ResetGames (&Games);
|
||||||
|
|
||||||
|
/***** Reset game *****/
|
||||||
|
Gam_ResetGame (&Game);
|
||||||
|
|
||||||
/***** Get parameters *****/
|
/***** Get parameters *****/
|
||||||
if ((Game.GamCod = Gam_GetParams (&Games)) <= 0)
|
if ((Game.GamCod = Gam_GetParams (&Games)) <= 0)
|
||||||
Lay_ShowErrorAndExit ("Code of game is missing.");
|
Lay_ShowErrorAndExit ("Code of game is missing.");
|
||||||
|
|
|
@ -98,6 +98,7 @@ struct Gam_Game
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
void Gam_ResetGames (struct Gam_Games *Games);
|
void Gam_ResetGames (struct Gam_Games *Games);
|
||||||
|
void Gam_ResetGame (struct Gam_Game *Game);
|
||||||
|
|
||||||
void Gam_SeeAllGames (void);
|
void Gam_SeeAllGames (void);
|
||||||
void Gam_SeeOneGame (void);
|
void Gam_SeeOneGame (void);
|
||||||
|
|
82
swad_match.c
82
swad_match.c
|
@ -247,6 +247,31 @@ long Mch_GetMchCodBeingPlayed (void)
|
||||||
return Mch_MchCodBeingPlayed;
|
return Mch_MchCodBeingPlayed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/********************************* Reset match *******************************/
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
void Mch_ResetMatch (struct Mch_Match *Match)
|
||||||
|
{
|
||||||
|
/***** Initialize to empty match *****/
|
||||||
|
Match->MchCod = -1L;
|
||||||
|
Match->GamCod = -1L;
|
||||||
|
Match->UsrCod = -1L;
|
||||||
|
Match->TimeUTC[Dat_START_TIME] = (time_t) 0;
|
||||||
|
Match->TimeUTC[Dat_END_TIME ] = (time_t) 0;
|
||||||
|
Match->Title[0] = '\0';
|
||||||
|
Match->Status.QstInd = 0;
|
||||||
|
Match->Status.QstCod = -1L;
|
||||||
|
Match->Status.QstStartTimeUTC = (time_t) 0;
|
||||||
|
Match->Status.Showing = Mch_SHOWING_DEFAULT;
|
||||||
|
Match->Status.Countdown = 0;
|
||||||
|
Match->Status.NumCols = 1;
|
||||||
|
Match->Status.ShowQstResults = false;
|
||||||
|
Match->Status.ShowUsrResults = false;
|
||||||
|
Match->Status.Playing = false;
|
||||||
|
Match->Status.NumPlayers = 0;
|
||||||
|
};
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/************************* List the matches of a game ************************/
|
/************************* List the matches of a game ************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -453,6 +478,9 @@ static void Mch_ListOneOrMoreMatches (struct Gam_Games *Games,
|
||||||
struct Mch_Match Match;
|
struct Mch_Match Match;
|
||||||
bool ICanEditMatches = Mch_CheckIfICanEditMatches ();
|
bool ICanEditMatches = Mch_CheckIfICanEditMatches ();
|
||||||
|
|
||||||
|
/***** Reset match *****/
|
||||||
|
Mch_ResetMatch (&Match);
|
||||||
|
|
||||||
/***** Write the heading *****/
|
/***** Write the heading *****/
|
||||||
HTM_TABLE_BeginWidePadding (2);
|
HTM_TABLE_BeginWidePadding (2);
|
||||||
Mch_ListOneOrMoreMatchesHeading (ICanEditMatches);
|
Mch_ListOneOrMoreMatchesHeading (ICanEditMatches);
|
||||||
|
@ -875,9 +903,13 @@ void Mch_ToggleVisibilResultsMchUsr (void)
|
||||||
struct Gam_Game Game;
|
struct Gam_Game Game;
|
||||||
struct Mch_Match Match;
|
struct Mch_Match Match;
|
||||||
|
|
||||||
/***** Reset games *****/
|
/***** Reset games context *****/
|
||||||
Gam_ResetGames (&Games);
|
Gam_ResetGames (&Games);
|
||||||
|
|
||||||
|
/***** Reset game and match *****/
|
||||||
|
Gam_ResetGame (&Game);
|
||||||
|
Mch_ResetMatch (&Match);
|
||||||
|
|
||||||
/***** Get and check parameters *****/
|
/***** Get and check parameters *****/
|
||||||
Mch_GetAndCheckParameters (&Games,&Game,&Match);
|
Mch_GetAndCheckParameters (&Games,&Game,&Match);
|
||||||
|
|
||||||
|
@ -1017,9 +1049,13 @@ void Mch_RequestRemoveMatch (void)
|
||||||
struct Gam_Game Game;
|
struct Gam_Game Game;
|
||||||
struct Mch_Match Match;
|
struct Mch_Match Match;
|
||||||
|
|
||||||
/***** Reset games *****/
|
/***** Reset games context *****/
|
||||||
Gam_ResetGames (&Games);
|
Gam_ResetGames (&Games);
|
||||||
|
|
||||||
|
/***** Reset game and match *****/
|
||||||
|
Gam_ResetGame (&Game);
|
||||||
|
Mch_ResetMatch (&Match);
|
||||||
|
|
||||||
/***** Get and check parameters *****/
|
/***** Get and check parameters *****/
|
||||||
Mch_GetAndCheckParameters (&Games,&Game,&Match);
|
Mch_GetAndCheckParameters (&Games,&Game,&Match);
|
||||||
|
|
||||||
|
@ -1049,9 +1085,13 @@ void Mch_RemoveMatch (void)
|
||||||
struct Gam_Game Game;
|
struct Gam_Game Game;
|
||||||
struct Mch_Match Match;
|
struct Mch_Match Match;
|
||||||
|
|
||||||
/***** Reset games *****/
|
/***** Reset games context *****/
|
||||||
Gam_ResetGames (&Games);
|
Gam_ResetGames (&Games);
|
||||||
|
|
||||||
|
/***** Reset game and match *****/
|
||||||
|
Gam_ResetGame (&Game);
|
||||||
|
Mch_ResetMatch (&Match);
|
||||||
|
|
||||||
/***** Get and check parameters *****/
|
/***** Get and check parameters *****/
|
||||||
Mch_GetAndCheckParameters (&Games,&Game,&Match);
|
Mch_GetAndCheckParameters (&Games,&Game,&Match);
|
||||||
|
|
||||||
|
@ -1434,6 +1474,9 @@ void Mch_ResumeMatch (void)
|
||||||
{
|
{
|
||||||
struct Mch_Match Match;
|
struct Mch_Match Match;
|
||||||
|
|
||||||
|
/***** Reset match *****/
|
||||||
|
Mch_ResetMatch (&Match);
|
||||||
|
|
||||||
/***** Remove old players.
|
/***** Remove old players.
|
||||||
This function must be called by a teacher
|
This function must be called by a teacher
|
||||||
before getting match status. *****/
|
before getting match status. *****/
|
||||||
|
@ -1874,6 +1917,9 @@ void Mch_PlayPauseMatch (void)
|
||||||
{
|
{
|
||||||
struct Mch_Match Match;
|
struct Mch_Match Match;
|
||||||
|
|
||||||
|
/***** Reset match *****/
|
||||||
|
Mch_ResetMatch (&Match);
|
||||||
|
|
||||||
/***** Remove old players.
|
/***** Remove old players.
|
||||||
This function must be called by a teacher
|
This function must be called by a teacher
|
||||||
before getting match status. *****/
|
before getting match status. *****/
|
||||||
|
@ -1908,6 +1954,9 @@ void Mch_ChangeNumColsMch (void)
|
||||||
{
|
{
|
||||||
struct Mch_Match Match;
|
struct Mch_Match Match;
|
||||||
|
|
||||||
|
/***** Reset match *****/
|
||||||
|
Mch_ResetMatch (&Match);
|
||||||
|
|
||||||
/***** Remove old players.
|
/***** Remove old players.
|
||||||
This function must be called by a teacher
|
This function must be called by a teacher
|
||||||
before getting match status. *****/
|
before getting match status. *****/
|
||||||
|
@ -1941,6 +1990,9 @@ void Mch_ToggleVisibilResultsMchQst (void)
|
||||||
{
|
{
|
||||||
struct Mch_Match Match;
|
struct Mch_Match Match;
|
||||||
|
|
||||||
|
/***** Reset match *****/
|
||||||
|
Mch_ResetMatch (&Match);
|
||||||
|
|
||||||
/***** Remove old players.
|
/***** Remove old players.
|
||||||
This function must be called by a teacher
|
This function must be called by a teacher
|
||||||
before getting match status. *****/
|
before getting match status. *****/
|
||||||
|
@ -1973,6 +2025,9 @@ void Mch_BackMatch (void)
|
||||||
{
|
{
|
||||||
struct Mch_Match Match;
|
struct Mch_Match Match;
|
||||||
|
|
||||||
|
/***** Reset match *****/
|
||||||
|
Mch_ResetMatch (&Match);
|
||||||
|
|
||||||
/***** Remove old players.
|
/***** Remove old players.
|
||||||
This function must be called by a teacher
|
This function must be called by a teacher
|
||||||
before getting match status. *****/
|
before getting match status. *****/
|
||||||
|
@ -2002,6 +2057,9 @@ void Mch_ForwardMatch (void)
|
||||||
{
|
{
|
||||||
struct Mch_Match Match;
|
struct Mch_Match Match;
|
||||||
|
|
||||||
|
/***** Reset match *****/
|
||||||
|
Mch_ResetMatch (&Match);
|
||||||
|
|
||||||
/***** Remove old players.
|
/***** Remove old players.
|
||||||
This function must be called by a teacher
|
This function must be called by a teacher
|
||||||
before getting match status. *****/
|
before getting match status. *****/
|
||||||
|
@ -3628,6 +3686,9 @@ void Mch_JoinMatchAsStd (void)
|
||||||
{
|
{
|
||||||
struct Mch_Match Match;
|
struct Mch_Match Match;
|
||||||
|
|
||||||
|
/***** Reset match *****/
|
||||||
|
Mch_ResetMatch (&Match);
|
||||||
|
|
||||||
/***** Get data of the match from database *****/
|
/***** Get data of the match from database *****/
|
||||||
Match.MchCod = Mch_GetMchCodBeingPlayed ();
|
Match.MchCod = Mch_GetMchCodBeingPlayed ();
|
||||||
Mch_GetDataOfMatchByCod (&Match);
|
Mch_GetDataOfMatchByCod (&Match);
|
||||||
|
@ -3647,6 +3708,9 @@ void Mch_RemoveMyQuestionAnswer (void)
|
||||||
struct Mch_Match Match;
|
struct Mch_Match Match;
|
||||||
unsigned QstInd;
|
unsigned QstInd;
|
||||||
|
|
||||||
|
/***** Reset match *****/
|
||||||
|
Mch_ResetMatch (&Match);
|
||||||
|
|
||||||
/***** Get data of the match from database *****/
|
/***** Get data of the match from database *****/
|
||||||
Match.MchCod = Mch_GetMchCodBeingPlayed ();
|
Match.MchCod = Mch_GetMchCodBeingPlayed ();
|
||||||
Mch_GetDataOfMatchByCod (&Match);
|
Mch_GetDataOfMatchByCod (&Match);
|
||||||
|
@ -3677,6 +3741,9 @@ void Mch_StartCountdown (void)
|
||||||
struct Mch_Match Match;
|
struct Mch_Match Match;
|
||||||
long NewCountdown;
|
long NewCountdown;
|
||||||
|
|
||||||
|
/***** Reset match *****/
|
||||||
|
Mch_ResetMatch (&Match);
|
||||||
|
|
||||||
/***** Get countdown parameter ****/
|
/***** Get countdown parameter ****/
|
||||||
NewCountdown = Par_GetParToLong ("Countdown");
|
NewCountdown = Par_GetParToLong ("Countdown");
|
||||||
|
|
||||||
|
@ -3711,6 +3778,9 @@ void Mch_RefreshMatchTch (void)
|
||||||
if (!Gbl.Session.IsOpen) // If session has been closed, do not write anything
|
if (!Gbl.Session.IsOpen) // If session has been closed, do not write anything
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
/***** Reset match *****/
|
||||||
|
Mch_ResetMatch (&Match);
|
||||||
|
|
||||||
/***** Remove old players.
|
/***** Remove old players.
|
||||||
This function must be called by a teacher
|
This function must be called by a teacher
|
||||||
before getting match status. *****/
|
before getting match status. *****/
|
||||||
|
@ -3768,6 +3838,9 @@ void Mch_RefreshMatchStd (void)
|
||||||
if (!Gbl.Session.IsOpen) // If session has been closed, do not write anything
|
if (!Gbl.Session.IsOpen) // If session has been closed, do not write anything
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
/***** Reset match *****/
|
||||||
|
Mch_ResetMatch (&Match);
|
||||||
|
|
||||||
/***** Get data of the match from database *****/
|
/***** Get data of the match from database *****/
|
||||||
Match.MchCod = Mch_GetMchCodBeingPlayed ();
|
Match.MchCod = Mch_GetMchCodBeingPlayed ();
|
||||||
Mch_GetDataOfMatchByCod (&Match);
|
Mch_GetDataOfMatchByCod (&Match);
|
||||||
|
@ -3830,6 +3903,9 @@ void Mch_ReceiveQuestionAnswer (void)
|
||||||
struct Mch_UsrAnswer UsrAnswer;
|
struct Mch_UsrAnswer UsrAnswer;
|
||||||
struct TstRes_Result Result;
|
struct TstRes_Result Result;
|
||||||
|
|
||||||
|
/***** Reset match *****/
|
||||||
|
Mch_ResetMatch (&Match);
|
||||||
|
|
||||||
/***** Get data of the match from database *****/
|
/***** Get data of the match from database *****/
|
||||||
Match.MchCod = Mch_GetMchCodBeingPlayed ();
|
Match.MchCod = Mch_GetMchCodBeingPlayed ();
|
||||||
Mch_GetDataOfMatchByCod (&Match);
|
Mch_GetDataOfMatchByCod (&Match);
|
||||||
|
|
|
@ -85,6 +85,8 @@ struct Mch_UsrAnswer
|
||||||
|
|
||||||
long Mch_GetMchCodBeingPlayed (void);
|
long Mch_GetMchCodBeingPlayed (void);
|
||||||
|
|
||||||
|
void Mch_ResetMatch (struct Mch_Match *Match);
|
||||||
|
|
||||||
void Mch_ListMatches (struct Gam_Games *Games,
|
void Mch_ListMatches (struct Gam_Games *Games,
|
||||||
struct Gam_Game *Game,
|
struct Gam_Game *Game,
|
||||||
bool PutFormNewMatch);
|
bool PutFormNewMatch);
|
||||||
|
|
|
@ -115,7 +115,7 @@ void MchRes_ShowMyMchResultsInCrs (void)
|
||||||
extern const char *Txt_Results;
|
extern const char *Txt_Results;
|
||||||
struct Gam_Games Games;
|
struct Gam_Games Games;
|
||||||
|
|
||||||
/***** Reset games *****/
|
/***** Reset games context *****/
|
||||||
Gam_ResetGames (&Games);
|
Gam_ResetGames (&Games);
|
||||||
|
|
||||||
/***** Get list of games *****/
|
/***** Get list of games *****/
|
||||||
|
@ -156,9 +156,12 @@ void MchRes_ShowMyMchResultsInGam (void)
|
||||||
struct Gam_Games Games;
|
struct Gam_Games Games;
|
||||||
struct Gam_Game Game;
|
struct Gam_Game Game;
|
||||||
|
|
||||||
/***** Reset games *****/
|
/***** Reset games context *****/
|
||||||
Gam_ResetGames (&Games);
|
Gam_ResetGames (&Games);
|
||||||
|
|
||||||
|
/***** Reset game *****/
|
||||||
|
Gam_ResetGame (&Game);
|
||||||
|
|
||||||
/***** Get parameters *****/
|
/***** Get parameters *****/
|
||||||
if ((Game.GamCod = Gam_GetParams (&Games)) <= 0)
|
if ((Game.GamCod = Gam_GetParams (&Games)) <= 0)
|
||||||
Lay_ShowErrorAndExit ("Code of game is missing.");
|
Lay_ShowErrorAndExit ("Code of game is missing.");
|
||||||
|
@ -202,9 +205,13 @@ void MchRes_ShowMyMchResultsInMch (void)
|
||||||
struct Gam_Game Game;
|
struct Gam_Game Game;
|
||||||
struct Mch_Match Match;
|
struct Mch_Match Match;
|
||||||
|
|
||||||
/***** Reset games *****/
|
/***** Reset games context *****/
|
||||||
Gam_ResetGames (&Games);
|
Gam_ResetGames (&Games);
|
||||||
|
|
||||||
|
/***** Reset game and match *****/
|
||||||
|
Gam_ResetGame (&Game);
|
||||||
|
Mch_ResetMatch (&Match);
|
||||||
|
|
||||||
/***** Get parameters *****/
|
/***** Get parameters *****/
|
||||||
if ((Game.GamCod = Gam_GetParams (&Games)) <= 0)
|
if ((Game.GamCod = Gam_GetParams (&Games)) <= 0)
|
||||||
Lay_ShowErrorAndExit ("Code of game is missing.");
|
Lay_ShowErrorAndExit ("Code of game is missing.");
|
||||||
|
@ -247,7 +254,7 @@ void MchRes_ShowAllMchResultsInCrs (void)
|
||||||
{
|
{
|
||||||
struct Gam_Games Games;
|
struct Gam_Games Games;
|
||||||
|
|
||||||
/***** Reset games *****/
|
/***** Reset games context *****/
|
||||||
Gam_ResetGames (&Games);
|
Gam_ResetGames (&Games);
|
||||||
|
|
||||||
/***** Get users and show their matches results *****/
|
/***** Get users and show their matches results *****/
|
||||||
|
@ -318,7 +325,7 @@ void MchRes_SelUsrsToViewMchResults (void)
|
||||||
{
|
{
|
||||||
struct Gam_Games Games;
|
struct Gam_Games Games;
|
||||||
|
|
||||||
/***** Reset games *****/
|
/***** Reset games context *****/
|
||||||
Gam_ResetGames (&Games);
|
Gam_ResetGames (&Games);
|
||||||
|
|
||||||
/***** Put form to select users *****/
|
/***** Put form to select users *****/
|
||||||
|
@ -351,9 +358,12 @@ void MchRes_ShowAllMchResultsInGam (void)
|
||||||
struct Gam_Games Games;
|
struct Gam_Games Games;
|
||||||
struct Gam_Game Game;
|
struct Gam_Game Game;
|
||||||
|
|
||||||
/***** Reset games *****/
|
/***** Reset games context *****/
|
||||||
Gam_ResetGames (&Games);
|
Gam_ResetGames (&Games);
|
||||||
|
|
||||||
|
/***** Reset game *****/
|
||||||
|
Gam_ResetGame (&Game);
|
||||||
|
|
||||||
/***** Get parameters *****/
|
/***** Get parameters *****/
|
||||||
if ((Game.GamCod = Gam_GetParams (&Games)) <= 0)
|
if ((Game.GamCod = Gam_GetParams (&Games)) <= 0)
|
||||||
Lay_ShowErrorAndExit ("Code of game is missing.");
|
Lay_ShowErrorAndExit ("Code of game is missing.");
|
||||||
|
@ -438,9 +448,13 @@ void MchRes_ShowAllMchResultsInMch (void)
|
||||||
struct Gam_Game Game;
|
struct Gam_Game Game;
|
||||||
struct Mch_Match Match;
|
struct Mch_Match Match;
|
||||||
|
|
||||||
/***** Reset games *****/
|
/***** Reset games context *****/
|
||||||
Gam_ResetGames (&Games);
|
Gam_ResetGames (&Games);
|
||||||
|
|
||||||
|
/***** Reset game and match *****/
|
||||||
|
Gam_ResetGame (&Game);
|
||||||
|
Mch_ResetMatch (&Match);
|
||||||
|
|
||||||
/***** Get parameters *****/
|
/***** Get parameters *****/
|
||||||
if ((Game.GamCod = Gam_GetParams (&Games)) <= 0)
|
if ((Game.GamCod = Gam_GetParams (&Games)) <= 0)
|
||||||
Lay_ShowErrorAndExit ("Code of game is missing.");
|
Lay_ShowErrorAndExit ("Code of game is missing.");
|
||||||
|
@ -567,6 +581,9 @@ static void MchRes_ListGamesToSelect (struct Gam_Games *Games)
|
||||||
unsigned NumGame;
|
unsigned NumGame;
|
||||||
struct Gam_Game Game;
|
struct Gam_Game Game;
|
||||||
|
|
||||||
|
/***** Reset game *****/
|
||||||
|
Gam_ResetGame (&Game);
|
||||||
|
|
||||||
/***** Begin box *****/
|
/***** Begin box *****/
|
||||||
Box_BoxBegin (NULL,Txt_Games,
|
Box_BoxBegin (NULL,Txt_Games,
|
||||||
NULL,NULL,
|
NULL,NULL,
|
||||||
|
@ -744,6 +761,9 @@ static void MchRes_ShowMchResults (struct Gam_Games *Games,
|
||||||
unsigned Visibility;
|
unsigned Visibility;
|
||||||
time_t TimeUTC[Dat_NUM_START_END_TIME];
|
time_t TimeUTC[Dat_NUM_START_END_TIME];
|
||||||
|
|
||||||
|
/***** Reset match *****/
|
||||||
|
Mch_ResetMatch (&Match);
|
||||||
|
|
||||||
/***** Set user *****/
|
/***** Set user *****/
|
||||||
UsrDat = (MeOrOther == Usr_ME) ? &Gbl.Usrs.Me.UsrDat :
|
UsrDat = (MeOrOther == Usr_ME) ? &Gbl.Usrs.Me.UsrDat :
|
||||||
&Gbl.Usrs.Other.UsrDat;
|
&Gbl.Usrs.Other.UsrDat;
|
||||||
|
@ -1067,9 +1087,13 @@ void MchRes_ShowOneMchResult (void)
|
||||||
bool ICanViewResult;
|
bool ICanViewResult;
|
||||||
bool ICanViewScore;
|
bool ICanViewScore;
|
||||||
|
|
||||||
/***** Reset games *****/
|
/***** Reset games context *****/
|
||||||
Gam_ResetGames (&Games);
|
Gam_ResetGames (&Games);
|
||||||
|
|
||||||
|
/***** Reset game and match *****/
|
||||||
|
Gam_ResetGame (&Game);
|
||||||
|
Mch_ResetMatch (&Match);
|
||||||
|
|
||||||
/***** Get and check parameters *****/
|
/***** Get and check parameters *****/
|
||||||
Mch_GetAndCheckParameters (&Games,&Game,&Match);
|
Mch_GetAndCheckParameters (&Games,&Game,&Match);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user