Version18.136.5

This commit is contained in:
Antonio Cañas Vargas 2019-07-25 10:45:36 +02:00
parent 4d2a11e750
commit 4640f5fdc1
3 changed files with 73 additions and 49 deletions

View File

@ -2594,8 +2594,8 @@ a:hover img.CENTRE_PHOTO_SHOW
box-sizing:border-box; box-sizing:border-box;
display:table; display:table;
width:100%; width:100%;
height:60px;
font-size:18pt; font-size:18pt;
padding-bottom:18pt;
border:1px solid pink; border:1px solid pink;
} }
.MATCH_TOP_LEFT .MATCH_TOP_LEFT
@ -2626,10 +2626,12 @@ a:hover img.CENTRE_PHOTO_SHOW
.MATCH_NUM_QST .MATCH_NUM_QST
{ {
text-align:center; text-align:center;
padding:48pt 0; vertical-align:top;
padding-bottom:48pt;
color:#808080; color:#808080;
font-size:36pt; font-size:36pt;
font-weight:bold; font-weight:bold;
border:1px solid green;
} }
.MATCH_NUM_ANSWERERS .MATCH_NUM_ANSWERERS
{ {

View File

@ -439,6 +439,8 @@ Lo de mutear anuncios, en principio prefiero hacer una opci
// TODO: Perico: bloquear la subida de archivos por parte de estudiantes (no tiene que ver con el bloqueo de la edición de proyectos) // TODO: Perico: bloquear la subida de archivos por parte de estudiantes (no tiene que ver con el bloqueo de la edición de proyectos)
// TODO: Al confirmar una inscripción, mostrar ficha de retroalimentación similar a la que se muestra cuando se crea un administrador. Tal y como está ahora crea confusión al usuario.
/*****************************************************************************/ /*****************************************************************************/
/****************************** Public constants *****************************/ /****************************** Public constants *****************************/
/*****************************************************************************/ /*****************************************************************************/
@ -458,10 +460,11 @@ En OpenSWAD:
ps2pdf source.ps destination.pdf ps2pdf source.ps destination.pdf
*/ */
#define Log_PLATFORM_VERSION "SWAD 18.136.4 (2019-07-19)" #define Log_PLATFORM_VERSION "SWAD 18.136.5 (2019-07-25)"
#define CSS_FILE "swad18.136.4.css" #define CSS_FILE "swad18.136.4.css"
#define JS_FILE "swad18.130.2.js" #define JS_FILE "swad18.130.2.js"
/* /*
Version 18.136.5: Jul 25, 2019 Changes in layout of match for students. (243936 lines)
Version 18.136.4: Jul 19, 2019 Changes in layout of match for teachers. (243920 lines) Version 18.136.4: Jul 19, 2019 Changes in layout of match for teachers. (243920 lines)
Version 18.136.3: Jul 19, 2019 New icon to see answers in a match. (243924 lines) Version 18.136.3: Jul 19, 2019 New icon to see answers in a match. (243924 lines)
Copy the following icon to icon public directory: Copy the following icon to icon public directory:

View File

@ -93,6 +93,7 @@ struct Match
bool ShowingAnswers; bool ShowingAnswers;
bool Finished; bool Finished;
bool BeingPlayed; bool BeingPlayed;
unsigned NumPlayers;
} Status; } Status;
}; };
@ -189,8 +190,9 @@ static void Gam_UpdateMatchStatusInDB (struct Match *Match);
static void Gam_SetMatchStatusToNextQuestion (struct Match *Match); static void Gam_SetMatchStatusToNextQuestion (struct Match *Match);
static void Gam_ShowMatchStatusForTch (struct Match *Match); static void Gam_ShowMatchStatusForTch (struct Match *Match);
static void Gam_ShowMatchStatusForStd (struct Match *Match); static void Gam_ShowMatchStatusForStd (struct Match *Match);
static void Gam_ShowBottonLeftColumnTch (struct Match *Match,unsigned NumPlayers); static void Gam_ShowLeftColumnTch (struct Match *Match);
static void Gam_ShowBottonLeftColumnStd (struct Match *Match); static void Gam_ShowLeftColumnStd (struct Match *Match);
static void Gam_ShowMatchTitleAndPlayers (struct Match *Match);
static void Gam_ShowQuestionAndAnswersTch (struct Match *Match); static void Gam_ShowQuestionAndAnswersTch (struct Match *Match);
static void Gam_ShowQuestionAndAnswersStd (struct Match *Match); static void Gam_ShowQuestionAndAnswersStd (struct Match *Match);
@ -203,7 +205,7 @@ static void Gam_UpdateMatchAsBeingPlayed (long MchCod);
static void Gam_SetMatchAsNotBeingPlayed (long MchCod); static void Gam_SetMatchAsNotBeingPlayed (long MchCod);
static bool Gam_GetIfMatchIsBeingPlayed (long MchCod); static bool Gam_GetIfMatchIsBeingPlayed (long MchCod);
static void Gam_RegisterMeAsPlayerInMatch (long MchCod); static void Gam_RegisterMeAsPlayerInMatch (long MchCod);
static unsigned Gam_GetNumPlayers (long MchCod); static void Gam_GetNumPlayers (struct Match *Match);
static void Gam_ShowMatchStatusForStd (struct Match *Match); static void Gam_ShowMatchStatusForStd (struct Match *Match);
static int Gam_GetQstAnsFromDB (long MchCod,unsigned QstInd); static int Gam_GetQstAnsFromDB (long MchCod,unsigned QstInd);
@ -3470,39 +3472,22 @@ static void Gam_SetMatchStatusToNextQuestion (struct Match *Match)
static void Gam_ShowMatchStatusForTch (struct Match *Match) static void Gam_ShowMatchStatusForTch (struct Match *Match)
{ {
extern const char *Txt_Players; /***** Get current number of players *****/
unsigned NumPlayers = Gam_GetNumPlayers (Match->MchCod); Gam_GetNumPlayers (Match);
/***** Left column *****/ /***** Left column *****/
Gam_ShowBottonLeftColumnTch (Match,NumPlayers); Gam_ShowLeftColumnTch (Match);
/***** Right column *****/ /***** Right column *****/
/* Start right container */ /* Start right container */
fprintf (Gbl.F.Out,"<div class=\"MATCH_RIGHT\">"); fprintf (Gbl.F.Out,"<div class=\"MATCH_RIGHT\">");
/***** Top row *****/ /***** Top row *****/
/* Start top container */ Gam_ShowMatchTitleAndPlayers (Match);
fprintf (Gbl.F.Out,"<div class=\"MATCH_TOP\">");
/* Left: Match title */
fprintf (Gbl.F.Out,"<div class=\"MATCH_TOP_LEFT\">"
"%s"
"</div>",
Match->Title);
/* Right: Number of players */
fprintf (Gbl.F.Out,"<div class=\"MATCH_TOP_RIGHT\">%s: %u</div>",
Txt_Players,NumPlayers);
/* End top container */
fprintf (Gbl.F.Out,"</div>");
/***** Bottom row *****/ /***** Bottom row *****/
/* Start bottom container */
fprintf (Gbl.F.Out,"<div class=\"MATCH_BOTTOM\">"); fprintf (Gbl.F.Out,"<div class=\"MATCH_BOTTOM\">");
/* Show right column */
fprintf (Gbl.F.Out,"<div class=\"MATCH_BOTTOM_RIGHT\">");
if (!Match->Status.Finished && if (!Match->Status.Finished &&
Match->Status.BeingPlayed) Match->Status.BeingPlayed)
{ {
@ -3512,9 +3497,7 @@ static void Gam_ShowMatchStatusForTch (struct Match *Match)
/* Update match as being played */ /* Update match as being played */
Gam_UpdateMatchAsBeingPlayed (Match->MchCod); Gam_UpdateMatchAsBeingPlayed (Match->MchCod);
} }
fprintf (Gbl.F.Out,"</div>");
/* End bottom container */
fprintf (Gbl.F.Out,"</div>"); fprintf (Gbl.F.Out,"</div>");
/* End right container */ /* End right container */
@ -3536,15 +3519,21 @@ static void Gam_ShowMatchStatusForStd (struct Match *Match)
if (!IBelongToGroups) if (!IBelongToGroups)
Lay_ShowErrorAndExit ("You can not play this match!"); Lay_ShowErrorAndExit ("You can not play this match!");
/***** Get current number of players *****/
Gam_GetNumPlayers (Match);
/***** Left column *****/
Gam_ShowLeftColumnStd (Match);
/***** Right column *****/
/* Start right container */
fprintf (Gbl.F.Out,"<div class=\"MATCH_RIGHT\">");
/***** Top row *****/
Gam_ShowMatchTitleAndPlayers (Match);
/***** Bottom row *****/ /***** Bottom row *****/
/* Start bottom container */
fprintf (Gbl.F.Out,"<div class=\"MATCH_BOTTOM\">"); fprintf (Gbl.F.Out,"<div class=\"MATCH_BOTTOM\">");
/* Show left column */
Gam_ShowBottonLeftColumnStd (Match);
/* Show right column */
fprintf (Gbl.F.Out,"<div class=\"MATCH_BOTTOM_RIGHT\">");
if (!Match->Status.Finished) if (!Match->Status.Finished)
{ {
/***** Update players ******/ /***** Update players ******/
@ -3565,7 +3554,7 @@ static void Gam_ShowMatchStatusForStd (struct Match *Match)
} }
fprintf (Gbl.F.Out,"</div>"); fprintf (Gbl.F.Out,"</div>");
/* End bottom container */ /* End right container */
fprintf (Gbl.F.Out,"</div>"); fprintf (Gbl.F.Out,"</div>");
} }
@ -3573,7 +3562,7 @@ static void Gam_ShowMatchStatusForStd (struct Match *Match)
/******** Show left botton column when playing a match (as a teacher) ********/ /******** Show left botton column when playing a match (as a teacher) ********/
/*****************************************************************************/ /*****************************************************************************/
static void Gam_ShowBottonLeftColumnTch (struct Match *Match,unsigned NumPlayers) static void Gam_ShowLeftColumnTch (struct Match *Match)
{ {
extern const char *Txt_End; extern const char *Txt_End;
extern const char *Txt_Next_QUESTION; extern const char *Txt_Next_QUESTION;
@ -3588,6 +3577,9 @@ static void Gam_ShowBottonLeftColumnTch (struct Match *Match,unsigned NumPlayers
/***** Start left container *****/ /***** Start left container *****/
fprintf (Gbl.F.Out,"<div class=\"MATCH_LEFT\">"); fprintf (Gbl.F.Out,"<div class=\"MATCH_LEFT\">");
/***** Top *****/
fprintf (Gbl.F.Out,"<div class=\"MATCH_TOP\"></div>");
/***** Write number of question *****/ /***** Write number of question *****/
NumQsts = Gam_GetNumQstsGame (Match->GamCod); NumQsts = Gam_GetNumQstsGame (Match->GamCod);
fprintf (Gbl.F.Out,"<div class=\"MATCH_NUM_QST\">"); fprintf (Gbl.F.Out,"<div class=\"MATCH_NUM_QST\">");
@ -3645,7 +3637,7 @@ static void Gam_ShowBottonLeftColumnTch (struct Match *Match,unsigned NumPlayers
"responden<br />" // TODO: Need translation!!! "responden<br />" // TODO: Need translation!!!
"<strong>%u/%u</strong>" "<strong>%u/%u</strong>"
"</div>", "</div>",
NumAnswerers,NumPlayers); NumAnswerers,Match->Status.NumPlayers);
} }
/***** End left container *****/ /***** End left container *****/
@ -3656,13 +3648,16 @@ static void Gam_ShowBottonLeftColumnTch (struct Match *Match,unsigned NumPlayers
/******** Show left botton column when playing a match (as a student) ********/ /******** Show left botton column when playing a match (as a student) ********/
/*****************************************************************************/ /*****************************************************************************/
static void Gam_ShowBottonLeftColumnStd (struct Match *Match) static void Gam_ShowLeftColumnStd (struct Match *Match)
{ {
extern const char *Txt_End; extern const char *Txt_End;
unsigned NumQsts; unsigned NumQsts;
/***** Start bottom left container *****/ /***** Start left container *****/
fprintf (Gbl.F.Out,"<div class=\"MATCH_BOTTOM_LEFT\">"); fprintf (Gbl.F.Out,"<div class=\"MATCH_LEFT\">");
/***** Top *****/
fprintf (Gbl.F.Out,"<div class=\"MATCH_TOP\"></div>");
/***** Write number of question *****/ /***** Write number of question *****/
NumQsts = Gam_GetNumQstsGame (Match->GamCod); NumQsts = Gam_GetNumQstsGame (Match->GamCod);
@ -3682,7 +3677,32 @@ static void Gam_ShowBottonLeftColumnStd (struct Match *Match)
fprintf (Gbl.F.Out,"</div>" fprintf (Gbl.F.Out,"</div>"
"</div>"); "</div>");
/***** End bottom left container *****/ /***** End left container *****/
fprintf (Gbl.F.Out,"</div>");
}
/*****************************************************************************/
/************** Show match title and current number of players ***************/
/*****************************************************************************/
static void Gam_ShowMatchTitleAndPlayers (struct Match *Match)
{
extern const char *Txt_Players;
/***** Start container *****/
fprintf (Gbl.F.Out,"<div class=\"MATCH_TOP\">");
/***** Left: Match title *****/
fprintf (Gbl.F.Out,"<div class=\"MATCH_TOP_LEFT\">"
"%s"
"</div>",
Match->Title);
/***** Right: Number of players *****/
fprintf (Gbl.F.Out,"<div class=\"MATCH_TOP_RIGHT\">%s: %u</div>",
Txt_Players,Match->Status.NumPlayers);
/***** End container *****/
fprintf (Gbl.F.Out,"</div>"); fprintf (Gbl.F.Out,"</div>");
} }
@ -3965,14 +3985,13 @@ static void Gam_RegisterMeAsPlayerInMatch (long MchCod)
MchCod,Gbl.Usrs.Me.UsrDat.UsrCod); MchCod,Gbl.Usrs.Me.UsrDat.UsrCod);
} }
static unsigned Gam_GetNumPlayers (long MchCod) static void Gam_GetNumPlayers (struct Match *Match)
{ {
/***** Get number of players who are playing a match *****/ /***** Get number of players who are playing a match *****/
return Match->Status.NumPlayers = (unsigned) DB_QueryCOUNT ("can not get number of players",
(unsigned) DB_QueryCOUNT ("can not get number of players", "SELECT COUNT(*) FROM gam_players"
"SELECT COUNT(*) FROM gam_players" " WHERE MchCod=%ld",
" WHERE MchCod=%ld", Match->MchCod);
MchCod);
} }
/*****************************************************************************/ /*****************************************************************************/