From 577f485e4161f43b149ea16c6991b4ba3ef2d22d Mon Sep 17 00:00:00 2001 From: acanas Date: Wed, 24 Mar 2021 00:03:35 +0100 Subject: [PATCH] Version 20.51.34: Mar 23, 2021 Groups database tables renamed. --- sql/swad.sql | 8 +- swad_API.c | 96 +++++++-------- swad_assignment.c | 22 ++-- swad_attendance.c | 18 +-- swad_changelog.h | 7 +- swad_course.c | 20 +-- swad_database.c | 12 +- swad_exam_session.c | 36 +++--- swad_figure.c | 92 +++++++------- swad_file_browser.c | 30 ++--- swad_group.c | 290 +++++++++++++++++++++++--------------------- swad_indicator.c | 12 +- swad_match.c | 22 ++-- swad_notification.c | 42 +++---- swad_search.c | 18 +-- swad_survey.c | 21 ++-- swad_timetable.c | 15 +-- swad_user.c | 16 +-- 18 files changed, 404 insertions(+), 373 deletions(-) diff --git a/sql/swad.sql b/sql/swad.sql index b2176c77a..505b21deb 100644 --- a/sql/swad.sql +++ b/sql/swad.sql @@ -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), diff --git a/swad_API.c b/swad_API.c index 2039da579..951ed6afb 100644 --- a/swad_API.c +++ b/swad_API.c @@ -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 = diff --git a/swad_assignment.c b/swad_assignment.c index d7867c735..f1e3b5d23 100644 --- a/swad_assignment.c +++ b/swad_assignment.c @@ -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: diff --git a/swad_attendance.c b/swad_attendance.c index 9a7577b53..fdd2fe163 100644 --- a/swad_attendance.c +++ b/swad_attendance.c @@ -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); diff --git a/swad_changelog.h b/swad_changelog.h index 93d39a109..6461bb5bf 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -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; diff --git a/swad_course.c b/swad_course.c index 4ab07b9b8..bb5df9c6c 100644 --- a/swad_course.c +++ b/swad_course.c @@ -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); diff --git a/swad_database.c b/swad_database.c index f4ae3076b..4c565bcc1 100644 --- a/swad_database.c +++ b/swad_database.c @@ -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)," diff --git a/swad_exam_session.c b/swad_exam_session.c index 6b515740a..941e34e28 100644 --- a/swad_exam_session.c +++ b/swad_exam_session.c @@ -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: diff --git a/swad_figure.c b/swad_figure.c index ddb44cb39..8c64a0041 100644 --- a/swad_figure.c +++ b/swad_figure.c @@ -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, diff --git a/swad_file_browser.c b/swad_file_browser.c index f23fad5fa..d5955a84c 100644 --- a/swad_file_browser.c +++ b/swad_file_browser.c @@ -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, diff --git a/swad_group.c b/swad_group.c index fb3ac2190..9d1d85166 100644 --- a/swad_group.c +++ b/swad_group.c @@ -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 NumStudents0" // 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); diff --git a/swad_indicator.c b/swad_indicator.c index 6d590f7db..9a7f48d36 100644 --- a/swad_indicator.c +++ b/swad_indicator.c @@ -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], diff --git a/swad_match.c b/swad_match.c index a9e452972..e6df82d79 100644 --- a/swad_match.c +++ b/swad_match.c @@ -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: diff --git a/swad_notification.c b/swad_notification.c index 8037b9949..606465ac9 100644 --- a/swad_notification.c +++ b/swad_notification.c @@ -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<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" diff --git a/swad_search.c b/swad_search.c index 0a41161fb..39c24cb2e 100644 --- a/swad_search.c +++ b/swad_search.c @@ -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" diff --git a/swad_survey.c b/swad_survey.c index 6c3d6339c..e02672220 100644 --- a/swad_survey.c +++ b/swad_survey.c @@ -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); } diff --git a/swad_timetable.c b/swad_timetable.c index 43b708820..060318327 100644 --- a/swad_timetable.c +++ b/swad_timetable.c @@ -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," diff --git a/swad_user.c b/swad_user.c index 8693b43e5..834742935 100644 --- a/swad_user.c +++ b/swad_user.c @@ -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++; }