Version 20.51.34: Mar 23, 2021 Groups database tables renamed.

This commit is contained in:
acanas 2021-03-24 00:03:35 +01:00
parent 36365b0813
commit 577f485e41
18 changed files with 404 additions and 373 deletions

View File

@ -293,9 +293,9 @@ CREATE TABLE IF NOT EXISTS grp_groups (
INDEX(GrpTypCod),
INDEX(RooCod));
--
-- Table crs_grp_types: stores the types of groups in courses
-- Table grp_types: stores the types of groups in courses
--
CREATE TABLE IF NOT EXISTS crs_grp_types (
CREATE TABLE IF NOT EXISTS grp_types (
GrpTypCod INT NOT NULL AUTO_INCREMENT,
CrsCod INT NOT NULL DEFAULT -1,
GrpTypName VARCHAR(2047) NOT NULL,
@ -306,9 +306,9 @@ CREATE TABLE IF NOT EXISTS crs_grp_types (
UNIQUE INDEX(GrpTypCod),
INDEX(CrsCod));
--
-- Table crs_grp_usr: stores the users beloging to each group
-- Table grp_users: stores the users beloging to each group
--
CREATE TABLE IF NOT EXISTS crs_grp_usr (
CREATE TABLE IF NOT EXISTS grp_users (
GrpCod INT NOT NULL,
UsrCod INT NOT NULL,
UNIQUE INDEX(GrpCod,UsrCod),

View File

@ -510,10 +510,10 @@ static int API_CheckCourseAndGroupCodes (struct soap *soap,
/***** Query if group code already exists in database *****/
if (DB_QueryCOUNT ("can not get group",
"SELECT COUNT(*)"
" FROM crs_grp_types,"
" FROM grp_types,"
"grp_groups"
" WHERE crs_grp_types.CrsCod=%ld"
" AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod"
" WHERE grp_types.CrsCod=%ld"
" AND grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND grp_groups.GrpCod=%ld",
CrsCod,GrpCod) != 1)
return soap_sender_fault (soap,
@ -2108,12 +2108,12 @@ int swad__getGroupTypes (struct soap *soap,
/***** Query group types in a course from database *****/
NumRows =
(unsigned) DB_QuerySELECT (&mysql_res,"can not get group types",
"SELECT GrpTypCod,"
"GrpTypName,"
"Mandatory,"
"Multiple,"
"UNIX_TIMESTAMP(OpenTime)"
" FROM crs_grp_types"
"SELECT GrpTypCod," // row[0]
"GrpTypName," // row[1]
"Mandatory," // row[2]
"Multiple," // row[3]
"UNIX_TIMESTAMP(OpenTime)" // row[4]
" FROM grp_types"
" WHERE CrsCod=%d"
" ORDER BY GrpTypName",
courseCode);
@ -2227,18 +2227,18 @@ int swad__getGroups (struct soap *soap,
/***** Query groups in a course from database *****/
NumRows =
(unsigned) DB_QuerySELECT (&mysql_res,"can not get user's groups",
"SELECT crs_grp_types.GrpTypCod,"
"crs_grp_types.GrpTypName,"
"grp_groups.GrpCod,"
"grp_groups.GrpName,"
"grp_groups.MaxStudents,"
"grp_groups.Open,"
"grp_groups.FileZones"
" FROM crs_grp_types,"
"SELECT grp_types.GrpTypCod," // row[0]
"grp_types.GrpTypName," // row[1]
"grp_groups.GrpCod," // row[2]
"grp_groups.GrpName," // row[3]
"grp_groups.MaxStudents," // row[4]
"grp_groups.Open, " // row[5]
"grp_groups.FileZones" // row[6]
" FROM grp_types,"
"grp_groups"
" WHERE crs_grp_types.CrsCod=%d"
" AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod"
" ORDER BY crs_grp_types.GrpTypName,"
" WHERE grp_types.CrsCod=%d"
" AND grp_types.GrpTypCod=grp_groups.GrpTypCod"
" ORDER BY grp_types.GrpTypName,"
"grp_groups.GrpName",
courseCode);
@ -2401,18 +2401,18 @@ int swad__sendMyGroups (struct soap *soap,
/***** Query groups in a course from database *****/
NumRows =
(unsigned) DB_QuerySELECT (&mysql_res,"can not get user's groups",
"SELECT crs_grp_types.GrpTypCod,"
"crs_grp_types.GrpTypName,"
"grp_groups.GrpCod,"
"grp_groups.GrpName,"
"grp_groups.MaxStudents,"
"grp_groups.Open,"
"grp_groups.FileZones"
" FROM crs_grp_types,"
"SELECT grp_types.GrpTypCod," // row[0]
"grp_types.GrpTypName," // row[1]
"grp_groups.GrpCod," // row[2]
"grp_groups.GrpName," // row[3]
"grp_groups.MaxStudents," // row[4]
"grp_groups.Open," // row[5]
"grp_groups.FileZones" // row[6]
" FROM grp_types,"
"grp_groups"
" WHERE crs_grp_types.CrsCod=%d"
" AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod"
" ORDER BY crs_grp_types.GrpTypName,"
" WHERE grp_types.CrsCod=%d"
" AND grp_types.GrpTypCod=grp_groups.GrpTypCod"
" ORDER BY grp_types.GrpTypName,"
"grp_groups.GrpName",
courseCode);
@ -3021,21 +3021,21 @@ int swad__getAttendanceUsers (struct soap *soap,
// Event for one or more groups
// Subquery: list of users in groups of this attendance event...
// ...who have no entry in attendance list of users
sprintf (SubQuery,"SELECT DISTINCT crs_grp_usr.UsrCod AS UsrCod,"
"'N' AS Present"
sprintf (SubQuery,"SELECT DISTINCT grp_users.UsrCod AS UsrCod," // row[0]
"'N' AS Present" // row[1]
" FROM att_groups,"
"grp_groups,"
"crs_grp_types,"
"grp_types,"
"crs_users,"
"crs_grp_usr"
"grp_users"
" WHERE att_groups.AttCod=%ld"
" AND att_groups.GrpCod=grp_groups.GrpCod"
" AND grp_groups.GrpTypCod=crs_grp_types.GrpTypCod"
" AND crs_grp_types.CrsCod=crs_users.CrsCod"
" AND grp_groups.GrpTypCod=grp_types.GrpTypCod"
" AND grp_types.CrsCod=crs_users.CrsCod"
" AND crs_users.Role=%u"
" AND crs_users.UsrCod=crs_grp_usr.UsrCod"
" AND crs_grp_usr.GrpCod=att_groups.GrpCod"
" AND crs_grp_usr.UsrCod NOT IN"
" AND crs_users.UsrCod=grp_users.UsrCod"
" AND grp_users.GrpCod=att_groups.GrpCod"
" AND grp_users.UsrCod NOT IN"
" (SELECT UsrCod"
" FROM att_users"
" WHERE AttCod=%ld)",
@ -5062,18 +5062,18 @@ int swad__getMatches (struct soap *soap,
"UNIX_TIMESTAMP(EndTime)," // row[ 3]
"Title," // row[ 4]
"QstInd" // row[ 5]
" FROM mch_matches"
" WHERE GamCod=%ld"
" AND"
"(MchCod NOT IN"
" FROM mch_matches"
" WHERE GamCod=%ld"
" AND (MchCod NOT IN"
" (SELECT MchCod FROM mch_groups)"
" OR"
" MchCod IN"
" (SELECT mch_groups.MchCod"
" FROM mch_groups,crs_grp_usr"
" WHERE crs_grp_usr.UsrCod=%ld"
" AND mch_groups.GrpCod=crs_grp_usr.GrpCod))"
" ORDER BY MchCod",
" FROM mch_groups,"
"grp_users"
" WHERE grp_users.UsrCod=%ld"
" AND mch_groups.GrpCod=grp_users.GrpCod))"
" ORDER BY MchCod",
Game.GamCod,
Gbl.Usrs.Me.UsrDat.UsrCod);
getMatchesOut->matchesArray.__size =

View File

@ -707,9 +707,9 @@ static void Asg_GetListAssignments (struct Asg_Assignments *Assignments)
" AsgCod IN"
" (SELECT asg_groups.AsgCod"
" FROM asg_groups,"
"crs_grp_usr"
" WHERE crs_grp_usr.UsrCod=%ld"
" AND asg_groups.GrpCod=crs_grp_usr.GrpCod)"
"grp_users"
" WHERE grp_users.UsrCod=%ld"
" AND asg_groups.GrpCod=grp_users.GrpCod)"
")"
" ORDER BY %s",
Gbl.Hierarchy.Crs.CrsCod,
@ -1753,15 +1753,15 @@ static void Asg_GetAndWriteNamesOfGrpsAssociatedToAsg (struct Asg_Assignment *As
/***** Get groups associated to an assignment from database *****/
NumRows = DB_QuerySELECT (&mysql_res,"can not get groups of an assignment",
"SELECT crs_grp_types.GrpTypName,"
"grp_groups.GrpName"
"SELECT grp_types.GrpTypName," // row[0]
"grp_groups.GrpName" // row[1]
" FROM asg_groups,"
"grp_groups,"
"crs_grp_types"
"grp_types"
" WHERE asg_groups.AsgCod=%ld"
" AND asg_groups.GrpCod=grp_groups.GrpCod"
" AND grp_groups.GrpTypCod=crs_grp_types.GrpTypCod"
" ORDER BY crs_grp_types.GrpTypName,"
" AND grp_groups.GrpTypCod=grp_types.GrpTypCod"
" ORDER BY grp_types.GrpTypName,"
"grp_groups.GrpName",
Asg->AsgCod);
@ -1852,10 +1852,10 @@ static bool Asg_CheckIfIBelongToCrsOrGrpsThisAssignment (long AsgCod)
// Assignment is for some of my groups
"AsgCod IN"
" (SELECT asg_groups.AsgCod"
" FROM crs_grp_usr,"
" FROM grp_users,"
"asg_groups"
" WHERE crs_grp_usr.UsrCod=%ld"
" AND asg_groups.GrpCod=crs_grp_usr.GrpCod)"
" WHERE grp_users.UsrCod=%ld"
" AND asg_groups.GrpCod=grp_users.GrpCod)"
")",
AsgCod,Gbl.Usrs.Me.UsrDat.UsrCod) != 0);
case Rol_SYS_ADM:

View File

@ -688,10 +688,10 @@ static void Att_GetListAttEvents (struct Att_Events *Events,
" OR"
" AttCod IN"
" (SELECT att_groups.AttCod"
" FROM crs_grp_usr,"
" FROM grp_users,"
"att_groups"
" WHERE crs_grp_usr.UsrCod=%ld"
" AND att_groups.GrpCod=crs_grp_usr.GrpCod))"
" WHERE grp_users.UsrCod=%ld"
" AND att_groups.GrpCod=grp_users.GrpCod))"
" ORDER BY %s",
Gbl.Hierarchy.Crs.CrsCod,
HiddenSubQuery[Gbl.Usrs.Me.Role.Logged],
@ -1543,18 +1543,18 @@ static void Att_GetAndWriteNamesOfGrpsAssociatedToAttEvent (struct Att_Event *Ev
/***** Get groups associated to an attendance event from database *****/
NumGrps = (unsigned) DB_QuerySELECT (&mysql_res,"can not get groups of an attendance event",
"SELECT crs_grp_types.GrpTypName,"
"grp_groups.GrpName,"
"roo_rooms.ShortName"
"SELECT grp_types.GrpTypName," // row[0]
"grp_groups.GrpName," // row[1]
"roo_rooms.ShortName" // row[2]
" FROM (att_groups,"
"grp_groups,"
"crs_grp_types)"
"grp_types)"
" LEFT JOIN roo_rooms"
" ON grp_groups.RooCod=roo_rooms.RooCod"
" WHERE att_groups.AttCod=%ld"
" AND att_groups.GrpCod=grp_groups.GrpCod"
" AND grp_groups.GrpTypCod=crs_grp_types.GrpTypCod"
" ORDER BY crs_grp_types.GrpTypName,"
" AND grp_groups.GrpTypCod=grp_types.GrpTypCod"
" ORDER BY grp_types.GrpTypName,"
"grp_groups.GrpName",
Event->AttCod);

View File

@ -600,13 +600,18 @@ TODO: Salvador Romero Cort
TODO: FIX BUG, URGENT! En las fechas como parámetro Dat_WriteParamsIniEndDates(), por ejemplo al cambiar el color de la gráfica de accesos por día y hora, no se respeta la zona horaria.
*/
#define Log_PLATFORM_VERSION "SWAD 20.51.33 (2021-03-23)"
#define Log_PLATFORM_VERSION "SWAD 20.51.34 (2021-03-23)"
#define CSS_FILE "swad20.45.css"
#define JS_FILE "swad20.6.2.js"
/*
TODO: Rename CENTRE to CENTER in help wiki.
TODO: Rename ASSESSMENT.Announcements to ASSESSMENT.Calls_for_exams
Version 20.51.34: Mar 23, 2021 Groups database tables renamed. (308624 lines)
2 changes necessary in database:
RENAME TABLE crs_grp_types TO grp_types;
RENAME TABLE crs_grp_usr TO grp_users;
Version 20.51.33: Mar 23, 2021 Groups database table renamed. (308594 lines)
1 change necessary in database:
RENAME TABLE crs_grp TO grp_groups;

View File

@ -2026,27 +2026,27 @@ static void Crs_EmptyCourseCompletely (long CrsCod)
/***** Remove groups in the course *****/
/* Remove all the users in groups in the course */
DB_QueryDELETE ("can not remove users from groups of a course",
"DELETE FROM crs_grp_usr"
" USING crs_grp_types,"
"DELETE FROM grp_users"
" USING grp_types,"
"grp_groups,"
"crs_grp_usr"
" WHERE crs_grp_types.CrsCod=%ld"
" AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND grp_groups.GrpCod=crs_grp_usr.GrpCod",
"grp_users"
" WHERE grp_types.CrsCod=%ld"
" AND grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND grp_groups.GrpCod=grp_users.GrpCod",
CrsCod);
/* Remove all the groups in the course */
DB_QueryDELETE ("can not remove groups of a course",
"DELETE FROM grp_groups"
" USING crs_grp_types,"
" USING grp_types,"
"grp_groups"
" WHERE crs_grp_types.CrsCod=%ld"
" AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod",
" WHERE grp_types.CrsCod=%ld"
" AND grp_types.GrpTypCod=grp_groups.GrpTypCod",
CrsCod);
/* Remove all the group types in the course */
DB_QueryDELETE ("can not remove types of group of a course",
"DELETE FROM crs_grp_types"
"DELETE FROM grp_types"
" WHERE CrsCod=%ld",
CrsCod);

View File

@ -678,9 +678,9 @@ mysql> DESCRIBE grp_groups;
"INDEX(GrpTypCod),"
"INDEX(RooCod))");
/***** Table crs_grp_types *****/
/***** Table grp_types *****/
/*
mysql> DESCRIBE crs_grp_types;
mysql> DESCRIBE grp_types;
+--------------+---------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+---------------+------+-----+---------+----------------+
@ -694,7 +694,7 @@ mysql> DESCRIBE crs_grp_types;
+--------------+---------------+------+-----+---------+----------------+
7 rows in set (0,00 sec)
*/
DB_CreateTable ("CREATE TABLE IF NOT EXISTS crs_grp_types ("
DB_CreateTable ("CREATE TABLE IF NOT EXISTS grp_types ("
"GrpTypCod INT NOT NULL AUTO_INCREMENT,"
"CrsCod INT NOT NULL DEFAULT -1,"
"GrpTypName VARCHAR(2047) NOT NULL," // Grp_MAX_BYTES_GROUP_TYPE_NAME
@ -705,9 +705,9 @@ mysql> DESCRIBE crs_grp_types;
"UNIQUE INDEX(GrpTypCod),"
"INDEX(CrsCod))");
/***** Table crs_grp_usr *****/
/***** Table grp_users *****/
/*
mysql> DESCRIBE crs_grp_usr;
mysql> DESCRIBE grp_users;
+--------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+---------+------+-----+---------+-------+
@ -716,7 +716,7 @@ mysql> DESCRIBE crs_grp_usr;
+--------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)
*/
DB_CreateTable ("CREATE TABLE IF NOT EXISTS crs_grp_usr ("
DB_CreateTable ("CREATE TABLE IF NOT EXISTS grp_users ("
"GrpCod INT NOT NULL,"
"UsrCod INT NOT NULL,"
"UNIQUE INDEX(GrpCod,UsrCod),"

View File

@ -187,9 +187,10 @@ void ExaSes_ListSessions (struct Exa_Exams *Exams,
" OR"
" SesCod IN"
" (SELECT exa_groups.SesCod"
" FROM exa_groups,crs_grp_usr"
" WHERE crs_grp_usr.UsrCod=%ld"
" AND exa_groups.GrpCod=crs_grp_usr.GrpCod))",
" FROM exa_groups,"
"grp_users"
" WHERE grp_users.UsrCod=%ld"
" AND exa_groups.GrpCod=grp_users.GrpCod))",
Gbl.Usrs.Me.UsrDat.UsrCod) < 0)
Lay_NotEnoughMemoryExit ();
}
@ -665,15 +666,15 @@ static void ExaSes_GetAndWriteNamesOfGrpsAssociatedToSession (const struct ExaSe
/***** Get groups associated to an exam session from database *****/
NumRows = DB_QuerySELECT (&mysql_res,"can not get groups of an exam session",
"SELECT crs_grp_types.GrpTypName," // row[0]
"SELECT grp_types.GrpTypName," // row[0]
"grp_groups.GrpName" // row[1]
" FROM exa_groups,"
"grp_groups,"
"crs_grp_types"
"grp_types"
" WHERE exa_groups.SesCod=%ld"
" AND exa_groups.GrpCod=grp_groups.GrpCod"
" AND grp_groups.GrpTypCod=crs_grp_types.GrpTypCod"
" ORDER BY crs_grp_types.GrpTypName,"
" AND grp_groups.GrpTypCod=grp_types.GrpTypCod"
" ORDER BY grp_types.GrpTypName,"
"grp_groups.GrpName",
Session->SesCod);
@ -1733,17 +1734,18 @@ bool ExaSes_CheckIfICanListThisSessionBasedOnGrps (long SesCod)
/***** Check if I belong to any of the groups
associated to the exam session *****/
return (DB_QueryCOUNT ("can not check if I can play an exam session",
"SELECT COUNT(*) FROM exa_sessions"
"SELECT COUNT(*)"
" FROM exa_sessions"
" WHERE SesCod=%ld"
" AND"
"(SesCod NOT IN"
" (SELECT SesCod FROM exa_groups)"
" OR"
" SesCod IN"
" (SELECT exa_groups.SesCod"
" FROM exa_groups,crs_grp_usr"
" WHERE crs_grp_usr.UsrCod=%ld"
" AND crs_grp_usr.GrpCod=exa_groups.GrpCod))",
" AND (SesCod NOT IN"
" (SELECT SesCod FROM exa_groups)"
" OR"
" SesCod IN"
" (SELECT exa_groups.SesCod"
" FROM exa_groups,"
"grp_users"
" WHERE grp_users.UsrCod=%ld"
" AND grp_users.GrpCod=exa_groups.GrpCod))",
SesCod,Gbl.Usrs.Me.UsrDat.UsrCod) != 0);
break;
case Rol_NET:

View File

@ -1703,16 +1703,16 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope,
" FROM brw_sizes"
" WHERE FileBrowser IN (%u,%u,%u,%u,%u,%u)"
" UNION "
"SELECT crs_grp_types.CrsCod,"
"SELECT grp_types.CrsCod,"
"brw_sizes.Cod AS GrpCod,"
"brw_sizes.NumLevels,"
"brw_sizes.NumFolders,"
"brw_sizes.NumFiles,"
"brw_sizes.TotalSize"
" FROM crs_grp_types,"
" FROM grp_types,"
"grp_groups,"
"brw_sizes"
" WHERE crs_grp_types.GrpTypCod=grp_groups.GrpTypCod"
" WHERE grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND grp_groups.GrpCod=brw_sizes.Cod"
" AND brw_sizes.FileBrowser IN (%u,%u,%u,%u)"
") AS sizes",
@ -1748,17 +1748,17 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope,
case Brw_ADMI_SHR_GRP:
case Brw_ADMI_MRK_GRP:
DB_QuerySELECT (&mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT crs_grp_types.CrsCod)," // row[0]
"SELECT COUNT(DISTINCT grp_types.CrsCod)," // row[0]
"COUNT(DISTINCT brw_sizes.Cod)," // row[1]
"-1," // row[2]
"MAX(brw_sizes.NumLevels)," // row[3]
"SUM(brw_sizes.NumFolders)," // row[4]
"SUM(brw_sizes.NumFiles)," // row[5]
"SUM(brw_sizes.TotalSize)" // row[6]
" FROM crs_grp_types,"
" FROM grp_types,"
"grp_groups,"
"brw_sizes"
" WHERE crs_grp_types.GrpTypCod=grp_groups.GrpTypCod"
" WHERE grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND grp_groups.GrpCod=brw_sizes.Cod"
" AND brw_sizes.FileBrowser=%u",
(unsigned) FileBrowser);
@ -1828,7 +1828,7 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope,
" AND crs_courses.CrsCod=brw_sizes.Cod"
" AND brw_sizes.FileBrowser IN (%u,%u,%u,%u,%u,%u)"
" UNION "
"SELECT crs_grp_types.CrsCod,"
"SELECT grp_types.CrsCod,"
"brw_sizes.Cod AS GrpCod," // Group zones
"brw_sizes.NumLevels,"
"brw_sizes.NumFolders,"
@ -1838,15 +1838,15 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope,
"ctr_centers,"
"deg_degrees,"
"crs_courses,"
"crs_grp_types,"
"grp_types,"
"grp_groups,"
"brw_sizes"
" WHERE ins_instits.CtyCod=%ld"
" AND ins_instits.InsCod=ctr_centers.InsCod"
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=crs_grp_types.CrsCod"
" AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND crs_courses.CrsCod=grp_types.CrsCod"
" AND grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND grp_groups.GrpCod=brw_sizes.Cod"
" AND brw_sizes.FileBrowser IN (%u,%u,%u,%u)"
") AS sizes",
@ -1894,7 +1894,7 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope,
case Brw_ADMI_SHR_GRP:
case Brw_ADMI_MRK_GRP:
DB_QuerySELECT (&mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT crs_grp_types.CrsCod)," // row[0]
"SELECT COUNT(DISTINCT grp_types.CrsCod)," // row[0]
"COUNT(DISTINCT brw_sizes.Cod)," // row[1]
"-1," // row[2]
"MAX(brw_sizes.NumLevels)," // row[3]
@ -1905,15 +1905,15 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope,
"ctr_centers,"
"deg_degrees,"
"crs_courses,"
"crs_grp_types,"
"grp_types,"
"grp_groups,"
"brw_sizes"
" WHERE ins_instits.CtyCod=%ld"
" AND ins_instits.InsCod=ctr_centers.InsCod"
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=crs_grp_types.CrsCod"
" AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND crs_courses.CrsCod=grp_types.CrsCod"
" AND grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND grp_groups.GrpCod=brw_sizes.Cod"
" AND brw_sizes.FileBrowser=%u",
Gbl.Hierarchy.Cty.CtyCod,
@ -2004,7 +2004,7 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope,
" AND crs_courses.CrsCod=brw_sizes.Cod"
" AND brw_sizes.FileBrowser IN (%u,%u,%u,%u,%u,%u)"
" UNION "
"SELECT crs_grp_types.CrsCod,"
"SELECT grp_types.CrsCod,"
"brw_sizes.Cod AS GrpCod," // Group zones
"brw_sizes.NumLevels,"
"brw_sizes.NumFolders,"
@ -2013,14 +2013,14 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope,
" FROM ctr_centers,"
"deg_degrees,"
"crs_courses,"
"crs_grp_types,"
"grp_types,"
"grp_groups,"
"brw_sizes"
" WHERE ctr_centers.InsCod=%ld"
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=crs_grp_types.CrsCod"
" AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND crs_courses.CrsCod=grp_types.CrsCod"
" AND grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND grp_groups.GrpCod=brw_sizes.Cod"
" AND brw_sizes.FileBrowser IN (%u,%u,%u,%u)"
") AS sizes",
@ -2066,7 +2066,7 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope,
case Brw_ADMI_SHR_GRP:
case Brw_ADMI_MRK_GRP:
DB_QuerySELECT (&mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT crs_grp_types.CrsCod)," // row[0]
"SELECT COUNT(DISTINCT grp_types.CrsCod)," // row[0]
"COUNT(DISTINCT brw_sizes.Cod)," // row[1]
"-1," // row[2]
"MAX(brw_sizes.NumLevels)," // row[3]
@ -2076,14 +2076,14 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope,
" FROM ctr_centers,"
"deg_degrees,"
"crs_courses,"
"crs_grp_types,"
"grp_types,"
"grp_groups,"
"brw_sizes"
" WHERE ctr_centers.InsCod=%ld"
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=crs_grp_types.CrsCod"
" AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND crs_courses.CrsCod=grp_types.CrsCod"
" AND grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND grp_groups.GrpCod=brw_sizes.Cod"
" AND brw_sizes.FileBrowser=%u",
Gbl.Hierarchy.Ins.InsCod,
@ -2168,7 +2168,7 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope,
" AND crs_courses.CrsCod=brw_sizes.Cod"
" AND brw_sizes.FileBrowser IN (%u,%u,%u,%u,%u,%u)"
" UNION "
"SELECT crs_grp_types.CrsCod,"
"SELECT grp_types.CrsCod,"
"brw_sizes.Cod AS GrpCod," // Group zones
"brw_sizes.NumLevels,"
"brw_sizes.NumFolders,"
@ -2176,13 +2176,13 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope,
"brw_sizes.TotalSize"
" FROM deg_degrees,"
"crs_courses,"
"crs_grp_types,"
"grp_types,"
"grp_groups,"
"brw_sizes"
" WHERE deg_degrees.CtrCod=%ld"
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=crs_grp_types.CrsCod"
" AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND crs_courses.CrsCod=grp_types.CrsCod"
" AND grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND grp_groups.GrpCod=brw_sizes.Cod"
" AND brw_sizes.FileBrowser IN (%u,%u,%u,%u)"
") AS sizes",
@ -2226,7 +2226,7 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope,
case Brw_ADMI_SHR_GRP:
case Brw_ADMI_MRK_GRP:
DB_QuerySELECT (&mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT crs_grp_types.CrsCod),"
"SELECT COUNT(DISTINCT grp_types.CrsCod),"
"COUNT(DISTINCT brw_sizes.Cod)," // row[0]
"-1," // row[1]
"MAX(brw_sizes.NumLevels)," // row[2]
@ -2235,13 +2235,13 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope,
"SUM(brw_sizes.TotalSize)" // row[5]
" FROM deg_degrees,"
"crs_courses,"
"crs_grp_types,"
"grp_types,"
"grp_groups,"
"brw_sizes"
" WHERE deg_degrees.CtrCod=%ld"
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=crs_grp_types.CrsCod"
" AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND crs_courses.CrsCod=grp_types.CrsCod"
" AND grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND grp_groups.GrpCod=brw_sizes.Cod"
" AND brw_sizes.FileBrowser=%u",
Gbl.Hierarchy.Ctr.CtrCod,
@ -2320,19 +2320,19 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope,
" AND crs_courses.CrsCod=brw_sizes.Cod"
" AND brw_sizes.FileBrowser IN (%u,%u,%u,%u,%u,%u)"
" UNION "
"SELECT crs_grp_types.CrsCod,"
"SELECT grp_types.CrsCod,"
"brw_sizes.Cod AS GrpCod," // Group zones
"brw_sizes.NumLevels,"
"brw_sizes.NumFolders,"
"brw_sizes.NumFiles,"
"brw_sizes.TotalSize"
" FROM crs_courses,"
"crs_grp_types,"
"grp_types,"
"grp_groups,"
"brw_sizes"
" WHERE crs_courses.DegCod=%ld"
" AND crs_courses.CrsCod=crs_grp_types.CrsCod"
" AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND crs_courses.CrsCod=grp_types.CrsCod"
" AND grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND grp_groups.GrpCod=brw_sizes.Cod"
" AND brw_sizes.FileBrowser IN (%u,%u,%u,%u)"
") AS sizes",
@ -2374,7 +2374,7 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope,
case Brw_ADMI_SHR_GRP:
case Brw_ADMI_MRK_GRP:
DB_QuerySELECT (&mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT crs_grp_types.CrsCod)," // row[0]
"SELECT COUNT(DISTINCT grp_types.CrsCod)," // row[0]
"COUNT(DISTINCT brw_sizes.Cod)," // row[1]
"-1," // row[2]
"MAX(brw_sizes.NumLevels)," // row[3]
@ -2382,12 +2382,12 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope,
"SUM(brw_sizes.NumFiles)," // row[5]
"SUM(brw_sizes.TotalSize)" // row[6]
" FROM crs_courses,"
"crs_grp_types,"
"grp_types,"
"grp_groups,"
"brw_sizes"
" WHERE crs_courses.DegCod=%ld"
" AND crs_courses.CrsCod=crs_grp_types.CrsCod"
" AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND crs_courses.CrsCod=grp_types.CrsCod"
" AND grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND grp_groups.GrpCod=brw_sizes.Cod"
" AND brw_sizes.FileBrowser=%u",
Gbl.Hierarchy.Deg.DegCod,
@ -2460,17 +2460,17 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope,
" WHERE Cod=%ld"
" AND FileBrowser IN (%u,%u,%u,%u,%u,%u)"
" UNION "
"SELECT crs_grp_types.CrsCod,"
"SELECT grp_types.CrsCod,"
"brw_sizes.Cod AS GrpCod," // Group zones
"brw_sizes.NumLevels,"
"brw_sizes.NumFolders,"
"brw_sizes.NumFiles,"
"brw_sizes.TotalSize"
" FROM crs_grp_types,"
" FROM grp_types,"
"grp_groups,"
"brw_sizes"
" WHERE crs_grp_types.CrsCod=%ld"
" AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod"
" WHERE grp_types.CrsCod=%ld"
" AND grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND grp_groups.GrpCod=brw_sizes.Cod"
" AND brw_sizes.FileBrowser IN (%u,%u,%u,%u)"
") AS sizes",
@ -2510,18 +2510,18 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope,
case Brw_ADMI_SHR_GRP:
case Brw_ADMI_MRK_GRP:
DB_QuerySELECT (&mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT crs_grp_types.CrsCod)," // row[0]
"SELECT COUNT(DISTINCT grp_types.CrsCod)," // row[0]
"COUNT(DISTINCT brw_sizes.Cod)," // row[1]
"-1," // row[2]
"MAX(brw_sizes.NumLevels)," // row[3]
"SUM(brw_sizes.NumFolders)," // row[4]
"SUM(brw_sizes.NumFiles)," // row[5]
"SUM(brw_sizes.TotalSize)" // row[6]
" FROM crs_grp_types,"
" FROM grp_types,"
"grp_groups,"
"brw_sizes"
" WHERE crs_grp_types.CrsCod=%ld"
" AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod"
" WHERE grp_types.CrsCod=%ld"
" AND grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND grp_groups.GrpCod=brw_sizes.Cod"
" AND brw_sizes.FileBrowser=%u",
Gbl.Hierarchy.Crs.CrsCod,

View File

@ -2742,10 +2742,10 @@ static void Brw_CreateFoldersAssignmentsIfNotExist (long ZoneUsrCod)
" OR "
"AsgCod IN"
" (SELECT asg_groups.AsgCod"
" FROM crs_grp_usr,"
" FROM grp_users,"
"asg_groups"
" WHERE crs_grp_usr.UsrCod=%ld"
" AND asg_groups.GrpCod=crs_grp_usr.GrpCod)"
" WHERE grp_users.UsrCod=%ld"
" AND asg_groups.GrpCod=grp_users.GrpCod)"
")",
Gbl.Hierarchy.Crs.CrsCod,ZoneUsrCod);
@ -4380,10 +4380,10 @@ void Brw_RemoveCrsFilesFromDB (long CrsCod)
/***** Build subquery for groups *****/
sprintf (SubqueryGrp,"(SELECT grp_groups.GrpCod"
" FROM crs_grp_types,"
" FROM grp_types,"
"grp_groups"
" WHERE crs_grp_types.CrsCod=%ld"
" AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod)",
" WHERE grp_types.CrsCod=%ld"
" AND grp_types.GrpTypCod=grp_groups.GrpTypCod)",
CrsCod);
/***** Build subquery for projects *****/
@ -4792,10 +4792,10 @@ void Brw_RemoveSomeInfoAboutCrsUsrFilesFromDB (long UsrCod,long CrsCod)
"(FileBrowser IN (%u,%u,%u,%u)"
" AND Cod IN"
" (SELECT grp_groups.GrpCod"
" FROM crs_grp_types,"
" FROM grp_types,"
"grp_groups"
" WHERE crs_grp_types.CrsCod=%ld"
" AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod))"
" WHERE grp_types.CrsCod=%ld"
" AND grp_types.GrpTypCod=grp_groups.GrpTypCod))"
")",
UsrCod,
(unsigned) Brw_ADMI_DOC_CRS,
@ -4824,10 +4824,10 @@ void Brw_RemoveSomeInfoAboutCrsUsrFilesFromDB (long UsrCod,long CrsCod)
"(FileBrowser IN (%u,%u,%u,%u)"
" AND Cod IN"
" (SELECT grp_groups.GrpCod"
" FROM crs_grp_types,"
" FROM grp_types,"
"grp_groups"
" WHERE crs_grp_types.CrsCod=%ld"
" AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod))"
" WHERE grp_types.CrsCod=%ld"
" AND grp_types.GrpTypCod=grp_groups.GrpTypCod))"
")",
UsrCod,
(unsigned) Brw_ADMI_DOC_CRS,
@ -4859,10 +4859,10 @@ void Brw_RemoveSomeInfoAboutCrsUsrFilesFromDB (long UsrCod,long CrsCod)
"(FileBrowser IN (%u,%u,%u,%u)"
" AND Cod IN"
" (SELECT grp_groups.GrpCod"
" FROM crs_grp_types,"
" FROM grp_types,"
"grp_groups"
" WHERE crs_grp_types.CrsCod=%ld"
" AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod))"
" WHERE grp_types.CrsCod=%ld"
" AND grp_types.GrpTypCod=grp_groups.GrpTypCod))"
")",
UsrCod,
(unsigned) Brw_ADMI_DOC_CRS,

View File

@ -977,9 +977,9 @@ static void Grp_LockTables (void)
{
DB_Query ("can not lock tables to change user's groups",
"LOCK TABLES "
"crs_grp_types WRITE,"
"crs_types WRITE,"
"grp_groups WRITE,"
"crs_grp_usr WRITE,"
"grp_users WRITE,"
"crs_users READ,"
"crs_usr_last READ,"
"roo_rooms READ");
@ -1224,14 +1224,14 @@ void Grp_RemUsrFromAllGrpsInCrs (long UsrCod,long CrsCod)
/***** Remove user from all the groups of the course *****/
DB_QueryDELETE ("can not remove a user from all groups of a course",
"DELETE FROM crs_grp_usr"
"DELETE FROM grp_users"
" WHERE UsrCod=%ld"
" AND GrpCod IN"
" (SELECT grp_groups.GrpCod"
" FROM crs_grp_types,"
" FROM grp_types,"
"grp_groups"
" WHERE crs_grp_types.CrsCod=%ld"
" AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod)",
" WHERE grp_types.CrsCod=%ld"
" AND grp_types.GrpTypCod=grp_groups.GrpTypCod)",
UsrCod,CrsCod);
/***** Flush caches *****/
@ -1250,7 +1250,8 @@ void Grp_RemUsrFromAllGrps (long UsrCod)
/***** Remove user from all groups *****/
DB_QueryDELETE ("can not remove a user from the groups he/she belongs to",
"DELETE FROM crs_grp_usr WHERE UsrCod=%ld",
"DELETE FROM grp_users"
" WHERE UsrCod=%ld",
UsrCod);
/***** Flush caches *****/
@ -1269,9 +1270,11 @@ static void Grp_RemoveUsrFromGroup (long UsrCod,long GrpCod)
/***** Remove user from group *****/
DB_QueryDELETE ("can not remove a user from a group",
"DELETE FROM crs_grp_usr"
" WHERE GrpCod=%ld AND UsrCod=%ld",
GrpCod,UsrCod);
"DELETE FROM grp_users"
" WHERE GrpCod=%ld"
" AND UsrCod=%ld",
GrpCod,
UsrCod);
/***** Flush caches *****/
Grp_FlushCacheUsrSharesAnyOfMyGrpsInCurrentCrs ();
@ -1287,7 +1290,7 @@ static void Grp_AddUsrToGroup (struct UsrData *UsrDat,long GrpCod)
{
/***** Register in group *****/
DB_QueryINSERT ("can not add a user to a group",
"INSERT INTO crs_grp_usr"
"INSERT INTO grp_users"
" (GrpCod,UsrCod)"
" VALUES"
" (%ld,%ld)",
@ -2762,37 +2765,37 @@ void Grp_GetListGrpTypesInThisCrs (Grp_WhichGroupTypes_t WhichGroupTypes)
Gbl.Crs.Grps.GrpTypes.Num =
(unsigned) DB_QuerySELECT (&mysql_res,"can not get types of group"
" of a course",
"SELECT crs_grp_types.GrpTypCod,"
"crs_grp_types.GrpTypName,"
"crs_grp_types.Mandatory,"
"crs_grp_types.Multiple,"
"crs_grp_types.MustBeOpened,"
"UNIX_TIMESTAMP(crs_grp_types.OpenTime),"
"SELECT grp_types.GrpTypCod,"
"grp_types.GrpTypName,"
"grp_types.Mandatory,"
"grp_types.Multiple,"
"grp_types.MustBeOpened,"
"UNIX_TIMESTAMP(grp_types.OpenTime),"
"COUNT(grp_groups.GrpCod)"
" FROM crs_grp_types,"
" FROM grp_types,"
"grp_groups"
" WHERE crs_grp_types.CrsCod=%ld"
" AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod"
" GROUP BY crs_grp_types.GrpTypCod"
" ORDER BY crs_grp_types.GrpTypName",
" WHERE grp_types.CrsCod=%ld"
" AND grp_types.GrpTypCod=grp_groups.GrpTypCod"
" GROUP BY grp_types.GrpTypCod"
" ORDER BY grp_types.GrpTypName",
Gbl.Hierarchy.Crs.CrsCod);
break;
case Grp_ALL_GROUP_TYPES:
Gbl.Crs.Grps.GrpTypes.Num =
(unsigned) DB_QuerySELECT (&mysql_res,"can not get types of group"
" of a course",
"(SELECT crs_grp_types.GrpTypCod,"
"crs_grp_types.GrpTypName AS GrpTypName,"
"crs_grp_types.Mandatory,"
"crs_grp_types.Multiple,"
"crs_grp_types.MustBeOpened,"
"UNIX_TIMESTAMP(crs_grp_types.OpenTime),"
"(SELECT grp_types.GrpTypCod,"
"grp_types.GrpTypName AS GrpTypName,"
"grp_types.Mandatory,"
"grp_types.Multiple,"
"grp_types.MustBeOpened,"
"UNIX_TIMESTAMP(grp_types.OpenTime),"
"COUNT(grp_groups.GrpCod)"
" FROM crs_grp_types,"
" FROM grp_types,"
"grp_groups"
" WHERE crs_grp_types.CrsCod=%ld"
" AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod"
" GROUP BY crs_grp_types.GrpTypCod)"
" WHERE grp_types.CrsCod=%ld"
" AND grp_types.GrpTypCod=grp_groups.GrpTypCod"
" GROUP BY grp_types.GrpTypCod)"
" UNION "
"(SELECT GrpTypCod,"
"GrpTypName,"
@ -2801,7 +2804,7 @@ void Grp_GetListGrpTypesInThisCrs (Grp_WhichGroupTypes_t WhichGroupTypes)
"MustBeOpened,"
"UNIX_TIMESTAMP(OpenTime),"
"0"
" FROM crs_grp_types"
" FROM grp_types"
" WHERE CrsCod=%ld"
" AND GrpTypCod NOT IN"
" (SELECT GrpTypCod"
@ -2884,9 +2887,11 @@ void Grp_OpenGroupsAutomatically (void)
NumGrpTypes =
(unsigned) DB_QuerySELECT (&mysql_res,"can not get the types of group"
" to be opened",
"SELECT GrpTypCod FROM crs_grp_types"
" WHERE CrsCod=%ld AND MustBeOpened='Y'"
" AND OpenTime<=NOW()",
"SELECT GrpTypCod"
" FROM grp_types"
" WHERE CrsCod=%ld"
" AND MustBeOpened='Y'"
" AND OpenTime<=NOW()",
Gbl.Hierarchy.Crs.CrsCod);
for (NumGrpTyp = 0;
@ -2909,7 +2914,7 @@ void Grp_OpenGroupsAutomatically (void)
/***** To not try to open groups again, set MustBeOpened to false *****/
DB_QueryUPDATE ("can not update the opening of a type of group",
"UPDATE crs_grp_types"
"UPDATE grp_types"
" SET MustBeOpened='N'"
" WHERE GrpTypCod=%ld",
GrpTypCod);
@ -3054,10 +3059,10 @@ unsigned Grp_CountNumGrpsInCurrentCrs (void)
return
(unsigned) DB_QueryCOUNT ("can not get number of groups in this course",
"SELECT COUNT(*)"
" FROM crs_grp_types,"
" FROM grp_types,"
"grp_groups"
" WHERE crs_grp_types.CrsCod=%ld"
" AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod",
" WHERE grp_types.CrsCod=%ld"
" AND grp_types.GrpTypCod=grp_groups.GrpTypCod",
Gbl.Hierarchy.Crs.CrsCod);
}
@ -3117,8 +3122,9 @@ static void Grp_GetDataOfGroupTypeByCod (struct GroupType *GrpTyp)
"Multiple," // row[2]
"MustBeOpened," // row[3]
"UNIX_TIMESTAMP(OpenTime)" // row[4]
" FROM crs_grp_types"
" WHERE CrsCod=%ld AND GrpTypCod=%ld",
" FROM grp_types"
" WHERE CrsCod=%ld"
" AND GrpTypCod=%ld",
Gbl.Hierarchy.Crs.CrsCod,GrpTyp->GrpTypCod) != 1)
Lay_ShowErrorAndExit ("Error when getting type of group.");
@ -3147,7 +3153,8 @@ static bool Grp_GetMultipleEnrolmentOfAGroupType (long GrpTypCod)
/***** Get data of a type of group from database *****/
if (DB_QuerySELECT (&mysql_res,"can not get if type of group"
" has multiple enrolment",
"SELECT Multiple FROM crs_grp_types"
"SELECT Multiple"
" FROM grp_types"
" WHERE GrpTypCod=%ld",
GrpTypCod) != 1)
Lay_ShowErrorAndExit ("Error when getting type of enrolment.");
@ -3190,9 +3197,9 @@ void Grp_GetDataOfGroupByCod (struct GroupData *GrpDat)
/***** Get data of a group from database *****/
NumRows = DB_QuerySELECT (&mysql_res,"can not get data of a group",
"SELECT grp_groups.GrpTypCod," // row[0]
"crs_grp_types.CrsCod," // row[1]
"crs_grp_types.GrpTypName," // row[2]
"crs_grp_types.Multiple," // row[3]
"grp_types.CrsCod," // row[1]
"grp_types.GrpTypName," // row[2]
"grp_types.Multiple," // row[3]
"grp_groups.GrpName," // row[4]
"grp_groups.RooCod," // row[5]
"roo_rooms.ShortName," // row[6]
@ -3200,11 +3207,11 @@ void Grp_GetDataOfGroupByCod (struct GroupData *GrpDat)
"grp_groups.Open," // row[8]
"grp_groups.FileZones" // row[9]
" FROM (grp_groups,"
"crs_grp_types)"
"grp_types)"
" LEFT JOIN roo_rooms"
" ON grp_groups.RooCod=roo_rooms.RooCod"
" WHERE grp_groups.GrpCod=%ld"
" AND grp_groups.GrpTypCod=crs_grp_types.GrpTypCod",
" AND grp_groups.GrpTypCod=grp_types.GrpTypCod",
GrpDat->GrpCod);
if (NumRows == 1)
@ -3308,10 +3315,10 @@ bool Grp_CheckIfGroupBelongsToCourse (long GrpCod,long CrsCod)
return (DB_QueryCOUNT ("can not check if a group belongs to a course",
"SELECT COUNT(*)"
" FROM grp_groups,"
"crs_grp_types"
"grp_types"
" WHERE grp_groups.GrpCod=%ld"
" AND grp_groups.GrpTypCod=crs_grp_types.GrpTypCod"
" AND crs_grp_types.CrsCod=%ld",
" AND grp_groups.GrpTypCod=grp_types.GrpTypCod"
" AND grp_types.CrsCod=%ld",
GrpCod,CrsCod) != 0);
}
@ -3325,15 +3332,15 @@ unsigned Grp_CountNumUsrsInGrp (Rol_Role_t Role,long GrpCod)
return
(unsigned) DB_QueryCOUNT ("can not get number of users in a group",
"SELECT COUNT(*)"
" FROM crs_grp_usr,"
" FROM grp_users,"
"grp_groups,"
"crs_grp_types,"
"grp_types,"
"crs_users"
" WHERE crs_grp_usr.GrpCod=%ld"
" AND crs_grp_usr.GrpCod=grp_groups.GrpCod"
" AND grp_groups.GrpTypCod=crs_grp_types.GrpTypCod"
" AND crs_grp_types.CrsCod=crs_users.CrsCod"
" AND crs_grp_usr.UsrCod=crs_users.UsrCod"
" WHERE grp_users.GrpCod=%ld"
" AND grp_users.GrpCod=grp_groups.GrpCod"
" AND grp_groups.GrpTypCod=grp_types.GrpTypCod"
" AND grp_types.CrsCod=crs_users.CrsCod"
" AND grp_users.UsrCod=crs_users.UsrCod"
" AND crs_users.Role=%u",
GrpCod,(unsigned) Role);
}
@ -3352,11 +3359,11 @@ static unsigned long Grp_CountNumUsrsInNoGrpsOfType (Rol_Role_t Role,long GrpTyp
" WHERE CrsCod=%ld"
" AND Role=%u"
" AND UsrCod NOT IN"
" (SELECT DISTINCT crs_grp_usr.UsrCod"
" (SELECT DISTINCT grp_users.UsrCod"
" FROM grp_groups,"
"crs_grp_usr"
"grp_users"
" WHERE grp_groups.GrpTypCod=%ld"
" AND grp_groups.GrpCod=crs_grp_usr.GrpCod)",
" AND grp_groups.GrpCod=grp_users.GrpCod)",
Gbl.Hierarchy.Crs.CrsCod,
(unsigned) Role,GrpTypCod);
}
@ -3372,11 +3379,13 @@ static bool Grp_CheckIfIBelongToGrpsOfType (long GrpTypCod)
/***** Get a group which I belong to from database *****/
NumGrps = DB_QueryCOUNT ("can not check if you belong to a group type",
"SELECT COUNT(grp_groups.GrpCod)"
" FROM grp_groups,crs_grp_usr"
" FROM grp_groups,"
"grp_users"
" WHERE grp_groups.GrpTypCod=%ld"
" AND grp_groups.GrpCod=crs_grp_usr.GrpCod"
" AND crs_grp_usr.UsrCod=%ld", // I belong
GrpTypCod,Gbl.Usrs.Me.UsrDat.UsrCod);
" AND grp_groups.GrpCod=grp_users.GrpCod"
" AND grp_users.UsrCod=%ld", // I belong
GrpTypCod,
Gbl.Usrs.Me.UsrDat.UsrCod);
return (NumGrps != 0);
}
@ -3406,9 +3415,12 @@ bool Grp_GetIfIBelongToGrp (long GrpCod)
Gbl.Cache.IBelongToGrp.GrpCod = GrpCod;
Gbl.Cache.IBelongToGrp.IBelong =
(DB_QueryCOUNT ("can not check if you belong to a group",
"SELECT COUNT(*) FROM crs_grp_usr"
" WHERE GrpCod=%ld AND UsrCod=%ld",
GrpCod,Gbl.Usrs.Me.UsrDat.UsrCod) != 0);
"SELECT COUNT(*)"
" FROM grp_users"
" WHERE GrpCod=%ld"
" AND UsrCod=%ld",
GrpCod,
Gbl.Usrs.Me.UsrDat.UsrCod) != 0);
return Gbl.Cache.IBelongToGrp.IBelong;
}
@ -3477,17 +3489,17 @@ bool Grp_CheckIfUsrSharesAnyOfMyGrpsInCurrentCrs (const struct UsrData *UsrDat)
(DB_QueryCOUNT ("can not check if a user shares any group"
" in the current course with you",
"SELECT COUNT(*)"
" FROM crs_grp_usr"
" FROM grp_users"
" WHERE UsrCod=%ld"
" AND GrpCod IN"
" (SELECT crs_grp_usr.GrpCod"
" FROM crs_grp_usr,"
" (SELECT grp_users.GrpCod"
" FROM grp_users,"
"grp_groups,"
"crs_grp_types"
" WHERE crs_grp_usr.UsrCod=%ld"
" AND crs_grp_usr.GrpCod=grp_groups.GrpCod"
" AND grp_groups.GrpTypCod=crs_grp_types.GrpTypCod"
" AND crs_grp_types.CrsCod=%ld)",
"grp_types"
" WHERE grp_users.UsrCod=%ld"
" AND grp_users.GrpCod=grp_groups.GrpCod"
" AND grp_groups.GrpTypCod=grp_types.GrpTypCod"
" AND grp_types.CrsCod=%ld)",
UsrDat->UsrCod,
Gbl.Usrs.Me.UsrDat.UsrCod,
Gbl.Hierarchy.Crs.CrsCod) != 0);
@ -3507,14 +3519,14 @@ bool Grp_GetIfAvailableGrpTyp (long GrpTypCod)
if (GrpTypCod > 0) // restrict to the given group type, mandatory or not
{
if (asprintf (&SubQueryGrpTypes,"crs_grp_types.GrpTypCod=%ld",
if (asprintf (&SubQueryGrpTypes,"grp_types.GrpTypCod=%ld",
GrpTypCod) < 0)
Lay_NotEnoughMemoryExit ();
}
else // all mandatory group types in the current course
{
if (asprintf (&SubQueryGrpTypes,"crs_grp_types.CrsCod=%ld"
" AND crs_grp_types.Mandatory='Y'",
if (asprintf (&SubQueryGrpTypes,"grp_types.CrsCod=%ld"
" AND grp_types.Mandatory='Y'",
Gbl.Hierarchy.Crs.CrsCod) < 0)
Lay_NotEnoughMemoryExit ();
}
@ -3529,20 +3541,20 @@ bool Grp_GetIfAvailableGrpTyp (long GrpTypCod)
// Available mandatory groups with students
"SELECT GrpTypCod FROM"
" ("
"SELECT crs_grp_types.GrpTypCod AS GrpTypCod,"
"SELECT grp_types.GrpTypCod AS GrpTypCod,"
"COUNT(*) AS NumStudents,"
"grp_groups.MaxStudents as MaxStudents"
" FROM crs_grp_types,"
" FROM grp_types,"
"grp_groups,"
"crs_grp_usr,"
"grp_users,"
"crs_users"
" WHERE %s" // Which group types?
" AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND grp_groups.Open='Y'" // Open
" AND grp_groups.MaxStudents>0" // Admits students
" AND crs_grp_types.CrsCod=crs_users.CrsCod"
" AND grp_groups.GrpCod=crs_grp_usr.GrpCod"
" AND crs_grp_usr.UsrCod=crs_users.UsrCod"
" AND grp_types.CrsCod=crs_users.CrsCod"
" AND grp_groups.GrpCod=grp_users.GrpCod"
" AND grp_users.UsrCod=crs_users.UsrCod"
" AND crs_users.Role=%u" // Student
" GROUP BY grp_groups.GrpCod"
" HAVING NumStudents<MaxStudents" // Not full
@ -3551,36 +3563,36 @@ bool Grp_GetIfAvailableGrpTyp (long GrpTypCod)
" UNION "
// Available mandatory groups...
"SELECT crs_grp_types.GrpTypCod AS GrpTypCod"
" FROM crs_grp_types,"
"SELECT grp_types.GrpTypCod AS GrpTypCod"
" FROM grp_types,"
"grp_groups"
" WHERE %s" // Which group types?
" AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND grp_groups.Open='Y'" // Open
" AND grp_groups.MaxStudents>0" // Admits students
// ...without students
" AND grp_groups.GrpCod NOT IN"
" (SELECT crs_grp_usr.GrpCod"
" (SELECT grp_users.GrpCod"
" FROM crs_users,"
"crs_grp_usr"
"grp_users"
" WHERE crs_users.CrsCod=%ld"
" AND crs_users.Role=%u" // Student
" AND crs_users.UsrCod=crs_grp_usr.UsrCod)"
" AND crs_users.UsrCod=grp_users.UsrCod)"
") AS available_grp_types"
// ...to which I don't belong
" WHERE GrpTypCod NOT IN"
" (SELECT crs_grp_types.GrpTypCod"
" FROM crs_grp_types,"
" (SELECT grp_types.GrpTypCod"
" FROM grp_types,"
"grp_groups,"
"crs_grp_usr"
"grp_users"
" WHERE %s" // Which group types?
" AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND grp_groups.Open='Y'" // Open
" AND grp_groups.MaxStudents>0" // Admits students
" AND grp_groups.GrpCod=crs_grp_usr.GrpCod"
" AND crs_grp_usr.UsrCod=%ld)", // I belong
" AND grp_groups.GrpCod=grp_users.GrpCod"
" AND grp_users.UsrCod=%ld)", // I belong
SubQueryGrpTypes,(unsigned) Rol_STD,
SubQueryGrpTypes,
@ -3612,7 +3624,7 @@ static void Grp_GetLstCodGrpsUsrBelongs (long CrsCod,long GrpTypCod,
(unsigned) DB_QuerySELECT (&mysql_res,"can not get the groups"
" which a user belongs to",
"SELECT GrpCod"
" FROM crs_grp_usr"
" FROM grp_users"
" WHERE UsrCod=%ld", // Groups will be unordered
UsrCod);
else if (GrpTypCod < 0) // Query the groups of any type in the course
@ -3620,14 +3632,14 @@ static void Grp_GetLstCodGrpsUsrBelongs (long CrsCod,long GrpTypCod,
(unsigned) DB_QuerySELECT (&mysql_res,"can not get the groups"
" which a user belongs to",
"SELECT grp_groups.GrpCod"
" FROM crs_grp_types,"
" FROM grp_types,"
"grp_groups,"
"crs_grp_usr"
" WHERE crs_grp_types.CrsCod=%ld"
" AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND grp_groups.GrpCod=crs_grp_usr.GrpCod"
" AND crs_grp_usr.UsrCod=%ld"
" ORDER BY crs_grp_types.GrpTypName,"
"grp_users"
" WHERE grp_types.CrsCod=%ld"
" AND grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND grp_groups.GrpCod=grp_users.GrpCod"
" AND grp_users.UsrCod=%ld"
" ORDER BY grp_types.GrpTypName,"
"grp_groups.GrpName",
Gbl.Hierarchy.Crs.CrsCod,
UsrCod);
@ -3636,14 +3648,14 @@ static void Grp_GetLstCodGrpsUsrBelongs (long CrsCod,long GrpTypCod,
(unsigned) DB_QuerySELECT (&mysql_res,"can not get the groups"
" which a user belongs to",
"SELECT grp_groups.GrpCod"
" FROM crs_grp_types,"
" FROM grp_types,"
"grp_groups,"
"crs_grp_usr"
" WHERE crs_grp_types.CrsCod=%ld"
" AND crs_grp_types.GrpTypCod=%ld"
" AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND grp_groups.GrpCod=crs_grp_usr.GrpCod"
" AND crs_grp_usr.UsrCod=%ld"
"grp_users"
" WHERE grp_types.CrsCod=%ld"
" AND grp_types.GrpTypCod=%ld"
" AND grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND grp_groups.GrpCod=grp_users.GrpCod"
" AND grp_users.UsrCod=%ld"
" ORDER BY grp_groups.GrpName",
Gbl.Hierarchy.Crs.CrsCod,
GrpTypCod,
@ -3687,15 +3699,15 @@ void Grp_GetLstCodGrpsWithFileZonesIBelong (struct ListCodGrps *LstGrps)
(unsigned) DB_QuerySELECT (&mysql_res,"can not get the groups"
" which you belong to",
"SELECT grp_groups.GrpCod"
" FROM crs_grp_types,"
" FROM grp_types,"
"grp_groups,"
"crs_grp_usr"
" WHERE crs_grp_types.CrsCod=%ld"
" AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod"
"grp_users"
" WHERE grp_types.CrsCod=%ld"
" AND grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND grp_groups.FileZones='Y'"
" AND grp_groups.GrpCod=crs_grp_usr.GrpCod"
" AND crs_grp_usr.UsrCod=%ld"
" ORDER BY crs_grp_types.GrpTypName,"
" AND grp_groups.GrpCod=grp_users.GrpCod"
" AND grp_users.UsrCod=%ld"
" ORDER BY grp_types.GrpTypName,"
"grp_groups.GrpName",
Gbl.Hierarchy.Crs.CrsCod,Gbl.Usrs.Me.UsrDat.UsrCod);
@ -3755,10 +3767,11 @@ void Grp_GetNamesGrpsStdBelongsTo (long GrpTypCod,long UsrCod,char *GroupNames)
NumRows = DB_QuerySELECT (&mysql_res,"can not get the names of groups"
" a user belongs to",
"SELECT grp_groups.GrpName"
" FROM grp_groups,crs_grp_usr"
" FROM grp_groups,"
"grp_users"
" WHERE grp_groups.GrpTypCod=%ld"
" AND grp_groups.GrpCod=crs_grp_usr.GrpCod"
" AND crs_grp_usr.UsrCod=%ld"
" AND grp_groups.GrpCod=grp_users.GrpCod"
" AND grp_users.UsrCod=%ld"
" ORDER BY grp_groups.GrpName",
GrpTypCod,UsrCod);
@ -3932,9 +3945,11 @@ static bool Grp_CheckIfGroupTypeNameExists (const char *GrpTypName,long GrpTypCo
/***** Get number of group types with a name from database *****/
return (DB_QueryCOUNT ("can not check if the name of type of group"
" already existed",
"SELECT COUNT(*) FROM crs_grp_types"
" WHERE CrsCod=%ld AND GrpTypName='%s'"
" AND GrpTypCod<>%ld",
"SELECT COUNT(*)"
" FROM grp_types"
" WHERE CrsCod=%ld"
" AND GrpTypName='%s'"
" AND GrpTypCod<>%ld",
Gbl.Hierarchy.Crs.CrsCod,GrpTypName,GrpTypCod) != 0);
}
@ -3963,7 +3978,7 @@ static void Grp_CreateGroupType (void)
/***** Create a new group type *****/
Gbl.Crs.Grps.GrpTyp.GrpTypCod =
DB_QueryINSERTandReturnCode ("can not create type of group",
"INSERT INTO crs_grp_types"
"INSERT INTO grp_types"
" (CrsCod,GrpTypName,Mandatory,Multiple,MustBeOpened,OpenTime)"
" VALUES"
" (%ld,'%s','%c','%c','%c',FROM_UNIXTIME(%ld))",
@ -4178,7 +4193,7 @@ static void Grp_RemoveGroupTypeCompletely (void)
/***** Remove all the students in groups of this type *****/
DB_QueryDELETE ("can not remove users from all groups of a type",
"DELETE FROM crs_grp_usr"
"DELETE FROM grp_users"
" WHERE GrpCod IN"
" (SELECT GrpCod"
" FROM grp_groups"
@ -4193,7 +4208,7 @@ static void Grp_RemoveGroupTypeCompletely (void)
/***** Remove the group type *****/
DB_QueryDELETE ("can not remove a type of group",
"DELETE FROM crs_grp_types"
"DELETE FROM grp_types"
" WHERE GrpTypCod=%ld",
Gbl.Crs.Grps.GrpTyp.GrpTypCod);
@ -4244,7 +4259,8 @@ static void Grp_RemoveGroupCompletely (void)
/***** Remove all the students in this group *****/
DB_QueryDELETE ("can not remove users from a group",
"DELETE FROM crs_grp_usr WHERE GrpCod=%ld",
"DELETE FROM grp_users"
" WHERE GrpCod=%ld",
Gbl.Crs.Grps.GrpCod);
/***** Remove the group *****/
@ -4539,7 +4555,8 @@ void Grp_ChangeMandatGrpTyp (void)
{
/***** Update of the table of types of group changing the old type of enrolment by the new *****/
DB_QueryUPDATE ("can not update enrolment type of a type of group",
"UPDATE crs_grp_types SET Mandatory='%c'"
"UPDATE grp_types"
" SET Mandatory='%c'"
" WHERE GrpTypCod=%ld",
NewMandatoryEnrolment ? 'Y' :
'N',
@ -4596,7 +4613,8 @@ void Grp_ChangeMultiGrpTyp (void)
{
/***** Update of the table of types of group changing the old type of enrolment by the new *****/
DB_QueryUPDATE ("can not update enrolment type of a type of group",
"UPDATE crs_grp_types SET Multiple='%c'"
"UPDATE grp_types"
" SET Multiple='%c'"
" WHERE GrpTypCod=%ld",
NewMultipleEnrolment ? 'Y' :
'N',
@ -4638,8 +4656,9 @@ void Grp_ChangeOpenTimeGrpTyp (void)
/***** Update the table of types of group
changing the old open time of enrolment by the new *****/
DB_QueryUPDATE ("can not update enrolment type of a type of group",
"UPDATE crs_grp_types"
" SET MustBeOpened='%c',OpenTime=FROM_UNIXTIME(%ld)"
"UPDATE grp_types"
" SET MustBeOpened='%c',"
"OpenTime=FROM_UNIXTIME(%ld)"
" WHERE GrpTypCod=%ld",
Gbl.Crs.Grps.GrpTyp.MustBeOpened ? 'Y' :
'N',
@ -4791,7 +4810,8 @@ void Grp_RenameGroupType (void)
{
/* Update the table changing old name by new name */
DB_QueryUPDATE ("can not update the type of a group",
"UPDATE crs_grp_types SET GrpTypName='%s'"
"UPDATE grp_types"
" SET GrpTypName='%s'"
" WHERE GrpTypCod=%ld",
NewNameGrpTyp,
Gbl.Crs.Grps.GrpTyp.GrpTypCod);

View File

@ -1494,11 +1494,11 @@ static unsigned long Ind_GetNumFilesInDocumZonesOfCrsFromDB (long CrsCod)
" FROM brw_sizes"
" WHERE FileBrowser=%u AND Cod=%ld) +"
" (SELECT COALESCE(SUM(brw_sizes.NumFiles),0)"
" FROM crs_grp_types,"
" FROM grp_types,"
"grp_groups,"
"brw_sizes"
" WHERE crs_grp_types.CrsCod=%ld"
" AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod"
" WHERE grp_types.CrsCod=%ld"
" AND grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND brw_sizes.FileBrowser=%u"
" AND brw_sizes.Cod=grp_groups.GrpCod)",
(unsigned) Brw_FileBrowserForDB_files[Brw_ADMI_DOC_CRS],
@ -1537,11 +1537,11 @@ static unsigned long Ind_GetNumFilesInShareZonesOfCrsFromDB (long CrsCod)
" FROM brw_sizes"
" WHERE FileBrowser=%u AND Cod=%ld) +"
" (SELECT COALESCE(SUM(brw_sizes.NumFiles),0)"
" FROM crs_grp_types,"
" FROM grp_types,"
"grp_groups,"
"brw_sizes"
" WHERE crs_grp_types.CrsCod=%ld"
" AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod"
" WHERE grp_types.CrsCod=%ld"
" AND grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND brw_sizes.FileBrowser=%u"
" AND brw_sizes.Cod=grp_groups.GrpCod)",
(unsigned) Brw_FileBrowserForDB_files[Brw_ADMI_SHR_CRS],

View File

@ -310,9 +310,10 @@ void Mch_ListMatches (struct Gam_Games *Games,
" OR"
" MchCod IN"
" (SELECT mch_groups.MchCod"
" FROM mch_groups,crs_grp_usr"
" WHERE crs_grp_usr.UsrCod=%ld"
" AND mch_groups.GrpCod=crs_grp_usr.GrpCod))",
" FROM grp_users,"
"mch_groups"
" WHERE grp_users.UsrCod=%ld"
" AND grp_users.GrpCod=mch_groups.GrpCod))",
Gbl.Usrs.Me.UsrDat.UsrCod) < 0)
Lay_NotEnoughMemoryExit ();
}
@ -766,15 +767,15 @@ static void Mch_GetAndWriteNamesOfGrpsAssociatedToMatch (const struct Mch_Match
/***** Get groups associated to a match from database *****/
NumRows = DB_QuerySELECT (&mysql_res,"can not get groups of a match",
"SELECT crs_grp_types.GrpTypName,"
"SELECT grp_types.GrpTypName,"
"grp_groups.GrpName"
" FROM mch_groups,"
"grp_groups,"
"crs_grp_types"
"grp_types"
" WHERE mch_groups.MchCod=%ld"
" AND mch_groups.GrpCod=grp_groups.GrpCod"
" AND grp_groups.GrpTypCod=crs_grp_types.GrpTypCod"
" ORDER BY crs_grp_types.GrpTypName,"
" AND grp_groups.GrpTypCod=grp_types.GrpTypCod"
" ORDER BY grp_types.GrpTypName,"
"grp_groups.GrpName",
Match->MchCod);
@ -2524,9 +2525,10 @@ bool Mch_CheckIfICanPlayThisMatchBasedOnGrps (const struct Mch_Match *Match)
" OR"
" MchCod IN"
" (SELECT mch_groups.MchCod"
" FROM mch_groups,crs_grp_usr"
" WHERE crs_grp_usr.UsrCod=%ld"
" AND crs_grp_usr.GrpCod=mch_groups.GrpCod))",
" FROM grp_users,"
"mch_groups"
" WHERE grp_users.UsrCod=%ld"
" AND grp_users.GrpCod=mch_groups.GrpCod))",
Match->MchCod,Gbl.Usrs.Me.UsrDat.UsrCod) != 0);
break;
case Rol_NET:

View File

@ -1244,26 +1244,26 @@ unsigned Ntf_StoreNotifyEventsToAllUsrs (Ntf_NotifyEvent_t NotifyEvent,long Cod)
case Brw_ADMI_MRK_GRP: // Notify all users in group except me
NumRows = DB_QuerySELECT (&mysql_res,"can not get users"
" to be notified",
"SELECT UsrCod" // row[0]
" FROM crs_grp_usr"
" WHERE crs_grp_usr.GrpCod=%ld"
" AND crs_grp_usr.UsrCod<>%ld",
"SELECT UsrCod" // row[0]
" FROM grp_users"
" WHERE GrpCod=%ld"
" AND UsrCod<>%ld",
Gbl.Crs.Grps.GrpCod,
Gbl.Usrs.Me.UsrDat.UsrCod);
break;
case Brw_ADMI_TCH_GRP: // Notify all teachers in group except me
NumRows = DB_QuerySELECT (&mysql_res,"can not get users"
" to be notified",
"SELECT crs_grp_usr.UsrCod" // row[0]
" FROM crs_grp_usr,"
"SELECT grp_users.UsrCod" // row[0]
" FROM grp_users,"
"grp_groups,"
"crs_grp_types,"
"grp_types,"
"crs_users"
" WHERE crs_grp_usr.GrpCod=%ld"
" AND crs_grp_usr.UsrCod<>%ld"
" AND crs_grp_usr.GrpCod=grp_groups.GrpCod"
" AND grp_groups.GrpTypCod=crs_grp_types.GrpTypCod"
" AND crs_grp_types.CrsCod=crs_users.CrsCod"
" WHERE grp_users.GrpCod=%ld"
" AND grp_users.UsrCod<>%ld"
" AND grp_users.GrpCod=grp_groups.GrpCod"
" AND grp_groups.GrpTypCod=grp_types.GrpTypCod"
" AND grp_types.CrsCod=crs_users.CrsCod"
" AND crs_users.Role=%u", // Notify teachers only
Gbl.Crs.Grps.GrpCod,
Gbl.Usrs.Me.UsrDat.UsrCod,
@ -1290,12 +1290,12 @@ unsigned Ntf_StoreNotifyEventsToAllUsrs (Ntf_NotifyEvent_t NotifyEvent,long Cod)
" AND asg_assignments.CrsCod=crs_users.CrsCod"
" AND crs_users.UsrCod<>%ld)"
" UNION "
"(SELECT DISTINCT crs_grp_usr.UsrCod"
"(SELECT DISTINCT grp_users.UsrCod"
" FROM asg_groups,"
"crs_grp_usr"
"grp_users"
" WHERE asg_groups.AsgCod=%ld"
" AND asg_groups.GrpCod=crs_grp_usr.GrpCod"
" AND crs_grp_usr.UsrCod<>%ld)",
" AND asg_groups.GrpCod=grp_users.GrpCod"
" AND grp_users.UsrCod<>%ld)",
Cod,Cod,Gbl.Usrs.Me.UsrDat.UsrCod,
Cod,Gbl.Usrs.Me.UsrDat.UsrCod);
break;
@ -1431,15 +1431,15 @@ unsigned Ntf_StoreNotifyEventsToAllUsrs (Ntf_NotifyEvent_t NotifyEvent,long Cod)
" AND crs_users.UsrCod<>%ld"
" AND (svy_surveys.Roles&(1<<crs_users.Role))<>0)"
" UNION "
"(SELECT DISTINCT crs_grp_usr.UsrCod"
"(SELECT DISTINCT grp_users.UsrCod"
" FROM svy_groups,"
"crs_grp_usr,"
"grp_users,"
"svy_surveys,"
"crs_users"
" WHERE svy_groups.SvyCod=%ld"
" AND svy_groups.GrpCod=crs_grp_usr.GrpCod"
" AND crs_grp_usr.UsrCod=crs_users.UsrCod"
" AND crs_grp_usr.UsrCod<>%ld"
" AND svy_groups.GrpCod=grp_users.GrpCod"
" AND grp_users.UsrCod=crs_users.UsrCod"
" AND grp_users.UsrCod<>%ld"
" AND svy_groups.SvyCod=svy_surveys.SvyCod"
" AND svy_surveys.Scope='%s'"
" AND svy_surveys.Cod=crs_users.CrsCod"

View File

@ -879,10 +879,10 @@ static unsigned Sch_SearchDocumentsInMyCoursesInDB (const char *RangeQuery)
" (FilCod INT NOT NULL,UNIQUE INDEX(FilCod))"
" ENGINE=MEMORY"
" SELECT brw_files.FilCod"
" FROM crs_grp_usr,"
" FROM grp_users,"
"brw_files"
" WHERE crs_grp_usr.UsrCod=%ld"
" AND crs_grp_usr.GrpCod=brw_files.Cod"
" WHERE grp_users.UsrCod=%ld"
" AND grp_users.GrpCod=brw_files.Cod"
" AND brw_files.FileBrowser IN (%u,%u,%u,%u)",
Gbl.Usrs.Me.UsrDat.UsrCod,
(unsigned) Brw_ADMI_DOC_GRP,
@ -935,7 +935,7 @@ static unsigned Sch_SearchDocumentsInMyCoursesInDB (const char *RangeQuery)
"grp_groups.GrpCod"
" FROM brw_files,"
"grp_groups,"
"crs_grp_types,"
"grp_types,"
"crs_courses,"
"deg_degrees,"
"ctr_centers,"
@ -945,8 +945,8 @@ static unsigned Sch_SearchDocumentsInMyCoursesInDB (const char *RangeQuery)
" AND %s"
" AND brw_files.FileBrowser IN (%u,%u,%u,%u)"
" AND brw_files.Cod=grp_groups.GrpCod"
" AND grp_groups.GrpTypCod=crs_grp_types.GrpTypCod"
" AND crs_grp_types.CrsCod=crs_courses.CrsCod"
" AND grp_groups.GrpTypCod=grp_types.GrpTypCod"
" AND grp_types.CrsCod=crs_courses.CrsCod"
" AND crs_courses.DegCod=deg_degrees.DegCod"
" AND deg_degrees.CtrCod=ctr_centers.CtrCod"
" AND ctr_centers.InsCod=ins_instits.InsCod"
@ -1124,7 +1124,7 @@ static unsigned Sch_SearchMyDocumentsInDB (const char *RangeQuery)
"grp_groups.GrpCod"
" FROM brw_files,"
"grp_groups,"
"crs_grp_types,"
"grp_types,"
"crs_courses,"
"deg_degrees,"
"ctr_centers,"
@ -1134,8 +1134,8 @@ static unsigned Sch_SearchMyDocumentsInDB (const char *RangeQuery)
" AND %s"
" AND brw_files.FileBrowser IN (%u,%u,%u,%u)"
" AND brw_files.Cod=grp_groups.GrpCod"
" AND grp_groups.GrpTypCod=crs_grp_types.GrpTypCod"
" AND crs_grp_types.CrsCod=crs_courses.CrsCod"
" AND grp_groups.GrpTypCod=grp_types.GrpTypCod"
" AND grp_types.CrsCod=crs_courses.CrsCod"
" AND crs_courses.DegCod=deg_degrees.DegCod"
" AND deg_degrees.CtrCod=ctr_centers.CtrCod"
" AND ctr_centers.InsCod=ins_instits.InsCod"

View File

@ -997,9 +997,10 @@ static void Svy_GetListSurveys (struct Svy_Surveys *Surveys)
" OR"
" SvyCod IN"
" (SELECT svy_groups.SvyCod"
" FROM svy_groups,crs_grp_usr"
" WHERE crs_grp_usr.UsrCod=%ld"
" AND svy_groups.GrpCod=crs_grp_usr.GrpCod))"
" FROM grp_users,"
"svy_groups"
" WHERE grp_users.UsrCod=%ld"
" AND grp_users.GrpCod=svy_groups.GrpCod))"
")",
SubQueryFilled ? " OR " :
"",
@ -2496,15 +2497,15 @@ static void Svy_GetAndWriteNamesOfGrpsAssociatedToSvy (struct Svy_Survey *Svy)
/***** Get groups associated to a survey from database *****/
NumRows = DB_QuerySELECT (&mysql_res,"can not get groups of a survey",
"SELECT crs_grp_types.GrpTypName,"
"SELECT grp_types.GrpTypName,"
"grp_groups.GrpName"
" FROM svy_groups,"
"grp_groups,"
"crs_grp_types"
"grp_types"
" WHERE svy_groups.SvyCod=%ld"
" AND svy_groups.GrpCod=grp_groups.GrpCod"
" AND grp_groups.GrpTypCod=crs_grp_types.GrpTypCod"
" ORDER BY crs_grp_types.GrpTypName,"
" AND grp_groups.GrpTypCod=grp_types.GrpTypCod"
" ORDER BY grp_types.GrpTypName,"
"grp_groups.GrpName",
Svy->SvyCod);
@ -2618,10 +2619,10 @@ static bool Svy_CheckIfICanDoThisSurveyBasedOnGrps (long SvyCod)
" OR"
" SvyCod IN"
" (SELECT svy_groups.SvyCod"
" FROM crs_grp_usr,"
" FROM grp_users,"
"svy_groups"
" WHERE crs_grp_usr.UsrCod=%ld"
" AND svy_groups.GrpCod=crs_grp_usr.GrpCod))",
" WHERE grp_users.UsrCod=%ld"
" AND grp_users.GrpCod=svy_groups.GrpCod))",
SvyCod,Gbl.Usrs.Me.UsrDat.UsrCod) != 0);
}

View File

@ -736,10 +736,10 @@ static void Tmt_FillTimeTableFromDB (struct Tmt_Timetable *Timetable,
"tmt_courses.ClassType,"
"tmt_courses.GrpCod,"
"tmt_courses.CrsCod"
" FROM tmt_courses,"
"crs_grp_usr"
" WHERE crs_grp_usr.UsrCod=%ld"
" AND tmt_courses.GrpCod=crs_grp_usr.GrpCod"
" FROM grp_users,"
"tmt_courses"
" WHERE grp_users.UsrCod=%ld"
" AND grp_users.GrpCod=tmt_courses.GrpCod"
" UNION "
"SELECT Weekday,"
"TIME_TO_SEC(StartTime) AS S,"
@ -829,10 +829,11 @@ static void Tmt_FillTimeTableFromDB (struct Tmt_Timetable *Timetable,
"tmt_courses.Info," // row[3]
"tmt_courses.ClassType," // row[4]
"tmt_courses.GrpCod" // row[5]
" FROM tmt_courses,crs_grp_usr"
" FROM tmt_courses,"
"grp_users"
" WHERE tmt_courses.CrsCod=%ld"
" AND crs_grp_usr.UsrCod=%ld"
" AND tmt_courses.GrpCod=crs_grp_usr.GrpCod"
" AND grp_users.UsrCod=%ld"
" AND tmt_courses.GrpCod=grp_users.GrpCod"
" ORDER BY Weekday,"
"S,"
"ClassType,"

View File

@ -4098,11 +4098,11 @@ long Usr_GetRamdomStdFromGrp (long GrpCod)
/***** Get a random student from a group from database *****/
if (DB_QuerySELECT (&mysql_res,"can not get a random student from a group",
"SELECT crs_grp_usr.UsrCod" // row[0]
" FROM crs_grp_usr,"
"SELECT grp_users.UsrCod" // row[0]
" FROM grp_users,"
"crs_users"
" WHERE crs_grp_usr.GrpCod=%ld"
" AND crs_grp_usr.UsrCod=crs_users.UsrCod"
" WHERE grp_users.GrpCod=%ld"
" AND grp_users.UsrCod=crs_users.UsrCod"
" AND crs_users.Role=%u"
" ORDER BY RAND()"
" LIMIT 1",
@ -4520,7 +4520,7 @@ static void Usr_BuildQueryToGetUsrsLstCrs (char **Query,Rol_Role_t Role)
{
Str_Concat (*Query," AND (crs_users.UsrCod IN"
" (SELECT DISTINCT UsrCod"
" FROM crs_grp_usr"
" FROM grp_users"
" WHERE",
Usr_MAX_BYTES_QUERY_GET_LIST_USRS);
NumPositiveCods = 0;
@ -4553,15 +4553,15 @@ static void Usr_BuildQueryToGetUsrsLstCrs (char **Query,Rol_Role_t Role)
Str_Concat (*Query," AND (",Usr_MAX_BYTES_QUERY_GET_LIST_USRS);
/* Select all the students of the course who don't belong to any group of type GrpTypCod */
Str_Concat (*Query,"crs_users.UsrCod NOT IN"
" (SELECT DISTINCT crs_grp_usr.UsrCod"
" (SELECT DISTINCT grp_users.UsrCod"
" FROM grp_groups,"
"crs_grp_usr"
"grp_users"
" WHERE grp_groups.GrpTypCod='",
Usr_MAX_BYTES_QUERY_GET_LIST_USRS);
snprintf (LongStr,sizeof (LongStr),"%ld",
Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].GrpTypCod);
Str_Concat (*Query,LongStr,Usr_MAX_BYTES_QUERY_GET_LIST_USRS);
Str_Concat (*Query,"' AND grp_groups.GrpCod=crs_grp_usr.GrpCod)",
Str_Concat (*Query,"' AND grp_groups.GrpCod=grp_users.GrpCod)",
Usr_MAX_BYTES_QUERY_GET_LIST_USRS);
NumNegativeCods++;
}