mirror of
https://github.com/acanas/swad-core.git
synced 2024-06-10 10:45:23 +02:00
Version 20.51.44: Mar 25, 2021 Project users database table renamed.
This commit is contained in:
parent
1c7e403eee
commit
b6d84b9e96
169
sql/swad.sql
169
sql/swad.sql
|
@ -724,77 +724,6 @@ CREATE TABLE IF NOT EXISTS gam_games (
|
|||
UNIQUE INDEX(GamCod),
|
||||
INDEX(CrsCod));
|
||||
--
|
||||
-- Table mch_answers: stores the users' answers to the matches
|
||||
--
|
||||
CREATE TABLE IF NOT EXISTS mch_answers (
|
||||
MchCod INT NOT NULL,
|
||||
UsrCod INT NOT NULL,
|
||||
QstInd INT NOT NULL,
|
||||
NumOpt TINYINT NOT NULL,
|
||||
AnsInd TINYINT NOT NULL,
|
||||
UNIQUE INDEX(MchCod,UsrCod,QstInd));
|
||||
--
|
||||
-- Table mch_groups: stores the groups associated to each match in a game
|
||||
--
|
||||
CREATE TABLE IF NOT EXISTS mch_groups (
|
||||
MchCod INT NOT NULL,
|
||||
GrpCod INT NOT NULL,
|
||||
UNIQUE INDEX(MchCod,GrpCod));
|
||||
--
|
||||
-- Table mch_matches: stores the matches (games instances) already played
|
||||
--
|
||||
CREATE TABLE IF NOT EXISTS mch_matches (
|
||||
MchCod INT NOT NULL AUTO_INCREMENT,
|
||||
GamCod INT NOT NULL,
|
||||
UsrCod INT NOT NULL,
|
||||
StartTime DATETIME NOT NULL,
|
||||
EndTime DATETIME NOT NULL,
|
||||
Title VARCHAR(2047) NOT NULL,
|
||||
QstInd INT NOT NULL DEFAULT 0,
|
||||
QstCod INT NOT NULL DEFAULT -1,
|
||||
Showing ENUM('start','stem','answers','results','end') NOT NULL DEFAULT 'start',
|
||||
Countdown INT NOT NULL DEFAULT -1,
|
||||
NumCols INT NOT NULL DEFAULT 1,
|
||||
ShowQstResults ENUM('N','Y') NOT NULL DEFAULT 'N',
|
||||
ShowUsrResults ENUM('N','Y') NOT NULL DEFAULT 'N',
|
||||
UNIQUE INDEX(MchCod),
|
||||
INDEX(GamCod));
|
||||
--
|
||||
-- Table mch_playing: stores the current matches being played
|
||||
--
|
||||
CREATE TABLE IF NOT EXISTS mch_playing (
|
||||
MchCod INT NOT NULL,
|
||||
TS TIMESTAMP,
|
||||
UNIQUE INDEX(MchCod));
|
||||
--
|
||||
-- Table mch_players: stores the current match players
|
||||
--
|
||||
CREATE TABLE IF NOT EXISTS mch_players (
|
||||
MchCod INT NOT NULL,
|
||||
UsrCod INT NOT NULL,
|
||||
TS TIMESTAMP,
|
||||
UNIQUE INDEX(MchCod,UsrCod));
|
||||
--
|
||||
-- Table mch_indexes: stores the order of answers in a match
|
||||
--
|
||||
CREATE TABLE IF NOT EXISTS mch_indexes (
|
||||
MchCod INT NOT NULL,
|
||||
QstInd INT NOT NULL,
|
||||
Indexes TEXT NOT NULL,
|
||||
UNIQUE INDEX(MchCod,QstInd));
|
||||
--
|
||||
-- Table mch_results: stores match results
|
||||
--
|
||||
CREATE TABLE IF NOT EXISTS mch_results (
|
||||
MchCod INT NOT NULL,
|
||||
UsrCod INT NOT NULL,
|
||||
StartTime DATETIME NOT NULL,
|
||||
EndTime DATETIME NOT NULL,
|
||||
NumQsts INT NOT NULL DEFAULT 0,
|
||||
NumQstsNotBlank INT NOT NULL DEFAULT 0,
|
||||
Score DOUBLE PRECISION NOT NULL DEFAULT 0,
|
||||
UNIQUE INDEX(MchCod,UsrCod));
|
||||
--
|
||||
-- Table gam_questions: stores the questions in the games
|
||||
--
|
||||
CREATE TABLE IF NOT EXISTS gam_questions (
|
||||
|
@ -804,14 +733,6 @@ CREATE TABLE IF NOT EXISTS gam_questions (
|
|||
UNIQUE INDEX(GamCod,QstInd),
|
||||
UNIQUE INDEX(GamCod,QstCod));
|
||||
--
|
||||
-- Table mch_times: stores the elapsed time in every question in every match played
|
||||
--
|
||||
CREATE TABLE IF NOT EXISTS mch_times (
|
||||
MchCod INT NOT NULL,
|
||||
QstInd INT NOT NULL,
|
||||
ElapsedTime TIME NOT NULL DEFAULT 0,
|
||||
UNIQUE INDEX(MchCod,QstInd));
|
||||
--
|
||||
-- Table hld_holidays: stores the holidays in each institution
|
||||
--
|
||||
CREATE TABLE IF NOT EXISTS hld_holidays (
|
||||
|
@ -983,14 +904,77 @@ CREATE TABLE IF NOT EXISTS log_search (
|
|||
SearchStr VARCHAR(2047) NOT NULL,
|
||||
UNIQUE INDEX(LogCod));
|
||||
--
|
||||
-- Table ntf_mail_domains: stores e-mail domains to which sending of notifications is allowed
|
||||
-- Table mch_answers: stores the users' answers to the matches
|
||||
--
|
||||
CREATE TABLE IF NOT EXISTS ntf_mail_domains (
|
||||
MaiCod INT NOT NULL AUTO_INCREMENT,
|
||||
Domain VARCHAR(255) NOT NULL,
|
||||
Info VARCHAR(2047) NOT NULL,
|
||||
UNIQUE INDEX(MaiCod),
|
||||
UNIQUE INDEX(Domain));
|
||||
CREATE TABLE IF NOT EXISTS mch_answers (
|
||||
MchCod INT NOT NULL,
|
||||
UsrCod INT NOT NULL,
|
||||
QstInd INT NOT NULL,
|
||||
NumOpt TINYINT NOT NULL,
|
||||
AnsInd TINYINT NOT NULL,
|
||||
UNIQUE INDEX(MchCod,UsrCod,QstInd));
|
||||
--
|
||||
-- Table mch_indexes: stores the order of answers in a match
|
||||
--
|
||||
CREATE TABLE IF NOT EXISTS mch_indexes (
|
||||
MchCod INT NOT NULL,
|
||||
QstInd INT NOT NULL,
|
||||
Indexes TEXT NOT NULL,
|
||||
UNIQUE INDEX(MchCod,QstInd));
|
||||
--
|
||||
-- Table mch_matches: stores the matches (games instances) already played
|
||||
--
|
||||
CREATE TABLE IF NOT EXISTS mch_matches (
|
||||
MchCod INT NOT NULL AUTO_INCREMENT,
|
||||
GamCod INT NOT NULL,
|
||||
UsrCod INT NOT NULL,
|
||||
StartTime DATETIME NOT NULL,
|
||||
EndTime DATETIME NOT NULL,
|
||||
Title VARCHAR(2047) NOT NULL,
|
||||
QstInd INT NOT NULL DEFAULT 0,
|
||||
QstCod INT NOT NULL DEFAULT -1,
|
||||
Showing ENUM('start','stem','answers','results','end') NOT NULL DEFAULT 'start',
|
||||
Countdown INT NOT NULL DEFAULT -1,
|
||||
NumCols INT NOT NULL DEFAULT 1,
|
||||
ShowQstResults ENUM('N','Y') NOT NULL DEFAULT 'N',
|
||||
ShowUsrResults ENUM('N','Y') NOT NULL DEFAULT 'N',
|
||||
UNIQUE INDEX(MchCod),
|
||||
INDEX(GamCod));
|
||||
--
|
||||
-- Table mch_players: stores the current match players
|
||||
--
|
||||
CREATE TABLE IF NOT EXISTS mch_players (
|
||||
MchCod INT NOT NULL,
|
||||
UsrCod INT NOT NULL,
|
||||
TS TIMESTAMP,
|
||||
UNIQUE INDEX(MchCod,UsrCod));
|
||||
--
|
||||
-- Table mch_playing: stores the current matches being played
|
||||
--
|
||||
CREATE TABLE IF NOT EXISTS mch_playing (
|
||||
MchCod INT NOT NULL,
|
||||
TS TIMESTAMP,
|
||||
UNIQUE INDEX(MchCod));
|
||||
--
|
||||
-- Table mch_results: stores match results
|
||||
--
|
||||
CREATE TABLE IF NOT EXISTS mch_results (
|
||||
MchCod INT NOT NULL,
|
||||
UsrCod INT NOT NULL,
|
||||
StartTime DATETIME NOT NULL,
|
||||
EndTime DATETIME NOT NULL,
|
||||
NumQsts INT NOT NULL DEFAULT 0,
|
||||
NumQstsNotBlank INT NOT NULL DEFAULT 0,
|
||||
Score DOUBLE PRECISION NOT NULL DEFAULT 0,
|
||||
UNIQUE INDEX(MchCod,UsrCod));
|
||||
--
|
||||
-- Table mch_times: stores the elapsed time in every question in every match played
|
||||
--
|
||||
CREATE TABLE IF NOT EXISTS mch_times (
|
||||
MchCod INT NOT NULL,
|
||||
QstInd INT NOT NULL,
|
||||
ElapsedTime TIME NOT NULL DEFAULT 0,
|
||||
UNIQUE INDEX(MchCod,QstInd));
|
||||
--
|
||||
-- Table med_media: stores information about media (images, videos, YouTube)
|
||||
--
|
||||
|
@ -1118,6 +1102,15 @@ CREATE TABLE IF NOT EXISTS not_notices (
|
|||
INDEX(CreatTime),
|
||||
INDEX(Status));
|
||||
--
|
||||
-- Table ntf_mail_domains: stores e-mail domains to which sending of notifications is allowed
|
||||
--
|
||||
CREATE TABLE IF NOT EXISTS ntf_mail_domains (
|
||||
MaiCod INT NOT NULL AUTO_INCREMENT,
|
||||
Domain VARCHAR(255) NOT NULL,
|
||||
Info VARCHAR(2047) NOT NULL,
|
||||
UNIQUE INDEX(MaiCod),
|
||||
UNIQUE INDEX(Domain));
|
||||
--
|
||||
-- Table ntf_notifications: stores the notifications of events
|
||||
--
|
||||
CREATE TABLE IF NOT EXISTS ntf_notifications (
|
||||
|
@ -1213,9 +1206,9 @@ CREATE TABLE IF NOT EXISTS prj_projects (
|
|||
INDEX(CrsCod,ModifTime),
|
||||
INDEX(CrsCod,DptCod));
|
||||
--
|
||||
-- Table prj_usr: stores the users inside projects
|
||||
-- Table prj_users: stores the users inside projects
|
||||
--
|
||||
CREATE TABLE IF NOT EXISTS prj_usr (
|
||||
CREATE TABLE IF NOT EXISTS prj_users (
|
||||
PrjCod INT NOT NULL,
|
||||
RoleInProject TINYINT NOT NULL DEFAULT 0,
|
||||
UsrCod INT NOT NULL,
|
||||
|
|
|
@ -607,7 +607,11 @@ TODO: FIX BUG, URGENT! En las fechas como par
|
|||
TODO: Rename CENTRE to CENTER in help wiki.
|
||||
TODO: Rename ASSESSMENT.Announcements to ASSESSMENT.Calls_for_exams
|
||||
|
||||
Version 20.51.43: Mar 24, 2021 Log API database table renamed. (308698 lines)
|
||||
Version 20.51.44: Mar 25, 2021 Project users database table renamed. (308751 lines)
|
||||
1 change necessary in database:
|
||||
RENAME TABLE prj_usr TO prj_users;
|
||||
|
||||
Version 20.51.43: Mar 24, 2021 Log API database table renamed. (308751 lines)
|
||||
1 change necessary in database:
|
||||
RENAME TABLE log_ws TO log_api;
|
||||
|
||||
|
|
|
@ -2526,9 +2526,9 @@ mysql> DESCRIBE prj_projects;
|
|||
"INDEX(CrsCod,ModifTime),"
|
||||
"INDEX(CrsCod,DptCod))");
|
||||
|
||||
/***** Table prj_usr *****/
|
||||
/***** Table prj_users *****/
|
||||
/*
|
||||
mysql> DESCRIBE prj_usr;
|
||||
mysql> DESCRIBE prj_users;
|
||||
+---------------+------------+------+-----+---------+-------+
|
||||
| Field | Type | Null | Key | Default | Extra |
|
||||
+---------------+------------+------+-----+---------+-------+
|
||||
|
@ -2538,7 +2538,7 @@ mysql> DESCRIBE prj_usr;
|
|||
+---------------+------------+------+-----+---------+-------+
|
||||
3 rows in set (0,00 sec)
|
||||
*/
|
||||
DB_CreateTable ("CREATE TABLE IF NOT EXISTS prj_usr ("
|
||||
DB_CreateTable ("CREATE TABLE IF NOT EXISTS prj_users ("
|
||||
"PrjCod INT NOT NULL,"
|
||||
"RoleInProject TINYINT NOT NULL DEFAULT 0,"
|
||||
"UsrCod INT NOT NULL,"
|
||||
|
|
|
@ -2255,9 +2255,11 @@ static unsigned Prj_GetNumUsrsInPrj (long PrjCod,Prj_RoleInProject_t RoleInProje
|
|||
/***** Get users in project from database *****/
|
||||
return (unsigned) DB_QueryCOUNT ("can not get number of users in project",
|
||||
"SELECT COUNT(UsrCod)"
|
||||
" FROM prj_usr"
|
||||
" WHERE PrjCod=%ld AND RoleInProject=%u",
|
||||
PrjCod,(unsigned) RoleInProject);
|
||||
" FROM prj_users"
|
||||
" WHERE PrjCod=%ld"
|
||||
" AND RoleInProject=%u",
|
||||
PrjCod,
|
||||
(unsigned) RoleInProject);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -2269,15 +2271,18 @@ static unsigned Prj_GetUsrsInPrj (long PrjCod,Prj_RoleInProject_t RoleInProject,
|
|||
{
|
||||
/***** Get users in project from database *****/
|
||||
return (unsigned) DB_QuerySELECT (mysql_res,"can not get users in project",
|
||||
"SELECT prj_usr.UsrCod," // row[0]
|
||||
"usr_data.Surname1 AS S1," // row[1]
|
||||
"usr_data.Surname2 AS S2," // row[2]
|
||||
"usr_data.FirstName AS FN" // row[3]
|
||||
" FROM prj_usr,usr_data"
|
||||
" WHERE prj_usr.PrjCod=%ld"
|
||||
" AND prj_usr.RoleInProject=%u"
|
||||
" AND prj_usr.UsrCod=usr_data.UsrCod"
|
||||
" ORDER BY S1,S2,FN",
|
||||
"SELECT prj_users.UsrCod," // row[0]
|
||||
"usr_data.Surname1 AS S1," // row[1]
|
||||
"usr_data.Surname2 AS S2," // row[2]
|
||||
"usr_data.FirstName AS FN" // row[3]
|
||||
" FROM prj_users,"
|
||||
"usr_data"
|
||||
" WHERE prj_users.PrjCod=%ld"
|
||||
" AND prj_users.RoleInProject=%u"
|
||||
" AND prj_users.UsrCod=usr_data.UsrCod"
|
||||
" ORDER BY S1,"
|
||||
"S2,"
|
||||
"FN",
|
||||
PrjCod,(unsigned) RoleInProject);
|
||||
}
|
||||
|
||||
|
@ -2313,9 +2318,12 @@ unsigned Prj_GetMyRolesInProject (long PrjCod)
|
|||
Gbl.Cache.MyRolesInProject.PrjCod = PrjCod;
|
||||
Gbl.Cache.MyRolesInProject.RolesInProject = 0;
|
||||
NumRows = (unsigned) DB_QuerySELECT (&mysql_res,"can not get my roles in project",
|
||||
"SELECT RoleInProject FROM prj_usr"
|
||||
" WHERE PrjCod=%ld AND UsrCod=%ld",
|
||||
PrjCod,Gbl.Usrs.Me.UsrDat.UsrCod);
|
||||
"SELECT RoleInProject"
|
||||
" FROM prj_users"
|
||||
" WHERE PrjCod=%ld"
|
||||
" AND UsrCod=%ld",
|
||||
PrjCod,
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod);
|
||||
for (NumRow = 0;
|
||||
NumRow < NumRows;
|
||||
NumRow++)
|
||||
|
@ -2510,7 +2518,7 @@ static void Prj_AddUsrsToProject (Prj_RoleInProject_t RoleInProject)
|
|||
{
|
||||
/* Add user to project */
|
||||
DB_QueryREPLACE ("can not add user to project",
|
||||
"REPLACE INTO prj_usr"
|
||||
"REPLACE INTO prj_users"
|
||||
" (PrjCod,RoleInProject,UsrCod)"
|
||||
" VALUES"
|
||||
" (%ld,%u,%ld)",
|
||||
|
@ -2690,9 +2698,10 @@ static void Prj_RemUsrFromPrj (Prj_RoleInProject_t RoleInProject)
|
|||
{
|
||||
/***** Remove user from the table of project-users *****/
|
||||
DB_QueryDELETE ("can not remove a user from a project",
|
||||
"DELETE FROM prj_usr"
|
||||
" WHERE PrjCod=%ld AND RoleInProject=%u"
|
||||
" AND UsrCod=%ld",
|
||||
"DELETE FROM prj_users"
|
||||
" WHERE PrjCod=%ld"
|
||||
" AND RoleInProject=%u"
|
||||
" AND UsrCod=%ld",
|
||||
Prj.PrjCod,
|
||||
(unsigned) RoleInProject,
|
||||
Gbl.Usrs.Other.UsrDat.UsrCod);
|
||||
|
@ -2931,11 +2940,11 @@ static void Prj_GetListProjects (struct Prj_Projects *Projects)
|
|||
NumRows = DB_QuerySELECT (&mysql_res,"can not get projects",
|
||||
"SELECT prj_projects.PrjCod"
|
||||
" FROM prj_projects,"
|
||||
"prj_usr"
|
||||
"prj_users"
|
||||
" WHERE prj_projects.CrsCod=%ld"
|
||||
"%s%s%s"
|
||||
" AND prj_projects.PrjCod=prj_usr.PrjCod"
|
||||
" AND prj_usr.UsrCod=%ld"
|
||||
" AND prj_projects.PrjCod=prj_users.PrjCod"
|
||||
" AND prj_users.UsrCod=%ld"
|
||||
" GROUP BY prj_projects.PrjCod" // To not repeat projects (DISTINCT can not be used)
|
||||
" ORDER BY %s",
|
||||
Gbl.Hierarchy.Crs.CrsCod,
|
||||
|
@ -2947,12 +2956,12 @@ static void Prj_GetListProjects (struct Prj_Projects *Projects)
|
|||
NumRows = DB_QuerySELECT (&mysql_res,"can not get projects",
|
||||
"SELECT prj_projects.PrjCod"
|
||||
" FROM prj_projects LEFT JOIN dpt_departments,"
|
||||
"prj_usr"
|
||||
"prj_users"
|
||||
" ON prj_projects.DptCod=dpt_departments.DptCod"
|
||||
" WHERE prj_projects.CrsCod=%ld"
|
||||
"%s%s%s"
|
||||
" AND prj_projects.PrjCod=prj_usr.PrjCod"
|
||||
" AND prj_usr.UsrCod=%ld"
|
||||
" AND prj_projects.PrjCod=prj_users.PrjCod"
|
||||
" AND prj_users.UsrCod=%ld"
|
||||
" GROUP BY prj_projects.PrjCod" // To not repeat projects (DISTINCT can not be used)
|
||||
" ORDER BY %s",
|
||||
Gbl.Hierarchy.Crs.CrsCod,
|
||||
|
@ -2984,11 +2993,11 @@ static void Prj_GetListProjects (struct Prj_Projects *Projects)
|
|||
NumRows = DB_QuerySELECT (&mysql_res,"can not get projects",
|
||||
"SELECT prj_projects.PrjCod"
|
||||
" FROM prj_projects,"
|
||||
"prj_usr"
|
||||
"prj_users"
|
||||
" WHERE prj_projects.CrsCod=%ld"
|
||||
"%s%s%s"
|
||||
" AND prj_projects.PrjCod=prj_usr.PrjCod"
|
||||
" AND prj_usr.UsrCod IN (%s)"
|
||||
" AND prj_projects.PrjCod=prj_users.PrjCod"
|
||||
" AND prj_users.UsrCod IN (%s)"
|
||||
" GROUP BY prj_projects.PrjCod" // To not repeat projects (DISTINCT can not be used)
|
||||
" ORDER BY %s",
|
||||
Gbl.Hierarchy.Crs.CrsCod,
|
||||
|
@ -3000,12 +3009,12 @@ static void Prj_GetListProjects (struct Prj_Projects *Projects)
|
|||
NumRows = DB_QuerySELECT (&mysql_res,"can not get projects",
|
||||
"SELECT prj_projects.PrjCod"
|
||||
" FROM prj_projects LEFT JOIN dpt_departments,"
|
||||
"prj_usr"
|
||||
"prj_users"
|
||||
" ON prj_projects.DptCod=dpt_departments.DptCod"
|
||||
" WHERE prj_projects.CrsCod=%ld"
|
||||
"%s%s%s"
|
||||
" AND prj_projects.PrjCod=prj_usr.PrjCod"
|
||||
" AND prj_usr.UsrCod IN (%s)"
|
||||
" AND prj_projects.PrjCod=prj_users.PrjCod"
|
||||
" AND prj_users.UsrCod IN (%s)"
|
||||
" GROUP BY prj_projects.PrjCod" // To not repeat projects (DISTINCT can not be used)
|
||||
" ORDER BY %s",
|
||||
Gbl.Hierarchy.Crs.CrsCod,
|
||||
|
@ -3382,12 +3391,12 @@ void Prj_RemoveProject (void)
|
|||
{
|
||||
/***** Remove users in project *****/
|
||||
DB_QueryDELETE ("can not remove project",
|
||||
"DELETE FROM prj_usr"
|
||||
"DELETE FROM prj_users"
|
||||
" USING prj_projects,"
|
||||
"prj_usr"
|
||||
"prj_users"
|
||||
" WHERE projects.PrjCod=%ld"
|
||||
" AND projects.CrsCod=%ld"
|
||||
" AND projects.PrjCod=prj_usr.PrjCod",
|
||||
" AND projects.PrjCod=prj_users.PrjCod",
|
||||
Prj.PrjCod,
|
||||
Gbl.Hierarchy.Crs.CrsCod);
|
||||
|
||||
|
@ -4004,7 +4013,7 @@ static void Prj_CreateProject (struct Prj_Project *Prj)
|
|||
|
||||
/***** Insert creator as first tutor *****/
|
||||
DB_QueryINSERT ("can not add tutor",
|
||||
"INSERT INTO prj_usr"
|
||||
"INSERT INTO prj_users"
|
||||
" (PrjCod,RoleInProject,UsrCod)"
|
||||
" VALUES"
|
||||
" (%ld,%u,%ld)",
|
||||
|
@ -4548,11 +4557,11 @@ void Prj_RemoveCrsProjects (long CrsCod)
|
|||
{
|
||||
/***** Remove users in projects of the course *****/
|
||||
DB_QueryDELETE ("can not remove all the projects of a course",
|
||||
"DELETE FROM prj_usr"
|
||||
"DELETE FROM prj_users"
|
||||
" USING prj_projects,"
|
||||
"prj_usr"
|
||||
"prj_users"
|
||||
" WHERE prj_projects.CrsCod=%ld"
|
||||
" AND prj_projects.PrjCod=prj_usr.PrjCod",
|
||||
" AND prj_projects.PrjCod=prj_users.PrjCod",
|
||||
CrsCod);
|
||||
|
||||
/***** Flush cache *****/
|
||||
|
@ -4580,7 +4589,7 @@ void Prj_RemoveUsrFromProjects (long UsrCod)
|
|||
|
||||
/***** Remove user from projects *****/
|
||||
DB_QueryDELETE ("can not remove user from projects",
|
||||
"DELETE FROM prj_usr"
|
||||
"DELETE FROM prj_users"
|
||||
" WHERE UsrCod=%ld",
|
||||
UsrCod);
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user