Version18.127.2

This commit is contained in:
Antonio Cañas Vargas 2019-05-31 10:04:13 +02:00
parent 3ba9647b4f
commit d617a29b6e
5 changed files with 90 additions and 56 deletions

View File

@ -611,6 +611,7 @@ Assessment:
456. ActNewMch Create a new match showing first question in a new browser tab (by a teacher)
NEW. ActResMch Resume an unfinished match showing current question in a new browser tab (by a teacher)
457. ActNxtMch Show next question when playing a game (by a teacher)
NEW. ActShoMch Show finished match results
NEW. ActPlyMchStd Play a game (by a student)
NEW. ActGamStdCurQst Show current question when playing a game (by a student)
@ -2148,6 +2149,7 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActNewMch */{1671,-1,TabUnk,ActSeeAllGam ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_NEW_TAB,NULL ,Gam_CreateAndStartNewMatch ,NULL},
/* ActResMch */{1785,-1,TabUnk,ActSeeAllGam ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_NEW_TAB,NULL ,Gam_ResumeUnfinishedMatch ,NULL},
/* ActNxtMch */{1672,-1,TabUnk,ActSeeAllGam ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_2ND_TAB,NULL ,Gam_NextStatusMatch ,NULL},
/* ActShoMch */{1786,-1,TabUnk,ActSeeAllGam ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Gam_ShowFinishedMatchResults ,NULL},
/* ActPlyMchStd */{1779,-1,TabUnk,ActSeeAllGam ,0x008, 0, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Gam_PlayMatchStd ,NULL},
/* ActGamStdCurQst */{1780,-1,TabUnk,ActSeeAllGam ,0x008, 0, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_NEW_TAB,Gam_GetMatchBeingPlayed ,Gam_ShowNewMatchToMeAsStd ,NULL},
@ -4989,6 +4991,7 @@ Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD] = // Do not reuse un
ActReqRemMch, // #1783
ActRemMch, // #1784
ActResMch, // #1785
ActShoMch, // #1786
};
/*****************************************************************************/

View File

@ -64,9 +64,9 @@ typedef enum
typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to indicate obsolete action
#define Act_NUM_ACTIONS (1 + 4 + 64 + 38 + 12 + 42 + 36 + 19 + 110 + 168 + 437 + 176 + 169 + 16 + 67)
#define Act_NUM_ACTIONS (1 + 4 + 64 + 38 + 12 + 42 + 36 + 19 + 110 + 169 + 437 + 176 + 169 + 16 + 67)
#define Act_MAX_ACTION_COD 1785
#define Act_MAX_ACTION_COD 1786
#define Act_MAX_OPTIONS_IN_MENU_PER_TAB 13
@ -613,54 +613,55 @@ typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to
#define ActNewMch (ActChgCrsTT1stDay + 120)
#define ActResMch (ActChgCrsTT1stDay + 121)
#define ActNxtMch (ActChgCrsTT1stDay + 122)
#define ActPlyMchStd (ActChgCrsTT1stDay + 123)
#define ActGamStdCurQst (ActChgCrsTT1stDay + 124)
#define ActRefGamStd (ActChgCrsTT1stDay + 125)
#define ActAnsGam (ActChgCrsTT1stDay + 126)
#define ActFrmNewGam (ActChgCrsTT1stDay + 127)
#define ActEdiOneGam (ActChgCrsTT1stDay + 128)
#define ActNewGam (ActChgCrsTT1stDay + 129)
#define ActChgGam (ActChgCrsTT1stDay + 130)
#define ActReqRemGam (ActChgCrsTT1stDay + 131)
#define ActRemGam (ActChgCrsTT1stDay + 132)
#define ActReqRstGam (ActChgCrsTT1stDay + 133)
#define ActRstGam (ActChgCrsTT1stDay + 134)
#define ActHidGam (ActChgCrsTT1stDay + 135)
#define ActShoGam (ActChgCrsTT1stDay + 136)
#define ActAddOneGamQst (ActChgCrsTT1stDay + 137)
#define ActGamLstTstQst (ActChgCrsTT1stDay + 138)
#define ActAddTstQstToGam (ActChgCrsTT1stDay + 139)
#define ActReqRemGamQst (ActChgCrsTT1stDay + 140)
#define ActRemGamQst (ActChgCrsTT1stDay + 141)
#define ActUp_GamQst (ActChgCrsTT1stDay + 142)
#define ActDwnGamQst (ActChgCrsTT1stDay + 143)
#define ActShoMch (ActChgCrsTT1stDay + 123)
#define ActPlyMchStd (ActChgCrsTT1stDay + 124)
#define ActGamStdCurQst (ActChgCrsTT1stDay + 125)
#define ActRefGamStd (ActChgCrsTT1stDay + 126)
#define ActAnsGam (ActChgCrsTT1stDay + 127)
#define ActFrmNewGam (ActChgCrsTT1stDay + 128)
#define ActEdiOneGam (ActChgCrsTT1stDay + 129)
#define ActNewGam (ActChgCrsTT1stDay + 130)
#define ActChgGam (ActChgCrsTT1stDay + 131)
#define ActReqRemGam (ActChgCrsTT1stDay + 132)
#define ActRemGam (ActChgCrsTT1stDay + 133)
#define ActReqRstGam (ActChgCrsTT1stDay + 134)
#define ActRstGam (ActChgCrsTT1stDay + 135)
#define ActHidGam (ActChgCrsTT1stDay + 136)
#define ActShoGam (ActChgCrsTT1stDay + 137)
#define ActAddOneGamQst (ActChgCrsTT1stDay + 138)
#define ActGamLstTstQst (ActChgCrsTT1stDay + 139)
#define ActAddTstQstToGam (ActChgCrsTT1stDay + 140)
#define ActReqRemGamQst (ActChgCrsTT1stDay + 141)
#define ActRemGamQst (ActChgCrsTT1stDay + 142)
#define ActUp_GamQst (ActChgCrsTT1stDay + 143)
#define ActDwnGamQst (ActChgCrsTT1stDay + 144)
#define ActSeeSvy (ActChgCrsTT1stDay + 144)
#define ActAnsSvy (ActChgCrsTT1stDay + 145)
#define ActFrmNewSvy (ActChgCrsTT1stDay + 146)
#define ActEdiOneSvy (ActChgCrsTT1stDay + 147)
#define ActNewSvy (ActChgCrsTT1stDay + 148)
#define ActChgSvy (ActChgCrsTT1stDay + 149)
#define ActReqRemSvy (ActChgCrsTT1stDay + 150)
#define ActRemSvy (ActChgCrsTT1stDay + 151)
#define ActReqRstSvy (ActChgCrsTT1stDay + 152)
#define ActRstSvy (ActChgCrsTT1stDay + 153)
#define ActHidSvy (ActChgCrsTT1stDay + 154)
#define ActShoSvy (ActChgCrsTT1stDay + 155)
#define ActEdiOneSvyQst (ActChgCrsTT1stDay + 156)
#define ActRcvSvyQst (ActChgCrsTT1stDay + 157)
#define ActReqRemSvyQst (ActChgCrsTT1stDay + 158)
#define ActRemSvyQst (ActChgCrsTT1stDay + 159)
#define ActSeeSvy (ActChgCrsTT1stDay + 145)
#define ActAnsSvy (ActChgCrsTT1stDay + 146)
#define ActFrmNewSvy (ActChgCrsTT1stDay + 147)
#define ActEdiOneSvy (ActChgCrsTT1stDay + 148)
#define ActNewSvy (ActChgCrsTT1stDay + 149)
#define ActChgSvy (ActChgCrsTT1stDay + 150)
#define ActReqRemSvy (ActChgCrsTT1stDay + 151)
#define ActRemSvy (ActChgCrsTT1stDay + 152)
#define ActReqRstSvy (ActChgCrsTT1stDay + 153)
#define ActRstSvy (ActChgCrsTT1stDay + 154)
#define ActHidSvy (ActChgCrsTT1stDay + 155)
#define ActShoSvy (ActChgCrsTT1stDay + 156)
#define ActEdiOneSvyQst (ActChgCrsTT1stDay + 157)
#define ActRcvSvyQst (ActChgCrsTT1stDay + 158)
#define ActReqRemSvyQst (ActChgCrsTT1stDay + 159)
#define ActRemSvyQst (ActChgCrsTT1stDay + 160)
#define ActSeeOneExaAnn (ActChgCrsTT1stDay + 160)
#define ActSeeDatExaAnn (ActChgCrsTT1stDay + 161)
#define ActEdiExaAnn (ActChgCrsTT1stDay + 162)
#define ActRcvExaAnn (ActChgCrsTT1stDay + 163)
#define ActPrnExaAnn (ActChgCrsTT1stDay + 164)
#define ActReqRemExaAnn (ActChgCrsTT1stDay + 165)
#define ActRemExaAnn (ActChgCrsTT1stDay + 166)
#define ActHidExaAnn (ActChgCrsTT1stDay + 167)
#define ActShoExaAnn (ActChgCrsTT1stDay + 168)
#define ActSeeOneExaAnn (ActChgCrsTT1stDay + 161)
#define ActSeeDatExaAnn (ActChgCrsTT1stDay + 162)
#define ActEdiExaAnn (ActChgCrsTT1stDay + 163)
#define ActRcvExaAnn (ActChgCrsTT1stDay + 164)
#define ActPrnExaAnn (ActChgCrsTT1stDay + 165)
#define ActReqRemExaAnn (ActChgCrsTT1stDay + 166)
#define ActRemExaAnn (ActChgCrsTT1stDay + 167)
#define ActHidExaAnn (ActChgCrsTT1stDay + 168)
#define ActShoExaAnn (ActChgCrsTT1stDay + 169)
/*****************************************************************************/
/******************************** Files tab **********************************/

View File

@ -456,10 +456,15 @@ En OpenSWAD:
ps2pdf source.ps destination.pdf
*/
#define Log_PLATFORM_VERSION "SWAD 18.127.1 (2019-05-31)"
#define Log_PLATFORM_VERSION "SWAD 18.127.2 (2019-05-31)"
#define CSS_FILE "swad18.123.css"
#define JS_FILE "swad18.123.js"
/*
Version 18.127.2: May 31, 2019 Question index is shown in match status.
New action to show results of a finished match. (243493 lines)
1 change necessary in database:
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1785','es','N','Ver resultados partida');
Version 18.127.1: May 31, 2019 Removed action to end a match. (243464 lines)
1 change necessary in database:
UPDATE actions SET Obsolete='Y' WHERE ActCod=1781;

View File

@ -169,7 +169,8 @@ static void Gam_ExchangeQuestions (long GamCod,
static void Gam_ListPlayedMatches (struct Game *Game,bool PutFormNewMatch);
static void Gam_PutIconToPlayNewMatch (void);
static void Gam_ListOneOrMoreMatchesForEdition (unsigned NumMatches,
static void Gam_ListOneOrMoreMatchesForEdition (struct Game *Game,
unsigned NumMatches,
MYSQL_RES *mysql_res);
static void Gam_GetMatchDataFromRow (MYSQL_RES *mysql_res,
struct Match *Match);
@ -2912,7 +2913,7 @@ static void Gam_ListPlayedMatches (struct Game *Game,bool PutFormNewMatch)
if (NumMatches)
/***** Show the table with the matches *****/
Gam_ListOneOrMoreMatchesForEdition (NumMatches,mysql_res);
Gam_ListOneOrMoreMatchesForEdition (Game,NumMatches,mysql_res);
/***** Free structure that stores the query result *****/
DB_FreeMySQLResult (&mysql_res);
@ -2996,7 +2997,8 @@ static void Gam_PutIconToPlayNewMatch (void)
/*********************** List game matches for edition ***********************/
/*****************************************************************************/
static void Gam_ListOneOrMoreMatchesForEdition (unsigned NumMatches,
static void Gam_ListOneOrMoreMatchesForEdition (struct Game *Game,
unsigned NumMatches,
MYSQL_RES *mysql_res)
{
extern const char *Txt_No_INDEX;
@ -3030,7 +3032,7 @@ static void Gam_ListOneOrMoreMatchesForEdition (unsigned NumMatches,
"<th class=\"LEFT_TOP\">"
"%s"
"</th>"
"<th class=\"LEFT_TOP\">"
"<th class=\"RIGHT_TOP\">"
"%s"
"</th>"
"</tr>",
@ -3062,6 +3064,7 @@ static void Gam_ListOneOrMoreMatchesForEdition (unsigned NumMatches,
Frm_EndForm ();
/* Put icon to continue playing an unfinished match */
/*
if (!Match.Status.Finished)
{
Gam_CurrentMchCod = Match.MchCod;
@ -3070,6 +3073,7 @@ static void Gam_ListOneOrMoreMatchesForEdition (unsigned NumMatches,
"play.svg",
Txt_Resume);
}
*/
fprintf (Gbl.F.Out,"</td>");
@ -3127,11 +3131,21 @@ static void Gam_ListOneOrMoreMatchesForEdition (unsigned NumMatches,
fprintf (Gbl.F.Out,"</td>");
/***** Match status ******/
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_TOP COLOR%u\">",Gbl.RowEvenOdd);
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_TOP COLOR%u\">",Gbl.RowEvenOdd);
if (Match.Status.Finished)
Ico_PutIconOff ("flag-checkered.svg",Txt_Finished_match);
/* Icon to inform about finished match */
// Ico_PutIconOff ("flag-checkered.svg",Txt_Finished_match);
Lay_PutContextualLinkOnlyIcon (ActShoMch,NULL,
Gam_PutParamCurrentMchCod,
"flag-checkered.svg",
Txt_Finished_match);
else // Unfinished match
{
/* Current question index / total of questions */
fprintf (Gbl.F.Out,"<div class=\"DAT\">%u/%u</div>",
Match.Status.QstInd,Game->NumQsts);
/* Icon to resume */
Gam_CurrentMchCod = Match.MchCod;
Lay_PutContextualLinkOnlyIcon (ActResMch,NULL,
Gam_PutParamCurrentMchCod,
@ -3811,7 +3825,16 @@ static void Gam_PutBigButtonToFinishMatch (long MchCod)
}
/*****************************************************************************/
/********************** Get code of match being played ************************/
/******************* Show the results of a finished match ********************/
/*****************************************************************************/
void Gam_ShowFinishedMatchResults (void)
{
Ale_ShowAlert (Ale_INFO,"To be implemented...");
}
/*****************************************************************************/
/********************** Get code of match being played ***********************/
/*****************************************************************************/
void Gam_GetMatchBeingPlayed (void)

View File

@ -130,6 +130,8 @@ void Gam_CreateAndStartNewMatch (void);
void Gam_ResumeUnfinishedMatch (void);
void Gam_NextStatusMatch (void);
void Gam_ShowFinishedMatchResults (void);
void Gam_GetMatchBeingPlayed (void);
void Gam_ShowNewMatchToMeAsStd (void);
void Gam_RefreshCurrentMatchStd (void);