Version18.139

This commit is contained in:
Antonio Cañas Vargas 2019-08-03 15:16:41 +02:00
parent 525d93dfd4
commit 881deaeb67
5 changed files with 63 additions and 3 deletions

View File

@ -12872,3 +12872,10 @@ SELECT UNIX_TIMESTAMP(MIN(StartTime)),UNIX_TIMESTAMP(MAX(EndTime)) FROM gam_matc
SELECT MchCod,GamCod,UsrCod,UNIX_TIMESTAMP(StartTime),UNIX_TIMESTAMP(EndTime),Title,QstInd,QstCod,UNIX_TIMESTAMP(QstStartTime),ShowingAnswers,Finished FROM gam_matches WHERE GamCod=7 ORDER BY MchCod; SELECT MchCod,GamCod,UsrCod,UNIX_TIMESTAMP(StartTime),UNIX_TIMESTAMP(EndTime),Title,QstInd,QstCod,UNIX_TIMESTAMP(QstStartTime),ShowingAnswers,Finished FROM gam_matches WHERE GamCod=7 ORDER BY MchCod;
REPLACE gam_time (MchCod,QstInd,ElapsedTime) VALUES (61,1,ADDTIME(ElapsedTime,SEC_TO_TIME(1)));
INSERT INTO gam_time (MchCod,QstInd) VALUES (61,1,SEC_TO_TIME(1)) ON DUPLICATE KEY UPDATE ElapsedTime=ADDTIME(ElapsedTime,SEC_TO_TIME(1));

View File

@ -667,6 +667,14 @@ CREATE TABLE IF NOT EXISTS gam_questions (
INDEX(GamCod), INDEX(GamCod),
INDEX(QstCod)); INDEX(QstCod));
-- --
-- Table gam_time: stores the elapsed time in every question in every match played
--
CREATE TABLE IF NOT EXISTS gam_time (
MchCod INT NOT NULL,
QstInd INT NOT NULL,
ElapsedTime TIME NOT NULL DEFAULT 0,
UNIQUE INDEX(MchCod,QstInd));
--
-- Table hidden_params: stores some hidden parameters passed from a page to another using database instead of forms -- Table hidden_params: stores some hidden parameters passed from a page to another using database instead of forms
-- --
CREATE TABLE IF NOT EXISTS hidden_params ( CREATE TABLE IF NOT EXISTS hidden_params (

View File

@ -460,12 +460,15 @@ En OpenSWAD:
ps2pdf source.ps destination.pdf ps2pdf source.ps destination.pdf
*/ */
#define Log_PLATFORM_VERSION "SWAD 18.138.6 (2019-08-02)" #define Log_PLATFORM_VERSION "SWAD 18.139 (2019-08-03)"
#define CSS_FILE "swad18.138.css" #define CSS_FILE "swad18.138.css"
#define JS_FILE "swad18.130.2.js" #define JS_FILE "swad18.130.2.js"
/* /*
Version 18.138.7: Aug 01, 2019 Time of current match and current match question are stored in database. (? lines) Version 18.139: Aug 03, 2019 Time of current match and current match question are stored in database. (244150 lines)
Version 18.138.6: Aug 02, 2019 Matches finished can be played again from list of matches. (? lines) 1 change necessary in database:
CREATE TABLE IF NOT EXISTS gam_time (MchCod INT NOT NULL,QstInd INT NOT NULL,ElapsedTime TIME NOT NULL DEFAULT 0,UNIQUE INDEX(MchCod,QstInd));
Version 18.138.6: Aug 02, 2019 Matches finished can be played again from list of matches. (244102 lines)
Version 18.138.5: Aug 01, 2019 Finished column in matches replaced by a special value in question index. (244108 lines) Version 18.138.5: Aug 01, 2019 Finished column in matches replaced by a special value in question index. (244108 lines)
1 change necessary in database: 1 change necessary in database:
ALTER TABLE gam_matches DROP COLUMN Finished; ALTER TABLE gam_matches DROP COLUMN Finished;

View File

@ -1452,6 +1452,24 @@ mysql> DESCRIBE gam_questions;
"INDEX(GamCod)," "INDEX(GamCod),"
"INDEX(QstCod))"); "INDEX(QstCod))");
/***** Table gam_time *****/
/*
mysql> DESCRIBE gam_time;
+-------------+---------+------+-----+----------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------+------+-----+----------+-------+
| MchCod | int(11) | NO | PRI | NULL | |
| QstInd | int(11) | NO | PRI | NULL | |
| ElapsedTime | time | NO | | 00:00:00 | |
+-------------+---------+------+-----+----------+-------+
3 rows in set (0.00 sec)
*/
DB_CreateTable ("CREATE TABLE IF NOT EXISTS gam_time ("
"MchCod INT NOT NULL,"
"QstInd INT NOT NULL,"
"ElapsedTime TIME NOT NULL DEFAULT 0,"
"UNIQUE INDEX(MchCod,QstInd))");
/***** Table hidden_params *****/ /***** Table hidden_params *****/
/* /*
mysql> DESCRIBE hidden_params; mysql> DESCRIBE hidden_params;

View File

@ -187,6 +187,7 @@ static void Gam_PutFormNewMatch (struct Game *Game);
static long Gam_CreateMatch (long GamCod,char Title[Gam_MAX_BYTES_TITLE + 1]); static long Gam_CreateMatch (long GamCod,char Title[Gam_MAX_BYTES_TITLE + 1]);
static void Gam_UpdateMatchStatusInDB (struct Match *Match); static void Gam_UpdateMatchStatusInDB (struct Match *Match);
static void Gam_UpdateElapsedTimeInQuestion (struct Match *Match);
static void Gam_SetMatchStatusToPrevQuestion (struct Match *Match); static void Gam_SetMatchStatusToPrevQuestion (struct Match *Match);
static void Gam_SetMatchStatusToNextQuestion (struct Match *Match); static void Gam_SetMatchStatusToNextQuestion (struct Match *Match);
@ -3342,6 +3343,26 @@ static void Gam_UpdateMatchStatusInDB (struct Match *Match)
Gam_SetMatchAsNotBeingPlayed (Match->MchCod); Gam_SetMatchAsNotBeingPlayed (Match->MchCod);
} }
/*****************************************************************************/
/** Update elapsed time in current question (by a teacher) **/
/*****************************************************************************/
static void Gam_UpdateElapsedTimeInQuestion (struct Match *Match)
{
/***** Update elapsed time in current question in database *****/
if (Match->Status.BeingPlayed &&
Match->Status.QstInd > 0 &&
Match->Status.QstInd < Gam_AFTER_LAST_QUESTION)
DB_QueryINSERT ("can not update elapsed time in question",
"INSERT INTO gam_time (MchCod,QstInd,ElapsedTime)"
" VALUES (%ld,%u,SEC_TO_TIME(%u))"
" ON DUPLICATE KEY"
" UPDATE ElapsedTime=ADDTIME(ElapsedTime,SEC_TO_TIME(%u))",
Match->MchCod,Match->Status.QstInd,
Cfg_SECONDS_TO_REFRESH_GAME,
Cfg_SECONDS_TO_REFRESH_GAME);
}
/*****************************************************************************/ /*****************************************************************************/
/** Show current match status (current question, answers...) (by a teacher) **/ /** Show current match status (current question, answers...) (by a teacher) **/
/*****************************************************************************/ /*****************************************************************************/
@ -4168,6 +4189,9 @@ void Gam_RefreshMatchTch (void)
/***** Update match status in database *****/ /***** Update match status in database *****/
Gam_UpdateMatchStatusInDB (&Match); Gam_UpdateMatchStatusInDB (&Match);
/***** Update elapsed time in this question *****/
Gam_UpdateElapsedTimeInQuestion (&Match);
/***** Show current match status *****/ /***** Show current match status *****/
Gam_ShowMatchStatusForTch (&Match); Gam_ShowMatchStatusForTch (&Match);
} }