mirror of https://github.com/acanas/swad-core.git
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),
|
UNIQUE INDEX(GamCod),
|
||||||
INDEX(CrsCod));
|
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
|
-- Table gam_questions: stores the questions in the games
|
||||||
--
|
--
|
||||||
CREATE TABLE IF NOT EXISTS gam_questions (
|
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,QstInd),
|
||||||
UNIQUE INDEX(GamCod,QstCod));
|
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
|
-- Table hld_holidays: stores the holidays in each institution
|
||||||
--
|
--
|
||||||
CREATE TABLE IF NOT EXISTS hld_holidays (
|
CREATE TABLE IF NOT EXISTS hld_holidays (
|
||||||
|
@ -983,14 +904,77 @@ CREATE TABLE IF NOT EXISTS log_search (
|
||||||
SearchStr VARCHAR(2047) NOT NULL,
|
SearchStr VARCHAR(2047) NOT NULL,
|
||||||
UNIQUE INDEX(LogCod));
|
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 (
|
CREATE TABLE IF NOT EXISTS mch_answers (
|
||||||
MaiCod INT NOT NULL AUTO_INCREMENT,
|
MchCod INT NOT NULL,
|
||||||
Domain VARCHAR(255) NOT NULL,
|
UsrCod INT NOT NULL,
|
||||||
Info VARCHAR(2047) NOT NULL,
|
QstInd INT NOT NULL,
|
||||||
UNIQUE INDEX(MaiCod),
|
NumOpt TINYINT NOT NULL,
|
||||||
UNIQUE INDEX(Domain));
|
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)
|
-- Table med_media: stores information about media (images, videos, YouTube)
|
||||||
--
|
--
|
||||||
|
@ -1118,6 +1102,15 @@ CREATE TABLE IF NOT EXISTS not_notices (
|
||||||
INDEX(CreatTime),
|
INDEX(CreatTime),
|
||||||
INDEX(Status));
|
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
|
-- Table ntf_notifications: stores the notifications of events
|
||||||
--
|
--
|
||||||
CREATE TABLE IF NOT EXISTS ntf_notifications (
|
CREATE TABLE IF NOT EXISTS ntf_notifications (
|
||||||
|
@ -1213,9 +1206,9 @@ CREATE TABLE IF NOT EXISTS prj_projects (
|
||||||
INDEX(CrsCod,ModifTime),
|
INDEX(CrsCod,ModifTime),
|
||||||
INDEX(CrsCod,DptCod));
|
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,
|
PrjCod INT NOT NULL,
|
||||||
RoleInProject TINYINT NOT NULL DEFAULT 0,
|
RoleInProject TINYINT NOT NULL DEFAULT 0,
|
||||||
UsrCod INT NOT NULL,
|
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 CENTRE to CENTER in help wiki.
|
||||||
TODO: Rename ASSESSMENT.Announcements to ASSESSMENT.Calls_for_exams
|
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:
|
1 change necessary in database:
|
||||||
RENAME TABLE log_ws TO log_api;
|
RENAME TABLE log_ws TO log_api;
|
||||||
|
|
||||||
|
|
|
@ -2526,9 +2526,9 @@ mysql> DESCRIBE prj_projects;
|
||||||
"INDEX(CrsCod,ModifTime),"
|
"INDEX(CrsCod,ModifTime),"
|
||||||
"INDEX(CrsCod,DptCod))");
|
"INDEX(CrsCod,DptCod))");
|
||||||
|
|
||||||
/***** Table prj_usr *****/
|
/***** Table prj_users *****/
|
||||||
/*
|
/*
|
||||||
mysql> DESCRIBE prj_usr;
|
mysql> DESCRIBE prj_users;
|
||||||
+---------------+------------+------+-----+---------+-------+
|
+---------------+------------+------+-----+---------+-------+
|
||||||
| Field | Type | Null | Key | Default | Extra |
|
| Field | Type | Null | Key | Default | Extra |
|
||||||
+---------------+------------+------+-----+---------+-------+
|
+---------------+------------+------+-----+---------+-------+
|
||||||
|
@ -2538,7 +2538,7 @@ mysql> DESCRIBE prj_usr;
|
||||||
+---------------+------------+------+-----+---------+-------+
|
+---------------+------------+------+-----+---------+-------+
|
||||||
3 rows in set (0,00 sec)
|
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,"
|
"PrjCod INT NOT NULL,"
|
||||||
"RoleInProject TINYINT NOT NULL DEFAULT 0,"
|
"RoleInProject TINYINT NOT NULL DEFAULT 0,"
|
||||||
"UsrCod INT NOT NULL,"
|
"UsrCod INT NOT NULL,"
|
||||||
|
|
|
@ -2255,9 +2255,11 @@ static unsigned Prj_GetNumUsrsInPrj (long PrjCod,Prj_RoleInProject_t RoleInProje
|
||||||
/***** Get users in project from database *****/
|
/***** Get users in project from database *****/
|
||||||
return (unsigned) DB_QueryCOUNT ("can not get number of users in project",
|
return (unsigned) DB_QueryCOUNT ("can not get number of users in project",
|
||||||
"SELECT COUNT(UsrCod)"
|
"SELECT COUNT(UsrCod)"
|
||||||
" FROM prj_usr"
|
" FROM prj_users"
|
||||||
" WHERE PrjCod=%ld AND RoleInProject=%u",
|
" WHERE PrjCod=%ld"
|
||||||
PrjCod,(unsigned) RoleInProject);
|
" 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 *****/
|
/***** Get users in project from database *****/
|
||||||
return (unsigned) DB_QuerySELECT (mysql_res,"can not get users in project",
|
return (unsigned) DB_QuerySELECT (mysql_res,"can not get users in project",
|
||||||
"SELECT prj_usr.UsrCod," // row[0]
|
"SELECT prj_users.UsrCod," // row[0]
|
||||||
"usr_data.Surname1 AS S1," // row[1]
|
"usr_data.Surname1 AS S1," // row[1]
|
||||||
"usr_data.Surname2 AS S2," // row[2]
|
"usr_data.Surname2 AS S2," // row[2]
|
||||||
"usr_data.FirstName AS FN" // row[3]
|
"usr_data.FirstName AS FN" // row[3]
|
||||||
" FROM prj_usr,usr_data"
|
" FROM prj_users,"
|
||||||
" WHERE prj_usr.PrjCod=%ld"
|
"usr_data"
|
||||||
" AND prj_usr.RoleInProject=%u"
|
" WHERE prj_users.PrjCod=%ld"
|
||||||
" AND prj_usr.UsrCod=usr_data.UsrCod"
|
" AND prj_users.RoleInProject=%u"
|
||||||
" ORDER BY S1,S2,FN",
|
" AND prj_users.UsrCod=usr_data.UsrCod"
|
||||||
|
" ORDER BY S1,"
|
||||||
|
"S2,"
|
||||||
|
"FN",
|
||||||
PrjCod,(unsigned) RoleInProject);
|
PrjCod,(unsigned) RoleInProject);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2313,9 +2318,12 @@ unsigned Prj_GetMyRolesInProject (long PrjCod)
|
||||||
Gbl.Cache.MyRolesInProject.PrjCod = PrjCod;
|
Gbl.Cache.MyRolesInProject.PrjCod = PrjCod;
|
||||||
Gbl.Cache.MyRolesInProject.RolesInProject = 0;
|
Gbl.Cache.MyRolesInProject.RolesInProject = 0;
|
||||||
NumRows = (unsigned) DB_QuerySELECT (&mysql_res,"can not get my roles in project",
|
NumRows = (unsigned) DB_QuerySELECT (&mysql_res,"can not get my roles in project",
|
||||||
"SELECT RoleInProject FROM prj_usr"
|
"SELECT RoleInProject"
|
||||||
" WHERE PrjCod=%ld AND UsrCod=%ld",
|
" FROM prj_users"
|
||||||
PrjCod,Gbl.Usrs.Me.UsrDat.UsrCod);
|
" WHERE PrjCod=%ld"
|
||||||
|
" AND UsrCod=%ld",
|
||||||
|
PrjCod,
|
||||||
|
Gbl.Usrs.Me.UsrDat.UsrCod);
|
||||||
for (NumRow = 0;
|
for (NumRow = 0;
|
||||||
NumRow < NumRows;
|
NumRow < NumRows;
|
||||||
NumRow++)
|
NumRow++)
|
||||||
|
@ -2510,7 +2518,7 @@ static void Prj_AddUsrsToProject (Prj_RoleInProject_t RoleInProject)
|
||||||
{
|
{
|
||||||
/* Add user to project */
|
/* Add user to project */
|
||||||
DB_QueryREPLACE ("can not add user to project",
|
DB_QueryREPLACE ("can not add user to project",
|
||||||
"REPLACE INTO prj_usr"
|
"REPLACE INTO prj_users"
|
||||||
" (PrjCod,RoleInProject,UsrCod)"
|
" (PrjCod,RoleInProject,UsrCod)"
|
||||||
" VALUES"
|
" VALUES"
|
||||||
" (%ld,%u,%ld)",
|
" (%ld,%u,%ld)",
|
||||||
|
@ -2690,9 +2698,10 @@ static void Prj_RemUsrFromPrj (Prj_RoleInProject_t RoleInProject)
|
||||||
{
|
{
|
||||||
/***** Remove user from the table of project-users *****/
|
/***** Remove user from the table of project-users *****/
|
||||||
DB_QueryDELETE ("can not remove a user from a project",
|
DB_QueryDELETE ("can not remove a user from a project",
|
||||||
"DELETE FROM prj_usr"
|
"DELETE FROM prj_users"
|
||||||
" WHERE PrjCod=%ld AND RoleInProject=%u"
|
" WHERE PrjCod=%ld"
|
||||||
" AND UsrCod=%ld",
|
" AND RoleInProject=%u"
|
||||||
|
" AND UsrCod=%ld",
|
||||||
Prj.PrjCod,
|
Prj.PrjCod,
|
||||||
(unsigned) RoleInProject,
|
(unsigned) RoleInProject,
|
||||||
Gbl.Usrs.Other.UsrDat.UsrCod);
|
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",
|
NumRows = DB_QuerySELECT (&mysql_res,"can not get projects",
|
||||||
"SELECT prj_projects.PrjCod"
|
"SELECT prj_projects.PrjCod"
|
||||||
" FROM prj_projects,"
|
" FROM prj_projects,"
|
||||||
"prj_usr"
|
"prj_users"
|
||||||
" WHERE prj_projects.CrsCod=%ld"
|
" WHERE prj_projects.CrsCod=%ld"
|
||||||
"%s%s%s"
|
"%s%s%s"
|
||||||
" AND prj_projects.PrjCod=prj_usr.PrjCod"
|
" AND prj_projects.PrjCod=prj_users.PrjCod"
|
||||||
" AND prj_usr.UsrCod=%ld"
|
" AND prj_users.UsrCod=%ld"
|
||||||
" GROUP BY prj_projects.PrjCod" // To not repeat projects (DISTINCT can not be used)
|
" GROUP BY prj_projects.PrjCod" // To not repeat projects (DISTINCT can not be used)
|
||||||
" ORDER BY %s",
|
" ORDER BY %s",
|
||||||
Gbl.Hierarchy.Crs.CrsCod,
|
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",
|
NumRows = DB_QuerySELECT (&mysql_res,"can not get projects",
|
||||||
"SELECT prj_projects.PrjCod"
|
"SELECT prj_projects.PrjCod"
|
||||||
" FROM prj_projects LEFT JOIN dpt_departments,"
|
" FROM prj_projects LEFT JOIN dpt_departments,"
|
||||||
"prj_usr"
|
"prj_users"
|
||||||
" ON prj_projects.DptCod=dpt_departments.DptCod"
|
" ON prj_projects.DptCod=dpt_departments.DptCod"
|
||||||
" WHERE prj_projects.CrsCod=%ld"
|
" WHERE prj_projects.CrsCod=%ld"
|
||||||
"%s%s%s"
|
"%s%s%s"
|
||||||
" AND prj_projects.PrjCod=prj_usr.PrjCod"
|
" AND prj_projects.PrjCod=prj_users.PrjCod"
|
||||||
" AND prj_usr.UsrCod=%ld"
|
" AND prj_users.UsrCod=%ld"
|
||||||
" GROUP BY prj_projects.PrjCod" // To not repeat projects (DISTINCT can not be used)
|
" GROUP BY prj_projects.PrjCod" // To not repeat projects (DISTINCT can not be used)
|
||||||
" ORDER BY %s",
|
" ORDER BY %s",
|
||||||
Gbl.Hierarchy.Crs.CrsCod,
|
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",
|
NumRows = DB_QuerySELECT (&mysql_res,"can not get projects",
|
||||||
"SELECT prj_projects.PrjCod"
|
"SELECT prj_projects.PrjCod"
|
||||||
" FROM prj_projects,"
|
" FROM prj_projects,"
|
||||||
"prj_usr"
|
"prj_users"
|
||||||
" WHERE prj_projects.CrsCod=%ld"
|
" WHERE prj_projects.CrsCod=%ld"
|
||||||
"%s%s%s"
|
"%s%s%s"
|
||||||
" AND prj_projects.PrjCod=prj_usr.PrjCod"
|
" AND prj_projects.PrjCod=prj_users.PrjCod"
|
||||||
" AND prj_usr.UsrCod IN (%s)"
|
" AND prj_users.UsrCod IN (%s)"
|
||||||
" GROUP BY prj_projects.PrjCod" // To not repeat projects (DISTINCT can not be used)
|
" GROUP BY prj_projects.PrjCod" // To not repeat projects (DISTINCT can not be used)
|
||||||
" ORDER BY %s",
|
" ORDER BY %s",
|
||||||
Gbl.Hierarchy.Crs.CrsCod,
|
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",
|
NumRows = DB_QuerySELECT (&mysql_res,"can not get projects",
|
||||||
"SELECT prj_projects.PrjCod"
|
"SELECT prj_projects.PrjCod"
|
||||||
" FROM prj_projects LEFT JOIN dpt_departments,"
|
" FROM prj_projects LEFT JOIN dpt_departments,"
|
||||||
"prj_usr"
|
"prj_users"
|
||||||
" ON prj_projects.DptCod=dpt_departments.DptCod"
|
" ON prj_projects.DptCod=dpt_departments.DptCod"
|
||||||
" WHERE prj_projects.CrsCod=%ld"
|
" WHERE prj_projects.CrsCod=%ld"
|
||||||
"%s%s%s"
|
"%s%s%s"
|
||||||
" AND prj_projects.PrjCod=prj_usr.PrjCod"
|
" AND prj_projects.PrjCod=prj_users.PrjCod"
|
||||||
" AND prj_usr.UsrCod IN (%s)"
|
" AND prj_users.UsrCod IN (%s)"
|
||||||
" GROUP BY prj_projects.PrjCod" // To not repeat projects (DISTINCT can not be used)
|
" GROUP BY prj_projects.PrjCod" // To not repeat projects (DISTINCT can not be used)
|
||||||
" ORDER BY %s",
|
" ORDER BY %s",
|
||||||
Gbl.Hierarchy.Crs.CrsCod,
|
Gbl.Hierarchy.Crs.CrsCod,
|
||||||
|
@ -3382,12 +3391,12 @@ void Prj_RemoveProject (void)
|
||||||
{
|
{
|
||||||
/***** Remove users in project *****/
|
/***** Remove users in project *****/
|
||||||
DB_QueryDELETE ("can not remove project",
|
DB_QueryDELETE ("can not remove project",
|
||||||
"DELETE FROM prj_usr"
|
"DELETE FROM prj_users"
|
||||||
" USING prj_projects,"
|
" USING prj_projects,"
|
||||||
"prj_usr"
|
"prj_users"
|
||||||
" WHERE projects.PrjCod=%ld"
|
" WHERE projects.PrjCod=%ld"
|
||||||
" AND projects.CrsCod=%ld"
|
" AND projects.CrsCod=%ld"
|
||||||
" AND projects.PrjCod=prj_usr.PrjCod",
|
" AND projects.PrjCod=prj_users.PrjCod",
|
||||||
Prj.PrjCod,
|
Prj.PrjCod,
|
||||||
Gbl.Hierarchy.Crs.CrsCod);
|
Gbl.Hierarchy.Crs.CrsCod);
|
||||||
|
|
||||||
|
@ -4004,7 +4013,7 @@ static void Prj_CreateProject (struct Prj_Project *Prj)
|
||||||
|
|
||||||
/***** Insert creator as first tutor *****/
|
/***** Insert creator as first tutor *****/
|
||||||
DB_QueryINSERT ("can not add tutor",
|
DB_QueryINSERT ("can not add tutor",
|
||||||
"INSERT INTO prj_usr"
|
"INSERT INTO prj_users"
|
||||||
" (PrjCod,RoleInProject,UsrCod)"
|
" (PrjCod,RoleInProject,UsrCod)"
|
||||||
" VALUES"
|
" VALUES"
|
||||||
" (%ld,%u,%ld)",
|
" (%ld,%u,%ld)",
|
||||||
|
@ -4548,11 +4557,11 @@ void Prj_RemoveCrsProjects (long CrsCod)
|
||||||
{
|
{
|
||||||
/***** Remove users in projects of the course *****/
|
/***** Remove users in projects of the course *****/
|
||||||
DB_QueryDELETE ("can not remove all the projects of a course",
|
DB_QueryDELETE ("can not remove all the projects of a course",
|
||||||
"DELETE FROM prj_usr"
|
"DELETE FROM prj_users"
|
||||||
" USING prj_projects,"
|
" USING prj_projects,"
|
||||||
"prj_usr"
|
"prj_users"
|
||||||
" WHERE prj_projects.CrsCod=%ld"
|
" WHERE prj_projects.CrsCod=%ld"
|
||||||
" AND prj_projects.PrjCod=prj_usr.PrjCod",
|
" AND prj_projects.PrjCod=prj_users.PrjCod",
|
||||||
CrsCod);
|
CrsCod);
|
||||||
|
|
||||||
/***** Flush cache *****/
|
/***** Flush cache *****/
|
||||||
|
@ -4580,7 +4589,7 @@ void Prj_RemoveUsrFromProjects (long UsrCod)
|
||||||
|
|
||||||
/***** Remove user from projects *****/
|
/***** Remove user from projects *****/
|
||||||
DB_QueryDELETE ("can not remove user from projects",
|
DB_QueryDELETE ("can not remove user from projects",
|
||||||
"DELETE FROM prj_usr"
|
"DELETE FROM prj_users"
|
||||||
" WHERE UsrCod=%ld",
|
" WHERE UsrCod=%ld",
|
||||||
UsrCod);
|
UsrCod);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue