From 36365b0813e2559559f2b7954cf5799c7e89e747 Mon Sep 17 00:00:00 2001 From: acanas Date: Tue, 23 Mar 2021 23:23:10 +0100 Subject: [PATCH] Version 20.51.33: Mar 23, 2021 Groups database table renamed. --- sql/swad.sql | 4 +- swad_API.c | 49 ++++--- swad_assignment.c | 17 ++- swad_attendance.c | 18 +-- swad_changelog.h | 6 +- swad_course.c | 12 +- swad_database.c | 6 +- swad_exam_session.c | 20 ++- swad_figure.c | 72 ++++----- swad_file_browser.c | 25 ++-- swad_group.c | 348 ++++++++++++++++++++++++++------------------ swad_indicator.c | 12 +- swad_match.c | 21 ++- swad_notification.c | 6 +- swad_room.c | 3 +- swad_search.c | 16 +- swad_survey.c | 18 ++- swad_user.c | 6 +- 18 files changed, 371 insertions(+), 288 deletions(-) diff --git a/sql/swad.sql b/sql/swad.sql index 85e400bab..b2176c77a 100644 --- a/sql/swad.sql +++ b/sql/swad.sql @@ -279,9 +279,9 @@ CREATE TABLE IF NOT EXISTS crs_courses ( INDEX(DegCod,Year), INDEX(Status)); -- --- Table crs_grp: stores the groups in courses +-- Table grp_groups: stores the groups in courses -- -CREATE TABLE IF NOT EXISTS crs_grp ( +CREATE TABLE IF NOT EXISTS grp_groups ( GrpCod INT NOT NULL AUTO_INCREMENT, GrpTypCod INT NOT NULL, GrpName VARCHAR(2047) NOT NULL, diff --git a/swad_API.c b/swad_API.c index b586bbf00..2039da579 100644 --- a/swad_API.c +++ b/swad_API.c @@ -509,10 +509,12 @@ 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,crs_grp" + "SELECT COUNT(*)" + " FROM crs_grp_types," + "grp_groups" " WHERE crs_grp_types.CrsCod=%ld" - " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" - " AND crs_grp.GrpCod=%ld", + " AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod" + " AND grp_groups.GrpCod=%ld", CrsCod,GrpCod) != 1) return soap_sender_fault (soap, "Bad group code", @@ -2227,16 +2229,17 @@ int swad__getGroups (struct soap *soap, (unsigned) DB_QuerySELECT (&mysql_res,"can not get user's groups", "SELECT crs_grp_types.GrpTypCod," "crs_grp_types.GrpTypName," - "crs_grp.GrpCod," - "crs_grp.GrpName," - "crs_grp.MaxStudents," - "crs_grp.Open," - "crs_grp.FileZones" - " FROM crs_grp_types,crs_grp" + "grp_groups.GrpCod," + "grp_groups.GrpName," + "grp_groups.MaxStudents," + "grp_groups.Open," + "grp_groups.FileZones" + " FROM crs_grp_types," + "grp_groups" " WHERE crs_grp_types.CrsCod=%d" - " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" + " AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod" " ORDER BY crs_grp_types.GrpTypName," - "crs_grp.GrpName", + "grp_groups.GrpName", courseCode); getGroupsOut->numGroups = (int) NumRows; @@ -2400,15 +2403,17 @@ int swad__sendMyGroups (struct soap *soap, (unsigned) DB_QuerySELECT (&mysql_res,"can not get user's groups", "SELECT crs_grp_types.GrpTypCod," "crs_grp_types.GrpTypName," - "crs_grp.GrpCod," - "crs_grp.GrpName," - "crs_grp.MaxStudents," - "crs_grp.Open," - "crs_grp.FileZones" - " FROM crs_grp_types,crs_grp" + "grp_groups.GrpCod," + "grp_groups.GrpName," + "grp_groups.MaxStudents," + "grp_groups.Open," + "grp_groups.FileZones" + " FROM crs_grp_types," + "grp_groups" " WHERE crs_grp_types.CrsCod=%d" - " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" - " ORDER BY crs_grp_types.GrpTypName,crs_grp.GrpName", + " AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod" + " ORDER BY crs_grp_types.GrpTypName," + "grp_groups.GrpName", courseCode); SendMyGroupsOut->numGroups = (int) NumRows; @@ -3019,13 +3024,13 @@ int swad__getAttendanceUsers (struct soap *soap, sprintf (SubQuery,"SELECT DISTINCT crs_grp_usr.UsrCod AS UsrCod," "'N' AS Present" " FROM att_groups," - "crs_grp," + "grp_groups," "crs_grp_types," "crs_users," "crs_grp_usr" " WHERE att_groups.AttCod=%ld" - " AND att_groups.GrpCod=crs_grp.GrpCod" - " AND crs_grp.GrpTypCod=crs_grp_types.GrpTypCod" + " AND att_groups.GrpCod=grp_groups.GrpCod" + " AND grp_groups.GrpTypCod=crs_grp_types.GrpTypCod" " AND crs_grp_types.CrsCod=crs_users.CrsCod" " AND crs_users.Role=%u" " AND crs_users.UsrCod=crs_grp_usr.UsrCod" diff --git a/swad_assignment.c b/swad_assignment.c index 692036076..d7867c735 100644 --- a/swad_assignment.c +++ b/swad_assignment.c @@ -1707,10 +1707,10 @@ void Asg_RemoveGroupsOfType (long GrpTypCod) DB_QueryDELETE ("can not remove groups of a type from the associations" " between assignments and groups", "DELETE FROM asg_groups" - " USING crs_grp," + " USING grp_groups," "asg_groups" - " WHERE crs_grp.GrpTypCod=%ld" - " AND crs_grp.GrpCod=asg_groups.GrpCod", + " WHERE grp_groups.GrpTypCod=%ld" + " AND grp_groups.GrpCod=asg_groups.GrpCod", GrpTypCod); } @@ -1753,15 +1753,16 @@ 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,crs_grp.GrpName" + "SELECT crs_grp_types.GrpTypName," + "grp_groups.GrpName" " FROM asg_groups," - "crs_grp," + "grp_groups," "crs_grp_types" " WHERE asg_groups.AsgCod=%ld" - " AND asg_groups.GrpCod=crs_grp.GrpCod" - " AND crs_grp.GrpTypCod=crs_grp_types.GrpTypCod" + " AND asg_groups.GrpCod=grp_groups.GrpCod" + " AND grp_groups.GrpTypCod=crs_grp_types.GrpTypCod" " ORDER BY crs_grp_types.GrpTypName," - "crs_grp.GrpName", + "grp_groups.GrpName", Asg->AsgCod); /***** Write heading *****/ diff --git a/swad_attendance.c b/swad_attendance.c index 35c7bf46d..9a7577b53 100644 --- a/swad_attendance.c +++ b/swad_attendance.c @@ -1497,10 +1497,10 @@ void Att_RemoveGroupsOfType (long GrpTypCod) DB_QueryDELETE ("can not remove groups of a type from the associations" " between attendance events and groups", "DELETE FROM att_groups" - " USING crs_grp," + " USING grp_groups," "att_groups" - " WHERE crs_grp.GrpTypCod=%ld" - " AND crs_grp.GrpCod=att_groups.GrpCod", + " WHERE grp_groups.GrpTypCod=%ld" + " AND grp_groups.GrpCod=att_groups.GrpCod", GrpTypCod); } @@ -1544,18 +1544,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," - "crs_grp.GrpName," + "grp_groups.GrpName," "roo_rooms.ShortName" " FROM (att_groups," - "crs_grp," + "grp_groups," "crs_grp_types)" " LEFT JOIN roo_rooms" - " ON crs_grp.RooCod=roo_rooms.RooCod" + " ON grp_groups.RooCod=roo_rooms.RooCod" " WHERE att_groups.AttCod=%ld" - " AND att_groups.GrpCod=crs_grp.GrpCod" - " AND crs_grp.GrpTypCod=crs_grp_types.GrpTypCod" + " AND att_groups.GrpCod=grp_groups.GrpCod" + " AND grp_groups.GrpTypCod=crs_grp_types.GrpTypCod" " ORDER BY crs_grp_types.GrpTypName," - "crs_grp.GrpName", + "grp_groups.GrpName", Event->AttCod); /***** Write heading *****/ diff --git a/swad_changelog.h b/swad_changelog.h index 487ab26eb..93d39a109 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -600,13 +600,17 @@ 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.32 (2021-03-23)" +#define Log_PLATFORM_VERSION "SWAD 20.51.33 (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.33: Mar 23, 2021 Groups database table renamed. (308594 lines) + 1 change necessary in database: +RENAME TABLE crs_grp TO grp_groups; + Version 20.51.32: Mar 23, 2021 Course users database table renamed. (308512 lines) 1 change necessary in database: RENAME TABLE crs_usr TO crs_users; diff --git a/swad_course.c b/swad_course.c index 55cbbb33c..4ab07b9b8 100644 --- a/swad_course.c +++ b/swad_course.c @@ -2028,20 +2028,20 @@ static void Crs_EmptyCourseCompletely (long CrsCod) DB_QueryDELETE ("can not remove users from groups of a course", "DELETE FROM crs_grp_usr" " USING crs_grp_types," - "crs_grp," + "grp_groups," "crs_grp_usr" " WHERE crs_grp_types.CrsCod=%ld" - " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" - " AND crs_grp.GrpCod=crs_grp_usr.GrpCod", + " AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod" + " AND grp_groups.GrpCod=crs_grp_usr.GrpCod", CrsCod); /* Remove all the groups in the course */ DB_QueryDELETE ("can not remove groups of a course", - "DELETE FROM crs_grp" + "DELETE FROM grp_groups" " USING crs_grp_types," - "crs_grp" + "grp_groups" " WHERE crs_grp_types.CrsCod=%ld" - " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod", + " AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod", CrsCod); /* Remove all the group types in the course */ diff --git a/swad_database.c b/swad_database.c index 7b580cbc9..f4ae3076b 100644 --- a/swad_database.c +++ b/swad_database.c @@ -650,9 +650,9 @@ mysql> DESCRIBE crs_courses; "INDEX(DegCod,Year)," "INDEX(Status))"); - /***** Table crs_grp *****/ + /***** Table grp_groups *****/ /* -mysql> DESCRIBE crs_grp; +mysql> DESCRIBE grp_groups; +-------------+---------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+---------------+------+-----+---------+----------------+ @@ -666,7 +666,7 @@ mysql> DESCRIBE crs_grp; +-------------+---------------+------+-----+---------+----------------+ 7 rows in set (0.00 sec) */ - DB_CreateTable ("CREATE TABLE IF NOT EXISTS crs_grp (" + DB_CreateTable ("CREATE TABLE IF NOT EXISTS grp_groups (" "GrpCod INT NOT NULL AUTO_INCREMENT," "GrpTypCod INT NOT NULL," "GrpName VARCHAR(2047) NOT NULL," // Grp_MAX_BYTES_GROUP_NAME diff --git a/swad_exam_session.c b/swad_exam_session.c index e3c8b117b..6b515740a 100644 --- a/swad_exam_session.c +++ b/swad_exam_session.c @@ -666,12 +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] - "crs_grp.GrpName" // row[1] - " FROM exa_groups,crs_grp,crs_grp_types" + "grp_groups.GrpName" // row[1] + " FROM exa_groups," + "grp_groups," + "crs_grp_types" " WHERE exa_groups.SesCod=%ld" - " AND exa_groups.GrpCod=crs_grp.GrpCod" - " AND crs_grp.GrpTypCod=crs_grp_types.GrpTypCod" - " ORDER BY crs_grp_types.GrpTypName,crs_grp.GrpName", + " AND exa_groups.GrpCod=grp_groups.GrpCod" + " AND grp_groups.GrpTypCod=crs_grp_types.GrpTypCod" + " ORDER BY crs_grp_types.GrpTypName," + "grp_groups.GrpName", Session->SesCod); /***** Write heading *****/ @@ -1661,9 +1664,10 @@ void ExaSes_RemoveGroupsOfType (long GrpTypCod) DB_QueryDELETE ("can not remove groups of a type" " from the associations between sessions and groups", "DELETE FROM exa_groups" - " USING crs_grp,exa_groups" - " WHERE crs_grp.GrpTypCod=%ld" - " AND crs_grp.GrpCod=exa_groups.GrpCod", + " USING grp_groups," + "exa_groups" + " WHERE grp_groups.GrpTypCod=%ld" + " AND grp_groups.GrpCod=exa_groups.GrpCod", GrpTypCod); } diff --git a/swad_figure.c b/swad_figure.c index 8a73e58fc..ddb44cb39 100644 --- a/swad_figure.c +++ b/swad_figure.c @@ -1710,10 +1710,10 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope, "brw_sizes.NumFiles," "brw_sizes.TotalSize" " FROM crs_grp_types," - "crs_grp," + "grp_groups," "brw_sizes" - " WHERE crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" - " AND crs_grp.GrpCod=brw_sizes.Cod" + " WHERE crs_grp_types.GrpTypCod=grp_groups.GrpTypCod" + " AND grp_groups.GrpCod=brw_sizes.Cod" " AND brw_sizes.FileBrowser IN (%u,%u,%u,%u)" ") AS sizes", (unsigned) Brw_ADMI_DOC_CRS, @@ -1756,10 +1756,10 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope, "SUM(brw_sizes.NumFiles)," // row[5] "SUM(brw_sizes.TotalSize)" // row[6] " FROM crs_grp_types," - "crs_grp," + "grp_groups," "brw_sizes" - " WHERE crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" - " AND crs_grp.GrpCod=brw_sizes.Cod" + " WHERE crs_grp_types.GrpTypCod=grp_groups.GrpTypCod" + " AND grp_groups.GrpCod=brw_sizes.Cod" " AND brw_sizes.FileBrowser=%u", (unsigned) FileBrowser); break; @@ -1839,15 +1839,15 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope, "deg_degrees," "crs_courses," "crs_grp_types," - "crs_grp," + "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=crs_grp.GrpTypCod" - " AND crs_grp.GrpCod=brw_sizes.Cod" + " AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod" + " AND grp_groups.GrpCod=brw_sizes.Cod" " AND brw_sizes.FileBrowser IN (%u,%u,%u,%u)" ") AS sizes", Gbl.Hierarchy.Cty.CtyCod, @@ -1906,15 +1906,15 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope, "deg_degrees," "crs_courses," "crs_grp_types," - "crs_grp," + "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=crs_grp.GrpTypCod" - " AND crs_grp.GrpCod=brw_sizes.Cod" + " AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod" + " AND grp_groups.GrpCod=brw_sizes.Cod" " AND brw_sizes.FileBrowser=%u", Gbl.Hierarchy.Cty.CtyCod, (unsigned) FileBrowser); @@ -2014,14 +2014,14 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope, "deg_degrees," "crs_courses," "crs_grp_types," - "crs_grp," + "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=crs_grp.GrpTypCod" - " AND crs_grp.GrpCod=brw_sizes.Cod" + " AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod" + " AND grp_groups.GrpCod=brw_sizes.Cod" " AND brw_sizes.FileBrowser IN (%u,%u,%u,%u)" ") AS sizes", Gbl.Hierarchy.Ins.InsCod, @@ -2077,14 +2077,14 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope, "deg_degrees," "crs_courses," "crs_grp_types," - "crs_grp," + "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=crs_grp.GrpTypCod" - " AND crs_grp.GrpCod=brw_sizes.Cod" + " AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod" + " AND grp_groups.GrpCod=brw_sizes.Cod" " AND brw_sizes.FileBrowser=%u", Gbl.Hierarchy.Ins.InsCod, (unsigned) FileBrowser); @@ -2177,13 +2177,13 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope, " FROM deg_degrees," "crs_courses," "crs_grp_types," - "crs_grp," + "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=crs_grp.GrpTypCod" - " AND crs_grp.GrpCod=brw_sizes.Cod" + " AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod" + " AND grp_groups.GrpCod=brw_sizes.Cod" " AND brw_sizes.FileBrowser IN (%u,%u,%u,%u)" ") AS sizes", Gbl.Hierarchy.Ctr.CtrCod, @@ -2236,13 +2236,13 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope, " FROM deg_degrees," "crs_courses," "crs_grp_types," - "crs_grp," + "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=crs_grp.GrpTypCod" - " AND crs_grp.GrpCod=brw_sizes.Cod" + " AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod" + " AND grp_groups.GrpCod=brw_sizes.Cod" " AND brw_sizes.FileBrowser=%u", Gbl.Hierarchy.Ctr.CtrCod, (unsigned) FileBrowser); @@ -2328,12 +2328,12 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope, "brw_sizes.TotalSize" " FROM crs_courses," "crs_grp_types," - "crs_grp," + "grp_groups," "brw_sizes" " WHERE crs_courses.DegCod=%ld" " AND crs_courses.CrsCod=crs_grp_types.CrsCod" - " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" - " AND crs_grp.GrpCod=brw_sizes.Cod" + " AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod" + " AND grp_groups.GrpCod=brw_sizes.Cod" " AND brw_sizes.FileBrowser IN (%u,%u,%u,%u)" ") AS sizes", Gbl.Hierarchy.Deg.DegCod, @@ -2383,12 +2383,12 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope, "SUM(brw_sizes.TotalSize)" // row[6] " FROM crs_courses," "crs_grp_types," - "crs_grp," + "grp_groups," "brw_sizes" " WHERE crs_courses.DegCod=%ld" " AND crs_courses.CrsCod=crs_grp_types.CrsCod" - " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" - " AND crs_grp.GrpCod=brw_sizes.Cod" + " AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod" + " AND grp_groups.GrpCod=brw_sizes.Cod" " AND brw_sizes.FileBrowser=%u", Gbl.Hierarchy.Deg.DegCod, (unsigned) FileBrowser); @@ -2467,11 +2467,11 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope, "brw_sizes.NumFiles," "brw_sizes.TotalSize" " FROM crs_grp_types," - "crs_grp," + "grp_groups," "brw_sizes" " WHERE crs_grp_types.CrsCod=%ld" - " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" - " AND crs_grp.GrpCod=brw_sizes.Cod" + " AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod" + " AND grp_groups.GrpCod=brw_sizes.Cod" " AND brw_sizes.FileBrowser IN (%u,%u,%u,%u)" ") AS sizes", Gbl.Hierarchy.Crs.CrsCod, @@ -2518,11 +2518,11 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope, "SUM(brw_sizes.NumFiles)," // row[5] "SUM(brw_sizes.TotalSize)" // row[6] " FROM crs_grp_types," - "crs_grp," + "grp_groups," "brw_sizes" " WHERE crs_grp_types.CrsCod=%ld" - " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" - " AND crs_grp.GrpCod=brw_sizes.Cod" + " AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod" + " AND grp_groups.GrpCod=brw_sizes.Cod" " AND brw_sizes.FileBrowser=%u", Gbl.Hierarchy.Crs.CrsCod, (unsigned) FileBrowser); diff --git a/swad_file_browser.c b/swad_file_browser.c index aef1687c2..f23fad5fa 100644 --- a/swad_file_browser.c +++ b/swad_file_browser.c @@ -4379,10 +4379,11 @@ void Brw_RemoveCrsFilesFromDB (long CrsCod) char SubqueryPrj[128]; /***** Build subquery for groups *****/ - sprintf (SubqueryGrp,"(SELECT crs_grp.GrpCod" - " FROM crs_grp_types,crs_grp" + sprintf (SubqueryGrp,"(SELECT grp_groups.GrpCod" + " FROM crs_grp_types," + "grp_groups" " WHERE crs_grp_types.CrsCod=%ld" - " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod)", + " AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod)", CrsCod); /***** Build subquery for projects *****/ @@ -4790,11 +4791,11 @@ void Brw_RemoveSomeInfoAboutCrsUsrFilesFromDB (long UsrCod,long CrsCod) " OR " "(FileBrowser IN (%u,%u,%u,%u)" " AND Cod IN" - " (SELECT crs_grp.GrpCod" + " (SELECT grp_groups.GrpCod" " FROM crs_grp_types," - "crs_grp" + "grp_groups" " WHERE crs_grp_types.CrsCod=%ld" - " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod))" + " AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod))" ")", UsrCod, (unsigned) Brw_ADMI_DOC_CRS, @@ -4822,11 +4823,11 @@ void Brw_RemoveSomeInfoAboutCrsUsrFilesFromDB (long UsrCod,long CrsCod) " OR " "(FileBrowser IN (%u,%u,%u,%u)" " AND Cod IN" - " (SELECT crs_grp.GrpCod" + " (SELECT grp_groups.GrpCod" " FROM crs_grp_types," - "crs_grp" + "grp_groups" " WHERE crs_grp_types.CrsCod=%ld" - " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod))" + " AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod))" ")", UsrCod, (unsigned) Brw_ADMI_DOC_CRS, @@ -4857,11 +4858,11 @@ void Brw_RemoveSomeInfoAboutCrsUsrFilesFromDB (long UsrCod,long CrsCod) " OR " "(FileBrowser IN (%u,%u,%u,%u)" " AND Cod IN" - " (SELECT crs_grp.GrpCod" + " (SELECT grp_groups.GrpCod" " FROM crs_grp_types," - "crs_grp" + "grp_groups" " WHERE crs_grp_types.CrsCod=%ld" - " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod))" + " AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod))" ")", UsrCod, (unsigned) Brw_ADMI_DOC_CRS, diff --git a/swad_group.c b/swad_group.c index 5aa37a129..fb3ac2190 100644 --- a/swad_group.c +++ b/swad_group.c @@ -978,7 +978,7 @@ static void Grp_LockTables (void) DB_Query ("can not lock tables to change user's groups", "LOCK TABLES " "crs_grp_types WRITE," - "crs_grp WRITE," + "grp_groups WRITE," "crs_grp_usr WRITE," "crs_users READ," "crs_usr_last READ," @@ -1225,10 +1225,13 @@ 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" - " WHERE UsrCod=%ld AND GrpCod IN" - " (SELECT crs_grp.GrpCod FROM crs_grp_types,crs_grp" - " WHERE crs_grp_types.CrsCod=%ld" - " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod)", + " WHERE UsrCod=%ld" + " AND GrpCod IN" + " (SELECT grp_groups.GrpCod" + " FROM crs_grp_types," + "grp_groups" + " WHERE crs_grp_types.CrsCod=%ld" + " AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod)", UsrCod,CrsCod); /***** Flush caches *****/ @@ -2759,14 +2762,17 @@ 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)," - "COUNT(crs_grp.GrpCod)" - " FROM crs_grp_types,crs_grp" + "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)," + "COUNT(grp_groups.GrpCod)" + " FROM crs_grp_types," + "grp_groups" " WHERE crs_grp_types.CrsCod=%ld" - " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" + " AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod" " GROUP BY crs_grp_types.GrpTypCod" " ORDER BY crs_grp_types.GrpTypName", Gbl.Hierarchy.Crs.CrsCod); @@ -2775,23 +2781,31 @@ 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 AS GrpTypName," - "crs_grp_types.Mandatory,crs_grp_types.Multiple," - "crs_grp_types.MustBeOpened," - "UNIX_TIMESTAMP(crs_grp_types.OpenTime)," - "COUNT(crs_grp.GrpCod)" - " FROM crs_grp_types,crs_grp" - " WHERE crs_grp_types.CrsCod=%ld" - " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" - " GROUP BY crs_grp_types.GrpTypCod)" + "(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)," + "COUNT(grp_groups.GrpCod)" + " FROM crs_grp_types," + "grp_groups" + " WHERE crs_grp_types.CrsCod=%ld" + " AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod" + " GROUP BY crs_grp_types.GrpTypCod)" " UNION " - "(SELECT GrpTypCod,GrpTypName," - "Mandatory,Multiple," - "MustBeOpened," - "UNIX_TIMESTAMP(OpenTime)," - "0" - " FROM crs_grp_types WHERE CrsCod=%ld" - " AND GrpTypCod NOT IN (SELECT GrpTypCod FROM crs_grp))" + "(SELECT GrpTypCod," + "GrpTypName," + "Mandatory," + "Multiple," + "MustBeOpened," + "UNIX_TIMESTAMP(OpenTime)," + "0" + " FROM crs_grp_types" + " WHERE CrsCod=%ld" + " AND GrpTypCod NOT IN" + " (SELECT GrpTypCod" + " FROM grp_groups))" " ORDER BY GrpTypName", Gbl.Hierarchy.Crs.CrsCod, Gbl.Hierarchy.Crs.CrsCod); @@ -2887,13 +2901,16 @@ void Grp_OpenGroupsAutomatically (void) /***** Open all the closed groups in this course the must be opened and with open time in the past ****/ DB_QueryUPDATE ("can not open groups", - "UPDATE crs_grp SET Open='Y'" - " WHERE GrpTypCod=%ld AND Open='N'", + "UPDATE grp_groups" + " SET Open='Y'" + " WHERE GrpTypCod=%ld" + " AND Open='N'", GrpTypCod); /***** 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 SET MustBeOpened='N'" + "UPDATE crs_grp_types" + " SET MustBeOpened='N'" " WHERE GrpTypCod=%ld", GrpTypCod); } @@ -3036,9 +3053,11 @@ unsigned Grp_CountNumGrpsInCurrentCrs (void) /***** Get number of group in current course from database *****/ return (unsigned) DB_QueryCOUNT ("can not get number of groups in this course", - "SELECT COUNT(*) FROM crs_grp_types,crs_grp" + "SELECT COUNT(*)" + " FROM crs_grp_types," + "grp_groups" " WHERE crs_grp_types.CrsCod=%ld" - " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod", + " AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod", Gbl.Hierarchy.Crs.CrsCod); } @@ -3051,7 +3070,8 @@ static unsigned Grp_CountNumGrpsInThisCrsOfType (long GrpTypCod) /***** Get number of groups of a type from database *****/ return (unsigned) DB_QueryCOUNT ("can not get number of groups of a type", - "SELECT COUNT(*) FROM crs_grp" + "SELECT COUNT(*)" + " FROM grp_groups" " WHERE GrpTypCod=%ld", GrpTypCod); } @@ -3065,18 +3085,18 @@ unsigned long Grp_GetGrpsOfType (long GrpTypCod,MYSQL_RES **mysql_res) /***** Get groups of a type from database *****/ // Don't use INNER JOIN because there are groups without assigned room return DB_QuerySELECT (mysql_res,"can not get groups of a type", - "SELECT crs_grp.GrpCod," - "crs_grp.GrpName," - "crs_grp.RooCod," + "SELECT grp_groups.GrpCod," + "grp_groups.GrpName," + "grp_groups.RooCod," "roo_rooms.ShortName," - "crs_grp.MaxStudents," - "crs_grp.Open," - "crs_grp.FileZones" - " FROM crs_grp" + "grp_groups.MaxStudents," + "grp_groups.Open," + "grp_groups.FileZones" + " FROM grp_groups" " LEFT JOIN roo_rooms" - " ON crs_grp.RooCod=roo_rooms.RooCod" - " WHERE crs_grp.GrpTypCod=%ld" - " ORDER BY crs_grp.GrpName", + " ON grp_groups.RooCod=roo_rooms.RooCod" + " WHERE grp_groups.GrpTypCod=%ld" + " ORDER BY grp_groups.GrpName", GrpTypCod); } @@ -3169,22 +3189,22 @@ 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 crs_grp.GrpTypCod," // row[0] + "SELECT grp_groups.GrpTypCod," // row[0] "crs_grp_types.CrsCod," // row[1] "crs_grp_types.GrpTypName," // row[2] "crs_grp_types.Multiple," // row[3] - "crs_grp.GrpName," // row[4] - "crs_grp.RooCod," // row[5] + "grp_groups.GrpName," // row[4] + "grp_groups.RooCod," // row[5] "roo_rooms.ShortName," // row[6] - "crs_grp.MaxStudents," // row[7] - "crs_grp.Open," // row[8] - "crs_grp.FileZones" // row[9] - " FROM (crs_grp," - "crs_grp_types)" - " LEFT JOIN roo_rooms" - " ON crs_grp.RooCod=roo_rooms.RooCod" - " WHERE crs_grp.GrpCod=%ld" - " AND crs_grp.GrpTypCod=crs_grp_types.GrpTypCod", + "grp_groups.MaxStudents," // row[7] + "grp_groups.Open," // row[8] + "grp_groups.FileZones" // row[9] + " FROM (grp_groups," + "crs_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", GrpDat->GrpCod); if (NumRows == 1) @@ -3247,7 +3267,7 @@ static long Grp_GetTypeOfGroupOfAGroup (long GrpCod) /***** Get data of a group from database *****/ if (DB_QuerySELECT (&mysql_res,"can not get the type of a group", "SELECT GrpTypCod" - " FROM crs_grp" + " FROM grp_groups" " WHERE GrpCod=%ld", GrpCod) != 1) Lay_ShowErrorAndExit ("Error when getting group."); @@ -3272,7 +3292,8 @@ bool Grp_CheckIfGroupExists (long GrpCod) { /***** Get if a group exists from database *****/ return (DB_QueryCOUNT ("can not check if a group exists", - "SELECT COUNT(*) FROM crs_grp" + "SELECT COUNT(*)" + " FROM grp_groups" " WHERE GrpCod=%ld", GrpCod) != 0); } @@ -3285,10 +3306,12 @@ bool Grp_CheckIfGroupBelongsToCourse (long GrpCod,long CrsCod) { /***** Get if a group exists from database *****/ return (DB_QueryCOUNT ("can not check if a group belongs to a course", - "SELECT COUNT(*) FROM crs_grp,crs_grp_types" - " WHERE crs_grp.GrpCod=%ld" - " AND crs_grp.GrpTypCod=crs_grp_types.GrpTypCod" - " AND crs_grp_types.CrsCod=%ld", + "SELECT COUNT(*)" + " FROM grp_groups," + "crs_grp_types" + " WHERE grp_groups.GrpCod=%ld" + " AND grp_groups.GrpTypCod=crs_grp_types.GrpTypCod" + " AND crs_grp_types.CrsCod=%ld", GrpCod,CrsCod) != 0); } @@ -3303,12 +3326,12 @@ unsigned Grp_CountNumUsrsInGrp (Rol_Role_t Role,long GrpCod) (unsigned) DB_QueryCOUNT ("can not get number of users in a group", "SELECT COUNT(*)" " FROM crs_grp_usr," - "crs_grp," + "grp_groups," "crs_grp_types," "crs_users" " WHERE crs_grp_usr.GrpCod=%ld" - " AND crs_grp_usr.GrpCod=crs_grp.GrpCod" - " AND crs_grp.GrpTypCod=crs_grp_types.GrpTypCod" + " 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" " AND crs_users.Role=%u", @@ -3330,10 +3353,10 @@ static unsigned long Grp_CountNumUsrsInNoGrpsOfType (Rol_Role_t Role,long GrpTyp " AND Role=%u" " AND UsrCod NOT IN" " (SELECT DISTINCT crs_grp_usr.UsrCod" - " FROM crs_grp," + " FROM grp_groups," "crs_grp_usr" - " WHERE crs_grp.GrpTypCod=%ld" - " AND crs_grp.GrpCod=crs_grp_usr.GrpCod)", + " WHERE grp_groups.GrpTypCod=%ld" + " AND grp_groups.GrpCod=crs_grp_usr.GrpCod)", Gbl.Hierarchy.Crs.CrsCod, (unsigned) Role,GrpTypCod); } @@ -3348,11 +3371,11 @@ 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(crs_grp.GrpCod)" - " FROM crs_grp,crs_grp_usr" - " WHERE crs_grp.GrpTypCod=%ld" - " AND crs_grp.GrpCod=crs_grp_usr.GrpCod" - " AND crs_grp_usr.UsrCod=%ld", // I belong + "SELECT COUNT(grp_groups.GrpCod)" + " FROM grp_groups,crs_grp_usr" + " 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); return (NumGrps != 0); @@ -3453,15 +3476,18 @@ bool Grp_CheckIfUsrSharesAnyOfMyGrpsInCurrentCrs (const struct UsrData *UsrDat) Gbl.Cache.UsrSharesAnyOfMyGrpsInCurrentCrs.Shares = (DB_QueryCOUNT ("can not check if a user shares any group" " in the current course with you", - "SELECT COUNT(*) FROM crs_grp_usr" + "SELECT COUNT(*)" + " FROM crs_grp_usr" " WHERE UsrCod=%ld" - " AND GrpCod IN" - " (SELECT crs_grp_usr.GrpCod" - " FROM crs_grp_usr,crs_grp,crs_grp_types" - " WHERE crs_grp_usr.UsrCod=%ld" - " AND crs_grp_usr.GrpCod=crs_grp.GrpCod" - " AND crs_grp.GrpTypCod=crs_grp_types.GrpTypCod" - " AND crs_grp_types.CrsCod=%ld)", + " AND GrpCod IN" + " (SELECT crs_grp_usr.GrpCod" + " FROM crs_grp_usr," + "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)", UsrDat->UsrCod, Gbl.Usrs.Me.UsrDat.UsrCod, Gbl.Hierarchy.Crs.CrsCod) != 0); @@ -3505,20 +3531,20 @@ bool Grp_GetIfAvailableGrpTyp (long GrpTypCod) " (" "SELECT crs_grp_types.GrpTypCod AS GrpTypCod," "COUNT(*) AS NumStudents," - "crs_grp.MaxStudents as MaxStudents" + "grp_groups.MaxStudents as MaxStudents" " FROM crs_grp_types," - "crs_grp," + "grp_groups," "crs_grp_usr," "crs_users" " WHERE %s" // Which group types? - " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" - " AND crs_grp.Open='Y'" // Open - " AND crs_grp.MaxStudents>0" // Admits students + " AND crs_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 crs_grp.GrpCod=crs_grp_usr.GrpCod" + " AND grp_groups.GrpCod=crs_grp_usr.GrpCod" " AND crs_grp_usr.UsrCod=crs_users.UsrCod" " AND crs_users.Role=%u" // Student - " GROUP BY crs_grp.GrpCod" + " GROUP BY grp_groups.GrpCod" " HAVING NumStudents0" // Admits students + " AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod" + " AND grp_groups.Open='Y'" // Open + " AND grp_groups.MaxStudents>0" // Admits students // ...without students - " AND crs_grp.GrpCod NOT IN" + " AND grp_groups.GrpCod NOT IN" " (SELECT crs_grp_usr.GrpCod" " FROM crs_users," "crs_grp_usr" @@ -3547,13 +3573,13 @@ bool Grp_GetIfAvailableGrpTyp (long GrpTypCod) " WHERE GrpTypCod NOT IN" " (SELECT crs_grp_types.GrpTypCod" " FROM crs_grp_types," - "crs_grp," + "grp_groups," "crs_grp_usr" " WHERE %s" // Which group types? - " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" - " AND crs_grp.Open='Y'" // Open - " AND crs_grp.MaxStudents>0" // Admits students - " AND crs_grp.GrpCod=crs_grp_usr.GrpCod" + " AND crs_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 SubQueryGrpTypes,(unsigned) Rol_STD, @@ -3593,27 +3619,35 @@ static void Grp_GetLstCodGrpsUsrBelongs (long CrsCod,long GrpTypCod, LstGrps->NumGrps = (unsigned) DB_QuerySELECT (&mysql_res,"can not get the groups" " which a user belongs to", - "SELECT crs_grp.GrpCod" - " FROM crs_grp_types,crs_grp,crs_grp_usr" + "SELECT grp_groups.GrpCod" + " FROM crs_grp_types," + "grp_groups," + "crs_grp_usr" " WHERE crs_grp_types.CrsCod=%ld" - " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" - " AND crs_grp.GrpCod=crs_grp_usr.GrpCod" - " AND crs_grp_usr.UsrCod=%ld" - " ORDER BY crs_grp_types.GrpTypName,crs_grp.GrpName", - Gbl.Hierarchy.Crs.CrsCod,UsrCod); + " 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_groups.GrpName", + Gbl.Hierarchy.Crs.CrsCod, + UsrCod); else // Query only the groups of specified type in the course LstGrps->NumGrps = (unsigned) DB_QuerySELECT (&mysql_res,"can not get the groups" " which a user belongs to", - "SELECT crs_grp.GrpCod" - " FROM crs_grp_types,crs_grp,crs_grp_usr" + "SELECT grp_groups.GrpCod" + " FROM crs_grp_types," + "grp_groups," + "crs_grp_usr" " WHERE crs_grp_types.CrsCod=%ld" - " AND crs_grp_types.GrpTypCod=%ld" - " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" - " AND crs_grp.GrpCod=crs_grp_usr.GrpCod" - " AND crs_grp_usr.UsrCod=%ld" - " ORDER BY crs_grp.GrpName", - Gbl.Hierarchy.Crs.CrsCod,GrpTypCod,UsrCod); + " 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" + " ORDER BY grp_groups.GrpName", + Gbl.Hierarchy.Crs.CrsCod, + GrpTypCod, + UsrCod); /***** Get the groups *****/ if (LstGrps->NumGrps) @@ -3652,14 +3686,17 @@ void Grp_GetLstCodGrpsWithFileZonesIBelong (struct ListCodGrps *LstGrps) LstGrps->NumGrps = (unsigned) DB_QuerySELECT (&mysql_res,"can not get the groups" " which you belong to", - "SELECT crs_grp.GrpCod" - " FROM crs_grp_types,crs_grp,crs_grp_usr" + "SELECT grp_groups.GrpCod" + " FROM crs_grp_types," + "grp_groups," + "crs_grp_usr" " WHERE crs_grp_types.CrsCod=%ld" - " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" - " AND crs_grp.FileZones='Y'" - " AND crs_grp.GrpCod=crs_grp_usr.GrpCod" - " AND crs_grp_usr.UsrCod=%ld" - " ORDER BY crs_grp_types.GrpTypName,crs_grp.GrpName", + " AND crs_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," + "grp_groups.GrpName", Gbl.Hierarchy.Crs.CrsCod,Gbl.Usrs.Me.UsrDat.UsrCod); /***** Get the groups *****/ @@ -3717,12 +3754,12 @@ void Grp_GetNamesGrpsStdBelongsTo (long GrpTypCod,long UsrCod,char *GroupNames) /***** Get the names of groups which a user belongs to, from database *****/ NumRows = DB_QuerySELECT (&mysql_res,"can not get the names of groups" " a user belongs to", - "SELECT crs_grp.GrpName" - " FROM crs_grp,crs_grp_usr" - " WHERE crs_grp.GrpTypCod=%ld" - " AND crs_grp.GrpCod=crs_grp_usr.GrpCod" - " AND crs_grp_usr.UsrCod=%ld" - " ORDER BY crs_grp.GrpName", + "SELECT grp_groups.GrpName" + " FROM grp_groups,crs_grp_usr" + " WHERE grp_groups.GrpTypCod=%ld" + " AND grp_groups.GrpCod=crs_grp_usr.GrpCod" + " AND crs_grp_usr.UsrCod=%ld" + " ORDER BY grp_groups.GrpName", GrpTypCod,UsrCod); /***** Get the groups *****/ @@ -3909,10 +3946,11 @@ static bool Grp_CheckIfGroupNameExists (long GrpTypCod,const char *GrpName,long { /***** Get number of groups with a type and a name from database *****/ return (DB_QueryCOUNT ("can not check if the name of group already existed", - "SELECT COUNT(*) FROM crs_grp" + "SELECT COUNT(*)" + " FROM grp_groups" " WHERE GrpTypCod=%ld" - " AND GrpName='%s'" - " AND GrpCod<>%ld", + " AND GrpName='%s'" + " AND GrpCod<>%ld", GrpTypCod,GrpName,GrpCod) != 0); } @@ -3947,7 +3985,7 @@ static void Grp_CreateGroup (void) { /***** Create a new group *****/ DB_QueryINSERT ("can not create group", - "INSERT INTO crs_grp" + "INSERT INTO grp_groups" " (GrpTypCod,GrpName,RooCod,MaxStudents,Open,FileZones)" " VALUES" " (%ld,'%s',%ld,%u,'N','N')", @@ -4134,24 +4172,29 @@ static void Grp_RemoveGroupTypeCompletely (void) " SET GrpCod=-1" " WHERE GrpCod IN" " (SELECT GrpCod" - " FROM crs_grp" + " FROM grp_groups" " WHERE GrpTypCod=%ld)", Gbl.Crs.Grps.GrpTyp.GrpTypCod); /***** 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 WHERE GrpCod IN" - " (SELECT GrpCod FROM crs_grp WHERE GrpTypCod=%ld)", + "DELETE FROM crs_grp_usr" + " WHERE GrpCod IN" + " (SELECT GrpCod" + " FROM grp_groups" + " WHERE GrpTypCod=%ld)", Gbl.Crs.Grps.GrpTyp.GrpTypCod); /***** Remove all the groups of this type *****/ DB_QueryDELETE ("can not remove groups of a type", - "DELETE FROM crs_grp WHERE GrpTypCod=%ld", + "DELETE FROM grp_groups" + " WHERE GrpTypCod=%ld", Gbl.Crs.Grps.GrpTyp.GrpTypCod); /***** Remove the group type *****/ DB_QueryDELETE ("can not remove a type of group", - "DELETE FROM crs_grp_types WHERE GrpTypCod=%ld", + "DELETE FROM crs_grp_types" + " WHERE GrpTypCod=%ld", Gbl.Crs.Grps.GrpTyp.GrpTypCod); /***** Create message to show the change made *****/ @@ -4206,7 +4249,8 @@ static void Grp_RemoveGroupCompletely (void) /***** Remove the group *****/ DB_QueryDELETE ("can not remove a group", - "DELETE FROM crs_grp WHERE GrpCod=%ld", + "DELETE FROM grp_groups" + " WHERE GrpCod=%ld", Gbl.Crs.Grps.GrpCod); /***** Create message to show the change made *****/ @@ -4238,7 +4282,9 @@ void Grp_OpenGroup (void) /***** Update the table of groups changing open/close status *****/ DB_QueryUPDATE ("can not open a group", - "UPDATE crs_grp SET Open='Y' WHERE GrpCod=%ld", + "UPDATE grp_groups" + " SET Open='Y'" + " WHERE GrpCod=%ld", Gbl.Crs.Grps.GrpCod); /***** Create message to show the change made *****/ @@ -4271,7 +4317,9 @@ void Grp_CloseGroup (void) /***** Update the table of groups changing open/close status *****/ DB_QueryUPDATE ("can not close a group", - "UPDATE crs_grp SET Open='N' WHERE GrpCod=%ld", + "UPDATE grp_groups" + " SET Open='N'" + " WHERE GrpCod=%ld", Gbl.Crs.Grps.GrpCod); /***** Create message to show the change made *****/ @@ -4304,7 +4352,9 @@ void Grp_EnableFileZonesGrp (void) /***** Update the table of groups changing file zones status *****/ DB_QueryUPDATE ("can not enable file zones of a group", - "UPDATE crs_grp SET FileZones='Y' WHERE GrpCod=%ld", + "UPDATE grp_groups" + " SET FileZones='Y'" + " WHERE GrpCod=%ld", Gbl.Crs.Grps.GrpCod); /***** Create message to show the change made *****/ @@ -4338,7 +4388,9 @@ void Grp_DisableFileZonesGrp (void) /***** Update the table of groups changing file zones status *****/ DB_QueryUPDATE ("can not disable file zones of a group", - "UPDATE crs_grp SET FileZones='N' WHERE GrpCod=%ld", + "UPDATE grp_groups" + " SET FileZones='N'" + " WHERE GrpCod=%ld", Gbl.Crs.Grps.GrpCod); /***** Create message to show the change made *****/ @@ -4389,7 +4441,9 @@ void Grp_ChangeGroupType (void) { /* Update the table of groups changing old type by new type */ DB_QueryUPDATE ("can not update the type of a group", - "UPDATE crs_grp SET GrpTypCod=%ld WHERE GrpCod=%ld", + "UPDATE grp_groups" + " SET GrpTypCod=%ld" + " WHERE GrpCod=%ld", NewGrpTypCod,Gbl.Crs.Grps.GrpCod); /* Create message to show the change made */ @@ -4431,7 +4485,9 @@ void Grp_ChangeGroupRoom (void) /***** Update the table of groups changing old room by new room *****/ DB_QueryUPDATE ("can not update the room of a group", - "UPDATE crs_grp SET RooCod=%ld WHERE GrpCod=%ld", + "UPDATE grp_groups" + " SET RooCod=%ld" + " WHERE GrpCod=%ld", NewRooCod,Gbl.Crs.Grps.GrpCod); /* Create message to show the change made */ @@ -4642,7 +4698,9 @@ void Grp_ChangeMaxStdsGrp (void) /***** Update the table of groups changing the old maximum of students to the new *****/ DB_QueryUPDATE ("can not update the maximum number of students" " in a group", - "UPDATE crs_grp SET MaxStudents=%u WHERE GrpCod=%ld", + "UPDATE grp_groups" + " SET MaxStudents=%u" + " WHERE GrpCod=%ld", NewMaxStds,Gbl.Crs.Grps.GrpCod); /***** Write message to show the change made *****/ @@ -4818,7 +4876,9 @@ void Grp_RenameGroup (void) { /* Update the table changing old name by new name */ DB_QueryUPDATE ("can not update the name of a group", - "UPDATE crs_grp SET GrpName='%s' WHERE GrpCod=%ld", + "UPDATE grp_groups" + " SET GrpName='%s'" + " WHERE GrpCod=%ld", NewNameGrp,Gbl.Crs.Grps.GrpCod); /***** Write message to show the change made *****/ diff --git a/swad_indicator.c b/swad_indicator.c index 5c62f1d13..6d590f7db 100644 --- a/swad_indicator.c +++ b/swad_indicator.c @@ -1495,12 +1495,12 @@ static unsigned long Ind_GetNumFilesInDocumZonesOfCrsFromDB (long CrsCod) " WHERE FileBrowser=%u AND Cod=%ld) +" " (SELECT COALESCE(SUM(brw_sizes.NumFiles),0)" " FROM crs_grp_types," - "crs_grp," + "grp_groups," "brw_sizes" " WHERE crs_grp_types.CrsCod=%ld" - " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" + " AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod" " AND brw_sizes.FileBrowser=%u" - " AND brw_sizes.Cod=crs_grp.GrpCod)", + " AND brw_sizes.Cod=grp_groups.GrpCod)", (unsigned) Brw_FileBrowserForDB_files[Brw_ADMI_DOC_CRS], CrsCod, CrsCod, @@ -1538,12 +1538,12 @@ static unsigned long Ind_GetNumFilesInShareZonesOfCrsFromDB (long CrsCod) " WHERE FileBrowser=%u AND Cod=%ld) +" " (SELECT COALESCE(SUM(brw_sizes.NumFiles),0)" " FROM crs_grp_types," - "crs_grp," + "grp_groups," "brw_sizes" " WHERE crs_grp_types.CrsCod=%ld" - " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" + " AND crs_grp_types.GrpTypCod=grp_groups.GrpTypCod" " AND brw_sizes.FileBrowser=%u" - " AND brw_sizes.Cod=crs_grp.GrpCod)", + " AND brw_sizes.Cod=grp_groups.GrpCod)", (unsigned) Brw_FileBrowserForDB_files[Brw_ADMI_SHR_CRS], CrsCod, CrsCod, diff --git a/swad_match.c b/swad_match.c index 55ba5d09a..a9e452972 100644 --- a/swad_match.c +++ b/swad_match.c @@ -766,12 +766,16 @@ 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,crs_grp.GrpName" - " FROM mch_groups,crs_grp,crs_grp_types" + "SELECT crs_grp_types.GrpTypName," + "grp_groups.GrpName" + " FROM mch_groups," + "grp_groups," + "crs_grp_types" " WHERE mch_groups.MchCod=%ld" - " AND mch_groups.GrpCod=crs_grp.GrpCod" - " AND crs_grp.GrpTypCod=crs_grp_types.GrpTypCod" - " ORDER BY crs_grp_types.GrpTypName,crs_grp.GrpName", + " AND mch_groups.GrpCod=grp_groups.GrpCod" + " AND grp_groups.GrpTypCod=crs_grp_types.GrpTypCod" + " ORDER BY crs_grp_types.GrpTypName," + "grp_groups.GrpName", Match->MchCod); /***** Write heading *****/ @@ -1970,9 +1974,10 @@ void Mch_RemoveGroupsOfType (long GrpTypCod) DB_QueryDELETE ("can not remove groups of a type" " from the associations between matches and groups", "DELETE FROM mch_groups" - " USING crs_grp,mch_groups" - " WHERE crs_grp.GrpTypCod=%ld" - " AND crs_grp.GrpCod=mch_groups.GrpCod", + " USING grp_groups," + "mch_groups" + " WHERE grp_groups.GrpTypCod=%ld" + " AND grp_groups.GrpCod=mch_groups.GrpCod", GrpTypCod); } diff --git a/swad_notification.c b/swad_notification.c index e16fb27a6..8037b9949 100644 --- a/swad_notification.c +++ b/swad_notification.c @@ -1256,13 +1256,13 @@ unsigned Ntf_StoreNotifyEventsToAllUsrs (Ntf_NotifyEvent_t NotifyEvent,long Cod) " to be notified", "SELECT crs_grp_usr.UsrCod" // row[0] " FROM crs_grp_usr," - "crs_grp," + "grp_groups," "crs_grp_types," "crs_users" " WHERE crs_grp_usr.GrpCod=%ld" " AND crs_grp_usr.UsrCod<>%ld" - " AND crs_grp_usr.GrpCod=crs_grp.GrpCod" - " AND crs_grp.GrpTypCod=crs_grp_types.GrpTypCod" + " 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_users.Role=%u", // Notify teachers only Gbl.Crs.Grps.GrpCod, diff --git a/swad_room.c b/swad_room.c index 681d7960a..3accc268f 100644 --- a/swad_room.c +++ b/swad_room.c @@ -1018,7 +1018,8 @@ void Roo_RemoveRoom (void) /***** Update groups assigned to this room *****/ DB_QueryUPDATE ("can not update room in groups", - "UPDATE crs_grp SET RooCod=0" // 0 means another room + "UPDATE grp_groups" + " SET RooCod=0" // 0 means another room " WHERE RooCod=%ld", Roo_EditingRoom->RooCod); diff --git a/swad_search.c b/swad_search.c index 18672d40e..0a41161fb 100644 --- a/swad_search.c +++ b/swad_search.c @@ -932,9 +932,9 @@ static unsigned Sch_SearchDocumentsInMyCoursesInDB (const char *RangeQuery) "deg_degrees.ShortName AS DegShortName," "crs_courses.CrsCod," "crs_courses.ShortName AS CrsShortName," - "crs_grp.GrpCod" + "grp_groups.GrpCod" " FROM brw_files," - "crs_grp," + "grp_groups," "crs_grp_types," "crs_courses," "deg_degrees," @@ -944,8 +944,8 @@ static unsigned Sch_SearchDocumentsInMyCoursesInDB (const char *RangeQuery) " WHERE brw_files.FilCod IN (SELECT FilCod FROM my_files_grp)" " AND %s" " AND brw_files.FileBrowser IN (%u,%u,%u,%u)" - " AND brw_files.Cod=crs_grp.GrpCod" - " AND crs_grp.GrpTypCod=crs_grp_types.GrpTypCod" + " AND brw_files.Cod=grp_groups.GrpCod" + " AND grp_groups.GrpTypCod=crs_grp_types.GrpTypCod" " AND crs_grp_types.CrsCod=crs_courses.CrsCod" " AND crs_courses.DegCod=deg_degrees.DegCod" " AND deg_degrees.CtrCod=ctr_centers.CtrCod" @@ -1121,9 +1121,9 @@ static unsigned Sch_SearchMyDocumentsInDB (const char *RangeQuery) "deg_degrees.ShortName AS DegShortName," "crs_courses.CrsCod," "crs_courses.ShortName AS CrsShortName," - "crs_grp.GrpCod" + "grp_groups.GrpCod" " FROM brw_files," - "crs_grp," + "grp_groups," "crs_grp_types," "crs_courses," "deg_degrees," @@ -1133,8 +1133,8 @@ static unsigned Sch_SearchMyDocumentsInDB (const char *RangeQuery) " WHERE brw_files.PublisherUsrCod=%ld" " AND %s" " AND brw_files.FileBrowser IN (%u,%u,%u,%u)" - " AND brw_files.Cod=crs_grp.GrpCod" - " AND crs_grp.GrpTypCod=crs_grp_types.GrpTypCod" + " AND brw_files.Cod=grp_groups.GrpCod" + " AND grp_groups.GrpTypCod=crs_grp_types.GrpTypCod" " AND crs_grp_types.CrsCod=crs_courses.CrsCod" " AND crs_courses.DegCod=deg_degrees.DegCod" " AND deg_degrees.CtrCod=ctr_centers.CtrCod" diff --git a/swad_survey.c b/swad_survey.c index a09c31a89..6c3d6339c 100644 --- a/swad_survey.c +++ b/swad_survey.c @@ -2451,10 +2451,10 @@ void Svy_RemoveGroupsOfType (long GrpTypCod) DB_QueryDELETE ("can not remove groups of a type" " from the associations between surveys and groups", "DELETE FROM svy_groups" - " USING crs_grp," + " USING grp_groups," "svy_groups" - " WHERE crs_grp.GrpTypCod=%ld" - " AND crs_grp.GrpCod=svy_groups.GrpCod", + " WHERE grp_groups.GrpTypCod=%ld" + " AND grp_groups.GrpCod=svy_groups.GrpCod", GrpTypCod); } @@ -2497,13 +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," - "crs_grp.GrpName" - " FROM svy_groups,crs_grp,crs_grp_types" + "grp_groups.GrpName" + " FROM svy_groups," + "grp_groups," + "crs_grp_types" " WHERE svy_groups.SvyCod=%ld" - " AND svy_groups.GrpCod=crs_grp.GrpCod" - " AND crs_grp.GrpTypCod=crs_grp_types.GrpTypCod" + " AND svy_groups.GrpCod=grp_groups.GrpCod" + " AND grp_groups.GrpTypCod=crs_grp_types.GrpTypCod" " ORDER BY crs_grp_types.GrpTypName," - "crs_grp.GrpName", + "grp_groups.GrpName", Svy->SvyCod); /***** Write heading *****/ diff --git a/swad_user.c b/swad_user.c index dd28b5209..8693b43e5 100644 --- a/swad_user.c +++ b/swad_user.c @@ -4554,14 +4554,14 @@ static void Usr_BuildQueryToGetUsrsLstCrs (char **Query,Rol_Role_t Role) /* 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" - " FROM crs_grp," + " FROM grp_groups," "crs_grp_usr" - " WHERE crs_grp.GrpTypCod='", + " 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 crs_grp.GrpCod=crs_grp_usr.GrpCod)", + Str_Concat (*Query,"' AND grp_groups.GrpCod=crs_grp_usr.GrpCod)", Usr_MAX_BYTES_QUERY_GET_LIST_USRS); NumNegativeCods++; }