mirror of https://github.com/acanas/swad-core.git
Version 20.51.32: Mar 23, 2021 Course users database table renamed.
This commit is contained in:
parent
9ca0572f66
commit
1f2bd46bc2
|
@ -368,9 +368,9 @@ CREATE TABLE IF NOT EXISTS crs_records (
|
||||||
Txt TEXT NOT NULL,
|
Txt TEXT NOT NULL,
|
||||||
UNIQUE INDEX(FieldCod,UsrCod));
|
UNIQUE INDEX(FieldCod,UsrCod));
|
||||||
--
|
--
|
||||||
-- Table crs_usr: stores who users belong to what courses
|
-- Table crs_users: stores who users belong to what courses
|
||||||
--
|
--
|
||||||
CREATE TABLE IF NOT EXISTS crs_usr (
|
CREATE TABLE IF NOT EXISTS crs_users (
|
||||||
CrsCod INT NOT NULL,
|
CrsCod INT NOT NULL,
|
||||||
UsrCod INT NOT NULL,
|
UsrCod INT NOT NULL,
|
||||||
Role TINYINT NOT NULL DEFAULT 0,
|
Role TINYINT NOT NULL DEFAULT 0,
|
||||||
|
|
66
swad_API.c
66
swad_API.c
|
@ -661,9 +661,12 @@ static bool API_GetSomeUsrDataFromUsrCod (struct UsrData *UsrDat,long CrsCod)
|
||||||
{
|
{
|
||||||
/* Get the role in the given course */
|
/* Get the role in the given course */
|
||||||
if (DB_QuerySELECT (&mysql_res,"can not get user's role",
|
if (DB_QuerySELECT (&mysql_res,"can not get user's role",
|
||||||
"SELECT Role FROM crs_usr"
|
"SELECT Role"
|
||||||
" WHERE CrsCod=%ld AND UsrCod=%ld",
|
" FROM crs_users"
|
||||||
CrsCod,UsrDat->UsrCod)) // User belongs to course
|
" WHERE CrsCod=%ld"
|
||||||
|
" AND UsrCod=%ld",
|
||||||
|
CrsCod,
|
||||||
|
UsrDat->UsrCod)) // User belongs to course
|
||||||
{
|
{
|
||||||
row = mysql_fetch_row (mysql_res);
|
row = mysql_fetch_row (mysql_res);
|
||||||
if (row[0])
|
if (row[0])
|
||||||
|
@ -693,7 +696,8 @@ static bool API_GetSomeUsrDataFromUsrCod (struct UsrData *UsrDat,long CrsCod)
|
||||||
/* Get the maximum role in any course */
|
/* Get the maximum role in any course */
|
||||||
if (DB_QuerySELECT (&mysql_res,"can not get user's role",
|
if (DB_QuerySELECT (&mysql_res,"can not get user's role",
|
||||||
"SELECT MAX(Role)"
|
"SELECT MAX(Role)"
|
||||||
" FROM crs_usr WHERE UsrCod=%ld",
|
" FROM crs_users"
|
||||||
|
" WHERE UsrCod=%ld",
|
||||||
UsrDat->UsrCod) == 1)
|
UsrDat->UsrCod) == 1)
|
||||||
{
|
{
|
||||||
row = mysql_fetch_row (mysql_res);
|
row = mysql_fetch_row (mysql_res);
|
||||||
|
@ -1375,11 +1379,11 @@ int swad__getCourses (struct soap *soap,
|
||||||
"SELECT crs_courses.CrsCod,"
|
"SELECT crs_courses.CrsCod,"
|
||||||
"crs_courses.ShortName,"
|
"crs_courses.ShortName,"
|
||||||
"crs_courses.FullName,"
|
"crs_courses.FullName,"
|
||||||
"crs_usr.Role"
|
"crs_users.Role"
|
||||||
" FROM crs_usr,"
|
" FROM crs_users,"
|
||||||
"crs_courses"
|
"crs_courses"
|
||||||
" WHERE crs_usr.UsrCod=%ld"
|
" WHERE crs_users.UsrCod=%ld"
|
||||||
" AND crs_usr.CrsCod=crs_courses.CrsCod"
|
" AND crs_users.CrsCod=crs_courses.CrsCod"
|
||||||
" ORDER BY crs_courses.FullName",
|
" ORDER BY crs_courses.FullName",
|
||||||
Gbl.Usrs.Me.UsrDat.UsrCod);
|
Gbl.Usrs.Me.UsrDat.UsrCod);
|
||||||
|
|
||||||
|
@ -3013,18 +3017,18 @@ int swad__getAttendanceUsers (struct soap *soap,
|
||||||
// Subquery: list of users in groups of this attendance event...
|
// Subquery: list of users in groups of this attendance event...
|
||||||
// ...who have no entry in attendance list of users
|
// ...who have no entry in attendance list of users
|
||||||
sprintf (SubQuery,"SELECT DISTINCT crs_grp_usr.UsrCod AS UsrCod,"
|
sprintf (SubQuery,"SELECT DISTINCT crs_grp_usr.UsrCod AS UsrCod,"
|
||||||
"'N' AS Present"
|
"'N' AS Present"
|
||||||
" FROM att_groups,"
|
" FROM att_groups,"
|
||||||
"crs_grp,"
|
"crs_grp,"
|
||||||
"crs_grp_types,"
|
"crs_grp_types,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"crs_grp_usr"
|
"crs_grp_usr"
|
||||||
" WHERE att_groups.AttCod=%ld"
|
" WHERE att_groups.AttCod=%ld"
|
||||||
" AND att_groups.GrpCod=crs_grp.GrpCod"
|
" AND att_groups.GrpCod=crs_grp.GrpCod"
|
||||||
" AND crs_grp.GrpTypCod=crs_grp_types.GrpTypCod"
|
" AND crs_grp.GrpTypCod=crs_grp_types.GrpTypCod"
|
||||||
" AND crs_grp_types.CrsCod=crs_usr.CrsCod"
|
" AND crs_grp_types.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.Role=%u"
|
" AND crs_users.Role=%u"
|
||||||
" AND crs_usr.UsrCod=crs_grp_usr.UsrCod"
|
" AND crs_users.UsrCod=crs_grp_usr.UsrCod"
|
||||||
" AND crs_grp_usr.GrpCod=att_groups.GrpCod"
|
" AND crs_grp_usr.GrpCod=att_groups.GrpCod"
|
||||||
" AND crs_grp_usr.UsrCod NOT IN"
|
" AND crs_grp_usr.UsrCod NOT IN"
|
||||||
" (SELECT UsrCod"
|
" (SELECT UsrCod"
|
||||||
|
@ -3037,14 +3041,14 @@ int swad__getAttendanceUsers (struct soap *soap,
|
||||||
// Event for the whole course
|
// Event for the whole course
|
||||||
// Subquery: list of users in the course of this attendance event...
|
// Subquery: list of users in the course of this attendance event...
|
||||||
// ...who have no entry in attendance list of users
|
// ...who have no entry in attendance list of users
|
||||||
sprintf (SubQuery,"SELECT crs_usr.UsrCod AS UsrCod," // row[0]
|
sprintf (SubQuery,"SELECT crs_users.UsrCod AS UsrCod," // row[0]
|
||||||
"'N' AS Present" // row[1]
|
"'N' AS Present" // row[1]
|
||||||
" FROM att_events,"
|
" FROM att_events,"
|
||||||
"crs_usr"
|
"crs_users"
|
||||||
" WHERE att_events.AttCod=%ld"
|
" WHERE att_events.AttCod=%ld"
|
||||||
" AND att_events.CrsCod=crs_usr.CrsCod"
|
" AND att_events.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.Role=%u"
|
" AND crs_users.Role=%u"
|
||||||
" AND crs_usr.UsrCod NOT IN"
|
" AND crs_users.UsrCod NOT IN"
|
||||||
" (SELECT UsrCod"
|
" (SELECT UsrCod"
|
||||||
" FROM att_users"
|
" FROM att_users"
|
||||||
" WHERE AttCod=%ld)",
|
" WHERE AttCod=%ld)",
|
||||||
|
@ -6143,19 +6147,19 @@ int swad__getLastLocation (struct soap *soap,
|
||||||
if (DB_QueryCOUNT ("can not get session data",
|
if (DB_QueryCOUNT ("can not get session data",
|
||||||
"SELECT COUNT(*) FROM "
|
"SELECT COUNT(*) FROM "
|
||||||
"(SELECT DISTINCT deg_degrees.CtrCod"
|
"(SELECT DISTINCT deg_degrees.CtrCod"
|
||||||
" FROM crs_usr,"
|
" FROM crs_users,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"deg_degrees"
|
"deg_degrees"
|
||||||
" WHERE crs_usr.UsrCod=%ld"
|
" WHERE crs_users.UsrCod=%ld"
|
||||||
" AND crs_usr.CrsCod=crs_courses.CrsCod"
|
" AND crs_users.CrsCod=crs_courses.CrsCod"
|
||||||
" AND crs_courses.DegCod=deg_degrees.DegCod) AS C1," // centers of my courses
|
" AND crs_courses.DegCod=deg_degrees.DegCod) AS C1," // centers of my courses
|
||||||
"(SELECT DISTINCT deg_degrees.CtrCod"
|
"(SELECT DISTINCT deg_degrees.CtrCod"
|
||||||
" FROM crs_usr,"
|
" FROM crs_users,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"deg_degrees"
|
"deg_degrees"
|
||||||
" WHERE crs_usr.UsrCod=%d"
|
" WHERE crs_users.UsrCod=%d"
|
||||||
" AND crs_usr.CrsCod=crs_courses.CrsCod"
|
" AND crs_users.CrsCod=crs_courses.CrsCod"
|
||||||
" AND crs_courses.DegCod=deg_degrees.DegCod) AS C2" // centers of user's courses
|
" AND crs_courses.DegCod=deg_degrees.DegCod) AS C2" // centers of user's courses
|
||||||
" WHERE C1.CtrCod=C2.CtrCod",
|
" WHERE C1.CtrCod=C2.CtrCod",
|
||||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||||
userCode))
|
userCode))
|
||||||
|
|
|
@ -1048,10 +1048,12 @@ void Acc_CompletelyEliminateAccount (struct UsrData *UsrDat,
|
||||||
|
|
||||||
/***** Remove user from the tables of courses and users *****/
|
/***** Remove user from the tables of courses and users *****/
|
||||||
DB_QueryDELETE ("can not remove a user from all courses",
|
DB_QueryDELETE ("can not remove a user from all courses",
|
||||||
"DELETE FROM crs_usr_last WHERE UsrCod=%ld",
|
"DELETE FROM crs_usr_last"
|
||||||
|
" WHERE UsrCod=%ld",
|
||||||
UsrDat->UsrCod);
|
UsrDat->UsrCod);
|
||||||
DB_QueryDELETE ("can not remove a user from all courses",
|
DB_QueryDELETE ("can not remove a user from all courses",
|
||||||
"DELETE FROM crs_usr WHERE UsrCod=%ld",
|
"DELETE FROM crs_users"
|
||||||
|
" WHERE UsrCod=%ld",
|
||||||
UsrDat->UsrCod);
|
UsrDat->UsrCod);
|
||||||
|
|
||||||
if (QuietOrVerbose == Cns_VERBOSE)
|
if (QuietOrVerbose == Cns_VERBOSE)
|
||||||
|
|
152
swad_agenda.c
152
swad_agenda.c
|
@ -1893,70 +1893,70 @@ unsigned Agd_GetNumUsrsWithEvents (Hie_Lvl_Level_t Scope)
|
||||||
case Hie_Lvl_CTY:
|
case Hie_Lvl_CTY:
|
||||||
DB_QuerySELECT (&mysql_res,"can not get number of users with events",
|
DB_QuerySELECT (&mysql_res,"can not get number of users with events",
|
||||||
"SELECT COUNT(DISTINCT agd_agendas.UsrCod)"
|
"SELECT COUNT(DISTINCT agd_agendas.UsrCod)"
|
||||||
" FROM ins_instits,"
|
" FROM ins_instits,"
|
||||||
"ctr_centers,"
|
"ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"agd_agendas"
|
"agd_agendas"
|
||||||
" WHERE ins_instits.CtyCod=%ld"
|
" WHERE ins_instits.CtyCod=%ld"
|
||||||
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.Status=0"
|
" AND crs_courses.Status=0"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=agd_agendas.UsrCod",
|
" AND crs_users.UsrCod=agd_agendas.UsrCod",
|
||||||
Gbl.Hierarchy.Cty.CtyCod);
|
Gbl.Hierarchy.Cty.CtyCod);
|
||||||
break;
|
break;
|
||||||
case Hie_Lvl_INS:
|
case Hie_Lvl_INS:
|
||||||
DB_QuerySELECT (&mysql_res,"can not get number of users with events",
|
DB_QuerySELECT (&mysql_res,"can not get number of users with events",
|
||||||
"SELECT COUNT(DISTINCT agd_agendas.UsrCod)"
|
"SELECT COUNT(DISTINCT agd_agendas.UsrCod)"
|
||||||
" FROM ctr_centers,"
|
" FROM ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"agd_agendas"
|
"agd_agendas"
|
||||||
" WHERE ctr_centers.InsCod=%ld"
|
" WHERE ctr_centers.InsCod=%ld"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.Status=0"
|
" AND crs_courses.Status=0"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=agd_agendas.UsrCod",
|
" AND crs_users.UsrCod=agd_agendas.UsrCod",
|
||||||
Gbl.Hierarchy.Ins.InsCod);
|
Gbl.Hierarchy.Ins.InsCod);
|
||||||
break;
|
break;
|
||||||
case Hie_Lvl_CTR:
|
case Hie_Lvl_CTR:
|
||||||
DB_QuerySELECT (&mysql_res,"can not get number of users with events",
|
DB_QuerySELECT (&mysql_res,"can not get number of users with events",
|
||||||
"SELECT COUNT(DISTINCT agd_agendas.UsrCod)"
|
"SELECT COUNT(DISTINCT agd_agendas.UsrCod)"
|
||||||
" FROM deg_degrees,"
|
" FROM deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"agd_agendas"
|
"agd_agendas"
|
||||||
" WHERE deg_degrees.CtrCod=%ld"
|
" WHERE deg_degrees.CtrCod=%ld"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.Status=0"
|
" AND crs_courses.Status=0"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=agd_agendas.UsrCod",
|
" AND crs_users.UsrCod=agd_agendas.UsrCod",
|
||||||
Gbl.Hierarchy.Ctr.CtrCod);
|
Gbl.Hierarchy.Ctr.CtrCod);
|
||||||
break;
|
break;
|
||||||
case Hie_Lvl_DEG:
|
case Hie_Lvl_DEG:
|
||||||
DB_QuerySELECT (&mysql_res,"can not get number of users with events",
|
DB_QuerySELECT (&mysql_res,"can not get number of users with events",
|
||||||
"SELECT COUNT(DISTINCT agd_agendas.UsrCod)"
|
"SELECT COUNT(DISTINCT agd_agendas.UsrCod)"
|
||||||
" FROM crs_courses,"
|
" FROM crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"agd_agendas"
|
"agd_agendas"
|
||||||
" WHERE crs_courses.DegCod=%ld"
|
" WHERE crs_courses.DegCod=%ld"
|
||||||
" AND crs_courses.Status=0"
|
" AND crs_courses.Status=0"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=agd_agendas.UsrCod",
|
" AND crs_users.UsrCod=agd_agendas.UsrCod",
|
||||||
Gbl.Hierarchy.Deg.DegCod);
|
Gbl.Hierarchy.Deg.DegCod);
|
||||||
break;
|
break;
|
||||||
case Hie_Lvl_CRS:
|
case Hie_Lvl_CRS:
|
||||||
DB_QuerySELECT (&mysql_res,"can not get number of users with events",
|
DB_QuerySELECT (&mysql_res,"can not get number of users with events",
|
||||||
"SELECT COUNT(DISTINCT agd_agendas.UsrCod)"
|
"SELECT COUNT(DISTINCT agd_agendas.UsrCod)"
|
||||||
" FROM crs_usr,"
|
" FROM crs_users,"
|
||||||
"agd_agendas"
|
"agd_agendas"
|
||||||
" WHERE crs_usr.CrsCod=%ld"
|
" WHERE crs_users.CrsCod=%ld"
|
||||||
" AND crs_usr.UsrCod=agd_agendas.UsrCod",
|
" AND crs_users.UsrCod=agd_agendas.UsrCod",
|
||||||
Gbl.Hierarchy.Crs.CrsCod);
|
Gbl.Hierarchy.Crs.CrsCod);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -1998,66 +1998,66 @@ unsigned Agd_GetNumEvents (Hie_Lvl_Level_t Scope)
|
||||||
case Hie_Lvl_CTY:
|
case Hie_Lvl_CTY:
|
||||||
DB_QuerySELECT (&mysql_res,"can not get number of events",
|
DB_QuerySELECT (&mysql_res,"can not get number of events",
|
||||||
"SELECT COUNT(*)"
|
"SELECT COUNT(*)"
|
||||||
" FROM ins_instits,"
|
" FROM ins_instits,"
|
||||||
"ctr_centers,"
|
"ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"agd_agendas"
|
"agd_agendas"
|
||||||
" WHERE ins_instits.CtyCod=%ld"
|
" WHERE ins_instits.CtyCod=%ld"
|
||||||
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=agd_agendas.UsrCod",
|
" AND crs_users.UsrCod=agd_agendas.UsrCod",
|
||||||
Gbl.Hierarchy.Cty.CtyCod);
|
Gbl.Hierarchy.Cty.CtyCod);
|
||||||
break;
|
break;
|
||||||
case Hie_Lvl_INS:
|
case Hie_Lvl_INS:
|
||||||
DB_QuerySELECT (&mysql_res,"can not get number of events",
|
DB_QuerySELECT (&mysql_res,"can not get number of events",
|
||||||
"SELECT COUNT(*)"
|
"SELECT COUNT(*)"
|
||||||
" FROM ctr_centers,"
|
" FROM ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"agd_agendas"
|
"agd_agendas"
|
||||||
" WHERE ctr_centers.InsCod=%ld"
|
" WHERE ctr_centers.InsCod=%ld"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=agd_agendas.UsrCod",
|
" AND crs_users.UsrCod=agd_agendas.UsrCod",
|
||||||
Gbl.Hierarchy.Ins.InsCod);
|
Gbl.Hierarchy.Ins.InsCod);
|
||||||
break;
|
break;
|
||||||
case Hie_Lvl_CTR:
|
case Hie_Lvl_CTR:
|
||||||
DB_QuerySELECT (&mysql_res,"can not get number of events",
|
DB_QuerySELECT (&mysql_res,"can not get number of events",
|
||||||
"SELECT COUNT(*)"
|
"SELECT COUNT(*)"
|
||||||
" FROM deg_degrees,"
|
" FROM deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"agd_agendas"
|
"agd_agendas"
|
||||||
" WHERE deg_degrees.CtrCod=%ld"
|
" WHERE deg_degrees.CtrCod=%ld"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=agd_agendas.UsrCod",
|
" AND crs_users.UsrCod=agd_agendas.UsrCod",
|
||||||
Gbl.Hierarchy.Ctr.CtrCod);
|
Gbl.Hierarchy.Ctr.CtrCod);
|
||||||
break;
|
break;
|
||||||
case Hie_Lvl_DEG:
|
case Hie_Lvl_DEG:
|
||||||
DB_QuerySELECT (&mysql_res,"can not get number of events",
|
DB_QuerySELECT (&mysql_res,"can not get number of events",
|
||||||
"SELECT COUNT(*)"
|
"SELECT COUNT(*)"
|
||||||
" FROM crs_courses,"
|
" FROM crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"agd_agendas"
|
"agd_agendas"
|
||||||
" WHERE crs_courses.DegCod=%ld"
|
" WHERE crs_courses.DegCod=%ld"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=agd_agendas.UsrCod",
|
" AND crs_users.UsrCod=agd_agendas.UsrCod",
|
||||||
Gbl.Hierarchy.Deg.DegCod);
|
Gbl.Hierarchy.Deg.DegCod);
|
||||||
break;
|
break;
|
||||||
case Hie_Lvl_CRS:
|
case Hie_Lvl_CRS:
|
||||||
DB_QuerySELECT (&mysql_res,"can not get number of events",
|
DB_QuerySELECT (&mysql_res,"can not get number of events",
|
||||||
"SELECT COUNT(*)"
|
"SELECT COUNT(*)"
|
||||||
" FROM crs_usr,"
|
" FROM crs_users,"
|
||||||
"agd_agendas"
|
"agd_agendas"
|
||||||
" WHERE crs_usr.CrsCod=%ld"
|
" WHERE crs_users.CrsCod=%ld"
|
||||||
" AND crs_usr.UsrCod=agd_agendas.UsrCod",
|
" AND crs_users.UsrCod=agd_agendas.UsrCod",
|
||||||
Gbl.Hierarchy.Crs.CrsCod);
|
Gbl.Hierarchy.Crs.CrsCod);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -2202,16 +2202,17 @@ unsigned Ctr_GetCachedNumCtrsWithUsrs (Rol_Role_t Role,const char *SubQuery,
|
||||||
NumCtrsWithUsrs = (unsigned)
|
NumCtrsWithUsrs = (unsigned)
|
||||||
DB_QueryCOUNT ("can not get number of centers with users",
|
DB_QueryCOUNT ("can not get number of centers with users",
|
||||||
"SELECT COUNT(DISTINCT ctr_centers.CtrCod)"
|
"SELECT COUNT(DISTINCT ctr_centers.CtrCod)"
|
||||||
" FROM ins_instits,"
|
" FROM ins_instits,"
|
||||||
"ctr_centers,"
|
"ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr"
|
"crs_users"
|
||||||
" WHERE %sinstitutions.InsCod=ctr_centers.InsCod"
|
" WHERE %s"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
"institutions.InsCod=ctr_centers.InsCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_usr.Role=%u",
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
|
" AND crs_users.Role=%u",
|
||||||
SubQuery,(unsigned) Role);
|
SubQuery,(unsigned) Role);
|
||||||
FigCch_UpdateFigureIntoCache (FigureCtrs[Role],Scope,Cod,
|
FigCch_UpdateFigureIntoCache (FigureCtrs[Role],Scope,Cod,
|
||||||
FigCch_UNSIGNED,&NumCtrsWithUsrs);
|
FigCch_UNSIGNED,&NumCtrsWithUsrs);
|
||||||
|
|
|
@ -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.
|
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.31 (2021-03-23)"
|
#define Log_PLATFORM_VERSION "SWAD 20.51.32 (2021-03-23)"
|
||||||
#define CSS_FILE "swad20.45.css"
|
#define CSS_FILE "swad20.45.css"
|
||||||
#define JS_FILE "swad20.6.2.js"
|
#define JS_FILE "swad20.6.2.js"
|
||||||
/*
|
/*
|
||||||
TODO: Rename CENTRE to CENTER in help wiki.
|
TODO: Rename CENTRE to CENTER in help wiki.
|
||||||
TODO: Rename ASSESSMENT.Announcements to ASSESSMENT.Calls_for_exams
|
TODO: Rename ASSESSMENT.Announcements to ASSESSMENT.Calls_for_exams
|
||||||
|
|
||||||
|
Version 20.51.32: Mar 23, 2021 Course users database table renamed. (308512 lines)
|
||||||
|
1 change necessary in database:
|
||||||
|
RENAME TABLE crs_usr TO crs_users;
|
||||||
|
DROP TABLE IF EXISTS crs_usr_copy;
|
||||||
|
|
||||||
Version 20.51.31: Mar 23, 2021 Attendance users database table renamed. (308312 lines)
|
Version 20.51.31: Mar 23, 2021 Attendance users database table renamed. (308312 lines)
|
||||||
1 change necessary in database:
|
1 change necessary in database:
|
||||||
RENAME TABLE att_usr TO att_users;
|
RENAME TABLE att_usr TO att_users;
|
||||||
|
|
146
swad_connected.c
146
swad_connected.c
|
@ -512,15 +512,15 @@ static void Con_GetNumConnectedUsrsWithARoleBelongingCurrentLocation (Rol_Role_t
|
||||||
"ctr_centers,"
|
"ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_connected,"
|
"usr_connected,"
|
||||||
"usr_data"
|
"usr_data"
|
||||||
" WHERE ins_instits.CtyCod=%ld"
|
" WHERE ins_instits.CtyCod=%ld"
|
||||||
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=usr_connected.UsrCod"
|
" AND crs_users.UsrCod=usr_connected.UsrCod"
|
||||||
" AND usr_connected.UsrCod=usr_data.UsrCod",
|
" AND usr_connected.UsrCod=usr_data.UsrCod",
|
||||||
Gbl.Hierarchy.Cty.CtyCod);
|
Gbl.Hierarchy.Cty.CtyCod);
|
||||||
break;
|
break;
|
||||||
|
@ -534,14 +534,14 @@ static void Con_GetNumConnectedUsrsWithARoleBelongingCurrentLocation (Rol_Role_t
|
||||||
" FROM ctr_centers,"
|
" FROM ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_connected,"
|
"usr_connected,"
|
||||||
"usr_data"
|
"usr_data"
|
||||||
" WHERE ctr_centers.InsCod=%ld"
|
" WHERE ctr_centers.InsCod=%ld"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=usr_connected.UsrCod"
|
" AND crs_users.UsrCod=usr_connected.UsrCod"
|
||||||
" AND usr_connected.UsrCod=usr_data.UsrCod",
|
" AND usr_connected.UsrCod=usr_data.UsrCod",
|
||||||
Gbl.Hierarchy.Ins.InsCod);
|
Gbl.Hierarchy.Ins.InsCod);
|
||||||
break;
|
break;
|
||||||
|
@ -554,13 +554,13 @@ static void Con_GetNumConnectedUsrsWithARoleBelongingCurrentLocation (Rol_Role_t
|
||||||
"MIN(usr_data.Sex)" // row[2]
|
"MIN(usr_data.Sex)" // row[2]
|
||||||
" FROM deg_degrees,"
|
" FROM deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_connected,"
|
"usr_connected,"
|
||||||
"usr_data"
|
"usr_data"
|
||||||
" WHERE deg_degrees.CtrCod=%ld"
|
" WHERE deg_degrees.CtrCod=%ld"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=usr_connected.UsrCod"
|
" AND crs_users.UsrCod=usr_connected.UsrCod"
|
||||||
" AND usr_connected.UsrCod=usr_data.UsrCod",
|
" AND usr_connected.UsrCod=usr_data.UsrCod",
|
||||||
Gbl.Hierarchy.Ctr.CtrCod);
|
Gbl.Hierarchy.Ctr.CtrCod);
|
||||||
break;
|
break;
|
||||||
|
@ -572,12 +572,12 @@ static void Con_GetNumConnectedUsrsWithARoleBelongingCurrentLocation (Rol_Role_t
|
||||||
"COUNT(DISTINCT usr_data.Sex)," // row[1]
|
"COUNT(DISTINCT usr_data.Sex)," // row[1]
|
||||||
"MIN(usr_data.Sex)" // row[2]
|
"MIN(usr_data.Sex)" // row[2]
|
||||||
" FROM crs_courses,"
|
" FROM crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_connected,"
|
"usr_connected,"
|
||||||
"usr_data"
|
"usr_data"
|
||||||
" WHERE crs_courses.DegCod=%ld"
|
" WHERE crs_courses.DegCod=%ld"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=usr_connected.UsrCod"
|
" AND crs_users.UsrCod=usr_connected.UsrCod"
|
||||||
" AND usr_connected.UsrCod=usr_data.UsrCod",
|
" AND usr_connected.UsrCod=usr_data.UsrCod",
|
||||||
Gbl.Hierarchy.Deg.DegCod);
|
Gbl.Hierarchy.Deg.DegCod);
|
||||||
break;
|
break;
|
||||||
|
@ -588,11 +588,11 @@ static void Con_GetNumConnectedUsrsWithARoleBelongingCurrentLocation (Rol_Role_t
|
||||||
"SELECT COUNT(DISTINCT usr_connected.UsrCod)," // row[0]
|
"SELECT COUNT(DISTINCT usr_connected.UsrCod)," // row[0]
|
||||||
"COUNT(DISTINCT usr_data.Sex)," // row[1]
|
"COUNT(DISTINCT usr_data.Sex)," // row[1]
|
||||||
"MIN(usr_data.Sex)" // row[2]
|
"MIN(usr_data.Sex)" // row[2]
|
||||||
" FROM crs_usr,"
|
" FROM crs_users,"
|
||||||
"usr_connected,"
|
"usr_connected,"
|
||||||
"usr_data"
|
"usr_data"
|
||||||
" WHERE crs_usr.CrsCod=%ld"
|
" WHERE crs_users.CrsCod=%ld"
|
||||||
" AND crs_usr.UsrCod=usr_connected.UsrCod"
|
" AND crs_users.UsrCod=usr_connected.UsrCod"
|
||||||
" AND usr_connected.UsrCod=usr_data.UsrCod",
|
" AND usr_connected.UsrCod=usr_data.UsrCod",
|
||||||
Gbl.Hierarchy.Crs.CrsCod);
|
Gbl.Hierarchy.Crs.CrsCod);
|
||||||
break;
|
break;
|
||||||
|
@ -610,7 +610,9 @@ static void Con_GetNumConnectedUsrsWithARoleBelongingCurrentLocation (Rol_Role_t
|
||||||
"MIN(usr_data.Sex)" // row[2]
|
"MIN(usr_data.Sex)" // row[2]
|
||||||
" FROM usr_connected,"
|
" FROM usr_connected,"
|
||||||
"usr_data"
|
"usr_data"
|
||||||
" WHERE usr_connected.UsrCod NOT IN (SELECT UsrCod FROM crs_usr)"
|
" WHERE usr_connected.UsrCod NOT IN"
|
||||||
|
" (SELECT UsrCod"
|
||||||
|
" FROM crs_users)"
|
||||||
" AND usr_connected.UsrCod=usr_data.UsrCod");
|
" AND usr_connected.UsrCod=usr_data.UsrCod");
|
||||||
break;
|
break;
|
||||||
case Rol_STD:
|
case Rol_STD:
|
||||||
|
@ -626,10 +628,10 @@ static void Con_GetNumConnectedUsrsWithARoleBelongingCurrentLocation (Rol_Role_t
|
||||||
"COUNT(DISTINCT usr_data.Sex)," // row[1]
|
"COUNT(DISTINCT usr_data.Sex)," // row[1]
|
||||||
"MIN(usr_data.Sex)" // row[2]
|
"MIN(usr_data.Sex)" // row[2]
|
||||||
" FROM usr_connected,"
|
" FROM usr_connected,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_data"
|
"usr_data"
|
||||||
" WHERE usr_connected.UsrCod=crs_usr.UsrCod"
|
" WHERE usr_connected.UsrCod=crs_users.UsrCod"
|
||||||
" AND crs_usr.Role=%u"
|
" AND crs_users.Role=%u"
|
||||||
" AND usr_connected.UsrCod=usr_data.UsrCod",
|
" AND usr_connected.UsrCod=usr_data.UsrCod",
|
||||||
(unsigned) Role);
|
(unsigned) Role);
|
||||||
break;
|
break;
|
||||||
|
@ -644,16 +646,16 @@ static void Con_GetNumConnectedUsrsWithARoleBelongingCurrentLocation (Rol_Role_t
|
||||||
"ctr_centers,"
|
"ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_connected,"
|
"usr_connected,"
|
||||||
"usr_data"
|
"usr_data"
|
||||||
" WHERE ins_instits.CtyCod=%ld"
|
" WHERE ins_instits.CtyCod=%ld"
|
||||||
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.Role=%u"
|
" AND crs_users.Role=%u"
|
||||||
" AND crs_usr.UsrCod=usr_connected.UsrCod"
|
" AND crs_users.UsrCod=usr_connected.UsrCod"
|
||||||
" AND usr_connected.UsrCod=usr_data.UsrCod",
|
" AND usr_connected.UsrCod=usr_data.UsrCod",
|
||||||
Gbl.Hierarchy.Cty.CtyCod,
|
Gbl.Hierarchy.Cty.CtyCod,
|
||||||
(unsigned) Role);
|
(unsigned) Role);
|
||||||
|
@ -668,15 +670,15 @@ static void Con_GetNumConnectedUsrsWithARoleBelongingCurrentLocation (Rol_Role_t
|
||||||
" FROM ctr_centers,"
|
" FROM ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_connected,"
|
"usr_connected,"
|
||||||
"usr_data"
|
"usr_data"
|
||||||
" WHERE ctr_centers.InsCod=%ld"
|
" WHERE ctr_centers.InsCod=%ld"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.Role=%u"
|
" AND crs_users.Role=%u"
|
||||||
" AND crs_usr.UsrCod=usr_connected.UsrCod"
|
" AND crs_users.UsrCod=usr_connected.UsrCod"
|
||||||
" AND usr_connected.UsrCod=usr_data.UsrCod",
|
" AND usr_connected.UsrCod=usr_data.UsrCod",
|
||||||
Gbl.Hierarchy.Ins.InsCod,
|
Gbl.Hierarchy.Ins.InsCod,
|
||||||
(unsigned) Role);
|
(unsigned) Role);
|
||||||
|
@ -690,14 +692,14 @@ static void Con_GetNumConnectedUsrsWithARoleBelongingCurrentLocation (Rol_Role_t
|
||||||
"MIN(usr_data.Sex)" // row[2]
|
"MIN(usr_data.Sex)" // row[2]
|
||||||
" FROM deg_degrees,"
|
" FROM deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_connected,"
|
"usr_connected,"
|
||||||
"usr_data"
|
"usr_data"
|
||||||
" WHERE deg_degrees.CtrCod=%ld"
|
" WHERE deg_degrees.CtrCod=%ld"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.Role=%u"
|
" AND crs_users.Role=%u"
|
||||||
" AND crs_usr.UsrCod=usr_connected.UsrCod"
|
" AND crs_users.UsrCod=usr_connected.UsrCod"
|
||||||
" AND usr_connected.UsrCod=usr_data.UsrCod",
|
" AND usr_connected.UsrCod=usr_data.UsrCod",
|
||||||
Gbl.Hierarchy.Ctr.CtrCod,
|
Gbl.Hierarchy.Ctr.CtrCod,
|
||||||
(unsigned) Role);
|
(unsigned) Role);
|
||||||
|
@ -710,13 +712,13 @@ static void Con_GetNumConnectedUsrsWithARoleBelongingCurrentLocation (Rol_Role_t
|
||||||
"COUNT(DISTINCT usr_data.Sex)," // row[1]
|
"COUNT(DISTINCT usr_data.Sex)," // row[1]
|
||||||
"MIN(usr_data.Sex)" // row[2]
|
"MIN(usr_data.Sex)" // row[2]
|
||||||
" FROM crs_courses,"
|
" FROM crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_connected,"
|
"usr_connected,"
|
||||||
"usr_data"
|
"usr_data"
|
||||||
" WHERE crs_courses.DegCod=%ld"
|
" WHERE crs_courses.DegCod=%ld"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.Role=%u"
|
" AND crs_users.Role=%u"
|
||||||
" AND crs_usr.UsrCod=usr_connected.UsrCod"
|
" AND crs_users.UsrCod=usr_connected.UsrCod"
|
||||||
" AND usr_connected.UsrCod=usr_data.UsrCod",
|
" AND usr_connected.UsrCod=usr_data.UsrCod",
|
||||||
Gbl.Hierarchy.Deg.DegCod,
|
Gbl.Hierarchy.Deg.DegCod,
|
||||||
(unsigned) Role);
|
(unsigned) Role);
|
||||||
|
@ -728,12 +730,12 @@ static void Con_GetNumConnectedUsrsWithARoleBelongingCurrentLocation (Rol_Role_t
|
||||||
"SELECT COUNT(DISTINCT usr_connected.UsrCod)," // row[0]
|
"SELECT COUNT(DISTINCT usr_connected.UsrCod)," // row[0]
|
||||||
"COUNT(DISTINCT usr_data.Sex)," // row[1]
|
"COUNT(DISTINCT usr_data.Sex)," // row[1]
|
||||||
"MIN(usr_data.Sex)" // row[2]
|
"MIN(usr_data.Sex)" // row[2]
|
||||||
" FROM crs_usr,"
|
" FROM crs_users,"
|
||||||
"usr_connected,"
|
"usr_connected,"
|
||||||
"usr_data"
|
"usr_data"
|
||||||
" WHERE crs_usr.CrsCod=%ld"
|
" WHERE crs_users.CrsCod=%ld"
|
||||||
" AND crs_usr.Role=%u"
|
" AND crs_users.Role=%u"
|
||||||
" AND crs_usr.UsrCod=usr_connected.UsrCod"
|
" AND crs_users.UsrCod=usr_connected.UsrCod"
|
||||||
" AND usr_connected.UsrCod=usr_data.UsrCod",
|
" AND usr_connected.UsrCod=usr_data.UsrCod",
|
||||||
Gbl.Hierarchy.Crs.CrsCod,
|
Gbl.Hierarchy.Crs.CrsCod,
|
||||||
(unsigned) Role);
|
(unsigned) Role);
|
||||||
|
@ -788,14 +790,14 @@ static void Con_ComputeConnectedUsrsWithARoleCurrentCrsOneByOne (Rol_Role_t Role
|
||||||
/***** Get connected users who belong to current course from database *****/
|
/***** Get connected users who belong to current course from database *****/
|
||||||
NumRows = DB_QuerySELECT (&mysql_res,"can not get list of connected users"
|
NumRows = DB_QuerySELECT (&mysql_res,"can not get list of connected users"
|
||||||
" who belong to this course",
|
" who belong to this course",
|
||||||
"SELECT usr_connected.UsrCod,"
|
"SELECT usr_connected.UsrCod," // row[0]
|
||||||
"usr_connected.LastCrsCod,"
|
"usr_connected.LastCrsCod," // row[1]
|
||||||
"UNIX_TIMESTAMP()-UNIX_TIMESTAMP(usr_connected.LastTime) AS Dif"
|
"UNIX_TIMESTAMP()-UNIX_TIMESTAMP(usr_connected.LastTime) AS Dif" // row[2]
|
||||||
" FROM crs_usr,"
|
" FROM crs_users,"
|
||||||
"usr_connected"
|
"usr_connected"
|
||||||
" WHERE crs_usr.CrsCod=%ld"
|
" WHERE crs_users.CrsCod=%ld"
|
||||||
" AND crs_usr.Role=%u"
|
" AND crs_users.Role=%u"
|
||||||
" AND crs_usr.UsrCod=usr_connected.UsrCod"
|
" AND crs_users.UsrCod=usr_connected.UsrCod"
|
||||||
" ORDER BY Dif",
|
" ORDER BY Dif",
|
||||||
Gbl.Hierarchy.Crs.CrsCod,
|
Gbl.Hierarchy.Crs.CrsCod,
|
||||||
(unsigned) Role);
|
(unsigned) Role);
|
||||||
|
@ -969,8 +971,10 @@ static void Con_ShowConnectedUsrsCurrentLocationOneByOneOnMainZone (Rol_Role_t R
|
||||||
"LastCrsCod," // row[1]
|
"LastCrsCod," // row[1]
|
||||||
"UNIX_TIMESTAMP()-"
|
"UNIX_TIMESTAMP()-"
|
||||||
"UNIX_TIMESTAMP(LastTime) AS Dif" // row[2]
|
"UNIX_TIMESTAMP(LastTime) AS Dif" // row[2]
|
||||||
" FROM usr_connected"
|
" FROM usr_connected"
|
||||||
" WHERE UsrCod NOT IN (SELECT UsrCod FROM crs_usr)"
|
" WHERE UsrCod NOT IN"
|
||||||
|
" (SELECT UsrCod"
|
||||||
|
" FROM crs_users)"
|
||||||
" ORDER BY Dif");
|
" ORDER BY Dif");
|
||||||
break;
|
break;
|
||||||
case Rol_STD:
|
case Rol_STD:
|
||||||
|
@ -988,9 +992,9 @@ static void Con_ShowConnectedUsrsCurrentLocationOneByOneOnMainZone (Rol_Role_t R
|
||||||
"UNIX_TIMESTAMP()-"
|
"UNIX_TIMESTAMP()-"
|
||||||
"UNIX_TIMESTAMP(usr_connected.LastTime) AS Dif" // row[2]
|
"UNIX_TIMESTAMP(usr_connected.LastTime) AS Dif" // row[2]
|
||||||
" FROM usr_connected,"
|
" FROM usr_connected,"
|
||||||
"crs_usr"
|
"crs_users"
|
||||||
" WHERE usr_connected.UsrCod=crs_usr.UsrCod"
|
" WHERE usr_connected.UsrCod=crs_users.UsrCod"
|
||||||
" AND crs_usr.Role=%u"
|
" AND crs_users.Role=%u"
|
||||||
" ORDER BY Dif",
|
" ORDER BY Dif",
|
||||||
(unsigned) Role);
|
(unsigned) Role);
|
||||||
break;
|
break;
|
||||||
|
@ -1007,15 +1011,15 @@ static void Con_ShowConnectedUsrsCurrentLocationOneByOneOnMainZone (Rol_Role_t R
|
||||||
"ctr_centers,"
|
"ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_connected"
|
"usr_connected"
|
||||||
" WHERE ins_instits.CtyCod=%ld"
|
" WHERE ins_instits.CtyCod=%ld"
|
||||||
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.Role=%u"
|
" AND crs_users.Role=%u"
|
||||||
" AND crs_usr.UsrCod=usr_connected.UsrCod"
|
" AND crs_users.UsrCod=usr_connected.UsrCod"
|
||||||
" ORDER BY Dif",
|
" ORDER BY Dif",
|
||||||
Gbl.Hierarchy.Cty.CtyCod,
|
Gbl.Hierarchy.Cty.CtyCod,
|
||||||
(unsigned) Role);
|
(unsigned) Role);
|
||||||
|
@ -1032,14 +1036,14 @@ static void Con_ShowConnectedUsrsCurrentLocationOneByOneOnMainZone (Rol_Role_t R
|
||||||
" FROM ctr_centers,"
|
" FROM ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_connected"
|
"usr_connected"
|
||||||
" WHERE ctr_centers.InsCod=%ld"
|
" WHERE ctr_centers.InsCod=%ld"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.Role=%u"
|
" AND crs_users.Role=%u"
|
||||||
" AND crs_usr.UsrCod=usr_connected.UsrCod"
|
" AND crs_users.UsrCod=usr_connected.UsrCod"
|
||||||
" ORDER BY Dif",
|
" ORDER BY Dif",
|
||||||
Gbl.Hierarchy.Ins.InsCod,
|
Gbl.Hierarchy.Ins.InsCod,
|
||||||
(unsigned) Role);
|
(unsigned) Role);
|
||||||
|
@ -1055,13 +1059,13 @@ static void Con_ShowConnectedUsrsCurrentLocationOneByOneOnMainZone (Rol_Role_t R
|
||||||
"UNIX_TIMESTAMP(usr_connected.LastTime) AS Dif" // row[2]
|
"UNIX_TIMESTAMP(usr_connected.LastTime) AS Dif" // row[2]
|
||||||
" FROM deg_degrees,"
|
" FROM deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_connected"
|
"usr_connected"
|
||||||
" WHERE deg_degrees.CtrCod=%ld"
|
" WHERE deg_degrees.CtrCod=%ld"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.Role=%u"
|
" AND crs_users.Role=%u"
|
||||||
" AND crs_usr.UsrCod=usr_connected.UsrCod"
|
" AND crs_users.UsrCod=usr_connected.UsrCod"
|
||||||
" ORDER BY Dif",
|
" ORDER BY Dif",
|
||||||
Gbl.Hierarchy.Ctr.CtrCod,
|
Gbl.Hierarchy.Ctr.CtrCod,
|
||||||
(unsigned) Role);
|
(unsigned) Role);
|
||||||
|
@ -1076,12 +1080,12 @@ static void Con_ShowConnectedUsrsCurrentLocationOneByOneOnMainZone (Rol_Role_t R
|
||||||
"UNIX_TIMESTAMP()-"
|
"UNIX_TIMESTAMP()-"
|
||||||
"UNIX_TIMESTAMP(usr_connected.LastTime) AS Dif" // row[2]
|
"UNIX_TIMESTAMP(usr_connected.LastTime) AS Dif" // row[2]
|
||||||
" FROM crs_courses,"
|
" FROM crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_connected"
|
"usr_connected"
|
||||||
" WHERE crs_courses.DegCod=%ld"
|
" WHERE crs_courses.DegCod=%ld"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.Role=%u"
|
" AND crs_users.Role=%u"
|
||||||
" AND crs_usr.UsrCod=usr_connected.UsrCod"
|
" AND crs_users.UsrCod=usr_connected.UsrCod"
|
||||||
" ORDER BY Dif",
|
" ORDER BY Dif",
|
||||||
Gbl.Hierarchy.Deg.DegCod,
|
Gbl.Hierarchy.Deg.DegCod,
|
||||||
(unsigned) Role);
|
(unsigned) Role);
|
||||||
|
@ -1094,11 +1098,11 @@ static void Con_ShowConnectedUsrsCurrentLocationOneByOneOnMainZone (Rol_Role_t R
|
||||||
"usr_connected.LastCrsCod," // row[1]
|
"usr_connected.LastCrsCod," // row[1]
|
||||||
"UNIX_TIMESTAMP()-"
|
"UNIX_TIMESTAMP()-"
|
||||||
"UNIX_TIMESTAMP(usr_connected.LastTime) AS Dif" // row[2]
|
"UNIX_TIMESTAMP(usr_connected.LastTime) AS Dif" // row[2]
|
||||||
" FROM crs_usr,"
|
" FROM crs_users,"
|
||||||
"usr_connected"
|
"usr_connected"
|
||||||
" WHERE crs_usr.CrsCod=%ld"
|
" WHERE crs_users.CrsCod=%ld"
|
||||||
" AND crs_usr.Role=%u"
|
" AND crs_users.Role=%u"
|
||||||
" AND crs_usr.UsrCod=usr_connected.UsrCod"
|
" AND crs_users.UsrCod=usr_connected.UsrCod"
|
||||||
" ORDER BY Dif",
|
" ORDER BY Dif",
|
||||||
Gbl.Hierarchy.Crs.CrsCod,
|
Gbl.Hierarchy.Crs.CrsCod,
|
||||||
(unsigned) Role);
|
(unsigned) Role);
|
||||||
|
|
|
@ -2065,13 +2065,13 @@ unsigned Cty_GetCachedNumCtysWithUsrs (Rol_Role_t Role,const char *SubQuery,
|
||||||
"ctr_centers,"
|
"ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr"
|
"crs_users"
|
||||||
" WHERE %scty_countrs.CtyCod=ins_instits.CtyCod"
|
" WHERE %scty_countrs.CtyCod=ins_instits.CtyCod"
|
||||||
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.Role=%u",
|
" AND crs_users.Role=%u",
|
||||||
SubQuery,(unsigned) Role);
|
SubQuery,(unsigned) Role);
|
||||||
FigCch_UpdateFigureIntoCache (FigureCtys[Role],Scope,Cod,
|
FigCch_UpdateFigureIntoCache (FigureCtys[Role],Scope,Cod,
|
||||||
FigCch_UNSIGNED,&NumCtysWithUsrs);
|
FigCch_UNSIGNED,&NumCtysWithUsrs);
|
||||||
|
|
|
@ -642,17 +642,19 @@ unsigned Crs_GetCachedNumCrssWithUsrs (Rol_Role_t Role,const char *SubQuery,
|
||||||
NumCrssWithUsrs = (unsigned)
|
NumCrssWithUsrs = (unsigned)
|
||||||
DB_QueryCOUNT ("can not get number of courses with users",
|
DB_QueryCOUNT ("can not get number of courses with users",
|
||||||
"SELECT COUNT(DISTINCT crs_courses.CrsCod)"
|
"SELECT COUNT(DISTINCT crs_courses.CrsCod)"
|
||||||
" FROM ins_instits,"
|
" FROM ins_instits,"
|
||||||
"ctr_centers,"
|
"ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr"
|
"crs_users"
|
||||||
" WHERE %sinstitutions.InsCod=ctr_centers.InsCod"
|
" WHERE %s"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
"institutions.InsCod=ctr_centers.InsCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_usr.Role=%u",
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
SubQuery,(unsigned) Role);
|
" AND crs_users.Role=%u",
|
||||||
|
SubQuery,
|
||||||
|
(unsigned) Role);
|
||||||
FigCch_UpdateFigureIntoCache (FigureCrss[Role],Scope,Cod,
|
FigCch_UpdateFigureIntoCache (FigureCrss[Role],Scope,Cod,
|
||||||
FigCch_UNSIGNED,&NumCrssWithUsrs);
|
FigCch_UNSIGNED,&NumCrssWithUsrs);
|
||||||
}
|
}
|
||||||
|
@ -2025,36 +2027,43 @@ static void Crs_EmptyCourseCompletely (long CrsCod)
|
||||||
/* Remove all the users in groups in the course */
|
/* Remove all the users in groups in the course */
|
||||||
DB_QueryDELETE ("can not remove users from groups of a course",
|
DB_QueryDELETE ("can not remove users from groups of a course",
|
||||||
"DELETE FROM crs_grp_usr"
|
"DELETE FROM crs_grp_usr"
|
||||||
" USING crs_grp_types,crs_grp,crs_grp_usr"
|
" USING crs_grp_types,"
|
||||||
|
"crs_grp,"
|
||||||
|
"crs_grp_usr"
|
||||||
" WHERE crs_grp_types.CrsCod=%ld"
|
" WHERE crs_grp_types.CrsCod=%ld"
|
||||||
" AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod"
|
" AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod"
|
||||||
" AND crs_grp.GrpCod=crs_grp_usr.GrpCod",
|
" AND crs_grp.GrpCod=crs_grp_usr.GrpCod",
|
||||||
CrsCod);
|
CrsCod);
|
||||||
|
|
||||||
/* Remove all the groups in the course */
|
/* Remove all the groups in the course */
|
||||||
DB_QueryDELETE ("can not remove groups of a course",
|
DB_QueryDELETE ("can not remove groups of a course",
|
||||||
"DELETE FROM crs_grp"
|
"DELETE FROM crs_grp"
|
||||||
" USING crs_grp_types,crs_grp"
|
" USING crs_grp_types,"
|
||||||
|
"crs_grp"
|
||||||
" WHERE crs_grp_types.CrsCod=%ld"
|
" WHERE crs_grp_types.CrsCod=%ld"
|
||||||
" AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod",
|
" AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod",
|
||||||
CrsCod);
|
CrsCod);
|
||||||
|
|
||||||
/* Remove all the group types in the course */
|
/* Remove all the group types in the course */
|
||||||
DB_QueryDELETE ("can not remove types of group of a course",
|
DB_QueryDELETE ("can not remove types of group of a course",
|
||||||
"DELETE FROM crs_grp_types WHERE CrsCod=%ld",
|
"DELETE FROM crs_grp_types"
|
||||||
|
" WHERE CrsCod=%ld",
|
||||||
CrsCod);
|
CrsCod);
|
||||||
|
|
||||||
/***** Remove users' requests for inscription in the course *****/
|
/***** Remove users' requests for inscription in the course *****/
|
||||||
DB_QueryDELETE ("can not remove requests for inscription to a course",
|
DB_QueryDELETE ("can not remove requests for inscription to a course",
|
||||||
"DELETE FROM crs_usr_requests WHERE CrsCod=%ld",
|
"DELETE FROM crs_usr_requests"
|
||||||
|
" WHERE CrsCod=%ld",
|
||||||
CrsCod);
|
CrsCod);
|
||||||
|
|
||||||
/***** Remove possible users remaining in the course (teachers) *****/
|
/***** Remove possible users remaining in the course (teachers) *****/
|
||||||
DB_QueryDELETE ("can not remove users from a course",
|
DB_QueryDELETE ("can not remove users from a course",
|
||||||
"DELETE FROM crs_usr_last WHERE CrsCod=%ld",
|
"DELETE FROM crs_usr_last"
|
||||||
|
" WHERE CrsCod=%ld",
|
||||||
CrsCod);
|
CrsCod);
|
||||||
DB_QueryDELETE ("can not remove users from a course",
|
DB_QueryDELETE ("can not remove users from a course",
|
||||||
"DELETE FROM crs_usr WHERE CrsCod=%ld",
|
"DELETE FROM crs_users"
|
||||||
|
" WHERE CrsCod=%ld",
|
||||||
CrsCod);
|
CrsCod);
|
||||||
|
|
||||||
/***** Remove directories of the course *****/
|
/***** Remove directories of the course *****/
|
||||||
|
@ -2611,7 +2620,7 @@ void Crs_GetAndWriteCrssOfAUsr (const struct UsrData *UsrDat,Rol_Role_t Role)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (asprintf (&SubQuery," AND crs_usr.Role=%u",(unsigned) Role) < 0)
|
if (asprintf (&SubQuery," AND crs_users.Role=%u",(unsigned) Role) < 0)
|
||||||
Lay_NotEnoughMemoryExit ();
|
Lay_NotEnoughMemoryExit ();
|
||||||
}
|
}
|
||||||
NumCrss = (unsigned)
|
NumCrss = (unsigned)
|
||||||
|
@ -2623,15 +2632,15 @@ void Crs_GetAndWriteCrssOfAUsr (const struct UsrData *UsrDat,Rol_Role_t Role)
|
||||||
"crs_courses.Year," // row[4]
|
"crs_courses.Year," // row[4]
|
||||||
"crs_courses.FullName," // row[5]
|
"crs_courses.FullName," // row[5]
|
||||||
"ctr_centers.ShortName," // row[6]
|
"ctr_centers.ShortName," // row[6]
|
||||||
"crs_usr.Accepted" // row[7]
|
"crs_users.Accepted" // row[7]
|
||||||
" FROM crs_usr,"
|
" FROM crs_users,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"ctr_centers"
|
"ctr_centers"
|
||||||
" WHERE crs_usr.UsrCod=%ld%s"
|
" WHERE crs_users.UsrCod=%ld%s"
|
||||||
" AND crs_usr.CrsCod=crs_courses.CrsCod"
|
" AND crs_users.CrsCod=crs_courses.CrsCod"
|
||||||
" AND crs_courses.DegCod=deg_degrees.DegCod"
|
" AND crs_courses.DegCod=deg_degrees.DegCod"
|
||||||
" AND deg_degrees.CtrCod=ctr_centers.CtrCod"
|
" AND deg_degrees.CtrCod=ctr_centers.CtrCod"
|
||||||
" ORDER BY deg_degrees.FullName,"
|
" ORDER BY deg_degrees.FullName,"
|
||||||
"crs_courses.Year,"
|
"crs_courses.Year,"
|
||||||
"crs_courses.FullName",
|
"crs_courses.FullName",
|
||||||
|
@ -2781,7 +2790,7 @@ static void Crs_WriteRowCrsData (unsigned NumCrs,MYSQL_ROW row,bool WriteColumnA
|
||||||
crs_courses.Year row[4]
|
crs_courses.Year row[4]
|
||||||
crs_courses.FullName row[5]
|
crs_courses.FullName row[5]
|
||||||
ctr_centers.ShortName row[6]
|
ctr_centers.ShortName row[6]
|
||||||
crs_usr.Accepted row[7] (only if WriteColumnAccepted == true)
|
crs_users.Accepted row[7] (only if WriteColumnAccepted == true)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/***** Get degree code (row[0]) *****/
|
/***** Get degree code (row[0]) *****/
|
||||||
|
@ -2989,9 +2998,11 @@ void Crs_RemoveOldCrss (void)
|
||||||
/***** Get old courses from database *****/
|
/***** Get old courses from database *****/
|
||||||
NumCrss = DB_QuerySELECT (&mysql_res,"can not get old courses",
|
NumCrss = DB_QuerySELECT (&mysql_res,"can not get old courses",
|
||||||
"SELECT CrsCod"
|
"SELECT CrsCod"
|
||||||
" FROM crs_last"
|
" FROM crs_last"
|
||||||
" WHERE LastTime<FROM_UNIXTIME(UNIX_TIMESTAMP()-%lu)"
|
" WHERE LastTime<FROM_UNIXTIME(UNIX_TIMESTAMP()-%lu)"
|
||||||
" AND CrsCod NOT IN (SELECT DISTINCT CrsCod FROM crs_usr)",
|
" AND CrsCod NOT IN"
|
||||||
|
" (SELECT DISTINCT CrsCod"
|
||||||
|
" FROM crs_users)",
|
||||||
SecondsWithoutAccess);
|
SecondsWithoutAccess);
|
||||||
if (NumCrss)
|
if (NumCrss)
|
||||||
{
|
{
|
||||||
|
|
|
@ -839,9 +839,9 @@ mysql> DESCRIBE crs_records;
|
||||||
"Txt TEXT NOT NULL," // Cns_MAX_BYTES_TEXT
|
"Txt TEXT NOT NULL," // Cns_MAX_BYTES_TEXT
|
||||||
"UNIQUE INDEX(FieldCod,UsrCod))");
|
"UNIQUE INDEX(FieldCod,UsrCod))");
|
||||||
|
|
||||||
/***** Table crs_usr *****/
|
/***** Table crs_users *****/
|
||||||
/*
|
/*
|
||||||
mysql> DESCRIBE crs_usr;
|
mysql> DESCRIBE crs_users;
|
||||||
+----------+---------------+------+-----+---------+-------+
|
+----------+---------------+------+-----+---------+-------+
|
||||||
| Field | Type | Null | Key | Default | Extra |
|
| Field | Type | Null | Key | Default | Extra |
|
||||||
+----------+---------------+------+-----+---------+-------+
|
+----------+---------------+------+-----+---------+-------+
|
||||||
|
@ -852,7 +852,7 @@ mysql> DESCRIBE crs_usr;
|
||||||
+----------+---------------+------+-----+---------+-------+
|
+----------+---------------+------+-----+---------+-------+
|
||||||
4 rows in set (0.00 sec)
|
4 rows in set (0.00 sec)
|
||||||
*/
|
*/
|
||||||
DB_CreateTable ("CREATE TABLE IF NOT EXISTS crs_usr ("
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS crs_users ("
|
||||||
"CrsCod INT NOT NULL,"
|
"CrsCod INT NOT NULL,"
|
||||||
"UsrCod INT NOT NULL,"
|
"UsrCod INT NOT NULL,"
|
||||||
"Role TINYINT NOT NULL DEFAULT 0,"
|
"Role TINYINT NOT NULL DEFAULT 0,"
|
||||||
|
|
|
@ -1084,12 +1084,12 @@ void Deg_GetListAllDegsWithStds (struct ListDegrees *Degs)
|
||||||
"deg_degrees.ShortName," // row[5]
|
"deg_degrees.ShortName," // row[5]
|
||||||
"deg_degrees.FullName," // row[6]
|
"deg_degrees.FullName," // row[6]
|
||||||
"deg_degrees.WWW" // row[7]
|
"deg_degrees.WWW" // row[7]
|
||||||
" FROM deg_degrees,"
|
" FROM deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr"
|
"crs_users"
|
||||||
" WHERE deg_degrees.DegCod=crs_courses.DegCod"
|
" WHERE deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.Role=%u"
|
" AND crs_users.Role=%u"
|
||||||
" ORDER BY deg_degrees.ShortName",
|
" ORDER BY deg_degrees.ShortName",
|
||||||
(unsigned) Rol_STD);
|
(unsigned) Rol_STD);
|
||||||
|
|
||||||
|
@ -2128,16 +2128,16 @@ unsigned Deg_GetCachedNumDegsWithUsrs (Rol_Role_t Role,const char *SubQuery,
|
||||||
NumDegsWithUsrs = (unsigned)
|
NumDegsWithUsrs = (unsigned)
|
||||||
DB_QueryCOUNT ("can not get number of degrees with users",
|
DB_QueryCOUNT ("can not get number of degrees with users",
|
||||||
"SELECT COUNT(DISTINCT deg_degrees.DegCod)"
|
"SELECT COUNT(DISTINCT deg_degrees.DegCod)"
|
||||||
" FROM ins_instits,"
|
" FROM ins_instits,"
|
||||||
"ctr_centers,"
|
"ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr"
|
"crs_users"
|
||||||
" WHERE %sinstitutions.InsCod=ctr_centers.InsCod"
|
" WHERE %sinstitutions.InsCod=ctr_centers.InsCod"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.Role=%u",
|
" AND crs_users.Role=%u",
|
||||||
SubQuery,(unsigned) Role);
|
SubQuery,(unsigned) Role);
|
||||||
FigCch_UpdateFigureIntoCache (FigureDegs[Role],Scope,Cod,
|
FigCch_UpdateFigureIntoCache (FigureDegs[Role],Scope,Cod,
|
||||||
FigCch_UNSIGNED,&NumDegsWithUsrs);
|
FigCch_UNSIGNED,&NumDegsWithUsrs);
|
||||||
|
|
|
@ -348,11 +348,11 @@ static void Dpt_GetListDepartments (struct Dpt_Departments *Departments,long Ins
|
||||||
"COUNT(DISTINCT usr_data.UsrCod) AS NumTchs" // row[5]
|
"COUNT(DISTINCT usr_data.UsrCod) AS NumTchs" // row[5]
|
||||||
" FROM dpt_departments,"
|
" FROM dpt_departments,"
|
||||||
"usr_data,"
|
"usr_data,"
|
||||||
"crs_usr"
|
"crs_users"
|
||||||
" WHERE dpt_departments.InsCod=%ld"
|
" WHERE dpt_departments.InsCod=%ld"
|
||||||
" AND dpt_departments.DptCod=usr_data.DptCod"
|
" AND dpt_departments.DptCod=usr_data.DptCod"
|
||||||
" AND usr_data.UsrCod=crs_usr.UsrCod"
|
" AND usr_data.UsrCod=crs_users.UsrCod"
|
||||||
" AND crs_usr.Role IN (%u,%u)"
|
" AND crs_users.Role IN (%u,%u)"
|
||||||
" GROUP BY dpt_departments.DptCod)"
|
" GROUP BY dpt_departments.DptCod)"
|
||||||
" UNION "
|
" UNION "
|
||||||
"(SELECT DptCod," // row[0]
|
"(SELECT DptCod," // row[0]
|
||||||
|
@ -365,9 +365,9 @@ static void Dpt_GetListDepartments (struct Dpt_Departments *Departments,long Ins
|
||||||
" WHERE InsCod=%ld"
|
" WHERE InsCod=%ld"
|
||||||
" AND DptCod NOT IN"
|
" AND DptCod NOT IN"
|
||||||
" (SELECT DISTINCT usr_data.DptCod"
|
" (SELECT DISTINCT usr_data.DptCod"
|
||||||
" FROM usr_data,crs_usr"
|
" FROM usr_data,crs_users"
|
||||||
" WHERE crs_usr.Role IN (%u,%u)"
|
" WHERE crs_users.Role IN (%u,%u)"
|
||||||
" AND crs_usr.UsrCod=usr_data.UsrCod))"
|
" AND crs_users.UsrCod=usr_data.UsrCod))"
|
||||||
" ORDER BY %s",
|
" ORDER BY %s",
|
||||||
InsCod,(unsigned) Rol_NET,(unsigned) Rol_TCH,
|
InsCod,(unsigned) Rol_NET,(unsigned) Rol_TCH,
|
||||||
InsCod,(unsigned) Rol_NET,(unsigned) Rol_TCH,
|
InsCod,(unsigned) Rol_NET,(unsigned) Rol_TCH,
|
||||||
|
@ -448,11 +448,11 @@ void Dpt_GetDataOfDepartmentByCod (struct Dpt_Department *Dpt)
|
||||||
"COUNT(DISTINCT usr_data.UsrCod) AS NumTchs" // row[4]
|
"COUNT(DISTINCT usr_data.UsrCod) AS NumTchs" // row[4]
|
||||||
" FROM dpt_departments,"
|
" FROM dpt_departments,"
|
||||||
"usr_data,"
|
"usr_data,"
|
||||||
"crs_usr"
|
"crs_users"
|
||||||
" WHERE dpt_departments.DptCod=%ld"
|
" WHERE dpt_departments.DptCod=%ld"
|
||||||
" AND dpt_departments.DptCod=usr_data.DptCod"
|
" AND dpt_departments.DptCod=usr_data.DptCod"
|
||||||
" AND usr_data.UsrCod=crs_usr.UsrCod"
|
" AND usr_data.UsrCod=crs_users.UsrCod"
|
||||||
" AND crs_usr.Role=%u"
|
" AND crs_users.Role=%u"
|
||||||
" GROUP BY dpt_departments.DptCod)"
|
" GROUP BY dpt_departments.DptCod)"
|
||||||
" UNION "
|
" UNION "
|
||||||
"(SELECT InsCod," // row[0]
|
"(SELECT InsCod," // row[0]
|
||||||
|
@ -465,9 +465,9 @@ void Dpt_GetDataOfDepartmentByCod (struct Dpt_Department *Dpt)
|
||||||
" AND DptCod NOT IN"
|
" AND DptCod NOT IN"
|
||||||
" (SELECT DISTINCT usr_data.DptCod"
|
" (SELECT DISTINCT usr_data.DptCod"
|
||||||
" FROM usr_data,"
|
" FROM usr_data,"
|
||||||
"crs_usr"
|
"crs_users"
|
||||||
" WHERE crs_usr.Role=%u"
|
" WHERE crs_users.Role=%u"
|
||||||
" AND crs_usr.UsrCod=usr_data.UsrCod))",
|
" AND crs_users.UsrCod=usr_data.UsrCod))",
|
||||||
Dpt->DptCod,(unsigned) Rol_TCH,
|
Dpt->DptCod,(unsigned) Rol_TCH,
|
||||||
Dpt->DptCod,(unsigned) Rol_TCH);
|
Dpt->DptCod,(unsigned) Rol_TCH);
|
||||||
if (NumRows) // Department found...
|
if (NumRows) // Department found...
|
||||||
|
|
572
swad_enrolment.c
572
swad_enrolment.c
|
@ -248,9 +248,13 @@ void Enr_ModifyRoleInCurrentCrs (struct UsrData *UsrDat,Rol_Role_t NewRole)
|
||||||
|
|
||||||
/***** Update the role of a user in a course *****/
|
/***** Update the role of a user in a course *****/
|
||||||
DB_QueryUPDATE ("can not modify user's role in course",
|
DB_QueryUPDATE ("can not modify user's role in course",
|
||||||
"UPDATE crs_usr SET Role=%u"
|
"UPDATE crs_users"
|
||||||
" WHERE CrsCod=%ld AND UsrCod=%ld",
|
" SET Role=%u"
|
||||||
(unsigned) NewRole,Gbl.Hierarchy.Crs.CrsCod,UsrDat->UsrCod);
|
" WHERE CrsCod=%ld"
|
||||||
|
" AND UsrCod=%ld",
|
||||||
|
(unsigned) NewRole,
|
||||||
|
Gbl.Hierarchy.Crs.CrsCod,
|
||||||
|
UsrDat->UsrCod);
|
||||||
|
|
||||||
/***** Flush caches *****/
|
/***** Flush caches *****/
|
||||||
Usr_FlushCachesUsr ();
|
Usr_FlushCachesUsr ();
|
||||||
|
@ -291,7 +295,7 @@ void Enr_RegisterUsrInCurrentCrs (struct UsrData *UsrDat,Rol_Role_t NewRole,
|
||||||
|
|
||||||
/***** Register user in current course in database *****/
|
/***** Register user in current course in database *****/
|
||||||
DB_QueryINSERT ("can not register user in course",
|
DB_QueryINSERT ("can not register user in course",
|
||||||
"INSERT INTO crs_usr"
|
"INSERT INTO crs_users"
|
||||||
" (CrsCod,UsrCod,Role,Accepted)"
|
" (CrsCod,UsrCod,Role,Accepted)"
|
||||||
" VALUES"
|
" VALUES"
|
||||||
" (%ld,%ld,%u,'%c')",
|
" (%ld,%ld,%u,'%c')",
|
||||||
|
@ -514,8 +518,9 @@ void Enr_GetNotifEnrolment (char SummaryStr[Ntf_MAX_BYTES_SUMMARY + 1],
|
||||||
if (DB_QuerySELECT (&mysql_res,"can not get user's role"
|
if (DB_QuerySELECT (&mysql_res,"can not get user's role"
|
||||||
" in course",
|
" in course",
|
||||||
"SELECT Role"
|
"SELECT Role"
|
||||||
" FROM crs_usr"
|
" FROM crs_users"
|
||||||
" WHERE CrsCod=%ld AND UsrCod=%ld",
|
" WHERE CrsCod=%ld"
|
||||||
|
" AND UsrCod=%ld",
|
||||||
CrsCod,UsrCod) == 1) // Result should have a unique row
|
CrsCod,UsrCod) == 1) // Result should have a unique row
|
||||||
{
|
{
|
||||||
/***** Get user's role in course *****/
|
/***** Get user's role in course *****/
|
||||||
|
@ -880,14 +885,16 @@ void Enr_RemoveOldUsrs (void)
|
||||||
/***** Get old users from database *****/
|
/***** Get old users from database *****/
|
||||||
NumUsrs = DB_QuerySELECT (&mysql_res,"can not get old users",
|
NumUsrs = DB_QuerySELECT (&mysql_res,"can not get old users",
|
||||||
"SELECT UsrCod FROM"
|
"SELECT UsrCod FROM"
|
||||||
"("
|
"("
|
||||||
"SELECT UsrCod FROM usr_last WHERE"
|
"SELECT UsrCod FROM usr_last WHERE"
|
||||||
" LastTime<FROM_UNIXTIME(UNIX_TIMESTAMP()-%lu)"
|
" LastTime<FROM_UNIXTIME(UNIX_TIMESTAMP()-%lu)"
|
||||||
" UNION "
|
" UNION "
|
||||||
"SELECT UsrCod FROM usr_data WHERE"
|
"SELECT UsrCod FROM usr_data WHERE"
|
||||||
" UsrCod NOT IN (SELECT UsrCod FROM usr_last)"
|
" UsrCod NOT IN (SELECT UsrCod FROM usr_last)"
|
||||||
") AS candidate_usrs"
|
") AS candidate_usrs"
|
||||||
" WHERE UsrCod NOT IN (SELECT DISTINCT UsrCod FROM crs_usr)",
|
" WHERE UsrCod NOT IN"
|
||||||
|
" (SELECT DISTINCT UsrCod"
|
||||||
|
" FROM crs_users)",
|
||||||
(unsigned long) SecondsWithoutAccess);
|
(unsigned long) SecondsWithoutAccess);
|
||||||
if (NumUsrs)
|
if (NumUsrs)
|
||||||
{
|
{
|
||||||
|
@ -2331,17 +2338,17 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
|
||||||
// Requests in all courses in which I am teacher
|
// Requests in all courses in which I am teacher
|
||||||
NumReqs =
|
NumReqs =
|
||||||
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
||||||
"SELECT crs_usr_requests.ReqCod,"
|
"SELECT crs_usr_requests.ReqCod," // row[0]
|
||||||
"crs_usr_requests.CrsCod,"
|
"crs_usr_requests.CrsCod," // row[1]
|
||||||
"crs_usr_requests.UsrCod,"
|
"crs_usr_requests.UsrCod," // row[2]
|
||||||
"crs_usr_requests.Role,"
|
"crs_usr_requests.Role," // row[3]
|
||||||
"UNIX_TIMESTAMP(crs_usr_requests.RequestTime)"
|
"UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" // row[4]
|
||||||
" FROM crs_usr,"
|
" FROM crs_users,"
|
||||||
"crs_usr_requests"
|
"crs_usr_requests"
|
||||||
" WHERE crs_usr.UsrCod=%ld"
|
" WHERE crs_users.UsrCod=%ld"
|
||||||
" AND crs_usr.Role=%u"
|
" AND crs_users.Role=%u"
|
||||||
" AND crs_usr.CrsCod=crs_usr_requests.CrsCod"
|
" AND crs_users.CrsCod=crs_usr_requests.CrsCod"
|
||||||
" AND ((1<<crs_usr_requests.Role)&%u)<>0"
|
" AND ((1<<crs_usr_requests.Role)&%u)<>0"
|
||||||
" ORDER BY crs_usr_requests.RequestTime DESC",
|
" ORDER BY crs_usr_requests.RequestTime DESC",
|
||||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||||
(unsigned) Rol_TCH,
|
(unsigned) Rol_TCH,
|
||||||
|
@ -2351,11 +2358,11 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
|
||||||
// Requests in all degrees administrated by me
|
// Requests in all degrees administrated by me
|
||||||
NumReqs =
|
NumReqs =
|
||||||
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
||||||
"SELECT crs_usr_requests.ReqCod,"
|
"SELECT crs_usr_requests.ReqCod," // row[0]
|
||||||
"crs_usr_requests.CrsCod,"
|
"crs_usr_requests.CrsCod," // row[1]
|
||||||
"crs_usr_requests.UsrCod,"
|
"crs_usr_requests.UsrCod," // row[2]
|
||||||
"crs_usr_requests.Role,"
|
"crs_usr_requests.Role," // row[3]
|
||||||
"UNIX_TIMESTAMP(crs_usr_requests.RequestTime)"
|
"UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" // row[4]
|
||||||
" FROM usr_admins,"
|
" FROM usr_admins,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr_requests"
|
"crs_usr_requests"
|
||||||
|
@ -2372,11 +2379,11 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
|
||||||
// Requests in all centers administrated by me
|
// Requests in all centers administrated by me
|
||||||
NumReqs =
|
NumReqs =
|
||||||
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
||||||
"SELECT crs_usr_requests.ReqCod,"
|
"SELECT crs_usr_requests.ReqCod," // row[0]
|
||||||
"crs_usr_requests.CrsCod,"
|
"crs_usr_requests.CrsCod," // row[1]
|
||||||
"crs_usr_requests.UsrCod,"
|
"crs_usr_requests.UsrCod," // row[2]
|
||||||
"crs_usr_requests.Role,"
|
"crs_usr_requests.Role," // row[3]
|
||||||
"UNIX_TIMESTAMP(crs_usr_requests.RequestTime)"
|
"UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" // row[4]
|
||||||
" FROM usr_admins,"
|
" FROM usr_admins,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
|
@ -2395,11 +2402,11 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
|
||||||
// Requests in all institutions administrated by me
|
// Requests in all institutions administrated by me
|
||||||
NumReqs =
|
NumReqs =
|
||||||
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
||||||
"SELECT crs_usr_requests.ReqCod,"
|
"SELECT crs_usr_requests.ReqCod," // row[0]
|
||||||
"crs_usr_requests.CrsCod,"
|
"crs_usr_requests.CrsCod," // row[1]
|
||||||
"crs_usr_requests.UsrCod,"
|
"crs_usr_requests.UsrCod," // row[2]
|
||||||
"crs_usr_requests.Role,"
|
"crs_usr_requests.Role," // row[3]
|
||||||
"UNIX_TIMESTAMP(crs_usr_requests.RequestTime)"
|
"UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" // row[4]
|
||||||
" FROM usr_admins,"
|
" FROM usr_admins,"
|
||||||
"ctr_centers,"
|
"ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
|
@ -2420,11 +2427,11 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
|
||||||
// All requests
|
// All requests
|
||||||
NumReqs =
|
NumReqs =
|
||||||
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
||||||
"SELECT ReqCod,"
|
"SELECT ReqCod," // row[0]
|
||||||
"CrsCod,"
|
"CrsCod," // row[1]
|
||||||
"UsrCod,"
|
"UsrCod," // row[2]
|
||||||
"Role,"
|
"Role," // row[3]
|
||||||
"UNIX_TIMESTAMP(RequestTime)"
|
"UNIX_TIMESTAMP(RequestTime)" // row[4]
|
||||||
" FROM crs_usr_requests"
|
" FROM crs_usr_requests"
|
||||||
" WHERE ((1<<Role)&%u)<>0"
|
" WHERE ((1<<Role)&%u)<>0"
|
||||||
" ORDER BY RequestTime DESC",
|
" ORDER BY RequestTime DESC",
|
||||||
|
@ -2442,26 +2449,26 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
|
||||||
// Requests in courses of this country in which I am teacher
|
// Requests in courses of this country in which I am teacher
|
||||||
NumReqs =
|
NumReqs =
|
||||||
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
||||||
"SELECT crs_usr_requests.ReqCod,"
|
"SELECT crs_usr_requests.ReqCod," // row[0]
|
||||||
"crs_usr_requests.CrsCod,"
|
"crs_usr_requests.CrsCod," // row[1]
|
||||||
"crs_usr_requests.UsrCod,"
|
"crs_usr_requests.UsrCod," // row[2]
|
||||||
"crs_usr_requests.Role,"
|
"crs_usr_requests.Role," // row[3]
|
||||||
"UNIX_TIMESTAMP(crs_usr_requests.RequestTime)"
|
"UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" // roe[4]
|
||||||
" FROM crs_usr,"
|
" FROM crs_users,"
|
||||||
"ins_instits,"
|
"ins_instits,"
|
||||||
"ctr_centers,"
|
"ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr_requests"
|
"crs_usr_requests"
|
||||||
" WHERE crs_usr.UsrCod=%ld"
|
" WHERE crs_users.UsrCod=%ld"
|
||||||
" AND crs_usr.Role=%u"
|
" AND crs_users.Role=%u"
|
||||||
" AND crs_usr.CrsCod=crs_courses.CrsCod"
|
" AND crs_users.CrsCod=crs_courses.CrsCod"
|
||||||
" AND crs_courses.DegCod=deg_degrees.DegCod"
|
" AND crs_courses.DegCod=deg_degrees.DegCod"
|
||||||
" AND deg_degrees.CtrCod=ctr_centers.CtrCod"
|
" AND deg_degrees.CtrCod=ctr_centers.CtrCod"
|
||||||
" AND ctr_centers.InsCod=ins_instits.InsCod"
|
" AND ctr_centers.InsCod=ins_instits.InsCod"
|
||||||
" AND ins_instits.CtyCod=%ld"
|
" AND ins_instits.CtyCod=%ld"
|
||||||
" AND crs_courses.CrsCod=crs_usr_requests.CrsCod"
|
" AND crs_courses.CrsCod=crs_usr_requests.CrsCod"
|
||||||
" AND ((1<<crs_usr_requests.Role)&%u)<>0"
|
" AND ((1<<crs_usr_requests.Role)&%u)<>0"
|
||||||
" ORDER BY crs_usr_requests.RequestTime DESC",
|
" ORDER BY crs_usr_requests.RequestTime DESC",
|
||||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||||
(unsigned) Rol_TCH,
|
(unsigned) Rol_TCH,
|
||||||
|
@ -2472,26 +2479,26 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
|
||||||
// Requests in degrees of this country administrated by me
|
// Requests in degrees of this country administrated by me
|
||||||
NumReqs =
|
NumReqs =
|
||||||
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
||||||
"SELECT crs_usr_requests.ReqCod,"
|
"SELECT crs_usr_requests.ReqCod," // row[0]
|
||||||
"crs_usr_requests.CrsCod,"
|
"crs_usr_requests.CrsCod," // row[1]
|
||||||
"crs_usr_requests.UsrCod,"
|
"crs_usr_requests.UsrCod," // row[2]
|
||||||
"crs_usr_requests.Role,"
|
"crs_usr_requests.Role," // row[3]
|
||||||
"UNIX_TIMESTAMP(crs_usr_requests.RequestTime)"
|
"UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" // row[4]
|
||||||
" FROM usr_admins,"
|
" FROM usr_admins,"
|
||||||
"ins_instits,"
|
"ins_instits,"
|
||||||
"ctr_centers,"
|
"ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr_requests"
|
"crs_usr_requests"
|
||||||
" WHERE usr_admins.UsrCod=%ld"
|
" WHERE usr_admins.UsrCod=%ld"
|
||||||
" AND usr_admins.Scope='%s'"
|
" AND usr_admins.Scope='%s'"
|
||||||
" AND usr_admins.Cod=deg_degrees.DegCod"
|
" AND usr_admins.Cod=deg_degrees.DegCod"
|
||||||
" AND deg_degrees.CtrCod=ctr_centers.CtrCod"
|
" AND deg_degrees.CtrCod=ctr_centers.CtrCod"
|
||||||
" AND ctr_centers.InsCod=ins_instits.InsCod"
|
" AND ctr_centers.InsCod=ins_instits.InsCod"
|
||||||
" AND ins_instits.CtyCod=%ld"
|
" AND ins_instits.CtyCod=%ld"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr_requests.CrsCod"
|
" AND crs_courses.CrsCod=crs_usr_requests.CrsCod"
|
||||||
" AND ((1<<crs_usr_requests.Role)&%u)<>0"
|
" AND ((1<<crs_usr_requests.Role)&%u)<>0"
|
||||||
" ORDER BY crs_usr_requests.RequestTime DESC",
|
" ORDER BY crs_usr_requests.RequestTime DESC",
|
||||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||||
Sco_GetDBStrFromScope (Hie_Lvl_DEG),
|
Sco_GetDBStrFromScope (Hie_Lvl_DEG),
|
||||||
|
@ -2502,26 +2509,26 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
|
||||||
// Requests in centers of this country administrated by me
|
// Requests in centers of this country administrated by me
|
||||||
NumReqs =
|
NumReqs =
|
||||||
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
||||||
"SELECT crs_usr_requests.ReqCod,"
|
"SELECT crs_usr_requests.ReqCod," // row[0]
|
||||||
"crs_usr_requests.CrsCod,"
|
"crs_usr_requests.CrsCod," // row[1]
|
||||||
"crs_usr_requests.UsrCod,"
|
"crs_usr_requests.UsrCod," // row[2]
|
||||||
"crs_usr_requests.Role,"
|
"crs_usr_requests.Role," // row[3]
|
||||||
"UNIX_TIMESTAMP(crs_usr_requests.RequestTime)"
|
"UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" // row[4]
|
||||||
" FROM usr_admins,"
|
" FROM usr_admins,"
|
||||||
"ins_instits,"
|
"ins_instits,"
|
||||||
"ctr_centers,"
|
"ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr_requests"
|
"crs_usr_requests"
|
||||||
" WHERE usr_admins.UsrCod=%ld"
|
" WHERE usr_admins.UsrCod=%ld"
|
||||||
" AND usr_admins.Scope='%s'"
|
" AND usr_admins.Scope='%s'"
|
||||||
" AND usr_admins.Cod=ctr_centers.CtrCod"
|
" AND usr_admins.Cod=ctr_centers.CtrCod"
|
||||||
" AND ctr_centers.InsCod=ins_instits.InsCod"
|
" AND ctr_centers.InsCod=ins_instits.InsCod"
|
||||||
" AND ins_instits.CtyCod=%ld"
|
" AND ins_instits.CtyCod=%ld"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr_requests.CrsCod"
|
" AND crs_courses.CrsCod=crs_usr_requests.CrsCod"
|
||||||
" AND ((1<<crs_usr_requests.Role)&%u)<>0"
|
" AND ((1<<crs_usr_requests.Role)&%u)<>0"
|
||||||
" ORDER BY crs_usr_requests.RequestTime DESC",
|
" ORDER BY crs_usr_requests.RequestTime DESC",
|
||||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||||
Sco_GetDBStrFromScope (Hie_Lvl_CTR),
|
Sco_GetDBStrFromScope (Hie_Lvl_CTR),
|
||||||
|
@ -2531,28 +2538,27 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
|
||||||
case Rol_INS_ADM:
|
case Rol_INS_ADM:
|
||||||
// Requests in institutions of this country administrated by me
|
// Requests in institutions of this country administrated by me
|
||||||
NumReqs =
|
NumReqs =
|
||||||
DB_QuerySELECT (&mysql_res,"can not get requests"
|
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
||||||
" for enrolment",
|
"SELECT crs_usr_requests.ReqCod," // row[0]
|
||||||
"SELECT crs_usr_requests.ReqCod,"
|
"crs_usr_requests.CrsCod," // row[1]
|
||||||
"crs_usr_requests.CrsCod,"
|
"crs_usr_requests.UsrCod," // row[2]
|
||||||
"crs_usr_requests.UsrCod,"
|
"crs_usr_requests.Role," // row[3]
|
||||||
"crs_usr_requests.Role,"
|
"UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" // row[4]
|
||||||
"UNIX_TIMESTAMP(crs_usr_requests.RequestTime)"
|
" FROM usr_admins,"
|
||||||
" FROM usr_admins,"
|
"ins_instits,"
|
||||||
"ins_instits,"
|
"ctr_centers,"
|
||||||
"ctr_centers,"
|
"deg_degrees,"
|
||||||
"deg_degrees,"
|
"crs_courses,"
|
||||||
"crs_courses,"
|
"crs_usr_requests"
|
||||||
"crs_usr_requests"
|
|
||||||
" WHERE usr_admins.UsrCod=%ld"
|
" WHERE usr_admins.UsrCod=%ld"
|
||||||
" AND usr_admins.Scope='%s'"
|
" AND usr_admins.Scope='%s'"
|
||||||
" AND usr_admins.Cod=ins_instits.InsCod"
|
" AND usr_admins.Cod=ins_instits.InsCod"
|
||||||
" AND ins_instits.CtyCod=%ld"
|
" AND ins_instits.CtyCod=%ld"
|
||||||
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr_requests.CrsCod"
|
" AND crs_courses.CrsCod=crs_usr_requests.CrsCod"
|
||||||
" AND ((1<<crs_usr_requests.Role)&%u)<>0"
|
" AND ((1<<crs_usr_requests.Role)&%u)<>0"
|
||||||
" ORDER BY crs_usr_requests.RequestTime DESC",
|
" ORDER BY crs_usr_requests.RequestTime DESC",
|
||||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||||
Sco_GetDBStrFromScope (Hie_Lvl_INS),
|
Sco_GetDBStrFromScope (Hie_Lvl_INS),
|
||||||
|
@ -2563,22 +2569,22 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
|
||||||
// Requests in any course of this country
|
// Requests in any course of this country
|
||||||
NumReqs =
|
NumReqs =
|
||||||
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
||||||
"SELECT crs_usr_requests.ReqCod,"
|
"SELECT crs_usr_requests.ReqCod," // row[0]
|
||||||
"crs_usr_requests.CrsCod,"
|
"crs_usr_requests.CrsCod," // row[1]
|
||||||
"crs_usr_requests.UsrCod,"
|
"crs_usr_requests.UsrCod," // row[2]
|
||||||
"crs_usr_requests.Role,"
|
"crs_usr_requests.Role," // row[3]
|
||||||
"UNIX_TIMESTAMP(crs_usr_requests.RequestTime)"
|
"UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" // row[4]
|
||||||
" FROM ins_instits,"
|
" FROM ins_instits,"
|
||||||
"ctr_centers,"
|
"ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr_requests"
|
"crs_usr_requests"
|
||||||
" WHERE ins_instits.CtyCod=%ld"
|
" WHERE ins_instits.CtyCod=%ld"
|
||||||
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr_requests.CrsCod"
|
" AND crs_courses.CrsCod=crs_usr_requests.CrsCod"
|
||||||
" AND ((1<<crs_usr_requests.Role)&%u)<>0"
|
" AND ((1<<crs_usr_requests.Role)&%u)<>0"
|
||||||
" ORDER BY crs_usr_requests.RequestTime DESC",
|
" ORDER BY crs_usr_requests.RequestTime DESC",
|
||||||
Gbl.Hierarchy.Cty.CtyCod,
|
Gbl.Hierarchy.Cty.CtyCod,
|
||||||
RolesSelected);
|
RolesSelected);
|
||||||
|
@ -2595,24 +2601,24 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
|
||||||
// Requests in courses of this institution in which I am teacher
|
// Requests in courses of this institution in which I am teacher
|
||||||
NumReqs =
|
NumReqs =
|
||||||
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
||||||
"SELECT crs_usr_requests.ReqCod,"
|
"SELECT crs_usr_requests.ReqCod," // row[0]
|
||||||
"crs_usr_requests.CrsCod,"
|
"crs_usr_requests.CrsCod," // row[1]
|
||||||
"crs_usr_requests.UsrCod,"
|
"crs_usr_requests.UsrCod," // row[2]
|
||||||
"crs_usr_requests.Role,"
|
"crs_usr_requests.Role," // row[3]
|
||||||
"UNIX_TIMESTAMP(crs_usr_requests.RequestTime)"
|
"UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" // row[4]
|
||||||
" FROM crs_usr,"
|
" FROM crs_users,"
|
||||||
"ctr_centers,"
|
"ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr_requests"
|
"crs_usr_requests"
|
||||||
" WHERE crs_usr.UsrCod=%ld"
|
" WHERE crs_users.UsrCod=%ld"
|
||||||
" AND crs_usr.Role=%u"
|
" AND crs_users.Role=%u"
|
||||||
" AND crs_usr.CrsCod=crs_courses.CrsCod"
|
" AND crs_users.CrsCod=crs_courses.CrsCod"
|
||||||
" AND crs_courses.DegCod=deg_degrees.DegCod"
|
" AND crs_courses.DegCod=deg_degrees.DegCod"
|
||||||
" AND deg_degrees.CtrCod=ctr_centers.CtrCod"
|
" AND deg_degrees.CtrCod=ctr_centers.CtrCod"
|
||||||
" AND ctr_centers.InsCod=%ld"
|
" AND ctr_centers.InsCod=%ld"
|
||||||
" AND crs_courses.CrsCod=crs_usr_requests.CrsCod"
|
" AND crs_courses.CrsCod=crs_usr_requests.CrsCod"
|
||||||
" AND ((1<<crs_usr_requests.Role)&%u)<>0"
|
" AND ((1<<crs_usr_requests.Role)&%u)<>0"
|
||||||
" ORDER BY crs_usr_requests.RequestTime DESC",
|
" ORDER BY crs_usr_requests.RequestTime DESC",
|
||||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||||
(unsigned) Rol_TCH,
|
(unsigned) Rol_TCH,
|
||||||
|
@ -2623,24 +2629,24 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
|
||||||
// Requests in degrees of this institution administrated by me
|
// Requests in degrees of this institution administrated by me
|
||||||
NumReqs =
|
NumReqs =
|
||||||
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
||||||
"SELECT crs_usr_requests.ReqCod,"
|
"SELECT crs_usr_requests.ReqCod," // row[0]
|
||||||
"crs_usr_requests.CrsCod,"
|
"crs_usr_requests.CrsCod," // row[1]
|
||||||
"crs_usr_requests.UsrCod,"
|
"crs_usr_requests.UsrCod," // row[2]
|
||||||
"crs_usr_requests.Role,"
|
"crs_usr_requests.Role," // row[3]
|
||||||
"UNIX_TIMESTAMP(crs_usr_requests.RequestTime)"
|
"UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" // row[4]
|
||||||
" FROM usr_admins,"
|
" FROM usr_admins,"
|
||||||
"ctr_centers,"
|
"ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr_requests"
|
"crs_usr_requests"
|
||||||
" WHERE usr_admins.UsrCod=%ld"
|
" WHERE usr_admins.UsrCod=%ld"
|
||||||
" AND usr_admins.Scope='%s'"
|
" AND usr_admins.Scope='%s'"
|
||||||
" AND usr_admins.Cod=deg_degrees.DegCod"
|
" AND usr_admins.Cod=deg_degrees.DegCod"
|
||||||
" AND deg_degrees.CtrCod=ctr_centers.CtrCod"
|
" AND deg_degrees.CtrCod=ctr_centers.CtrCod"
|
||||||
" AND ctr_centers.InsCod=%ld"
|
" AND ctr_centers.InsCod=%ld"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr_requests.CrsCod"
|
" AND crs_courses.CrsCod=crs_usr_requests.CrsCod"
|
||||||
" AND ((1<<crs_usr_requests.Role)&%u)<>0"
|
" AND ((1<<crs_usr_requests.Role)&%u)<>0"
|
||||||
" ORDER BY crs_usr_requests.RequestTime DESC",
|
" ORDER BY crs_usr_requests.RequestTime DESC",
|
||||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||||
Sco_GetDBStrFromScope (Hie_Lvl_DEG),
|
Sco_GetDBStrFromScope (Hie_Lvl_DEG),
|
||||||
|
@ -2651,24 +2657,24 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
|
||||||
// Requests in centers of this institution administrated by me
|
// Requests in centers of this institution administrated by me
|
||||||
NumReqs =
|
NumReqs =
|
||||||
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
||||||
"SELECT crs_usr_requests.ReqCod,"
|
"SELECT crs_usr_requests.ReqCod," // row[0]
|
||||||
"crs_usr_requests.CrsCod,"
|
"crs_usr_requests.CrsCod," // row[1]
|
||||||
"crs_usr_requests.UsrCod,"
|
"crs_usr_requests.UsrCod," // row[2]
|
||||||
"crs_usr_requests.Role,"
|
"crs_usr_requests.Role," // row[3]
|
||||||
"UNIX_TIMESTAMP(crs_usr_requests.RequestTime)"
|
"UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" // row[4]
|
||||||
" FROM usr_admins,"
|
" FROM usr_admins,"
|
||||||
"ctr_centers,"
|
"ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr_requests"
|
"crs_usr_requests"
|
||||||
" WHERE usr_admins.UsrCod=%ld"
|
" WHERE usr_admins.UsrCod=%ld"
|
||||||
" AND usr_admins.Scope='%s'"
|
" AND usr_admins.Scope='%s'"
|
||||||
" AND usr_admins.Cod=ctr_centers.CtrCod"
|
" AND usr_admins.Cod=ctr_centers.CtrCod"
|
||||||
" AND ctr_centers.InsCod=%ld"
|
" AND ctr_centers.InsCod=%ld"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr_requests.CrsCod"
|
" AND crs_courses.CrsCod=crs_usr_requests.CrsCod"
|
||||||
" AND ((1<<crs_usr_requests.Role)&%u)<>0"
|
" AND ((1<<crs_usr_requests.Role)&%u)<>0"
|
||||||
" ORDER BY crs_usr_requests.RequestTime DESC",
|
" ORDER BY crs_usr_requests.RequestTime DESC",
|
||||||
Gbl.Usrs.Me.UsrDat.UsrCod,Sco_GetDBStrFromScope (Hie_Lvl_CTR),
|
Gbl.Usrs.Me.UsrDat.UsrCod,Sco_GetDBStrFromScope (Hie_Lvl_CTR),
|
||||||
Gbl.Hierarchy.Ins.InsCod,
|
Gbl.Hierarchy.Ins.InsCod,
|
||||||
|
@ -2679,20 +2685,20 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
|
||||||
// Requests in any course of this institution
|
// Requests in any course of this institution
|
||||||
NumReqs =
|
NumReqs =
|
||||||
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
||||||
"SELECT crs_usr_requests.ReqCod,"
|
"SELECT crs_usr_requests.ReqCod," // row[0]
|
||||||
"crs_usr_requests.CrsCod,"
|
"crs_usr_requests.CrsCod," // row[1]
|
||||||
"crs_usr_requests.UsrCod,"
|
"crs_usr_requests.UsrCod," // row[2]
|
||||||
"crs_usr_requests.Role,"
|
"crs_usr_requests.Role," // row[3]
|
||||||
"UNIX_TIMESTAMP(crs_usr_requests.RequestTime)"
|
"UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" // row[4]
|
||||||
" FROM ctr_centers,"
|
" FROM ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr_requests"
|
"crs_usr_requests"
|
||||||
" WHERE ctr_centers.InsCod=%ld"
|
" WHERE ctr_centers.InsCod=%ld"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr_requests.CrsCod"
|
" AND crs_courses.CrsCod=crs_usr_requests.CrsCod"
|
||||||
" AND ((1<<crs_usr_requests.Role)&%u)<>0"
|
" AND ((1<<crs_usr_requests.Role)&%u)<>0"
|
||||||
" ORDER BY crs_usr_requests.RequestTime DESC",
|
" ORDER BY crs_usr_requests.RequestTime DESC",
|
||||||
Gbl.Hierarchy.Ins.InsCod,
|
Gbl.Hierarchy.Ins.InsCod,
|
||||||
RolesSelected);
|
RolesSelected);
|
||||||
|
@ -2709,22 +2715,22 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
|
||||||
// Requests in courses of this center in which I am teacher
|
// Requests in courses of this center in which I am teacher
|
||||||
NumReqs =
|
NumReqs =
|
||||||
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
||||||
"SELECT crs_usr_requests.ReqCod,"
|
"SELECT crs_usr_requests.ReqCod," // row[0]
|
||||||
"crs_usr_requests.CrsCod,"
|
"crs_usr_requests.CrsCod," // row[1]
|
||||||
"crs_usr_requests.UsrCod,"
|
"crs_usr_requests.UsrCod," // row[2]
|
||||||
"crs_usr_requests.Role,"
|
"crs_usr_requests.Role," // row[3]
|
||||||
"UNIX_TIMESTAMP(crs_usr_requests.RequestTime)"
|
"UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" // row[4]
|
||||||
" FROM crs_usr,"
|
" FROM crs_users,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr_requests"
|
"crs_usr_requests"
|
||||||
" WHERE crs_usr.UsrCod=%ld"
|
" WHERE crs_users.UsrCod=%ld"
|
||||||
" AND crs_usr.Role=%u"
|
" AND crs_users.Role=%u"
|
||||||
" AND crs_usr.CrsCod=crs_courses.CrsCod"
|
" AND crs_users.CrsCod=crs_courses.CrsCod"
|
||||||
" AND crs_courses.DegCod=deg_degrees.DegCod"
|
" AND crs_courses.DegCod=deg_degrees.DegCod"
|
||||||
" AND deg_degrees.CtrCod=%ld"
|
" AND deg_degrees.CtrCod=%ld"
|
||||||
" AND crs_courses.CrsCod=crs_usr_requests.CrsCod"
|
" AND crs_courses.CrsCod=crs_usr_requests.CrsCod"
|
||||||
" AND ((1<<crs_usr_requests.Role)&%u)<>0"
|
" AND ((1<<crs_usr_requests.Role)&%u)<>0"
|
||||||
" ORDER BY crs_usr_requests.RequestTime DESC",
|
" ORDER BY crs_usr_requests.RequestTime DESC",
|
||||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||||
(unsigned) Rol_TCH,
|
(unsigned) Rol_TCH,
|
||||||
|
@ -2735,22 +2741,22 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
|
||||||
// Requests in degrees of this center administrated by me
|
// Requests in degrees of this center administrated by me
|
||||||
NumReqs =
|
NumReqs =
|
||||||
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
||||||
"SELECT crs_usr_requests.ReqCod,"
|
"SELECT crs_usr_requests.ReqCod," // row[0]
|
||||||
"crs_usr_requests.CrsCod,"
|
"crs_usr_requests.CrsCod," // row[1]
|
||||||
"crs_usr_requests.UsrCod,"
|
"crs_usr_requests.UsrCod," // row[2]
|
||||||
"crs_usr_requests.Role,"
|
"crs_usr_requests.Role," // row[3]
|
||||||
"UNIX_TIMESTAMP(crs_usr_requests.RequestTime)"
|
"UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" // row[4]
|
||||||
" FROM usr_admins,"
|
" FROM usr_admins,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr_requests"
|
"crs_usr_requests"
|
||||||
" WHERE usr_admins.UsrCod=%ld"
|
" WHERE usr_admins.UsrCod=%ld"
|
||||||
" AND usr_admins.Scope='%s'"
|
" AND usr_admins.Scope='%s'"
|
||||||
" AND usr_admins.Cod=deg_degrees.DegCod"
|
" AND usr_admins.Cod=deg_degrees.DegCod"
|
||||||
" AND deg_degrees.CtrCod=%ld"
|
" AND deg_degrees.CtrCod=%ld"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr_requests.CrsCod"
|
" AND crs_courses.CrsCod=crs_usr_requests.CrsCod"
|
||||||
" AND ((1<<crs_usr_requests.Role)&%u)<>0"
|
" AND ((1<<crs_usr_requests.Role)&%u)<>0"
|
||||||
" ORDER BY crs_usr_requests.RequestTime DESC",
|
" ORDER BY crs_usr_requests.RequestTime DESC",
|
||||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||||
Sco_GetDBStrFromScope (Hie_Lvl_DEG),
|
Sco_GetDBStrFromScope (Hie_Lvl_DEG),
|
||||||
|
@ -2763,18 +2769,18 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
|
||||||
// Request in any course of this center
|
// Request in any course of this center
|
||||||
NumReqs =
|
NumReqs =
|
||||||
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
||||||
"SELECT crs_usr_requests.ReqCod,"
|
"SELECT crs_usr_requests.ReqCod," // row[0]
|
||||||
"crs_usr_requests.CrsCod,"
|
"crs_usr_requests.CrsCod," // row[1]
|
||||||
"crs_usr_requests.UsrCod,"
|
"crs_usr_requests.UsrCod," // row[2]
|
||||||
"crs_usr_requests.Role,"
|
"crs_usr_requests.Role," // row[3]
|
||||||
"UNIX_TIMESTAMP(crs_usr_requests.RequestTime)"
|
"UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" // row[4]
|
||||||
" FROM deg_degrees,"
|
" FROM deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr_requests"
|
"crs_usr_requests"
|
||||||
" WHERE deg_degrees.CtrCod=%ld"
|
" WHERE deg_degrees.CtrCod=%ld"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr_requests.CrsCod"
|
" AND crs_courses.CrsCod=crs_usr_requests.CrsCod"
|
||||||
" AND ((1<<crs_usr_requests.Role)&%u)<>0"
|
" AND ((1<<crs_usr_requests.Role)&%u)<>0"
|
||||||
" ORDER BY crs_usr_requests.RequestTime DESC",
|
" ORDER BY crs_usr_requests.RequestTime DESC",
|
||||||
Gbl.Hierarchy.Ctr.CtrCod,
|
Gbl.Hierarchy.Ctr.CtrCod,
|
||||||
RolesSelected);
|
RolesSelected);
|
||||||
|
@ -2791,20 +2797,20 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
|
||||||
// Requests in courses of this degree in which I am teacher
|
// Requests in courses of this degree in which I am teacher
|
||||||
NumReqs =
|
NumReqs =
|
||||||
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
||||||
"SELECT crs_usr_requests.ReqCod,"
|
"SELECT crs_usr_requests.ReqCod," // row[0]
|
||||||
"crs_usr_requests.CrsCod,"
|
"crs_usr_requests.CrsCod," // row[1]
|
||||||
"crs_usr_requests.UsrCod,"
|
"crs_usr_requests.UsrCod," // row[2]
|
||||||
"crs_usr_requests.Role,"
|
"crs_usr_requests.Role," // row[3]
|
||||||
"UNIX_TIMESTAMP(crs_usr_requests.RequestTime)"
|
"UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" // row[4]
|
||||||
" FROM crs_usr,"
|
" FROM crs_users,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr_requests"
|
"crs_usr_requests"
|
||||||
" WHERE crs_usr.UsrCod=%ld"
|
" WHERE crs_users.UsrCod=%ld"
|
||||||
" AND crs_usr.Role=%u"
|
" AND crs_users.Role=%u"
|
||||||
" AND crs_usr.CrsCod=crs_courses.CrsCod"
|
" AND crs_users.CrsCod=crs_courses.CrsCod"
|
||||||
" AND crs_courses.DegCod=%ld"
|
" AND crs_courses.DegCod=%ld"
|
||||||
" AND crs_courses.CrsCod=crs_usr_requests.CrsCod"
|
" AND crs_courses.CrsCod=crs_usr_requests.CrsCod"
|
||||||
" AND ((1<<crs_usr_requests.Role)&%u)<>0"
|
" AND ((1<<crs_usr_requests.Role)&%u)<>0"
|
||||||
" ORDER BY crs_usr_requests.RequestTime DESC",
|
" ORDER BY crs_usr_requests.RequestTime DESC",
|
||||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||||
(unsigned) Rol_TCH,
|
(unsigned) Rol_TCH,
|
||||||
|
@ -2818,16 +2824,16 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
|
||||||
// Requests in any course of this degree
|
// Requests in any course of this degree
|
||||||
NumReqs =
|
NumReqs =
|
||||||
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
||||||
"SELECT crs_usr_requests.ReqCod,"
|
"SELECT crs_usr_requests.ReqCod," // row[0]
|
||||||
"crs_usr_requests.CrsCod,"
|
"crs_usr_requests.CrsCod," // row[1]
|
||||||
"crs_usr_requests.UsrCod,"
|
"crs_usr_requests.UsrCod," // row[2]
|
||||||
"crs_usr_requests.Role,"
|
"crs_usr_requests.Role," // row[3]
|
||||||
"UNIX_TIMESTAMP(crs_usr_requests.RequestTime)"
|
"UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" // row[4]
|
||||||
" FROM crs_courses,"
|
" FROM crs_courses,"
|
||||||
"crs_usr_requests"
|
"crs_usr_requests"
|
||||||
" WHERE crs_courses.DegCod=%ld"
|
" WHERE crs_courses.DegCod=%ld"
|
||||||
" AND crs_courses.CrsCod=crs_usr_requests.CrsCod"
|
" AND crs_courses.CrsCod=crs_usr_requests.CrsCod"
|
||||||
" AND ((1<<crs_usr_requests.Role)&%u)<>0"
|
" AND ((1<<crs_usr_requests.Role)&%u)<>0"
|
||||||
" ORDER BY crs_usr_requests.RequestTime DESC",
|
" ORDER BY crs_usr_requests.RequestTime DESC",
|
||||||
Gbl.Hierarchy.Deg.DegCod,
|
Gbl.Hierarchy.Deg.DegCod,
|
||||||
RolesSelected);
|
RolesSelected);
|
||||||
|
@ -2848,14 +2854,14 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
|
||||||
// Requests in this course
|
// Requests in this course
|
||||||
NumReqs =
|
NumReqs =
|
||||||
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
||||||
"SELECT ReqCod,"
|
"SELECT ReqCod," // row[0]
|
||||||
"CrsCod,"
|
"CrsCod," // row[1]
|
||||||
"UsrCod,"
|
"UsrCod," // row[2]
|
||||||
"Role,"
|
"Role," // row[3]
|
||||||
"UNIX_TIMESTAMP(RequestTime)"
|
"UNIX_TIMESTAMP(RequestTime)" // row[4]
|
||||||
" FROM crs_usr_requests"
|
" FROM crs_usr_requests"
|
||||||
" WHERE CrsCod=%ld"
|
" WHERE CrsCod=%ld"
|
||||||
" AND ((1<<Role)&%u)<>0"
|
" AND ((1<<Role)&%u)<>0"
|
||||||
" ORDER BY RequestTime DESC",
|
" ORDER BY RequestTime DESC",
|
||||||
Gbl.Hierarchy.Crs.CrsCod,
|
Gbl.Hierarchy.Crs.CrsCod,
|
||||||
RolesSelected);
|
RolesSelected);
|
||||||
|
@ -4100,8 +4106,10 @@ void Enr_AcceptUsrInCrs (long UsrCod)
|
||||||
{
|
{
|
||||||
/***** Set enrolment of a user to "accepted" in the current course *****/
|
/***** Set enrolment of a user to "accepted" in the current course *****/
|
||||||
DB_QueryUPDATE ("can not confirm user's enrolment",
|
DB_QueryUPDATE ("can not confirm user's enrolment",
|
||||||
"UPDATE crs_usr SET Accepted='Y'"
|
"UPDATE crs_users"
|
||||||
" WHERE CrsCod=%ld AND UsrCod=%ld",
|
" SET Accepted='Y'"
|
||||||
|
" WHERE CrsCod=%ld"
|
||||||
|
" AND UsrCod=%ld",
|
||||||
Gbl.Hierarchy.Crs.CrsCod,UsrCod);
|
Gbl.Hierarchy.Crs.CrsCod,UsrCod);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4212,11 +4220,13 @@ static void Enr_EffectivelyRemUsrFromCrs (struct UsrData *UsrDat,
|
||||||
/***** Remove user from the tables of courses-users *****/
|
/***** Remove user from the tables of courses-users *****/
|
||||||
DB_QueryDELETE ("can not remove a user from a course",
|
DB_QueryDELETE ("can not remove a user from a course",
|
||||||
"DELETE FROM crs_usr_last"
|
"DELETE FROM crs_usr_last"
|
||||||
" WHERE UsrCod=%ld AND CrsCod=%ld",
|
" WHERE UsrCod=%ld"
|
||||||
|
" AND CrsCod=%ld",
|
||||||
UsrDat->UsrCod,Crs->CrsCod);
|
UsrDat->UsrCod,Crs->CrsCod);
|
||||||
DB_QueryDELETE ("can not remove a user from a course",
|
DB_QueryDELETE ("can not remove a user from a course",
|
||||||
"DELETE FROM crs_usr"
|
"DELETE FROM crs_users"
|
||||||
" WHERE CrsCod=%ld AND UsrCod=%ld",
|
" WHERE CrsCod=%ld"
|
||||||
|
" AND UsrCod=%ld",
|
||||||
Crs->CrsCod,UsrDat->UsrCod);
|
Crs->CrsCod,UsrDat->UsrCod);
|
||||||
|
|
||||||
/***** Flush caches *****/
|
/***** Flush caches *****/
|
||||||
|
|
530
swad_figure.c
530
swad_figure.c
|
@ -890,7 +890,7 @@ static void Fig_GetAndShowHierarchyWithUsrs (Rol_Role_t Role)
|
||||||
NumCrssWithUsrs = Crs_GetCachedNumCrssWithUsrs (Role,SubQuery,Hie_Lvl_DEG,Gbl.Hierarchy.Deg.DegCod);
|
NumCrssWithUsrs = Crs_GetCachedNumCrssWithUsrs (Role,SubQuery,Hie_Lvl_DEG,Gbl.Hierarchy.Deg.DegCod);
|
||||||
break;
|
break;
|
||||||
case Hie_Lvl_CRS:
|
case Hie_Lvl_CRS:
|
||||||
sprintf (SubQuery,"crs_usr.CrsCod=%ld AND ",Gbl.Hierarchy.Crs.CrsCod);
|
sprintf (SubQuery,"crs_users.CrsCod=%ld AND ",Gbl.Hierarchy.Crs.CrsCod);
|
||||||
NumCtysWithUsrs = Cty_GetCachedNumCtysWithUsrs (Role,SubQuery,Hie_Lvl_CRS,Gbl.Hierarchy.Crs.CrsCod);
|
NumCtysWithUsrs = Cty_GetCachedNumCtysWithUsrs (Role,SubQuery,Hie_Lvl_CRS,Gbl.Hierarchy.Crs.CrsCod);
|
||||||
NumInssWithUsrs = Ins_GetCachedNumInssWithUsrs (Role,SubQuery,Hie_Lvl_CRS,Gbl.Hierarchy.Crs.CrsCod);
|
NumInssWithUsrs = Ins_GetCachedNumInssWithUsrs (Role,SubQuery,Hie_Lvl_CRS,Gbl.Hierarchy.Crs.CrsCod);
|
||||||
NumCtrsWithUsrs = Ctr_GetCachedNumCtrsWithUsrs (Role,SubQuery,Hie_Lvl_CRS,Gbl.Hierarchy.Crs.CrsCod);
|
NumCtrsWithUsrs = Ctr_GetCachedNumCtrsWithUsrs (Role,SubQuery,Hie_Lvl_CRS,Gbl.Hierarchy.Crs.CrsCod);
|
||||||
|
@ -1304,14 +1304,14 @@ static void Fig_GetAndShowInssOrderedByNumUsrsInCrss (void)
|
||||||
NumInss = (unsigned)
|
NumInss = (unsigned)
|
||||||
DB_QuerySELECT (&mysql_res,"can not get institutions",
|
DB_QuerySELECT (&mysql_res,"can not get institutions",
|
||||||
"SELECT ctr_centers.InsCod,"
|
"SELECT ctr_centers.InsCod,"
|
||||||
"COUNT(DISTINCT crs_usr.UsrCod) AS N"
|
"COUNT(DISTINCT crs_users.UsrCod) AS N"
|
||||||
" FROM ctr_centers,"
|
" FROM ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr"
|
"crs_users"
|
||||||
" WHERE ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" WHERE ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" GROUP BY InsCod"
|
" GROUP BY InsCod"
|
||||||
" ORDER BY N DESC");
|
" ORDER BY N DESC");
|
||||||
break;
|
break;
|
||||||
|
@ -1319,17 +1319,17 @@ static void Fig_GetAndShowInssOrderedByNumUsrsInCrss (void)
|
||||||
NumInss = (unsigned)
|
NumInss = (unsigned)
|
||||||
DB_QuerySELECT (&mysql_res,"can not get institutions",
|
DB_QuerySELECT (&mysql_res,"can not get institutions",
|
||||||
"SELECT ctr_centers.InsCod,"
|
"SELECT ctr_centers.InsCod,"
|
||||||
"COUNT(DISTINCT crs_usr.UsrCod) AS N"
|
"COUNT(DISTINCT crs_users.UsrCod) AS N"
|
||||||
" FROM ins_instits,"
|
" FROM ins_instits,"
|
||||||
"ctr_centers,"
|
"ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr"
|
"crs_users"
|
||||||
" WHERE ins_instits.CtyCod=%ld"
|
" WHERE ins_instits.CtyCod=%ld"
|
||||||
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" GROUP BY ctr_centers.InsCod"
|
" GROUP BY ctr_centers.InsCod"
|
||||||
" ORDER BY N DESC",
|
" ORDER BY N DESC",
|
||||||
Gbl.Hierarchy.Cty.CtyCod);
|
Gbl.Hierarchy.Cty.CtyCod);
|
||||||
|
@ -1341,15 +1341,15 @@ static void Fig_GetAndShowInssOrderedByNumUsrsInCrss (void)
|
||||||
NumInss = (unsigned)
|
NumInss = (unsigned)
|
||||||
DB_QuerySELECT (&mysql_res,"can not get institutions",
|
DB_QuerySELECT (&mysql_res,"can not get institutions",
|
||||||
"SELECT ctr_centers.InsCod,"
|
"SELECT ctr_centers.InsCod,"
|
||||||
"COUNT(DISTINCT crs_usr.UsrCod) AS N"
|
"COUNT(DISTINCT crs_users.UsrCod) AS N"
|
||||||
" FROM ctr_centers,"
|
" FROM ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr"
|
"crs_users"
|
||||||
" WHERE ctr_centers.InsCod=%ld"
|
" WHERE ctr_centers.InsCod=%ld"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" GROUP BY ctr_centers.InsCod"
|
" GROUP BY ctr_centers.InsCod"
|
||||||
" ORDER BY N DESC",
|
" ORDER BY N DESC",
|
||||||
Gbl.Hierarchy.Ins.InsCod);
|
Gbl.Hierarchy.Ins.InsCod);
|
||||||
|
@ -1956,14 +1956,14 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope,
|
||||||
"ctr_centers,"
|
"ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"brw_sizes"
|
"brw_sizes"
|
||||||
" WHERE ins_instits.CtyCod=%ld"
|
" WHERE ins_instits.CtyCod=%ld"
|
||||||
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=brw_sizes.ZoneUsrCod"
|
" AND crs_users.UsrCod=brw_sizes.ZoneUsrCod"
|
||||||
" AND brw_sizes.FileBrowser=%u",
|
" AND brw_sizes.FileBrowser=%u",
|
||||||
Gbl.Hierarchy.Cty.CtyCod,
|
Gbl.Hierarchy.Cty.CtyCod,
|
||||||
(unsigned) FileBrowser);
|
(unsigned) FileBrowser);
|
||||||
|
@ -2123,13 +2123,13 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope,
|
||||||
" FROM ctr_centers,"
|
" FROM ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"brw_sizes"
|
"brw_sizes"
|
||||||
" WHERE ctr_centers.InsCod=%ld"
|
" WHERE ctr_centers.InsCod=%ld"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=brw_sizes.ZoneUsrCod"
|
" AND crs_users.UsrCod=brw_sizes.ZoneUsrCod"
|
||||||
" AND brw_sizes.FileBrowser=%u",
|
" AND brw_sizes.FileBrowser=%u",
|
||||||
Gbl.Hierarchy.Ins.InsCod,
|
Gbl.Hierarchy.Ins.InsCod,
|
||||||
(unsigned) FileBrowser);
|
(unsigned) FileBrowser);
|
||||||
|
@ -2278,12 +2278,12 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope,
|
||||||
"SUM(brw_sizes.TotalSize)" // row[6]
|
"SUM(brw_sizes.TotalSize)" // row[6]
|
||||||
" FROM deg_degrees,"
|
" FROM deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"brw_sizes"
|
"brw_sizes"
|
||||||
" WHERE deg_degrees.CtrCod=%ld"
|
" WHERE deg_degrees.CtrCod=%ld"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=brw_sizes.ZoneUsrCod"
|
" AND crs_users.UsrCod=brw_sizes.ZoneUsrCod"
|
||||||
" AND brw_sizes.FileBrowser=%u",
|
" AND brw_sizes.FileBrowser=%u",
|
||||||
Gbl.Hierarchy.Ctr.CtrCod,
|
Gbl.Hierarchy.Ctr.CtrCod,
|
||||||
(unsigned) FileBrowser);
|
(unsigned) FileBrowser);
|
||||||
|
@ -2421,11 +2421,11 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope,
|
||||||
"SUM(brw_sizes.NumFiles)," // row[5]
|
"SUM(brw_sizes.NumFiles)," // row[5]
|
||||||
"SUM(brw_sizes.TotalSize)" // row[6]
|
"SUM(brw_sizes.TotalSize)" // row[6]
|
||||||
" FROM crs_courses,"
|
" FROM crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"brw_sizes"
|
"brw_sizes"
|
||||||
" WHERE crs_courses.DegCod=%ld"
|
" WHERE crs_courses.DegCod=%ld"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=brw_sizes.ZoneUsrCod"
|
" AND crs_users.UsrCod=brw_sizes.ZoneUsrCod"
|
||||||
" AND brw_sizes.FileBrowser=%u",
|
" AND brw_sizes.FileBrowser=%u",
|
||||||
Gbl.Hierarchy.Deg.DegCod,
|
Gbl.Hierarchy.Deg.DegCod,
|
||||||
(unsigned) FileBrowser);
|
(unsigned) FileBrowser);
|
||||||
|
@ -2552,10 +2552,10 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope,
|
||||||
"SUM(brw_sizes.NumFolders)," // row[4]
|
"SUM(brw_sizes.NumFolders)," // row[4]
|
||||||
"SUM(brw_sizes.NumFiles)," // row[5]
|
"SUM(brw_sizes.NumFiles)," // row[5]
|
||||||
"SUM(brw_sizes.TotalSize)" // row[6]
|
"SUM(brw_sizes.TotalSize)" // row[6]
|
||||||
" FROM crs_usr,"
|
" FROM crs_users,"
|
||||||
"brw_sizes"
|
"brw_sizes"
|
||||||
" WHERE crs_usr.CrsCod=%ld"
|
" WHERE crs_users.CrsCod=%ld"
|
||||||
" AND crs_usr.UsrCod=brw_sizes.ZoneUsrCod"
|
" AND crs_users.UsrCod=brw_sizes.ZoneUsrCod"
|
||||||
" AND brw_sizes.FileBrowser=%u",
|
" AND brw_sizes.FileBrowser=%u",
|
||||||
Gbl.Hierarchy.Crs.CrsCod,
|
Gbl.Hierarchy.Crs.CrsCod,
|
||||||
(unsigned) FileBrowser);
|
(unsigned) FileBrowser);
|
||||||
|
@ -3598,85 +3598,85 @@ static void Fig_GetAndShowTimelineActivityStats (void)
|
||||||
case Hie_Lvl_CTY:
|
case Hie_Lvl_CTY:
|
||||||
NumRows =
|
NumRows =
|
||||||
DB_QuerySELECT (&mysql_res,"can not get number of social notes",
|
DB_QuerySELECT (&mysql_res,"can not get number of social notes",
|
||||||
"SELECT COUNT(DISTINCT tml_notes.NotCod),"
|
"SELECT COUNT(DISTINCT tml_notes.NotCod)," // row[0]
|
||||||
"COUNT(DISTINCT tml_notes.UsrCod)"
|
"COUNT(DISTINCT tml_notes.UsrCod)" // row[1]
|
||||||
" FROM ins_instits,"
|
" FROM ins_instits,"
|
||||||
"ctr_centers,"
|
"ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"tml_notes"
|
"tml_notes"
|
||||||
" WHERE ins_instits.CtyCod=%ld"
|
" WHERE ins_instits.CtyCod=%ld"
|
||||||
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=tml_notes.UsrCod"
|
" AND crs_users.UsrCod=tml_notes.UsrCod"
|
||||||
" AND tml_notes.NoteType=%u",
|
" AND tml_notes.NoteType=%u",
|
||||||
Gbl.Hierarchy.Cty.CtyCod,
|
Gbl.Hierarchy.Cty.CtyCod,
|
||||||
(unsigned) NoteType);
|
(unsigned) NoteType);
|
||||||
break;
|
break;
|
||||||
case Hie_Lvl_INS:
|
case Hie_Lvl_INS:
|
||||||
NumRows =
|
NumRows =
|
||||||
DB_QuerySELECT (&mysql_res,"can not get number of social notes",
|
DB_QuerySELECT (&mysql_res,"can not get number of social notes",
|
||||||
"SELECT COUNT(DISTINCT tml_notes.NotCod),"
|
"SELECT COUNT(DISTINCT tml_notes.NotCod)," // row[0]
|
||||||
"COUNT(DISTINCT tml_notes.UsrCod)"
|
"COUNT(DISTINCT tml_notes.UsrCod)" // row[1]
|
||||||
" FROM ctr_centers,"
|
" FROM ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"tml_notes"
|
"tml_notes"
|
||||||
" WHERE ctr_centers.InsCod=%ld"
|
" WHERE ctr_centers.InsCod=%ld"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=tml_notes.UsrCod"
|
" AND crs_users.UsrCod=tml_notes.UsrCod"
|
||||||
" AND tml_notes.NoteType=%u",
|
" AND tml_notes.NoteType=%u",
|
||||||
Gbl.Hierarchy.Ins.InsCod,
|
Gbl.Hierarchy.Ins.InsCod,
|
||||||
(unsigned) NoteType);
|
(unsigned) NoteType);
|
||||||
break;
|
break;
|
||||||
case Hie_Lvl_CTR:
|
case Hie_Lvl_CTR:
|
||||||
NumRows =
|
NumRows =
|
||||||
DB_QuerySELECT (&mysql_res,"can not get number of social notes",
|
DB_QuerySELECT (&mysql_res,"can not get number of social notes",
|
||||||
"SELECT COUNT(DISTINCT tml_notes.NotCod),"
|
"SELECT COUNT(DISTINCT tml_notes.NotCod)," // row[0]
|
||||||
"COUNT(DISTINCT tml_notes.UsrCod)"
|
"COUNT(DISTINCT tml_notes.UsrCod)" // row[1]
|
||||||
" FROM deg_degrees,"
|
" FROM deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"tml_notes"
|
"tml_notes"
|
||||||
" WHERE deg_degrees.CtrCod=%ld"
|
" WHERE deg_degrees.CtrCod=%ld"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=tml_notes.UsrCod"
|
" AND crs_users.UsrCod=tml_notes.UsrCod"
|
||||||
" AND tml_notes.NoteType=%u",
|
" AND tml_notes.NoteType=%u",
|
||||||
Gbl.Hierarchy.Ctr.CtrCod,
|
Gbl.Hierarchy.Ctr.CtrCod,
|
||||||
(unsigned) NoteType);
|
(unsigned) NoteType);
|
||||||
break;
|
break;
|
||||||
case Hie_Lvl_DEG:
|
case Hie_Lvl_DEG:
|
||||||
NumRows =
|
NumRows =
|
||||||
DB_QuerySELECT (&mysql_res,"can not get number of social notes",
|
DB_QuerySELECT (&mysql_res,"can not get number of social notes",
|
||||||
"SELECT COUNT(DISTINCT tml_notes.NotCod),"
|
"SELECT COUNT(DISTINCT tml_notes.NotCod)," // row[0]
|
||||||
"COUNT(DISTINCT tml_notes.UsrCod)"
|
"COUNT(DISTINCT tml_notes.UsrCod)" // row[1]
|
||||||
" FROM crs_courses,"
|
" FROM crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"tml_notes"
|
"tml_notes"
|
||||||
" WHERE crs_courses.DegCod=%ld"
|
" WHERE crs_courses.DegCod=%ld"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=tml_notes.UsrCod"
|
" AND crs_users.UsrCod=tml_notes.UsrCod"
|
||||||
" AND tml_notes.NoteType=%u",
|
" AND tml_notes.NoteType=%u",
|
||||||
Gbl.Hierarchy.Deg.DegCod,
|
Gbl.Hierarchy.Deg.DegCod,
|
||||||
(unsigned) NoteType);
|
(unsigned) NoteType);
|
||||||
break;
|
break;
|
||||||
case Hie_Lvl_CRS:
|
case Hie_Lvl_CRS:
|
||||||
NumRows =
|
NumRows =
|
||||||
DB_QuerySELECT (&mysql_res,"can not get number of social notes",
|
DB_QuerySELECT (&mysql_res,"can not get number of social notes",
|
||||||
"SELECT COUNT(DISTINCT tml_notes.NotCod),"
|
"SELECT COUNT(DISTINCT tml_notes.NotCod)," // row[0]
|
||||||
"COUNT(DISTINCT tml_notes.UsrCod)"
|
"COUNT(DISTINCT tml_notes.UsrCod)" // row[1]
|
||||||
" FROM crs_usr,"
|
" FROM crs_users,"
|
||||||
"tml_notes"
|
"tml_notes"
|
||||||
" WHERE crs_usr.CrsCod=%ld"
|
" WHERE crs_users.CrsCod=%ld"
|
||||||
" AND crs_usr.UsrCod=tml_notes.UsrCod"
|
" AND crs_users.UsrCod=tml_notes.UsrCod"
|
||||||
" AND tml_notes.NoteType=%u",
|
" AND tml_notes.NoteType=%u",
|
||||||
Gbl.Hierarchy.Crs.CrsCod,
|
Gbl.Hierarchy.Crs.CrsCod,
|
||||||
(unsigned) NoteType);
|
(unsigned) NoteType);
|
||||||
break;
|
break;
|
||||||
|
@ -3749,76 +3749,76 @@ static void Fig_GetAndShowTimelineActivityStats (void)
|
||||||
case Hie_Lvl_CTY:
|
case Hie_Lvl_CTY:
|
||||||
NumRows =
|
NumRows =
|
||||||
DB_QuerySELECT (&mysql_res,"can not get number of social notes",
|
DB_QuerySELECT (&mysql_res,"can not get number of social notes",
|
||||||
"SELECT COUNT(DISTINCT tml_notes.NotCod),"
|
"SELECT COUNT(DISTINCT tml_notes.NotCod)," // row[0]
|
||||||
"COUNT(DISTINCT tml_notes.UsrCod)"
|
"COUNT(DISTINCT tml_notes.UsrCod)" // row[1]
|
||||||
" FROM ins_instits,"
|
" FROM ins_instits,"
|
||||||
"ctr_centers,"
|
"ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"tml_notes"
|
"tml_notes"
|
||||||
" WHERE ins_instits.CtyCod=%ld"
|
" WHERE ins_instits.CtyCod=%ld"
|
||||||
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=tml_notes.UsrCod",
|
" AND crs_users.UsrCod=tml_notes.UsrCod",
|
||||||
Gbl.Hierarchy.Cty.CtyCod);
|
Gbl.Hierarchy.Cty.CtyCod);
|
||||||
break;
|
break;
|
||||||
case Hie_Lvl_INS:
|
case Hie_Lvl_INS:
|
||||||
NumRows =
|
NumRows =
|
||||||
DB_QuerySELECT (&mysql_res,"can not get number of social notes",
|
DB_QuerySELECT (&mysql_res,"can not get number of social notes",
|
||||||
"SELECT COUNT(DISTINCT tml_notes.NotCod),"
|
"SELECT COUNT(DISTINCT tml_notes.NotCod)," // row[0]
|
||||||
"COUNT(DISTINCT tml_notes.UsrCod)"
|
"COUNT(DISTINCT tml_notes.UsrCod)" // row[1]
|
||||||
" FROM ctr_centers,"
|
" FROM ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"tml_notes"
|
"tml_notes"
|
||||||
" WHERE ctr_centers.InsCod=%ld"
|
" WHERE ctr_centers.InsCod=%ld"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=tml_notes.UsrCod",
|
" AND crs_users.UsrCod=tml_notes.UsrCod",
|
||||||
Gbl.Hierarchy.Ins.InsCod);
|
Gbl.Hierarchy.Ins.InsCod);
|
||||||
break;
|
break;
|
||||||
case Hie_Lvl_CTR:
|
case Hie_Lvl_CTR:
|
||||||
NumRows =
|
NumRows =
|
||||||
DB_QuerySELECT (&mysql_res,"can not get number of social notes",
|
DB_QuerySELECT (&mysql_res,"can not get number of social notes",
|
||||||
"SELECT COUNT(DISTINCT tml_notes.NotCod),"
|
"SELECT COUNT(DISTINCT tml_notes.NotCod)," // row[0]
|
||||||
"COUNT(DISTINCT tml_notes.UsrCod)"
|
"COUNT(DISTINCT tml_notes.UsrCod)" // row[1]
|
||||||
" FROM deg_degrees,"
|
" FROM deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"tml_notes"
|
"tml_notes"
|
||||||
" WHERE deg_degrees.CtrCod=%ld"
|
" WHERE deg_degrees.CtrCod=%ld"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=tml_notes.UsrCod",
|
" AND crs_users.UsrCod=tml_notes.UsrCod",
|
||||||
Gbl.Hierarchy.Ctr.CtrCod);
|
Gbl.Hierarchy.Ctr.CtrCod);
|
||||||
break;
|
break;
|
||||||
case Hie_Lvl_DEG:
|
case Hie_Lvl_DEG:
|
||||||
NumRows =
|
NumRows =
|
||||||
DB_QuerySELECT (&mysql_res,"can not get number of social notes",
|
DB_QuerySELECT (&mysql_res,"can not get number of social notes",
|
||||||
"SELECT COUNT(DISTINCT tml_notes.NotCod),"
|
"SELECT COUNT(DISTINCT tml_notes.NotCod)," // row[0]
|
||||||
"COUNT(DISTINCT tml_notes.UsrCod)"
|
"COUNT(DISTINCT tml_notes.UsrCod)" // row[1]
|
||||||
" FROM crs_courses,"
|
" FROM crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"tml_notes"
|
"tml_notes"
|
||||||
" WHERE crs_courses.DegCod=%ld"
|
" WHERE crs_courses.DegCod=%ld"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=tml_notes.UsrCod",
|
" AND crs_users.UsrCod=tml_notes.UsrCod",
|
||||||
Gbl.Hierarchy.Deg.DegCod);
|
Gbl.Hierarchy.Deg.DegCod);
|
||||||
break;
|
break;
|
||||||
case Hie_Lvl_CRS:
|
case Hie_Lvl_CRS:
|
||||||
NumRows =
|
NumRows =
|
||||||
DB_QuerySELECT (&mysql_res,"can not get number of social notes",
|
DB_QuerySELECT (&mysql_res,"can not get number of social notes",
|
||||||
"SELECT COUNT(DISTINCT tml_notes.NotCod),"
|
"SELECT COUNT(DISTINCT tml_notes.NotCod)," // row[0]
|
||||||
"COUNT(DISTINCT tml_notes.UsrCod)"
|
"COUNT(DISTINCT tml_notes.UsrCod)" // row[1]
|
||||||
" FROM crs_usr,"
|
" FROM crs_users,"
|
||||||
"tml_notes"
|
"tml_notes"
|
||||||
" WHERE crs_usr.CrsCod=%ld"
|
" WHERE crs_users.CrsCod=%ld"
|
||||||
" AND crs_usr.UsrCod=tml_notes.UsrCod",
|
" AND crs_users.UsrCod=tml_notes.UsrCod",
|
||||||
Gbl.Hierarchy.Crs.CrsCod);
|
Gbl.Hierarchy.Crs.CrsCod);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -3952,18 +3952,18 @@ static void Fig_GetAndShowFollowStats (void)
|
||||||
NumUsrs = (unsigned)
|
NumUsrs = (unsigned)
|
||||||
DB_QueryCOUNT ("can not get the total number of following/followers",
|
DB_QueryCOUNT ("can not get the total number of following/followers",
|
||||||
"SELECT COUNT(DISTINCT usr_follow.%s)"
|
"SELECT COUNT(DISTINCT usr_follow.%s)"
|
||||||
" FROM ins_instits,"
|
" FROM ins_instits,"
|
||||||
"ctr_centers,"
|
"ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_follow"
|
"usr_follow"
|
||||||
" WHERE ins_instits.CtyCod=%ld"
|
" WHERE ins_instits.CtyCod=%ld"
|
||||||
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=usr_follow.%s",
|
" AND crs_users.UsrCod=usr_follow.%s",
|
||||||
FieldDB[Fol],
|
FieldDB[Fol],
|
||||||
Gbl.Hierarchy.Cty.CtyCod,
|
Gbl.Hierarchy.Cty.CtyCod,
|
||||||
FieldDB[Fol]);
|
FieldDB[Fol]);
|
||||||
|
@ -3972,16 +3972,16 @@ static void Fig_GetAndShowFollowStats (void)
|
||||||
NumUsrs = (unsigned)
|
NumUsrs = (unsigned)
|
||||||
DB_QueryCOUNT ("can not get the total number of following/followers",
|
DB_QueryCOUNT ("can not get the total number of following/followers",
|
||||||
"SELECT COUNT(DISTINCT usr_follow.%s)"
|
"SELECT COUNT(DISTINCT usr_follow.%s)"
|
||||||
" FROM ctr_centers,"
|
" FROM ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_follow"
|
"usr_follow"
|
||||||
" WHERE ctr_centers.InsCod=%ld"
|
" WHERE ctr_centers.InsCod=%ld"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=usr_follow.%s",
|
" AND crs_users.UsrCod=usr_follow.%s",
|
||||||
FieldDB[Fol],
|
FieldDB[Fol],
|
||||||
Gbl.Hierarchy.Ins.InsCod,
|
Gbl.Hierarchy.Ins.InsCod,
|
||||||
FieldDB[Fol]);
|
FieldDB[Fol]);
|
||||||
|
@ -3992,12 +3992,12 @@ static void Fig_GetAndShowFollowStats (void)
|
||||||
"SELECT COUNT(DISTINCT usr_follow.%s)"
|
"SELECT COUNT(DISTINCT usr_follow.%s)"
|
||||||
" FROM deg_degrees,"
|
" FROM deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_follow"
|
"usr_follow"
|
||||||
" WHERE deg_degrees.CtrCod=%ld"
|
" WHERE deg_degrees.CtrCod=%ld"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=usr_follow.%s",
|
" AND crs_users.UsrCod=usr_follow.%s",
|
||||||
FieldDB[Fol],
|
FieldDB[Fol],
|
||||||
Gbl.Hierarchy.Ctr.CtrCod,
|
Gbl.Hierarchy.Ctr.CtrCod,
|
||||||
FieldDB[Fol]);
|
FieldDB[Fol]);
|
||||||
|
@ -4006,12 +4006,12 @@ static void Fig_GetAndShowFollowStats (void)
|
||||||
NumUsrs = (unsigned)
|
NumUsrs = (unsigned)
|
||||||
DB_QueryCOUNT ("can not get the total number of following/followers",
|
DB_QueryCOUNT ("can not get the total number of following/followers",
|
||||||
"SELECT COUNT(DISTINCT usr_follow.%s)"
|
"SELECT COUNT(DISTINCT usr_follow.%s)"
|
||||||
" FROM crs_courses,"
|
" FROM crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_follow"
|
"usr_follow"
|
||||||
" WHERE crs_courses.DegCod=%ld"
|
" WHERE crs_courses.DegCod=%ld"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=usr_follow.%s",
|
" AND crs_users.UsrCod=usr_follow.%s",
|
||||||
FieldDB[Fol],
|
FieldDB[Fol],
|
||||||
Gbl.Hierarchy.Deg.DegCod,
|
Gbl.Hierarchy.Deg.DegCod,
|
||||||
FieldDB[Fol]);
|
FieldDB[Fol]);
|
||||||
|
@ -4020,10 +4020,10 @@ static void Fig_GetAndShowFollowStats (void)
|
||||||
NumUsrs = (unsigned)
|
NumUsrs = (unsigned)
|
||||||
DB_QueryCOUNT ("can not get the total number of following/followers",
|
DB_QueryCOUNT ("can not get the total number of following/followers",
|
||||||
"SELECT COUNT(DISTINCT usr_follow.%s)"
|
"SELECT COUNT(DISTINCT usr_follow.%s)"
|
||||||
" FROM crs_usr,"
|
" FROM crs_users,"
|
||||||
"usr_follow"
|
"usr_follow"
|
||||||
" WHERE crs_usr.CrsCod=%ld"
|
" WHERE crs_users.CrsCod=%ld"
|
||||||
" AND crs_usr.UsrCod=usr_follow.%s",
|
" AND crs_users.UsrCod=usr_follow.%s",
|
||||||
FieldDB[Fol],
|
FieldDB[Fol],
|
||||||
Gbl.Hierarchy.Crs.CrsCod,
|
Gbl.Hierarchy.Crs.CrsCod,
|
||||||
FieldDB[Fol]);
|
FieldDB[Fol]);
|
||||||
|
@ -4065,31 +4065,31 @@ static void Fig_GetAndShowFollowStats (void)
|
||||||
case Hie_Lvl_SYS:
|
case Hie_Lvl_SYS:
|
||||||
DB_QuerySELECT (&mysql_res,"can not get number of questions"
|
DB_QuerySELECT (&mysql_res,"can not get number of questions"
|
||||||
" per survey",
|
" per survey",
|
||||||
"SELECT AVG(N) FROM "
|
"SELECT AVG(N) FROM " // row[0]
|
||||||
"(SELECT COUNT(%s) AS N"
|
"(SELECT COUNT(%s) AS N"
|
||||||
" FROM usr_follow"
|
" FROM usr_follow"
|
||||||
" GROUP BY %s) AS F",
|
" GROUP BY %s) AS F",
|
||||||
FieldDB[Fol],
|
FieldDB[Fol],
|
||||||
FieldDB[1 - Fol]);
|
FieldDB[1 - Fol]);
|
||||||
break;
|
break;
|
||||||
case Hie_Lvl_CTY:
|
case Hie_Lvl_CTY:
|
||||||
DB_QuerySELECT (&mysql_res,"can not get number of questions"
|
DB_QuerySELECT (&mysql_res,"can not get number of questions"
|
||||||
" per survey",
|
" per survey",
|
||||||
"SELECT AVG(N) FROM "
|
"SELECT AVG(N) FROM " // row[0]
|
||||||
"(SELECT COUNT(DISTINCT usr_follow.%s) AS N"
|
"(SELECT COUNT(DISTINCT usr_follow.%s) AS N"
|
||||||
" FROM ins_instits,"
|
" FROM ins_instits,"
|
||||||
"ctr_centers,"
|
"ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_follow"
|
"usr_follow"
|
||||||
" WHERE ins_instits.CtyCod=%ld"
|
" WHERE ins_instits.CtyCod=%ld"
|
||||||
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=usr_follow.%s"
|
" AND crs_users.UsrCod=usr_follow.%s"
|
||||||
" GROUP BY %s) AS F",
|
" GROUP BY %s) AS F",
|
||||||
FieldDB[Fol],
|
FieldDB[Fol],
|
||||||
Gbl.Hierarchy.Cty.CtyCod,
|
Gbl.Hierarchy.Cty.CtyCod,
|
||||||
FieldDB[Fol],
|
FieldDB[Fol],
|
||||||
|
@ -4098,19 +4098,19 @@ static void Fig_GetAndShowFollowStats (void)
|
||||||
case Hie_Lvl_INS:
|
case Hie_Lvl_INS:
|
||||||
DB_QuerySELECT (&mysql_res,"can not get number of questions"
|
DB_QuerySELECT (&mysql_res,"can not get number of questions"
|
||||||
" per survey",
|
" per survey",
|
||||||
"SELECT AVG(N) FROM "
|
"SELECT AVG(N) FROM " // row[0]
|
||||||
"(SELECT COUNT(DISTINCT usr_follow.%s) AS N"
|
"(SELECT COUNT(DISTINCT usr_follow.%s) AS N"
|
||||||
" FROM ctr_centers,"
|
" FROM ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_follow"
|
"usr_follow"
|
||||||
" WHERE ctr_centers.InsCod=%ld"
|
" WHERE ctr_centers.InsCod=%ld"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=usr_follow.%s"
|
" AND crs_users.UsrCod=usr_follow.%s"
|
||||||
" GROUP BY %s) AS F",
|
" GROUP BY %s) AS F",
|
||||||
FieldDB[Fol],
|
FieldDB[Fol],
|
||||||
Gbl.Hierarchy.Ins.InsCod,
|
Gbl.Hierarchy.Ins.InsCod,
|
||||||
FieldDB[Fol],
|
FieldDB[Fol],
|
||||||
|
@ -4119,17 +4119,17 @@ static void Fig_GetAndShowFollowStats (void)
|
||||||
case Hie_Lvl_CTR:
|
case Hie_Lvl_CTR:
|
||||||
DB_QuerySELECT (&mysql_res,"can not get number of questions"
|
DB_QuerySELECT (&mysql_res,"can not get number of questions"
|
||||||
" per survey",
|
" per survey",
|
||||||
"SELECT AVG(N) FROM "
|
"SELECT AVG(N) FROM " // row[0]
|
||||||
"(SELECT COUNT(DISTINCT usr_follow.%s) AS N"
|
"(SELECT COUNT(DISTINCT usr_follow.%s) AS N"
|
||||||
" FROM deg_degrees,"
|
" FROM deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_follow"
|
"usr_follow"
|
||||||
" WHERE deg_degrees.CtrCod=%ld"
|
" WHERE deg_degrees.CtrCod=%ld"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=usr_follow.%s"
|
" AND crs_users.UsrCod=usr_follow.%s"
|
||||||
" GROUP BY %s) AS F",
|
" GROUP BY %s) AS F",
|
||||||
FieldDB[Fol],
|
FieldDB[Fol],
|
||||||
Gbl.Hierarchy.Ctr.CtrCod,
|
Gbl.Hierarchy.Ctr.CtrCod,
|
||||||
FieldDB[Fol],
|
FieldDB[Fol],
|
||||||
|
@ -4138,15 +4138,15 @@ static void Fig_GetAndShowFollowStats (void)
|
||||||
case Hie_Lvl_DEG:
|
case Hie_Lvl_DEG:
|
||||||
DB_QuerySELECT (&mysql_res,"can not get number of questions"
|
DB_QuerySELECT (&mysql_res,"can not get number of questions"
|
||||||
" per survey",
|
" per survey",
|
||||||
"SELECT AVG(N) FROM "
|
"SELECT AVG(N) FROM " // row[0]
|
||||||
"(SELECT COUNT(DISTINCT usr_follow.%s) AS N"
|
"(SELECT COUNT(DISTINCT usr_follow.%s) AS N"
|
||||||
" FROM crs_courses,"
|
" FROM crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_follow"
|
"usr_follow"
|
||||||
" WHERE crs_courses.DegCod=%ld"
|
" WHERE crs_courses.DegCod=%ld"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=usr_follow.%s"
|
" AND crs_users.UsrCod=usr_follow.%s"
|
||||||
" GROUP BY %s) AS F",
|
" GROUP BY %s) AS F",
|
||||||
FieldDB[Fol],
|
FieldDB[Fol],
|
||||||
Gbl.Hierarchy.Deg.DegCod,
|
Gbl.Hierarchy.Deg.DegCod,
|
||||||
FieldDB[Fol],
|
FieldDB[Fol],
|
||||||
|
@ -4155,13 +4155,13 @@ static void Fig_GetAndShowFollowStats (void)
|
||||||
case Hie_Lvl_CRS:
|
case Hie_Lvl_CRS:
|
||||||
DB_QuerySELECT (&mysql_res,"can not get number of questions"
|
DB_QuerySELECT (&mysql_res,"can not get number of questions"
|
||||||
" per survey",
|
" per survey",
|
||||||
"SELECT AVG(N) FROM "
|
"SELECT AVG(N) FROM " // row[0]
|
||||||
"(SELECT COUNT(DISTINCT usr_follow.%s) AS N"
|
"(SELECT COUNT(DISTINCT usr_follow.%s) AS N"
|
||||||
" FROM crs_usr,"
|
" FROM crs_users,"
|
||||||
"usr_follow"
|
"usr_follow"
|
||||||
" WHERE crs_usr.CrsCod=%ld"
|
" WHERE crs_users.CrsCod=%ld"
|
||||||
" AND crs_usr.UsrCod=usr_follow.%s"
|
" AND crs_users.UsrCod=usr_follow.%s"
|
||||||
" GROUP BY %s) AS F",
|
" GROUP BY %s) AS F",
|
||||||
FieldDB[Fol],
|
FieldDB[Fol],
|
||||||
Gbl.Hierarchy.Crs.CrsCod,
|
Gbl.Hierarchy.Crs.CrsCod,
|
||||||
FieldDB[Fol],
|
FieldDB[Fol],
|
||||||
|
@ -5807,75 +5807,75 @@ unsigned Fig_GetNumUsrsWhoChoseAnOption (const char *SubQuery)
|
||||||
NumUsrs = (unsigned)
|
NumUsrs = (unsigned)
|
||||||
DB_QueryCOUNT ("can not get the number of users who have chosen an option",
|
DB_QueryCOUNT ("can not get the number of users who have chosen an option",
|
||||||
"SELECT COUNT(DISTINCT usr_data.UsrCod)"
|
"SELECT COUNT(DISTINCT usr_data.UsrCod)"
|
||||||
" FROM ins_instits,"
|
" FROM ins_instits,"
|
||||||
"ctr_centers,"
|
"ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_data"
|
"usr_data"
|
||||||
" WHERE ins_instits.CtyCod=%ld"
|
" WHERE ins_instits.CtyCod=%ld"
|
||||||
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=usr_data.UsrCod"
|
" AND crs_users.UsrCod=usr_data.UsrCod"
|
||||||
" AND %s",
|
" AND %s",
|
||||||
Gbl.Hierarchy.Cty.CtyCod,SubQuery);
|
Gbl.Hierarchy.Cty.CtyCod,SubQuery);
|
||||||
break;
|
break;
|
||||||
case Hie_Lvl_INS:
|
case Hie_Lvl_INS:
|
||||||
NumUsrs = (unsigned)
|
NumUsrs = (unsigned)
|
||||||
DB_QueryCOUNT ("can not get the number of users who have chosen an option",
|
DB_QueryCOUNT ("can not get the number of users who have chosen an option",
|
||||||
"SELECT COUNT(DISTINCT usr_data.UsrCod)"
|
"SELECT COUNT(DISTINCT usr_data.UsrCod)"
|
||||||
" FROM ctr_centers,"
|
" FROM ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_data"
|
"usr_data"
|
||||||
" WHERE ctr_centers.InsCod=%ld"
|
" WHERE ctr_centers.InsCod=%ld"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=usr_data.UsrCod"
|
" AND crs_users.UsrCod=usr_data.UsrCod"
|
||||||
" AND %s",
|
" AND %s",
|
||||||
Gbl.Hierarchy.Ins.InsCod,SubQuery);
|
Gbl.Hierarchy.Ins.InsCod,SubQuery);
|
||||||
break;
|
break;
|
||||||
case Hie_Lvl_CTR:
|
case Hie_Lvl_CTR:
|
||||||
NumUsrs = (unsigned)
|
NumUsrs = (unsigned)
|
||||||
DB_QueryCOUNT ("can not get the number of users who have chosen an option",
|
DB_QueryCOUNT ("can not get the number of users who have chosen an option",
|
||||||
"SELECT COUNT(DISTINCT usr_data.UsrCod)"
|
"SELECT COUNT(DISTINCT usr_data.UsrCod)"
|
||||||
" FROM deg_degrees,"
|
" FROM deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_data"
|
"usr_data"
|
||||||
" WHERE deg_degrees.CtrCod=%ld"
|
" WHERE deg_degrees.CtrCod=%ld"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=usr_data.UsrCod"
|
" AND crs_users.UsrCod=usr_data.UsrCod"
|
||||||
" AND %s",
|
" AND %s",
|
||||||
Gbl.Hierarchy.Ctr.CtrCod,SubQuery);
|
Gbl.Hierarchy.Ctr.CtrCod,SubQuery);
|
||||||
break;
|
break;
|
||||||
case Hie_Lvl_DEG:
|
case Hie_Lvl_DEG:
|
||||||
NumUsrs = (unsigned)
|
NumUsrs = (unsigned)
|
||||||
DB_QueryCOUNT ("can not get the number of users who have chosen an option",
|
DB_QueryCOUNT ("can not get the number of users who have chosen an option",
|
||||||
"SELECT COUNT(DISTINCT usr_data.UsrCod)"
|
"SELECT COUNT(DISTINCT usr_data.UsrCod)"
|
||||||
" FROM crs_courses,"
|
" FROM crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_data"
|
"usr_data"
|
||||||
" WHERE crs_courses.DegCod=%ld"
|
" WHERE crs_courses.DegCod=%ld"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=usr_data.UsrCod"
|
" AND crs_users.UsrCod=usr_data.UsrCod"
|
||||||
" AND %s",
|
" AND %s",
|
||||||
Gbl.Hierarchy.Deg.DegCod,SubQuery);
|
Gbl.Hierarchy.Deg.DegCod,SubQuery);
|
||||||
break;
|
break;
|
||||||
case Hie_Lvl_CRS:
|
case Hie_Lvl_CRS:
|
||||||
NumUsrs = (unsigned)
|
NumUsrs = (unsigned)
|
||||||
DB_QueryCOUNT ("can not get the number of users who have chosen an option",
|
DB_QueryCOUNT ("can not get the number of users who have chosen an option",
|
||||||
"SELECT COUNT(DISTINCT usr_data.UsrCod)"
|
"SELECT COUNT(DISTINCT usr_data.UsrCod)"
|
||||||
" FROM crs_usr,"
|
" FROM crs_users,"
|
||||||
"usr_data"
|
"usr_data"
|
||||||
" WHERE crs_usr.CrsCod=%ld"
|
" WHERE crs_users.CrsCod=%ld"
|
||||||
" AND crs_usr.UsrCod=usr_data.UsrCod"
|
" AND crs_users.UsrCod=usr_data.UsrCod"
|
||||||
" AND %s",
|
" AND %s",
|
||||||
Gbl.Hierarchy.Crs.CrsCod,SubQuery);
|
Gbl.Hierarchy.Crs.CrsCod,SubQuery);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -2681,7 +2681,8 @@ bool Brw_CheckIfExistsFolderAssigmentForAnyUsr (const char *FolderName)
|
||||||
/***** Get all the users belonging to current course from database *****/
|
/***** Get all the users belonging to current course from database *****/
|
||||||
NumUsrs = (unsigned) DB_QuerySELECT (&mysql_res,"can not get users"
|
NumUsrs = (unsigned) DB_QuerySELECT (&mysql_res,"can not get users"
|
||||||
" from current course",
|
" from current course",
|
||||||
"SELECT UsrCod FROM crs_usr"
|
"SELECT UsrCod" // row[0]
|
||||||
|
" FROM crs_users"
|
||||||
" WHERE CrsCod=%ld",
|
" WHERE CrsCod=%ld",
|
||||||
Gbl.Hierarchy.Crs.CrsCod);
|
Gbl.Hierarchy.Crs.CrsCod);
|
||||||
|
|
||||||
|
@ -2796,7 +2797,8 @@ bool Brw_UpdateFoldersAssigmentsIfExistForAllUsrs (const char *OldFolderName,con
|
||||||
/***** Get all the users belonging to current course from database *****/
|
/***** Get all the users belonging to current course from database *****/
|
||||||
NumUsrs = (unsigned) DB_QuerySELECT (&mysql_res,"can not get users"
|
NumUsrs = (unsigned) DB_QuerySELECT (&mysql_res,"can not get users"
|
||||||
" from current course",
|
" from current course",
|
||||||
"SELECT UsrCod FROM crs_usr"
|
"SELECT UsrCod" // row[0]
|
||||||
|
" FROM crs_users"
|
||||||
" WHERE CrsCod=%ld",
|
" WHERE CrsCod=%ld",
|
||||||
Gbl.Hierarchy.Crs.CrsCod);
|
Gbl.Hierarchy.Crs.CrsCod);
|
||||||
|
|
||||||
|
@ -2915,7 +2917,8 @@ void Brw_RemoveFoldersAssignmentsIfExistForAllUsrs (const char *FolderName)
|
||||||
/***** Get all the users belonging to current course from database *****/
|
/***** Get all the users belonging to current course from database *****/
|
||||||
NumUsrs = (unsigned) DB_QuerySELECT (&mysql_res,"can not get users"
|
NumUsrs = (unsigned) DB_QuerySELECT (&mysql_res,"can not get users"
|
||||||
" from current course",
|
" from current course",
|
||||||
"SELECT UsrCod FROM crs_usr"
|
"SELECT UsrCod" // row[0]
|
||||||
|
" FROM crs_users"
|
||||||
" WHERE CrsCod=%ld",
|
" WHERE CrsCod=%ld",
|
||||||
Gbl.Hierarchy.Crs.CrsCod);
|
Gbl.Hierarchy.Crs.CrsCod);
|
||||||
|
|
||||||
|
|
173
swad_follow.c
173
swad_follow.c
|
@ -321,45 +321,48 @@ static unsigned long Fol_GetUsrsToFollow (unsigned long MaxUsrsToShow,
|
||||||
"("
|
"("
|
||||||
"SELECT DISTINCT usr_follow.FollowedCod AS UsrCod"
|
"SELECT DISTINCT usr_follow.FollowedCod AS UsrCod"
|
||||||
" FROM usr_follow,"
|
" FROM usr_follow,"
|
||||||
"(SELECT FollowedCod FROM usr_follow"
|
"(SELECT FollowedCod"
|
||||||
" WHERE FollowerCod=%ld) AS my_followed,"
|
" FROM usr_follow"
|
||||||
" usr_data"
|
" WHERE FollowerCod=%ld) AS my_followed,"
|
||||||
|
" usr_data"
|
||||||
" WHERE usr_follow.FollowerCod=my_followed.FollowedCod"
|
" WHERE usr_follow.FollowerCod=my_followed.FollowedCod"
|
||||||
" AND usr_follow.FollowedCod<>%ld"
|
" AND usr_follow.FollowedCod<>%ld"
|
||||||
" AND usr_follow.FollowedCod=usr_data.UsrCod"
|
" AND usr_follow.FollowedCod=usr_data.UsrCod"
|
||||||
" AND usr_data.Surname1<>''" // Surname 1 not empty
|
" AND usr_data.Surname1<>''" // Surname 1 not empty
|
||||||
" AND usr_data.FirstName<>''" // First name not empty
|
" AND usr_data.FirstName<>''" // First name not empty
|
||||||
"%s" // SubQuery1
|
"%s" // SubQuery1
|
||||||
")"
|
")"
|
||||||
" UNION "
|
" UNION "
|
||||||
// 2. Users who share any course with me
|
// 2. Users who share any course with me
|
||||||
"("
|
"("
|
||||||
"SELECT DISTINCT crs_usr.UsrCod"
|
"SELECT DISTINCT crs_users.UsrCod"
|
||||||
" FROM crs_usr,"
|
" FROM crs_users,"
|
||||||
"(SELECT CrsCod FROM crs_usr"
|
"(SELECT CrsCod"
|
||||||
" WHERE UsrCod=%ld) AS my_crs,"
|
" FROM crs_users"
|
||||||
" usr_data"
|
" WHERE UsrCod=%ld) AS my_crs,"
|
||||||
" WHERE crs_usr.CrsCod=my_crs.CrsCod"
|
" usr_data"
|
||||||
" AND crs_usr.UsrCod<>%ld"
|
" WHERE crs_users.CrsCod=my_crs.CrsCod"
|
||||||
" AND crs_usr.UsrCod=usr_data.UsrCod"
|
" AND crs_users.UsrCod<>%ld"
|
||||||
" AND usr_data.Surname1<>''" // Surname 1 not empty
|
" AND crs_users.UsrCod=usr_data.UsrCod"
|
||||||
" AND usr_data.FirstName<>''" // First name not empty
|
" AND usr_data.Surname1<>''" // Surname 1 not empty
|
||||||
"%s" // SubQuery2
|
" AND usr_data.FirstName<>''" // First name not empty
|
||||||
|
"%s" // SubQuery2
|
||||||
")"
|
")"
|
||||||
" UNION "
|
" UNION "
|
||||||
// 3. Users who share any course with me with another role
|
// 3. Users who share any course with me with another role
|
||||||
"("
|
"("
|
||||||
"SELECT DISTINCT crs_usr.UsrCod"
|
"SELECT DISTINCT crs_users.UsrCod"
|
||||||
" FROM crs_usr,"
|
" FROM crs_users,"
|
||||||
"(SELECT CrsCod,Role FROM crs_usr"
|
"(SELECT CrsCod,Role"
|
||||||
" WHERE UsrCod=%ld) AS my_crs_role,"
|
" FROM crs_users"
|
||||||
" usr_data"
|
" WHERE UsrCod=%ld) AS my_crs_role,"
|
||||||
" WHERE crs_usr.CrsCod=my_crs_role.CrsCod"
|
" usr_data"
|
||||||
" AND crs_usr.Role<>my_crs_role.Role"
|
" WHERE crs_users.CrsCod=my_crs_role.CrsCod"
|
||||||
" AND crs_usr.UsrCod=usr_data.UsrCod"
|
" AND crs_users.Role<>my_crs_role.Role"
|
||||||
" AND usr_data.Surname1<>''" // Surname 1 not empty
|
" AND crs_users.UsrCod=usr_data.UsrCod"
|
||||||
" AND usr_data.FirstName<>''" // First name not empty
|
" AND usr_data.Surname1<>''" // Surname 1 not empty
|
||||||
"%s" // SubQuery3
|
" AND usr_data.FirstName<>''" // First name not empty
|
||||||
|
"%s" // SubQuery3
|
||||||
")"
|
")"
|
||||||
") AS LikelyKnownUsrsToFollow"
|
") AS LikelyKnownUsrsToFollow"
|
||||||
// Do not select my followed
|
// Do not select my followed
|
||||||
|
@ -379,24 +382,26 @@ static unsigned long Fol_GetUsrsToFollow (unsigned long MaxUsrsToShow,
|
||||||
// with codes >= that random code
|
// with codes >= that random code
|
||||||
// that getting all users and then ordering by rand.
|
// that getting all users and then ordering by rand.
|
||||||
"SELECT usr_data.UsrCod"
|
"SELECT usr_data.UsrCod"
|
||||||
" FROM usr_data,"
|
" FROM usr_data,"
|
||||||
"(SELECT ROUND(RAND()*(SELECT MAX(UsrCod) FROM usr_data)) AS RandomUsrCod)" // a random user code
|
"(SELECT ROUND(RAND()*(SELECT MAX(UsrCod)"
|
||||||
" AS random_usr"
|
" FROM usr_data)) AS RandomUsrCod) AS random_usr" // a random user code
|
||||||
" WHERE usr_data.UsrCod<>%ld"
|
" WHERE usr_data.UsrCod<>%ld"
|
||||||
" AND usr_data.Surname1<>''" // Surname 1 not empty
|
" AND usr_data.Surname1<>''" // Surname 1 not empty
|
||||||
" AND usr_data.FirstName<>''" // First name not empty
|
" AND usr_data.FirstName<>''" // First name not empty
|
||||||
"%s" // SubQuery4
|
"%s" // SubQuery4
|
||||||
// Do not select my followed
|
// Do not select my followed
|
||||||
" AND usr_data.UsrCod NOT IN"
|
" AND usr_data.UsrCod NOT IN"
|
||||||
" (SELECT FollowedCod FROM usr_follow"
|
" (SELECT FollowedCod"
|
||||||
" WHERE FollowerCod=%ld)"
|
" FROM usr_follow"
|
||||||
|
" WHERE FollowerCod=%ld)"
|
||||||
" AND usr_data.UsrCod>=random_usr.RandomUsrCod" // random user code could not exists in table of users
|
" AND usr_data.UsrCod>=random_usr.RandomUsrCod" // random user code could not exists in table of users
|
||||||
// Get only MaxUsrsToShow users
|
// Get only MaxUsrsToShow users
|
||||||
" LIMIT %lu"
|
" LIMIT %lu"
|
||||||
")"
|
")"
|
||||||
") AS UsrsToFollow"
|
") AS UsrsToFollow"
|
||||||
// Get only MaxUsrsToShow users
|
// Get only MaxUsrsToShow users
|
||||||
" ORDER BY RAND() LIMIT %lu",
|
" ORDER BY RAND()"
|
||||||
|
" LIMIT %lu",
|
||||||
|
|
||||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||||
|
@ -1378,20 +1383,20 @@ void Fol_GetAndShowRankingFollowers (void)
|
||||||
case Hie_Lvl_CTY:
|
case Hie_Lvl_CTY:
|
||||||
NumUsrs = (unsigned)
|
NumUsrs = (unsigned)
|
||||||
DB_QuerySELECT (&mysql_res,"can not get ranking",
|
DB_QuerySELECT (&mysql_res,"can not get ranking",
|
||||||
"SELECT usr_follow.FollowedCod,"
|
"SELECT usr_follow.FollowedCod," // row[0]
|
||||||
"COUNT(DISTINCT usr_follow.FollowerCod) AS N"
|
"COUNT(DISTINCT usr_follow.FollowerCod) AS N" // row[1]
|
||||||
" FROM ins_instits,"
|
" FROM ins_instits,"
|
||||||
"ctr_centers,"
|
"ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_follow"
|
"usr_follow"
|
||||||
" WHERE ins_instits.CtyCod=%ld"
|
" WHERE ins_instits.CtyCod=%ld"
|
||||||
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=usr_follow.FollowedCod"
|
" AND crs_users.UsrCod=usr_follow.FollowedCod"
|
||||||
" GROUP BY usr_follow.FollowedCod"
|
" GROUP BY usr_follow.FollowedCod"
|
||||||
" ORDER BY N DESC,"
|
" ORDER BY N DESC,"
|
||||||
"usr_follow.FollowedCod"
|
"usr_follow.FollowedCod"
|
||||||
|
@ -1401,18 +1406,18 @@ void Fol_GetAndShowRankingFollowers (void)
|
||||||
case Hie_Lvl_INS:
|
case Hie_Lvl_INS:
|
||||||
NumUsrs = (unsigned)
|
NumUsrs = (unsigned)
|
||||||
DB_QuerySELECT (&mysql_res,"can not get ranking",
|
DB_QuerySELECT (&mysql_res,"can not get ranking",
|
||||||
"SELECT usr_follow.FollowedCod,"
|
"SELECT usr_follow.FollowedCod," // row[0]
|
||||||
"COUNT(DISTINCT usr_follow.FollowerCod) AS N"
|
"COUNT(DISTINCT usr_follow.FollowerCod) AS N" // row[1]
|
||||||
" FROM ctr_centers,"
|
" FROM ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_follow"
|
"usr_follow"
|
||||||
" WHERE ctr_centers.InsCod=%ld"
|
" WHERE ctr_centers.InsCod=%ld"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=usr_follow.FollowedCod"
|
" AND crs_users.UsrCod=usr_follow.FollowedCod"
|
||||||
" GROUP BY usr_follow.FollowedCod"
|
" GROUP BY usr_follow.FollowedCod"
|
||||||
" ORDER BY N DESC,"
|
" ORDER BY N DESC,"
|
||||||
"usr_follow.FollowedCod"
|
"usr_follow.FollowedCod"
|
||||||
|
@ -1422,16 +1427,16 @@ void Fol_GetAndShowRankingFollowers (void)
|
||||||
case Hie_Lvl_CTR:
|
case Hie_Lvl_CTR:
|
||||||
NumUsrs = (unsigned)
|
NumUsrs = (unsigned)
|
||||||
DB_QuerySELECT (&mysql_res,"can not get ranking",
|
DB_QuerySELECT (&mysql_res,"can not get ranking",
|
||||||
"SELECT usr_follow.FollowedCod,"
|
"SELECT usr_follow.FollowedCod," // row[0]
|
||||||
"COUNT(DISTINCT usr_follow.FollowerCod) AS N"
|
"COUNT(DISTINCT usr_follow.FollowerCod) AS N" // row[1]
|
||||||
" FROM deg_degrees,"
|
" FROM deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_follow"
|
"usr_follow"
|
||||||
" WHERE deg_degrees.CtrCod=%ld"
|
" WHERE deg_degrees.CtrCod=%ld"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=usr_follow.FollowedCod"
|
" AND crs_users.UsrCod=usr_follow.FollowedCod"
|
||||||
" GROUP BY usr_follow.FollowedCod"
|
" GROUP BY usr_follow.FollowedCod"
|
||||||
" ORDER BY N DESC,"
|
" ORDER BY N DESC,"
|
||||||
"usr_follow.FollowedCod"
|
"usr_follow.FollowedCod"
|
||||||
|
@ -1441,14 +1446,14 @@ void Fol_GetAndShowRankingFollowers (void)
|
||||||
case Hie_Lvl_DEG:
|
case Hie_Lvl_DEG:
|
||||||
NumUsrs = (unsigned)
|
NumUsrs = (unsigned)
|
||||||
DB_QuerySELECT (&mysql_res,"can not get ranking",
|
DB_QuerySELECT (&mysql_res,"can not get ranking",
|
||||||
"SELECT usr_follow.FollowedCod,"
|
"SELECT usr_follow.FollowedCod," // row[0]
|
||||||
"COUNT(DISTINCT usr_follow.FollowerCod) AS N"
|
"COUNT(DISTINCT usr_follow.FollowerCod) AS N" // row[1]
|
||||||
" FROM crs_courses,"
|
" FROM crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_follow"
|
"usr_follow"
|
||||||
" WHERE crs_courses.DegCod=%ld"
|
" WHERE crs_courses.DegCod=%ld"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=usr_follow.FollowedCod"
|
" AND crs_users.UsrCod=usr_follow.FollowedCod"
|
||||||
" GROUP BY usr_follow.FollowedCod"
|
" GROUP BY usr_follow.FollowedCod"
|
||||||
" ORDER BY N DESC,"
|
" ORDER BY N DESC,"
|
||||||
"usr_follow.FollowedCod"
|
"usr_follow.FollowedCod"
|
||||||
|
@ -1458,12 +1463,12 @@ void Fol_GetAndShowRankingFollowers (void)
|
||||||
case Hie_Lvl_CRS:
|
case Hie_Lvl_CRS:
|
||||||
NumUsrs = (unsigned)
|
NumUsrs = (unsigned)
|
||||||
DB_QuerySELECT (&mysql_res,"can not get ranking",
|
DB_QuerySELECT (&mysql_res,"can not get ranking",
|
||||||
"SELECT usr_follow.FollowedCod,"
|
"SELECT usr_follow.FollowedCod," // row[0]
|
||||||
"COUNT(DISTINCT usr_follow.FollowerCod) AS N"
|
"COUNT(DISTINCT usr_follow.FollowerCod) AS N" // row[1]
|
||||||
" FROM crs_usr,"
|
" FROM crs_users,"
|
||||||
"usr_follow"
|
"usr_follow"
|
||||||
" WHERE crs_usr.CrsCod=%ld"
|
" WHERE crs_users.CrsCod=%ld"
|
||||||
" AND crs_usr.UsrCod=usr_follow.FollowedCod"
|
" AND crs_users.UsrCod=usr_follow.FollowedCod"
|
||||||
" GROUP BY usr_follow.FollowedCod"
|
" GROUP BY usr_follow.FollowedCod"
|
||||||
" ORDER BY N DESC,"
|
" ORDER BY N DESC,"
|
||||||
"usr_follow.FollowedCod"
|
"usr_follow.FollowedCod"
|
||||||
|
|
107
swad_group.c
107
swad_group.c
|
@ -977,12 +977,12 @@ static void Grp_LockTables (void)
|
||||||
{
|
{
|
||||||
DB_Query ("can not lock tables to change user's groups",
|
DB_Query ("can not lock tables to change user's groups",
|
||||||
"LOCK TABLES "
|
"LOCK TABLES "
|
||||||
"crs_grp_types WRITE,"
|
"crs_grp_types WRITE,"
|
||||||
"crs_grp WRITE,"
|
"crs_grp WRITE,"
|
||||||
"crs_grp_usr WRITE,"
|
"crs_grp_usr WRITE,"
|
||||||
"crs_usr READ,"
|
"crs_users READ,"
|
||||||
"crs_usr_last READ,"
|
"crs_usr_last READ,"
|
||||||
"roo_rooms READ");
|
"roo_rooms READ");
|
||||||
Gbl.DB.LockedTables = true;
|
Gbl.DB.LockedTables = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3302,13 +3302,16 @@ unsigned Grp_CountNumUsrsInGrp (Rol_Role_t Role,long GrpCod)
|
||||||
return
|
return
|
||||||
(unsigned) DB_QueryCOUNT ("can not get number of users in a group",
|
(unsigned) DB_QueryCOUNT ("can not get number of users in a group",
|
||||||
"SELECT COUNT(*)"
|
"SELECT COUNT(*)"
|
||||||
" FROM crs_grp_usr,crs_grp,crs_grp_types,crs_usr"
|
" FROM crs_grp_usr,"
|
||||||
|
"crs_grp,"
|
||||||
|
"crs_grp_types,"
|
||||||
|
"crs_users"
|
||||||
" WHERE crs_grp_usr.GrpCod=%ld"
|
" WHERE crs_grp_usr.GrpCod=%ld"
|
||||||
" AND crs_grp_usr.GrpCod=crs_grp.GrpCod"
|
" AND crs_grp_usr.GrpCod=crs_grp.GrpCod"
|
||||||
" AND crs_grp.GrpTypCod=crs_grp_types.GrpTypCod"
|
" AND crs_grp.GrpTypCod=crs_grp_types.GrpTypCod"
|
||||||
" AND crs_grp_types.CrsCod=crs_usr.CrsCod"
|
" AND crs_grp_types.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_grp_usr.UsrCod=crs_usr.UsrCod"
|
" AND crs_grp_usr.UsrCod=crs_users.UsrCod"
|
||||||
" AND crs_usr.Role=%u",
|
" AND crs_users.Role=%u",
|
||||||
GrpCod,(unsigned) Role);
|
GrpCod,(unsigned) Role);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3321,13 +3324,16 @@ static unsigned long Grp_CountNumUsrsInNoGrpsOfType (Rol_Role_t Role,long GrpTyp
|
||||||
/***** Get number of users not belonging to groups of a type ******/
|
/***** Get number of users not belonging to groups of a type ******/
|
||||||
return DB_QueryCOUNT ("can not get the number of users"
|
return DB_QueryCOUNT ("can not get the number of users"
|
||||||
" not belonging to groups of a type",
|
" not belonging to groups of a type",
|
||||||
"SELECT COUNT(UsrCod) FROM crs_usr"
|
"SELECT COUNT(UsrCod)"
|
||||||
" WHERE CrsCod=%ld AND Role=%u"
|
" FROM crs_users"
|
||||||
" AND UsrCod NOT IN"
|
" WHERE CrsCod=%ld"
|
||||||
" (SELECT DISTINCT crs_grp_usr.UsrCod"
|
" AND Role=%u"
|
||||||
" FROM crs_grp,crs_grp_usr"
|
" AND UsrCod NOT IN"
|
||||||
" WHERE crs_grp.GrpTypCod=%ld"
|
" (SELECT DISTINCT crs_grp_usr.UsrCod"
|
||||||
" AND crs_grp.GrpCod=crs_grp_usr.GrpCod)",
|
" FROM crs_grp,"
|
||||||
|
"crs_grp_usr"
|
||||||
|
" WHERE crs_grp.GrpTypCod=%ld"
|
||||||
|
" AND crs_grp.GrpCod=crs_grp_usr.GrpCod)",
|
||||||
Gbl.Hierarchy.Crs.CrsCod,
|
Gbl.Hierarchy.Crs.CrsCod,
|
||||||
(unsigned) Role,GrpTypCod);
|
(unsigned) Role,GrpTypCod);
|
||||||
}
|
}
|
||||||
|
@ -3498,17 +3504,20 @@ bool Grp_GetIfAvailableGrpTyp (long GrpTypCod)
|
||||||
"SELECT GrpTypCod FROM"
|
"SELECT GrpTypCod FROM"
|
||||||
" ("
|
" ("
|
||||||
"SELECT crs_grp_types.GrpTypCod AS GrpTypCod,"
|
"SELECT crs_grp_types.GrpTypCod AS GrpTypCod,"
|
||||||
"COUNT(*) AS NumStudents,"
|
"COUNT(*) AS NumStudents,"
|
||||||
"crs_grp.MaxStudents as MaxStudents"
|
"crs_grp.MaxStudents as MaxStudents"
|
||||||
" FROM crs_grp_types,crs_grp,crs_grp_usr,crs_usr"
|
" FROM crs_grp_types,"
|
||||||
|
"crs_grp,"
|
||||||
|
"crs_grp_usr,"
|
||||||
|
"crs_users"
|
||||||
" WHERE %s" // Which group types?
|
" WHERE %s" // Which group types?
|
||||||
" AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod"
|
" AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod"
|
||||||
" AND crs_grp.Open='Y'" // Open
|
" AND crs_grp.Open='Y'" // Open
|
||||||
" AND crs_grp.MaxStudents>0" // Admits students
|
" AND crs_grp.MaxStudents>0" // Admits students
|
||||||
" AND crs_grp_types.CrsCod=crs_usr.CrsCod"
|
" AND crs_grp_types.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_grp.GrpCod=crs_grp_usr.GrpCod"
|
" AND crs_grp.GrpCod=crs_grp_usr.GrpCod"
|
||||||
" AND crs_grp_usr.UsrCod=crs_usr.UsrCod"
|
" AND crs_grp_usr.UsrCod=crs_users.UsrCod"
|
||||||
" AND crs_usr.Role=%u" // Student
|
" AND crs_users.Role=%u" // Student
|
||||||
" GROUP BY crs_grp.GrpCod"
|
" GROUP BY crs_grp.GrpCod"
|
||||||
" HAVING NumStudents<MaxStudents" // Not full
|
" HAVING NumStudents<MaxStudents" // Not full
|
||||||
") AS available_grp_types_with_stds"
|
") AS available_grp_types_with_stds"
|
||||||
|
@ -3517,31 +3526,35 @@ bool Grp_GetIfAvailableGrpTyp (long GrpTypCod)
|
||||||
|
|
||||||
// Available mandatory groups...
|
// Available mandatory groups...
|
||||||
"SELECT crs_grp_types.GrpTypCod AS GrpTypCod"
|
"SELECT crs_grp_types.GrpTypCod AS GrpTypCod"
|
||||||
" FROM crs_grp_types,crs_grp"
|
" FROM crs_grp_types,"
|
||||||
|
"crs_grp"
|
||||||
" WHERE %s" // Which group types?
|
" WHERE %s" // Which group types?
|
||||||
" AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod"
|
" AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod"
|
||||||
" AND crs_grp.Open='Y'" // Open
|
" AND crs_grp.Open='Y'" // Open
|
||||||
" AND crs_grp.MaxStudents>0" // Admits students
|
" AND crs_grp.MaxStudents>0" // Admits students
|
||||||
// ...without students
|
// ...without students
|
||||||
" AND crs_grp.GrpCod NOT IN"
|
" AND crs_grp.GrpCod NOT IN"
|
||||||
" (SELECT crs_grp_usr.GrpCod"
|
" (SELECT crs_grp_usr.GrpCod"
|
||||||
" FROM crs_usr,crs_grp_usr"
|
" FROM crs_users,"
|
||||||
" WHERE crs_usr.CrsCod=%ld"
|
"crs_grp_usr"
|
||||||
" AND crs_usr.Role=%u" // Student
|
" WHERE crs_users.CrsCod=%ld"
|
||||||
" AND crs_usr.UsrCod=crs_grp_usr.UsrCod)"
|
" AND crs_users.Role=%u" // Student
|
||||||
|
" AND crs_users.UsrCod=crs_grp_usr.UsrCod)"
|
||||||
|
|
||||||
") AS available_grp_types"
|
") AS available_grp_types"
|
||||||
|
|
||||||
// ...to which I don't belong
|
// ...to which I don't belong
|
||||||
" WHERE GrpTypCod NOT IN"
|
" WHERE GrpTypCod NOT IN"
|
||||||
" (SELECT crs_grp_types.GrpTypCod"
|
" (SELECT crs_grp_types.GrpTypCod"
|
||||||
" FROM crs_grp_types,crs_grp,crs_grp_usr"
|
" FROM crs_grp_types,"
|
||||||
" WHERE %s" // Which group types?
|
"crs_grp,"
|
||||||
" AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod"
|
"crs_grp_usr"
|
||||||
" AND crs_grp.Open='Y'" // Open
|
" WHERE %s" // Which group types?
|
||||||
" AND crs_grp.MaxStudents>0" // Admits students
|
" AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod"
|
||||||
" AND crs_grp.GrpCod=crs_grp_usr.GrpCod"
|
" AND crs_grp.Open='Y'" // Open
|
||||||
" AND crs_grp_usr.UsrCod=%ld)", // I belong
|
" AND crs_grp.MaxStudents>0" // Admits students
|
||||||
|
" AND crs_grp.GrpCod=crs_grp_usr.GrpCod"
|
||||||
|
" AND crs_grp_usr.UsrCod=%ld)", // I belong
|
||||||
|
|
||||||
SubQueryGrpTypes,(unsigned) Rol_STD,
|
SubQueryGrpTypes,(unsigned) Rol_STD,
|
||||||
SubQueryGrpTypes,
|
SubQueryGrpTypes,
|
||||||
|
|
302
swad_indicator.c
302
swad_indicator.c
|
@ -355,20 +355,20 @@ static unsigned Ind_GetTableOfCourses (const struct Ind_Indicators *Indicators,
|
||||||
NumCrss = (unsigned)
|
NumCrss = (unsigned)
|
||||||
DB_QuerySELECT (mysql_res,"can not get courses",
|
DB_QuerySELECT (mysql_res,"can not get courses",
|
||||||
"SELECT DISTINCTROW "
|
"SELECT DISTINCTROW "
|
||||||
"deg_degrees.FullName,"
|
"deg_degrees.FullName," // row[0]
|
||||||
"crs_courses.FullName,"
|
"crs_courses.FullName," // row[1]
|
||||||
"crs_courses.CrsCod,"
|
"crs_courses.CrsCod," // row[2]
|
||||||
"crs_courses.InsCrsCod"
|
"crs_courses.InsCrsCod" // row[3]
|
||||||
" FROM deg_degrees,"
|
" FROM deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_data"
|
"usr_data"
|
||||||
" WHERE deg_degrees.DegTypCod=%ld"
|
" WHERE deg_degrees.DegTypCod=%ld"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.Role=%u"
|
" AND crs_users.Role=%u"
|
||||||
" AND crs_usr.UsrCod=usr_data.UsrCod"
|
" AND crs_users.UsrCod=usr_data.UsrCod"
|
||||||
" AND usr_data.DptCod=%ld"
|
" AND usr_data.DptCod=%ld"
|
||||||
" ORDER BY deg_degrees.FullName,"
|
" ORDER BY deg_degrees.FullName,"
|
||||||
"crs_courses.FullName",
|
"crs_courses.FullName",
|
||||||
Indicators->DegTypCod,
|
Indicators->DegTypCod,
|
||||||
|
@ -378,19 +378,19 @@ static unsigned Ind_GetTableOfCourses (const struct Ind_Indicators *Indicators,
|
||||||
NumCrss = (unsigned)
|
NumCrss = (unsigned)
|
||||||
DB_QuerySELECT (mysql_res,"can not get courses",
|
DB_QuerySELECT (mysql_res,"can not get courses",
|
||||||
"SELECT DISTINCTROW "
|
"SELECT DISTINCTROW "
|
||||||
"deg_degrees.FullName,"
|
"deg_degrees.FullName," // row[0]
|
||||||
"crs_courses.FullName,"
|
"crs_courses.FullName," // row[1]
|
||||||
"crs_courses.CrsCod,"
|
"crs_courses.CrsCod," // row[2]
|
||||||
"crs_courses.InsCrsCod"
|
"crs_courses.InsCrsCod" // row[3]
|
||||||
" FROM deg_degrees,"
|
" FROM deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_data"
|
"usr_data"
|
||||||
" WHERE deg_degrees.DegCod=crs_courses.DegCod"
|
" WHERE deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.Role=%u"
|
" AND crs_users.Role=%u"
|
||||||
" AND crs_usr.UsrCod=usr_data.UsrCod"
|
" AND crs_users.UsrCod=usr_data.UsrCod"
|
||||||
" AND usr_data.DptCod=%ld"
|
" AND usr_data.DptCod=%ld"
|
||||||
" ORDER BY deg_degrees.FullName,"
|
" ORDER BY deg_degrees.FullName,"
|
||||||
"crs_courses.FullName",
|
"crs_courses.FullName",
|
||||||
(unsigned) Rol_TCH,
|
(unsigned) Rol_TCH,
|
||||||
|
@ -401,26 +401,26 @@ static unsigned Ind_GetTableOfCourses (const struct Ind_Indicators *Indicators,
|
||||||
if (Indicators->DegTypCod > 0)
|
if (Indicators->DegTypCod > 0)
|
||||||
NumCrss = (unsigned)
|
NumCrss = (unsigned)
|
||||||
DB_QuerySELECT (mysql_res,"can not get courses",
|
DB_QuerySELECT (mysql_res,"can not get courses",
|
||||||
"SELECT deg_degrees.FullName,"
|
"SELECT deg_degrees.FullName," // row[0]
|
||||||
"crs_courses.FullName,"
|
"crs_courses.FullName," // row[1]
|
||||||
"crs_courses.CrsCod,"
|
"crs_courses.CrsCod," // row[2]
|
||||||
"crs_courses.InsCrsCod"
|
"crs_courses.InsCrsCod" // row[3]
|
||||||
" FROM deg_degrees,"
|
" FROM deg_degrees,"
|
||||||
"crs_courses"
|
"crs_courses"
|
||||||
" WHERE deg_degrees.DegTypCod=%ld"
|
" WHERE deg_degrees.DegTypCod=%ld"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" ORDER BY deg_degrees.FullName,"
|
" ORDER BY deg_degrees.FullName,"
|
||||||
"crs_courses.FullName",
|
"crs_courses.FullName",
|
||||||
Indicators->DegTypCod);
|
Indicators->DegTypCod);
|
||||||
else
|
else
|
||||||
NumCrss = (unsigned)
|
NumCrss = (unsigned)
|
||||||
DB_QuerySELECT (mysql_res,"can not get courses",
|
DB_QuerySELECT (mysql_res,"can not get courses",
|
||||||
"SELECT deg_degrees.FullName,"
|
"SELECT deg_degrees.FullName," // row[0]
|
||||||
"crs_courses.FullName,"
|
"crs_courses.FullName," // row[1]
|
||||||
"crs_courses.CrsCod,"
|
"crs_courses.CrsCod," // row[2]
|
||||||
"crs_courses.InsCrsCod"
|
"crs_courses.InsCrsCod" // row[3]
|
||||||
" FROM deg_degrees,"
|
" FROM deg_degrees,"
|
||||||
"crs_courses"
|
"crs_courses"
|
||||||
" WHERE deg_degrees.DegCod=crs_courses.DegCod"
|
" WHERE deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" ORDER BY deg_degrees.FullName,"
|
" ORDER BY deg_degrees.FullName,"
|
||||||
"crs_courses.FullName");
|
"crs_courses.FullName");
|
||||||
|
@ -431,24 +431,24 @@ static unsigned Ind_GetTableOfCourses (const struct Ind_Indicators *Indicators,
|
||||||
NumCrss = (unsigned)
|
NumCrss = (unsigned)
|
||||||
DB_QuerySELECT (mysql_res,"can not get courses",
|
DB_QuerySELECT (mysql_res,"can not get courses",
|
||||||
"SELECT DISTINCTROW "
|
"SELECT DISTINCTROW "
|
||||||
"deg_degrees.FullName,"
|
"deg_degrees.FullName," // row[0]
|
||||||
"crs_courses.FullName,"
|
"crs_courses.FullName," // row[1]
|
||||||
"crs_courses.CrsCod,"
|
"crs_courses.CrsCod," // row[2]
|
||||||
"crs_courses.InsCrsCod"
|
"crs_courses.InsCrsCod" // row[3]
|
||||||
" FROM ins_instits,"
|
" FROM ins_instits,"
|
||||||
"ctr_centers,"
|
"ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_data"
|
"usr_data"
|
||||||
" WHERE ins_instits.CtyCod=%ld"
|
" WHERE ins_instits.CtyCod=%ld"
|
||||||
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.Role=%u"
|
" AND crs_users.Role=%u"
|
||||||
" AND crs_usr.UsrCod=usr_data.UsrCod"
|
" AND crs_users.UsrCod=usr_data.UsrCod"
|
||||||
" AND usr_data.DptCod=%ld"
|
" AND usr_data.DptCod=%ld"
|
||||||
" ORDER BY deg_degrees.FullName,"
|
" ORDER BY deg_degrees.FullName,"
|
||||||
"crs_courses.FullName",
|
"crs_courses.FullName",
|
||||||
Gbl.Hierarchy.Cty.CtyCod,
|
Gbl.Hierarchy.Cty.CtyCod,
|
||||||
|
@ -457,18 +457,18 @@ static unsigned Ind_GetTableOfCourses (const struct Ind_Indicators *Indicators,
|
||||||
else
|
else
|
||||||
NumCrss = (unsigned)
|
NumCrss = (unsigned)
|
||||||
DB_QuerySELECT (mysql_res,"can not get courses",
|
DB_QuerySELECT (mysql_res,"can not get courses",
|
||||||
"SELECT deg_degrees.FullName,"
|
"SELECT deg_degrees.FullName," // row[0]
|
||||||
"crs_courses.FullName,"
|
"crs_courses.FullName," // row[1]
|
||||||
"crs_courses.CrsCod,"
|
"crs_courses.CrsCod," // row[2]
|
||||||
"crs_courses.InsCrsCod"
|
"crs_courses.InsCrsCod" // row[3]
|
||||||
" FROM ins_instits,"
|
" FROM ins_instits,"
|
||||||
"ctr_centers,"
|
"ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses"
|
"crs_courses"
|
||||||
" WHERE ins_instits.CtyCod=%ld"
|
" WHERE ins_instits.CtyCod=%ld"
|
||||||
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" ORDER BY deg_degrees.FullName,"
|
" ORDER BY deg_degrees.FullName,"
|
||||||
"crs_courses.FullName",
|
"crs_courses.FullName",
|
||||||
Gbl.Hierarchy.Cty.CtyCod);
|
Gbl.Hierarchy.Cty.CtyCod);
|
||||||
|
@ -478,22 +478,22 @@ static unsigned Ind_GetTableOfCourses (const struct Ind_Indicators *Indicators,
|
||||||
NumCrss = (unsigned)
|
NumCrss = (unsigned)
|
||||||
DB_QuerySELECT (mysql_res,"can not get courses",
|
DB_QuerySELECT (mysql_res,"can not get courses",
|
||||||
"SELECT DISTINCTROW "
|
"SELECT DISTINCTROW "
|
||||||
"deg_degrees.FullName,"
|
"deg_degrees.FullName," // row[0]
|
||||||
"crs_courses.FullName,"
|
"crs_courses.FullName," // row[1]
|
||||||
"crs_courses.CrsCod,"
|
"crs_courses.CrsCod," // row[2]
|
||||||
"crs_courses.InsCrsCod"
|
"crs_courses.InsCrsCod" // row[3]
|
||||||
" FROM ctr_centers,"
|
" FROM ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_data"
|
"usr_data"
|
||||||
" WHERE ctr_centers.InsCod=%ld"
|
" WHERE ctr_centers.InsCod=%ld"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.Role=%u"
|
" AND crs_users.Role=%u"
|
||||||
" AND crs_usr.UsrCod=usr_data.UsrCod"
|
" AND crs_users.UsrCod=usr_data.UsrCod"
|
||||||
" AND usr_data.DptCod=%ld"
|
" AND usr_data.DptCod=%ld"
|
||||||
" ORDER BY deg_degrees.FullName,"
|
" ORDER BY deg_degrees.FullName,"
|
||||||
"crs_courses.FullName",
|
"crs_courses.FullName",
|
||||||
Gbl.Hierarchy.Ins.InsCod,
|
Gbl.Hierarchy.Ins.InsCod,
|
||||||
|
@ -502,16 +502,16 @@ static unsigned Ind_GetTableOfCourses (const struct Ind_Indicators *Indicators,
|
||||||
else
|
else
|
||||||
NumCrss = (unsigned)
|
NumCrss = (unsigned)
|
||||||
DB_QuerySELECT (mysql_res,"can not get courses",
|
DB_QuerySELECT (mysql_res,"can not get courses",
|
||||||
"SELECT deg_degrees.FullName,"
|
"SELECT deg_degrees.FullName," // row[0]
|
||||||
"crs_courses.FullName,"
|
"crs_courses.FullName," // row[1]
|
||||||
"crs_courses.CrsCod,"
|
"crs_courses.CrsCod," // row[2]
|
||||||
"crs_courses.InsCrsCod"
|
"crs_courses.InsCrsCod" // row[3]
|
||||||
" FROM ctr_centers,"
|
" FROM ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses"
|
"crs_courses"
|
||||||
" WHERE ctr_centers.InsCod=%ld"
|
" WHERE ctr_centers.InsCod=%ld"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" ORDER BY deg_degrees.FullName,"
|
" ORDER BY deg_degrees.FullName,"
|
||||||
"crs_courses.FullName",
|
"crs_courses.FullName",
|
||||||
Gbl.Hierarchy.Ins.InsCod);
|
Gbl.Hierarchy.Ins.InsCod);
|
||||||
|
@ -521,20 +521,20 @@ static unsigned Ind_GetTableOfCourses (const struct Ind_Indicators *Indicators,
|
||||||
NumCrss = (unsigned)
|
NumCrss = (unsigned)
|
||||||
DB_QuerySELECT (mysql_res,"can not get courses",
|
DB_QuerySELECT (mysql_res,"can not get courses",
|
||||||
"SELECT DISTINCTROW "
|
"SELECT DISTINCTROW "
|
||||||
"deg_degrees.FullName,"
|
"deg_degrees.FullName," // row[0]
|
||||||
"crs_courses.FullName,"
|
"crs_courses.FullName," // row[1]
|
||||||
"crs_courses.CrsCod,"
|
"crs_courses.CrsCod," // row[2]
|
||||||
"crs_courses.InsCrsCod"
|
"crs_courses.InsCrsCod" // row[3]
|
||||||
" FROM deg_degrees,"
|
" FROM deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_data"
|
"usr_data"
|
||||||
" WHERE deg_degrees.CtrCod=%ld"
|
" WHERE deg_degrees.CtrCod=%ld"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.Role=%u"
|
" AND crs_users.Role=%u"
|
||||||
" AND crs_usr.UsrCod=usr_data.UsrCod"
|
" AND crs_users.UsrCod=usr_data.UsrCod"
|
||||||
" AND usr_data.DptCod=%ld"
|
" AND usr_data.DptCod=%ld"
|
||||||
" ORDER BY deg_degrees.FullName,"
|
" ORDER BY deg_degrees.FullName,"
|
||||||
"crs_courses.FullName",
|
"crs_courses.FullName",
|
||||||
Gbl.Hierarchy.Ctr.CtrCod,
|
Gbl.Hierarchy.Ctr.CtrCod,
|
||||||
|
@ -543,14 +543,14 @@ static unsigned Ind_GetTableOfCourses (const struct Ind_Indicators *Indicators,
|
||||||
else
|
else
|
||||||
NumCrss = (unsigned)
|
NumCrss = (unsigned)
|
||||||
DB_QuerySELECT (mysql_res,"can not get courses",
|
DB_QuerySELECT (mysql_res,"can not get courses",
|
||||||
"SELECT deg_degrees.FullName,"
|
"SELECT deg_degrees.FullName," // row[0]
|
||||||
"crs_courses.FullName,"
|
"crs_courses.FullName," // row[1]
|
||||||
"crs_courses.CrsCod,"
|
"crs_courses.CrsCod," // row[2]
|
||||||
"crs_courses.InsCrsCod"
|
"crs_courses.InsCrsCod" // row[3]
|
||||||
" FROM deg_degrees,"
|
" FROM deg_degrees,"
|
||||||
"crs_courses"
|
"crs_courses"
|
||||||
" WHERE deg_degrees.CtrCod=%ld"
|
" WHERE deg_degrees.CtrCod=%ld"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" ORDER BY deg_degrees.FullName,"
|
" ORDER BY deg_degrees.FullName,"
|
||||||
"crs_courses.FullName",
|
"crs_courses.FullName",
|
||||||
Gbl.Hierarchy.Ctr.CtrCod);
|
Gbl.Hierarchy.Ctr.CtrCod);
|
||||||
|
@ -560,20 +560,20 @@ static unsigned Ind_GetTableOfCourses (const struct Ind_Indicators *Indicators,
|
||||||
NumCrss = (unsigned)
|
NumCrss = (unsigned)
|
||||||
DB_QuerySELECT (mysql_res,"can not get courses",
|
DB_QuerySELECT (mysql_res,"can not get courses",
|
||||||
"SELECT DISTINCTROW "
|
"SELECT DISTINCTROW "
|
||||||
"deg_degrees.FullName,"
|
"deg_degrees.FullName," // row[0]
|
||||||
"crs_courses.FullName,"
|
"crs_courses.FullName," // row[1]
|
||||||
"crs_courses.CrsCod,"
|
"crs_courses.CrsCod," // row[2]
|
||||||
"crs_courses.InsCrsCod"
|
"crs_courses.InsCrsCod" // row[3]
|
||||||
" FROM deg_degrees,"
|
" FROM deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_data"
|
"usr_data"
|
||||||
" WHERE deg_degrees.DegCod=%ld"
|
" WHERE deg_degrees.DegCod=%ld"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.Role=%u"
|
" AND crs_users.Role=%u"
|
||||||
" AND crs_usr.UsrCod=usr_data.UsrCod"
|
" AND crs_users.UsrCod=usr_data.UsrCod"
|
||||||
" AND usr_data.DptCod=%ld"
|
" AND usr_data.DptCod=%ld"
|
||||||
" ORDER BY deg_degrees.FullName,"
|
" ORDER BY deg_degrees.FullName,"
|
||||||
"crs_courses.FullName",
|
"crs_courses.FullName",
|
||||||
Gbl.Hierarchy.Deg.DegCod,
|
Gbl.Hierarchy.Deg.DegCod,
|
||||||
|
@ -582,14 +582,14 @@ static unsigned Ind_GetTableOfCourses (const struct Ind_Indicators *Indicators,
|
||||||
else
|
else
|
||||||
NumCrss = (unsigned)
|
NumCrss = (unsigned)
|
||||||
DB_QuerySELECT (mysql_res,"can not get courses",
|
DB_QuerySELECT (mysql_res,"can not get courses",
|
||||||
"SELECT deg_degrees.FullName,"
|
"SELECT deg_degrees.FullName," // row[0]
|
||||||
"crs_courses.FullName,"
|
"crs_courses.FullName," // row[1]
|
||||||
"crs_courses.CrsCod,"
|
"crs_courses.CrsCod," // row[2]
|
||||||
"crs_courses.InsCrsCod"
|
"crs_courses.InsCrsCod" // row[3]
|
||||||
" FROM deg_degrees,"
|
" FROM deg_degrees,"
|
||||||
"crs_courses"
|
"crs_courses"
|
||||||
" WHERE deg_degrees.DegCod=%ld"
|
" WHERE deg_degrees.DegCod=%ld"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" ORDER BY deg_degrees.FullName,"
|
" ORDER BY deg_degrees.FullName,"
|
||||||
"crs_courses.FullName",
|
"crs_courses.FullName",
|
||||||
Gbl.Hierarchy.Deg.DegCod);
|
Gbl.Hierarchy.Deg.DegCod);
|
||||||
|
@ -599,21 +599,21 @@ static unsigned Ind_GetTableOfCourses (const struct Ind_Indicators *Indicators,
|
||||||
NumCrss = (unsigned)
|
NumCrss = (unsigned)
|
||||||
DB_QuerySELECT (mysql_res,"can not get courses",
|
DB_QuerySELECT (mysql_res,"can not get courses",
|
||||||
"SELECT DISTINCTROW "
|
"SELECT DISTINCTROW "
|
||||||
"deg_degrees.FullName,"
|
"deg_degrees.FullName," // row[0]
|
||||||
"crs_courses.FullName,"
|
"crs_courses.FullName," // row[1]
|
||||||
"crs_courses.CrsCod,"
|
"crs_courses.CrsCod," // row[2]
|
||||||
"crs_courses.InsCrsCod"
|
"crs_courses.InsCrsCod" // row[3]
|
||||||
" FROM deg_degrees,"
|
" FROM deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_data"
|
"usr_data"
|
||||||
" WHERE crs_courses.CrsCod=%ld"
|
" WHERE crs_courses.CrsCod=%ld"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.CrsCod=%ld"
|
" AND crs_users.CrsCod=%ld"
|
||||||
" AND crs_usr.Role=%u"
|
" AND crs_users.Role=%u"
|
||||||
" AND crs_usr.UsrCod=usr_data.UsrCod"
|
" AND crs_users.UsrCod=usr_data.UsrCod"
|
||||||
" AND usr_data.DptCod=%ld"
|
" AND usr_data.DptCod=%ld"
|
||||||
" ORDER BY deg_degrees.FullName,"
|
" ORDER BY deg_degrees.FullName,"
|
||||||
"crs_courses.FullName",
|
"crs_courses.FullName",
|
||||||
Gbl.Hierarchy.Crs.CrsCod,
|
Gbl.Hierarchy.Crs.CrsCod,
|
||||||
|
@ -623,14 +623,14 @@ static unsigned Ind_GetTableOfCourses (const struct Ind_Indicators *Indicators,
|
||||||
else
|
else
|
||||||
NumCrss = (unsigned)
|
NumCrss = (unsigned)
|
||||||
DB_QuerySELECT (mysql_res,"can not get courses",
|
DB_QuerySELECT (mysql_res,"can not get courses",
|
||||||
"SELECT deg_degrees.FullName,"
|
"SELECT deg_degrees.FullName," // row[0]
|
||||||
"crs_courses.FullName,"
|
"crs_courses.FullName," // row[1]
|
||||||
"crs_courses.CrsCod,"
|
"crs_courses.CrsCod," // row[2]
|
||||||
"crs_courses.InsCrsCod"
|
"crs_courses.InsCrsCod" // row[3]
|
||||||
" FROM deg_degrees,"
|
" FROM deg_degrees,"
|
||||||
"crs_courses"
|
"crs_courses"
|
||||||
" WHERE crs_courses.CrsCod=%ld"
|
" WHERE crs_courses.CrsCod=%ld"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" ORDER BY deg_degrees.FullName,"
|
" ORDER BY deg_degrees.FullName,"
|
||||||
"crs_courses.FullName",
|
"crs_courses.FullName",
|
||||||
Gbl.Hierarchy.Crs.CrsCod);
|
Gbl.Hierarchy.Crs.CrsCod);
|
||||||
|
|
|
@ -2105,16 +2105,16 @@ unsigned Ins_GetCachedNumInssWithUsrs (Rol_Role_t Role,const char *SubQuery,
|
||||||
NumInssWithUsrs = (unsigned)
|
NumInssWithUsrs = (unsigned)
|
||||||
DB_QueryCOUNT ("can not get number of institutions with users",
|
DB_QueryCOUNT ("can not get number of institutions with users",
|
||||||
"SELECT COUNT(DISTINCT ins_instits.InsCod)"
|
"SELECT COUNT(DISTINCT ins_instits.InsCod)"
|
||||||
" FROM ins_instits,"
|
" FROM ins_instits,"
|
||||||
"ctr_centers,"
|
"ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr"
|
"crs_users"
|
||||||
" WHERE %sinstitutions.InsCod=ctr_centers.InsCod"
|
" WHERE %sinstitutions.InsCod=ctr_centers.InsCod"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.Role=%u",
|
" AND crs_users.Role=%u",
|
||||||
SubQuery,(unsigned) Role);
|
SubQuery,(unsigned) Role);
|
||||||
FigCch_UpdateFigureIntoCache (FigureInss[Role],Scope,Cod,
|
FigCch_UpdateFigureIntoCache (FigureInss[Role],Scope,Cod,
|
||||||
FigCch_UNSIGNED,&NumInssWithUsrs);
|
FigCch_UNSIGNED,&NumInssWithUsrs);
|
||||||
|
|
|
@ -2185,10 +2185,13 @@ unsigned Msg_GetNumMsgsSentByTchsCrs (long CrsCod)
|
||||||
return
|
return
|
||||||
(unsigned) DB_QueryCOUNT ("can not get the number of messages"
|
(unsigned) DB_QueryCOUNT ("can not get the number of messages"
|
||||||
" sent by teachers",
|
" sent by teachers",
|
||||||
"SELECT COUNT(*) FROM msg_snt,crs_usr"
|
"SELECT COUNT(*)"
|
||||||
|
" FROM msg_snt,"
|
||||||
|
"crs_users"
|
||||||
" WHERE msg_snt.CrsCod=%ld"
|
" WHERE msg_snt.CrsCod=%ld"
|
||||||
" AND crs_usr.CrsCod=%ld AND crs_usr.Role=%u"
|
" AND crs_users.CrsCod=%ld"
|
||||||
" AND msg_snt.UsrCod=crs_usr.UsrCod",
|
" AND crs_users.Role=%u"
|
||||||
|
" AND msg_snt.UsrCod=crs_users.UsrCod",
|
||||||
CrsCod,CrsCod,(unsigned) Rol_TCH);
|
CrsCod,CrsCod,(unsigned) Rol_TCH);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
111
swad_network.c
111
swad_network.c
|
@ -457,8 +457,8 @@ void Net_ShowWebAndSocialNetworksStats (void)
|
||||||
NumRows = (unsigned)
|
NumRows = (unsigned)
|
||||||
DB_QuerySELECT (&mysql_res,"can not get number of users"
|
DB_QuerySELECT (&mysql_res,"can not get number of users"
|
||||||
" with webs / social networks",
|
" with webs / social networks",
|
||||||
"SELECT Web,"
|
"SELECT Web," // row[0]
|
||||||
"COUNT(*) AS N"
|
"COUNT(*) AS N" // row[1]
|
||||||
" FROM usr_webs"
|
" FROM usr_webs"
|
||||||
" GROUP BY Web"
|
" GROUP BY Web"
|
||||||
" ORDER BY N DESC,Web");
|
" ORDER BY N DESC,Web");
|
||||||
|
@ -467,90 +467,95 @@ void Net_ShowWebAndSocialNetworksStats (void)
|
||||||
NumRows = (unsigned)
|
NumRows = (unsigned)
|
||||||
DB_QuerySELECT (&mysql_res,"can not get number of users"
|
DB_QuerySELECT (&mysql_res,"can not get number of users"
|
||||||
" with webs / social networks",
|
" with webs / social networks",
|
||||||
"SELECT usr_webs.Web,"
|
"SELECT usr_webs.Web," // row[0]
|
||||||
"COUNT(DISTINCT usr_webs.UsrCod) AS N"
|
"COUNT(DISTINCT usr_webs.UsrCod) AS N" // row[1]
|
||||||
" FROM ins_instits,"
|
" FROM ins_instits,"
|
||||||
"ctr_centers,"
|
"ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_webs"
|
"usr_webs"
|
||||||
" WHERE ins_instits.CtyCod=%ld"
|
" WHERE ins_instits.CtyCod=%ld"
|
||||||
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=usr_webs.UsrCod"
|
" AND crs_users.UsrCod=usr_webs.UsrCod"
|
||||||
" GROUP BY usr_webs.Web"
|
" GROUP BY usr_webs.Web"
|
||||||
" ORDER BY N DESC,usr_webs.Web",
|
" ORDER BY N DESC,"
|
||||||
|
"usr_webs.Web",
|
||||||
Gbl.Hierarchy.Cty.CtyCod);
|
Gbl.Hierarchy.Cty.CtyCod);
|
||||||
break;
|
break;
|
||||||
case Hie_Lvl_INS:
|
case Hie_Lvl_INS:
|
||||||
NumRows = (unsigned)
|
NumRows = (unsigned)
|
||||||
DB_QuerySELECT (&mysql_res,"can not get number of users"
|
DB_QuerySELECT (&mysql_res,"can not get number of users"
|
||||||
" with webs / social networks",
|
" with webs / social networks",
|
||||||
"SELECT usr_webs.Web,"
|
"SELECT usr_webs.Web," // row[0]
|
||||||
"COUNT(DISTINCT usr_webs.UsrCod) AS N"
|
"COUNT(DISTINCT usr_webs.UsrCod) AS N" // row[1]
|
||||||
" FROM ctr_centers,"
|
" FROM ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_webs"
|
"usr_webs"
|
||||||
" WHERE ctr_centers.InsCod=%ld"
|
" WHERE ctr_centers.InsCod=%ld"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=usr_webs.UsrCod"
|
" AND crs_users.UsrCod=usr_webs.UsrCod"
|
||||||
" GROUP BY usr_webs.Web"
|
" GROUP BY usr_webs.Web"
|
||||||
" ORDER BY N DESC,usr_webs.Web",
|
" ORDER BY N DESC,"
|
||||||
|
"usr_webs.Web",
|
||||||
Gbl.Hierarchy.Ins.InsCod);
|
Gbl.Hierarchy.Ins.InsCod);
|
||||||
break;
|
break;
|
||||||
case Hie_Lvl_CTR:
|
case Hie_Lvl_CTR:
|
||||||
NumRows = (unsigned)
|
NumRows = (unsigned)
|
||||||
DB_QuerySELECT (&mysql_res,"can not get number of users"
|
DB_QuerySELECT (&mysql_res,"can not get number of users"
|
||||||
" with webs / social networks",
|
" with webs / social networks",
|
||||||
"SELECT usr_webs.Web,"
|
"SELECT usr_webs.Web," // row[0]
|
||||||
"COUNT(DISTINCT usr_webs.UsrCod) AS N"
|
"COUNT(DISTINCT usr_webs.UsrCod) AS N" // row[1]
|
||||||
" FROM deg_degrees,"
|
" FROM deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_webs"
|
"usr_webs"
|
||||||
" WHERE deg_degrees.CtrCod=%ld"
|
" WHERE deg_degrees.CtrCod=%ld"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=usr_webs.UsrCod"
|
" AND crs_users.UsrCod=usr_webs.UsrCod"
|
||||||
" GROUP BY usr_webs.Web"
|
" GROUP BY usr_webs.Web"
|
||||||
" ORDER BY N DESC,usr_webs.Web",
|
" ORDER BY N DESC,"
|
||||||
|
"usr_webs.Web",
|
||||||
Gbl.Hierarchy.Ctr.CtrCod);
|
Gbl.Hierarchy.Ctr.CtrCod);
|
||||||
break;
|
break;
|
||||||
case Hie_Lvl_DEG:
|
case Hie_Lvl_DEG:
|
||||||
NumRows = (unsigned)
|
NumRows = (unsigned)
|
||||||
DB_QuerySELECT (&mysql_res,"can not get number of users"
|
DB_QuerySELECT (&mysql_res,"can not get number of users"
|
||||||
" with webs / social networks",
|
" with webs / social networks",
|
||||||
"SELECT usr_webs.Web,"
|
"SELECT usr_webs.Web," // row[0]
|
||||||
"COUNT(DISTINCT usr_webs.UsrCod) AS N"
|
"COUNT(DISTINCT usr_webs.UsrCod) AS N" // row[1]
|
||||||
" FROM crs_courses,"
|
" FROM crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_webs"
|
"usr_webs"
|
||||||
" WHERE crs_courses.DegCod=%ld"
|
" WHERE crs_courses.DegCod=%ld"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=usr_webs.UsrCod"
|
" AND crs_users.UsrCod=usr_webs.UsrCod"
|
||||||
" GROUP BY usr_webs.Web"
|
" GROUP BY usr_webs.Web"
|
||||||
" ORDER BY N DESC,usr_webs.Web",
|
" ORDER BY N DESC,"
|
||||||
|
"usr_webs.Web",
|
||||||
Gbl.Hierarchy.Deg.DegCod);
|
Gbl.Hierarchy.Deg.DegCod);
|
||||||
break;
|
break;
|
||||||
case Hie_Lvl_CRS:
|
case Hie_Lvl_CRS:
|
||||||
NumRows = (unsigned)
|
NumRows = (unsigned)
|
||||||
DB_QuerySELECT (&mysql_res,"can not get number of users"
|
DB_QuerySELECT (&mysql_res,"can not get number of users"
|
||||||
" with webs / social networks",
|
" with webs / social networks",
|
||||||
"SELECT usr_webs.Web,"
|
"SELECT usr_webs.Web," // row[0]
|
||||||
"COUNT(DISTINCT usr_webs.UsrCod) AS N"
|
"COUNT(DISTINCT usr_webs.UsrCod) AS N" // row[1]
|
||||||
" FROM crs_usr,"
|
" FROM crs_users,"
|
||||||
"usr_webs"
|
"usr_webs"
|
||||||
" WHERE crs_usr.CrsCod=%ld"
|
" WHERE crs_users.CrsCod=%ld"
|
||||||
" AND crs_usr.UsrCod=usr_webs.UsrCod"
|
" AND crs_users.UsrCod=usr_webs.UsrCod"
|
||||||
" GROUP BY usr_webs.Web"
|
" GROUP BY usr_webs.Web"
|
||||||
" ORDER BY N DESC,usr_webs.Web",
|
" ORDER BY N DESC,"
|
||||||
|
"usr_webs.Web",
|
||||||
Gbl.Hierarchy.Crs.CrsCod);
|
Gbl.Hierarchy.Crs.CrsCod);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -1219,20 +1219,22 @@ unsigned Ntf_StoreNotifyEventsToAllUsrs (Ntf_NotifyEvent_t NotifyEvent,long Cod)
|
||||||
case Brw_ADMI_SHR_CRS:
|
case Brw_ADMI_SHR_CRS:
|
||||||
case Brw_ADMI_MRK_CRS: // Notify all users in course except me
|
case Brw_ADMI_MRK_CRS: // Notify all users in course except me
|
||||||
NumRows = DB_QuerySELECT (&mysql_res,"can not get users"
|
NumRows = DB_QuerySELECT (&mysql_res,"can not get users"
|
||||||
" to be notified",
|
" to be notified",
|
||||||
"SELECT UsrCod FROM crs_usr"
|
"SELECT UsrCod" // row[0]
|
||||||
|
" FROM crs_users"
|
||||||
" WHERE CrsCod=%ld"
|
" WHERE CrsCod=%ld"
|
||||||
" AND UsrCod<>%ld",
|
" AND UsrCod<>%ld",
|
||||||
Gbl.Hierarchy.Crs.CrsCod,
|
Gbl.Hierarchy.Crs.CrsCod,
|
||||||
Gbl.Usrs.Me.UsrDat.UsrCod);
|
Gbl.Usrs.Me.UsrDat.UsrCod);
|
||||||
break;
|
break;
|
||||||
case Brw_ADMI_TCH_CRS: // Notify all teachers in course except me
|
case Brw_ADMI_TCH_CRS: // Notify all teachers in course except me
|
||||||
NumRows = DB_QuerySELECT (&mysql_res,"can not get users"
|
NumRows = DB_QuerySELECT (&mysql_res,"can not get users"
|
||||||
" to be notified",
|
" to be notified",
|
||||||
"SELECT UsrCod FROM crs_usr"
|
"SELECT UsrCod" // row[0]
|
||||||
|
" FROM crs_users"
|
||||||
" WHERE CrsCod=%ld"
|
" WHERE CrsCod=%ld"
|
||||||
" AND UsrCod<>%ld"
|
" AND UsrCod<>%ld"
|
||||||
" AND Role=%u", // Notify teachers only
|
" AND Role=%u", // Notify teachers only
|
||||||
Gbl.Hierarchy.Crs.CrsCod,
|
Gbl.Hierarchy.Crs.CrsCod,
|
||||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||||
(unsigned) Rol_TCH);
|
(unsigned) Rol_TCH);
|
||||||
|
@ -1242,23 +1244,27 @@ unsigned Ntf_StoreNotifyEventsToAllUsrs (Ntf_NotifyEvent_t NotifyEvent,long Cod)
|
||||||
case Brw_ADMI_MRK_GRP: // Notify all users in group except me
|
case Brw_ADMI_MRK_GRP: // Notify all users in group except me
|
||||||
NumRows = DB_QuerySELECT (&mysql_res,"can not get users"
|
NumRows = DB_QuerySELECT (&mysql_res,"can not get users"
|
||||||
" to be notified",
|
" to be notified",
|
||||||
"SELECT UsrCod FROM crs_grp_usr"
|
"SELECT UsrCod" // row[0]
|
||||||
|
" FROM crs_grp_usr"
|
||||||
" WHERE crs_grp_usr.GrpCod=%ld"
|
" WHERE crs_grp_usr.GrpCod=%ld"
|
||||||
" AND crs_grp_usr.UsrCod<>%ld",
|
" AND crs_grp_usr.UsrCod<>%ld",
|
||||||
Gbl.Crs.Grps.GrpCod,
|
Gbl.Crs.Grps.GrpCod,
|
||||||
Gbl.Usrs.Me.UsrDat.UsrCod);
|
Gbl.Usrs.Me.UsrDat.UsrCod);
|
||||||
break;
|
break;
|
||||||
case Brw_ADMI_TCH_GRP: // Notify all teachers in group except me
|
case Brw_ADMI_TCH_GRP: // Notify all teachers in group except me
|
||||||
NumRows = DB_QuerySELECT (&mysql_res,"can not get users"
|
NumRows = DB_QuerySELECT (&mysql_res,"can not get users"
|
||||||
" to be notified",
|
" to be notified",
|
||||||
"SELECT crs_grp_usr.UsrCod"
|
"SELECT crs_grp_usr.UsrCod" // row[0]
|
||||||
" FROM crs_grp_usr,crs_grp,crs_grp_types,crs_usr"
|
" FROM crs_grp_usr,"
|
||||||
|
"crs_grp,"
|
||||||
|
"crs_grp_types,"
|
||||||
|
"crs_users"
|
||||||
" WHERE crs_grp_usr.GrpCod=%ld"
|
" WHERE crs_grp_usr.GrpCod=%ld"
|
||||||
" AND crs_grp_usr.UsrCod<>%ld"
|
" AND crs_grp_usr.UsrCod<>%ld"
|
||||||
" AND crs_grp_usr.GrpCod=crs_grp.GrpCod"
|
" AND crs_grp_usr.GrpCod=crs_grp.GrpCod"
|
||||||
" AND crs_grp.GrpTypCod=crs_grp_types.GrpTypCod"
|
" AND crs_grp.GrpTypCod=crs_grp_types.GrpTypCod"
|
||||||
" AND crs_grp_types.CrsCod=crs_usr.CrsCod"
|
" AND crs_grp_types.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.Role=%u", // Notify teachers only
|
" AND crs_users.Role=%u", // Notify teachers only
|
||||||
Gbl.Crs.Grps.GrpCod,
|
Gbl.Crs.Grps.GrpCod,
|
||||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||||
(unsigned) Rol_TCH);
|
(unsigned) Rol_TCH);
|
||||||
|
@ -1273,16 +1279,16 @@ unsigned Ntf_StoreNotifyEventsToAllUsrs (Ntf_NotifyEvent_t NotifyEvent,long Cod)
|
||||||
// Cases 1 and 2 are mutually exclusive, so the union returns the case 1 or 2
|
// Cases 1 and 2 are mutually exclusive, so the union returns the case 1 or 2
|
||||||
NumRows = DB_QuerySELECT (&mysql_res,"can not get users"
|
NumRows = DB_QuerySELECT (&mysql_res,"can not get users"
|
||||||
" to be notified",
|
" to be notified",
|
||||||
"(SELECT crs_usr.UsrCod" // row[0]
|
"(SELECT crs_users.UsrCod" // row[0]
|
||||||
" FROM asg_assignments,"
|
" FROM asg_assignments,"
|
||||||
"crs_usr"
|
"crs_users"
|
||||||
" WHERE asg_assignments.AsgCod=%ld"
|
" WHERE asg_assignments.AsgCod=%ld"
|
||||||
" AND asg_assignments.AsgCod NOT IN"
|
" AND asg_assignments.AsgCod NOT IN"
|
||||||
" (SELECT AsgCod"
|
" (SELECT AsgCod"
|
||||||
" FROM asg_groups"
|
" FROM asg_groups"
|
||||||
" WHERE AsgCod=%ld)"
|
" WHERE AsgCod=%ld)"
|
||||||
" AND asg_assignments.CrsCod=crs_usr.CrsCod"
|
" AND asg_assignments.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod<>%ld)"
|
" AND crs_users.UsrCod<>%ld)"
|
||||||
" UNION "
|
" UNION "
|
||||||
"(SELECT DISTINCT crs_grp_usr.UsrCod"
|
"(SELECT DISTINCT crs_grp_usr.UsrCod"
|
||||||
" FROM asg_groups,"
|
" FROM asg_groups,"
|
||||||
|
@ -1297,8 +1303,10 @@ unsigned Ntf_StoreNotifyEventsToAllUsrs (Ntf_NotifyEvent_t NotifyEvent,long Cod)
|
||||||
case Ntf_EVENT_NOTICE:
|
case Ntf_EVENT_NOTICE:
|
||||||
NumRows = DB_QuerySELECT (&mysql_res,"can not get users"
|
NumRows = DB_QuerySELECT (&mysql_res,"can not get users"
|
||||||
" to be notified",
|
" to be notified",
|
||||||
"SELECT UsrCod FROM crs_usr"
|
"SELECT UsrCod" // row[0]
|
||||||
" WHERE CrsCod=%ld AND UsrCod<>%ld",
|
" FROM crs_users"
|
||||||
|
" WHERE CrsCod=%ld"
|
||||||
|
" AND UsrCod<>%ld",
|
||||||
Gbl.Hierarchy.Crs.CrsCod,
|
Gbl.Hierarchy.Crs.CrsCod,
|
||||||
Gbl.Usrs.Me.UsrDat.UsrCod);
|
Gbl.Usrs.Me.UsrDat.UsrCod);
|
||||||
break;
|
break;
|
||||||
|
@ -1312,10 +1320,11 @@ unsigned Ntf_StoreNotifyEventsToAllUsrs (Ntf_NotifyEvent_t NotifyEvent,long Cod)
|
||||||
// If this course has teachers ==> send notification to teachers
|
// If this course has teachers ==> send notification to teachers
|
||||||
NumRows = DB_QuerySELECT (&mysql_res,"can not get users"
|
NumRows = DB_QuerySELECT (&mysql_res,"can not get users"
|
||||||
" to be notified",
|
" to be notified",
|
||||||
"SELECT UsrCod FROM crs_usr"
|
"SELECT UsrCod" // row[0]
|
||||||
|
" FROM crs_users"
|
||||||
" WHERE CrsCod=%ld"
|
" WHERE CrsCod=%ld"
|
||||||
" AND UsrCod<>%ld"
|
" AND UsrCod<>%ld"
|
||||||
" AND Role=%u", // Notify teachers only
|
" AND Role=%u", // Notify teachers only
|
||||||
Gbl.Hierarchy.Crs.CrsCod,
|
Gbl.Hierarchy.Crs.CrsCod,
|
||||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||||
(unsigned) Rol_TCH);
|
(unsigned) Rol_TCH);
|
||||||
|
@ -1326,12 +1335,13 @@ unsigned Ntf_StoreNotifyEventsToAllUsrs (Ntf_NotifyEvent_t NotifyEvent,long Cod)
|
||||||
// ==> send notification to administrators or superusers
|
// ==> send notification to administrators or superusers
|
||||||
NumRows = DB_QuerySELECT (&mysql_res,"can not get users"
|
NumRows = DB_QuerySELECT (&mysql_res,"can not get users"
|
||||||
" to be notified",
|
" to be notified",
|
||||||
"SELECT UsrCod FROM usr_admins"
|
"SELECT UsrCod" // row[0]
|
||||||
|
" FROM usr_admins"
|
||||||
" WHERE (Scope='%s'"
|
" WHERE (Scope='%s'"
|
||||||
" OR (Scope='%s' AND Cod=%ld)"
|
" OR (Scope='%s' AND Cod=%ld)"
|
||||||
" OR (Scope='%s' AND Cod=%ld)"
|
" OR (Scope='%s' AND Cod=%ld)"
|
||||||
" OR (Scope='%s' AND Cod=%ld))"
|
" OR (Scope='%s' AND Cod=%ld))"
|
||||||
" AND UsrCod<>%ld",
|
" AND UsrCod<>%ld",
|
||||||
Sco_GetDBStrFromScope (Hie_Lvl_SYS),
|
Sco_GetDBStrFromScope (Hie_Lvl_SYS),
|
||||||
Sco_GetDBStrFromScope (Hie_Lvl_INS),Gbl.Hierarchy.Ins.InsCod,
|
Sco_GetDBStrFromScope (Hie_Lvl_INS),Gbl.Hierarchy.Ins.InsCod,
|
||||||
Sco_GetDBStrFromScope (Hie_Lvl_CTR),Gbl.Hierarchy.Ctr.CtrCod,
|
Sco_GetDBStrFromScope (Hie_Lvl_CTR),Gbl.Hierarchy.Ctr.CtrCod,
|
||||||
|
@ -1342,11 +1352,13 @@ unsigned Ntf_StoreNotifyEventsToAllUsrs (Ntf_NotifyEvent_t NotifyEvent,long Cod)
|
||||||
// Cod is the code of the social publishing
|
// Cod is the code of the social publishing
|
||||||
NumRows = DB_QuerySELECT (&mysql_res,"can not get users"
|
NumRows = DB_QuerySELECT (&mysql_res,"can not get users"
|
||||||
" to be notified",
|
" to be notified",
|
||||||
"SELECT DISTINCT(PublisherCod) FROM tml_pubs"
|
"SELECT DISTINCT(PublisherCod)" // row[0]
|
||||||
|
" FROM tml_pubs"
|
||||||
" WHERE NotCod="
|
" WHERE NotCod="
|
||||||
"(SELECT NotCod FROM tml_pubs"
|
"(SELECT NotCod"
|
||||||
" WHERE PubCod=%ld)"
|
" FROM tml_pubs"
|
||||||
" AND PublisherCod<>%ld",
|
" WHERE PubCod=%ld)"
|
||||||
|
" AND PublisherCod<>%ld",
|
||||||
Cod,Gbl.Usrs.Me.UsrDat.UsrCod);
|
Cod,Gbl.Usrs.Me.UsrDat.UsrCod);
|
||||||
break;
|
break;
|
||||||
case Ntf_EVENT_TL_FAV: // New favourite to one of my social notes or comments
|
case Ntf_EVENT_TL_FAV: // New favourite to one of my social notes or comments
|
||||||
|
@ -1364,16 +1376,21 @@ unsigned Ntf_StoreNotifyEventsToAllUsrs (Ntf_NotifyEvent_t NotifyEvent,long Cod)
|
||||||
case For_FORUM_COURSE_USRS:
|
case For_FORUM_COURSE_USRS:
|
||||||
NumRows = DB_QuerySELECT (&mysql_res,"can not get users"
|
NumRows = DB_QuerySELECT (&mysql_res,"can not get users"
|
||||||
" to be notified",
|
" to be notified",
|
||||||
"SELECT UsrCod FROM crs_usr"
|
"SELECT UsrCod" // row[0]
|
||||||
" WHERE CrsCod=%ld AND UsrCod<>%ld",
|
" FROM crs_users"
|
||||||
|
" WHERE CrsCod=%ld"
|
||||||
|
" AND UsrCod<>%ld",
|
||||||
Gbl.Hierarchy.Crs.CrsCod,
|
Gbl.Hierarchy.Crs.CrsCod,
|
||||||
Gbl.Usrs.Me.UsrDat.UsrCod);
|
Gbl.Usrs.Me.UsrDat.UsrCod);
|
||||||
break;
|
break;
|
||||||
case For_FORUM_COURSE_TCHS:
|
case For_FORUM_COURSE_TCHS:
|
||||||
NumRows = DB_QuerySELECT (&mysql_res,"can not get users"
|
NumRows = DB_QuerySELECT (&mysql_res,"can not get users"
|
||||||
" to be notified",
|
" to be notified",
|
||||||
"SELECT UsrCod FROM crs_usr"
|
"SELECT UsrCod" // row[0]
|
||||||
" WHERE CrsCod=%ld AND Role=%u AND UsrCod<>%ld",
|
" FROM crs_users"
|
||||||
|
" WHERE CrsCod=%ld"
|
||||||
|
" AND Role=%u"
|
||||||
|
" AND UsrCod<>%ld",
|
||||||
Gbl.Hierarchy.Crs.CrsCod,
|
Gbl.Hierarchy.Crs.CrsCod,
|
||||||
(unsigned) Rol_TCH,
|
(unsigned) Rol_TCH,
|
||||||
Gbl.Usrs.Me.UsrDat.UsrCod);
|
Gbl.Usrs.Me.UsrDat.UsrCod);
|
||||||
|
@ -1385,7 +1402,7 @@ unsigned Ntf_StoreNotifyEventsToAllUsrs (Ntf_NotifyEvent_t NotifyEvent,long Cod)
|
||||||
case Ntf_EVENT_FORUM_REPLY:
|
case Ntf_EVENT_FORUM_REPLY:
|
||||||
NumRows = DB_QuerySELECT (&mysql_res,"can not get users"
|
NumRows = DB_QuerySELECT (&mysql_res,"can not get users"
|
||||||
" to be notified",
|
" to be notified",
|
||||||
"SELECT DISTINCT(UsrCod)"
|
"SELECT DISTINCT(UsrCod)" // row[0]
|
||||||
" FROM for_posts"
|
" FROM for_posts"
|
||||||
" WHERE ThrCod = (SELECT ThrCod"
|
" WHERE ThrCod = (SELECT ThrCod"
|
||||||
" FROM for_posts"
|
" FROM for_posts"
|
||||||
|
@ -1401,32 +1418,32 @@ unsigned Ntf_StoreNotifyEventsToAllUsrs (Ntf_NotifyEvent_t NotifyEvent,long Cod)
|
||||||
// Cases 1 and 2 are mutually exclusive, so the union returns the case 1 or 2
|
// Cases 1 and 2 are mutually exclusive, so the union returns the case 1 or 2
|
||||||
NumRows = DB_QuerySELECT (&mysql_res,"can not get users"
|
NumRows = DB_QuerySELECT (&mysql_res,"can not get users"
|
||||||
" to be notified",
|
" to be notified",
|
||||||
"(SELECT crs_usr.UsrCod"
|
"(SELECT crs_users.UsrCod" // row[0]
|
||||||
" FROM svy_surveys,"
|
" FROM svy_surveys,"
|
||||||
"crs_usr"
|
"crs_users"
|
||||||
" WHERE svy_surveys.SvyCod=%ld"
|
" WHERE svy_surveys.SvyCod=%ld"
|
||||||
" AND svy_surveys.SvyCod NOT IN"
|
" AND svy_surveys.SvyCod NOT IN"
|
||||||
" (SELECT SvyCod"
|
" (SELECT SvyCod"
|
||||||
" FROM svy_groups"
|
" FROM svy_groups"
|
||||||
" WHERE SvyCod=%ld)"
|
" WHERE SvyCod=%ld)"
|
||||||
" AND svy_surveys.Scope='%s'"
|
" AND svy_surveys.Scope='%s'"
|
||||||
" AND svy_surveys.Cod=crs_usr.CrsCod"
|
" AND svy_surveys.Cod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod<>%ld"
|
" AND crs_users.UsrCod<>%ld"
|
||||||
" AND (svy_surveys.Roles&(1<<crs_usr.Role))<>0)"
|
" AND (svy_surveys.Roles&(1<<crs_users.Role))<>0)"
|
||||||
" UNION "
|
" UNION "
|
||||||
"(SELECT DISTINCT crs_grp_usr.UsrCod"
|
"(SELECT DISTINCT crs_grp_usr.UsrCod"
|
||||||
" FROM svy_groups,"
|
" FROM svy_groups,"
|
||||||
"crs_grp_usr,"
|
"crs_grp_usr,"
|
||||||
"svy_surveys,"
|
"svy_surveys,"
|
||||||
"crs_usr"
|
"crs_users"
|
||||||
" WHERE svy_groups.SvyCod=%ld"
|
" WHERE svy_groups.SvyCod=%ld"
|
||||||
" AND svy_groups.GrpCod=crs_grp_usr.GrpCod"
|
" AND svy_groups.GrpCod=crs_grp_usr.GrpCod"
|
||||||
" AND crs_grp_usr.UsrCod=crs_usr.UsrCod"
|
" AND crs_grp_usr.UsrCod=crs_users.UsrCod"
|
||||||
" AND crs_grp_usr.UsrCod<>%ld"
|
" AND crs_grp_usr.UsrCod<>%ld"
|
||||||
" AND svy_groups.SvyCod=svy_surveys.SvyCod"
|
" AND svy_groups.SvyCod=svy_surveys.SvyCod"
|
||||||
" AND svy_surveys.Scope='%s'"
|
" AND svy_surveys.Scope='%s'"
|
||||||
" AND svy_surveys.Cod=crs_usr.CrsCod"
|
" AND svy_surveys.Cod=crs_users.CrsCod"
|
||||||
" AND (svy_surveys.Roles&(1<<crs_usr.Role))<>0)",
|
" AND (svy_surveys.Roles&(1<<crs_users.Role))<>0)",
|
||||||
Cod,
|
Cod,
|
||||||
Cod,
|
Cod,
|
||||||
Sco_GetDBStrFromScope (Hie_Lvl_CRS),
|
Sco_GetDBStrFromScope (Hie_Lvl_CRS),
|
||||||
|
|
34
swad_photo.c
34
swad_photo.c
|
@ -1430,15 +1430,16 @@ static long Pho_GetDegWithAvgPhotoLeastRecentlyUpdated (void)
|
||||||
/* Get one degree with students not yet computed */
|
/* Get one degree with students not yet computed */
|
||||||
NumRows =
|
NumRows =
|
||||||
DB_QuerySELECT (&mysql_res,"can not get degrees",
|
DB_QuerySELECT (&mysql_res,"can not get degrees",
|
||||||
"SELECT DISTINCT deg_degrees.DegCod"
|
"SELECT DISTINCT deg_degrees.DegCod" // row[0]
|
||||||
" FROM deg_degrees,"
|
" FROM deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr"
|
"crs_users"
|
||||||
" WHERE deg_degrees.DegCod=crs_courses.DegCod"
|
" WHERE deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.Role=%u"
|
" AND crs_users.Role=%u"
|
||||||
" AND deg_degrees.DegCod NOT IN"
|
" AND deg_degrees.DegCod NOT IN"
|
||||||
" (SELECT DISTINCT DegCod FROM sta_degrees)"
|
" (SELECT DISTINCT DegCod"
|
||||||
|
" FROM sta_degrees)"
|
||||||
" LIMIT 1",
|
" LIMIT 1",
|
||||||
(unsigned) Rol_STD);
|
(unsigned) Rol_STD);
|
||||||
|
|
||||||
|
@ -1462,15 +1463,16 @@ static long Pho_GetDegWithAvgPhotoLeastRecentlyUpdated (void)
|
||||||
/* Get degrees from database */
|
/* Get degrees from database */
|
||||||
NumRows =
|
NumRows =
|
||||||
DB_QuerySELECT (&mysql_res,"can not get degrees",
|
DB_QuerySELECT (&mysql_res,"can not get degrees",
|
||||||
"SELECT sta_degrees.DegCod"
|
"SELECT sta_degrees.DegCod" // row[0]
|
||||||
" FROM sta_degrees,"
|
" FROM sta_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr"
|
"crs_users"
|
||||||
" WHERE sta_degrees.TimeAvgPhoto<FROM_UNIXTIME(UNIX_TIMESTAMP()-%lu)"
|
" WHERE sta_degrees.TimeAvgPhoto<FROM_UNIXTIME(UNIX_TIMESTAMP()-%lu)"
|
||||||
" AND sta_degrees.DegCod=crs_courses.DegCod"
|
" AND sta_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.Role=%u"
|
" AND crs_users.Role=%u"
|
||||||
" ORDER BY sta_degrees.TimeAvgPhoto LIMIT 1",
|
" ORDER BY sta_degrees.TimeAvgPhoto"
|
||||||
|
" LIMIT 1",
|
||||||
Cfg_MIN_TIME_TO_RECOMPUTE_AVG_PHOTO,
|
Cfg_MIN_TIME_TO_RECOMPUTE_AVG_PHOTO,
|
||||||
(unsigned) Rol_STD);
|
(unsigned) Rol_STD);
|
||||||
|
|
||||||
|
|
268
swad_profile.c
268
swad_profile.c
|
@ -1437,11 +1437,13 @@ static void Prf_GetAndShowRankingFigure (const char *FieldName)
|
||||||
case Hie_Lvl_SYS:
|
case Hie_Lvl_SYS:
|
||||||
NumUsrs = (unsigned)
|
NumUsrs = (unsigned)
|
||||||
DB_QuerySELECT (&mysql_res,"can not get ranking",
|
DB_QuerySELECT (&mysql_res,"can not get ranking",
|
||||||
"SELECT UsrCod,"
|
"SELECT UsrCod," // row[0]
|
||||||
"%s"
|
"%s" // row[1]
|
||||||
" FROM usr_figures"
|
" FROM usr_figures"
|
||||||
" WHERE %s>0"
|
" WHERE %s>0"
|
||||||
" AND UsrCod NOT IN (SELECT UsrCod FROM usr_banned)"
|
" AND UsrCod NOT IN"
|
||||||
|
" (SELECT UsrCod"
|
||||||
|
" FROM usr_banned)"
|
||||||
" ORDER BY %s DESC,"
|
" ORDER BY %s DESC,"
|
||||||
"UsrCod"
|
"UsrCod"
|
||||||
" LIMIT 100",
|
" LIMIT 100",
|
||||||
|
@ -1452,22 +1454,24 @@ static void Prf_GetAndShowRankingFigure (const char *FieldName)
|
||||||
NumUsrs = (unsigned)
|
NumUsrs = (unsigned)
|
||||||
DB_QuerySELECT (&mysql_res,"can not get ranking",
|
DB_QuerySELECT (&mysql_res,"can not get ranking",
|
||||||
"SELECT DISTINCTROW "
|
"SELECT DISTINCTROW "
|
||||||
"usr_figures.UsrCod,"
|
"usr_figures.UsrCod," // row[0]
|
||||||
"usr_figures.%s"
|
"usr_figures.%s" // row[1]
|
||||||
" FROM ins_instits,"
|
" FROM ins_instits,"
|
||||||
"ctr_centers,"
|
"ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_figures"
|
"usr_figures"
|
||||||
" WHERE ins_instits.CtyCod=%ld"
|
" WHERE ins_instits.CtyCod=%ld"
|
||||||
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=usr_figures.UsrCod"
|
" AND crs_users.UsrCod=usr_figures.UsrCod"
|
||||||
" AND usr_figures.%s>0"
|
" AND usr_figures.%s>0"
|
||||||
" AND usr_figures.UsrCod NOT IN (SELECT UsrCod FROM usr_banned)"
|
" AND usr_figures.UsrCod NOT IN"
|
||||||
|
" (SELECT UsrCod"
|
||||||
|
" FROM usr_banned)"
|
||||||
" ORDER BY usr_figures.%s DESC,"
|
" ORDER BY usr_figures.%s DESC,"
|
||||||
"usr_figures.UsrCod"
|
"usr_figures.UsrCod"
|
||||||
" LIMIT 100",
|
" LIMIT 100",
|
||||||
|
@ -1479,20 +1483,22 @@ static void Prf_GetAndShowRankingFigure (const char *FieldName)
|
||||||
NumUsrs = (unsigned)
|
NumUsrs = (unsigned)
|
||||||
DB_QuerySELECT (&mysql_res,"can not get ranking",
|
DB_QuerySELECT (&mysql_res,"can not get ranking",
|
||||||
"SELECT DISTINCTROW "
|
"SELECT DISTINCTROW "
|
||||||
"usr_figures.UsrCod,"
|
"usr_figures.UsrCod," // row[0]
|
||||||
"usr_figures.%s"
|
"usr_figures.%s" // row[1]
|
||||||
" FROM ctr_centers,"
|
" FROM ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_figures"
|
"usr_figures"
|
||||||
" WHERE ctr_centers.InsCod=%ld"
|
" WHERE ctr_centers.InsCod=%ld"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=usr_figures.UsrCod"
|
" AND crs_users.UsrCod=usr_figures.UsrCod"
|
||||||
" AND usr_figures.%s>0"
|
" AND usr_figures.%s>0"
|
||||||
" AND usr_figures.UsrCod NOT IN (SELECT UsrCod FROM usr_banned)"
|
" AND usr_figures.UsrCod NOT IN"
|
||||||
|
" (SELECT UsrCod"
|
||||||
|
" FROM usr_banned)"
|
||||||
" ORDER BY usr_figures.%s DESC,"
|
" ORDER BY usr_figures.%s DESC,"
|
||||||
"usr_figures.UsrCod"
|
"usr_figures.UsrCod"
|
||||||
" LIMIT 100",
|
" LIMIT 100",
|
||||||
|
@ -1504,18 +1510,20 @@ static void Prf_GetAndShowRankingFigure (const char *FieldName)
|
||||||
NumUsrs = (unsigned)
|
NumUsrs = (unsigned)
|
||||||
DB_QuerySELECT (&mysql_res,"can not get ranking",
|
DB_QuerySELECT (&mysql_res,"can not get ranking",
|
||||||
"SELECT DISTINCTROW "
|
"SELECT DISTINCTROW "
|
||||||
"usr_figures.UsrCod,"
|
"usr_figures.UsrCod," // row[0]
|
||||||
"usr_figures.%s"
|
"usr_figures.%s" // row[1]
|
||||||
" FROM deg_degrees,"
|
" FROM deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_figures"
|
"usr_figures"
|
||||||
" WHERE deg_degrees.CtrCod=%ld"
|
" WHERE deg_degrees.CtrCod=%ld"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=usr_figures.UsrCod"
|
" AND crs_users.UsrCod=usr_figures.UsrCod"
|
||||||
" AND usr_figures.%s>0"
|
" AND usr_figures.%s>0"
|
||||||
" AND usr_figures.UsrCod NOT IN (SELECT UsrCod FROM usr_banned)"
|
" AND usr_figures.UsrCod NOT IN"
|
||||||
|
" (SELECT UsrCod"
|
||||||
|
" FROM usr_banned)"
|
||||||
" ORDER BY usr_figures.%s DESC,"
|
" ORDER BY usr_figures.%s DESC,"
|
||||||
"usr_figures.UsrCod"
|
"usr_figures.UsrCod"
|
||||||
" LIMIT 100",
|
" LIMIT 100",
|
||||||
|
@ -1527,16 +1535,18 @@ static void Prf_GetAndShowRankingFigure (const char *FieldName)
|
||||||
NumUsrs = (unsigned)
|
NumUsrs = (unsigned)
|
||||||
DB_QuerySELECT (&mysql_res,"can not get ranking",
|
DB_QuerySELECT (&mysql_res,"can not get ranking",
|
||||||
"SELECT DISTINCTROW "
|
"SELECT DISTINCTROW "
|
||||||
"usr_figures.UsrCod,"
|
"usr_figures.UsrCod," // row[0]
|
||||||
"usr_figures.%s"
|
"usr_figures.%s" // row[1]
|
||||||
" FROM crs_courses,"
|
" FROM crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_figures"
|
"usr_figures"
|
||||||
" WHERE crs_courses.DegCod=%ld"
|
" WHERE crs_courses.DegCod=%ld"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=usr_figures.UsrCod"
|
" AND crs_users.UsrCod=usr_figures.UsrCod"
|
||||||
" AND usr_figures.%s>0"
|
" AND usr_figures.%s>0"
|
||||||
" AND usr_figures.UsrCod NOT IN (SELECT UsrCod FROM usr_banned)"
|
" AND usr_figures.UsrCod NOT IN"
|
||||||
|
" (SELECT UsrCod"
|
||||||
|
" FROM usr_banned)"
|
||||||
" ORDER BY usr_figures.%s DESC,"
|
" ORDER BY usr_figures.%s DESC,"
|
||||||
"usr_figures.UsrCod"
|
"usr_figures.UsrCod"
|
||||||
" LIMIT 100",
|
" LIMIT 100",
|
||||||
|
@ -1548,14 +1558,16 @@ static void Prf_GetAndShowRankingFigure (const char *FieldName)
|
||||||
NumUsrs = (unsigned)
|
NumUsrs = (unsigned)
|
||||||
DB_QuerySELECT (&mysql_res,"can not get ranking",
|
DB_QuerySELECT (&mysql_res,"can not get ranking",
|
||||||
"SELECT DISTINCTROW "
|
"SELECT DISTINCTROW "
|
||||||
"usr_figures.UsrCod,"
|
"usr_figures.UsrCod," // row[0]
|
||||||
"usr_figures.%s"
|
"usr_figures.%s" // row[1]
|
||||||
" FROM crs_usr,"
|
" FROM crs_users,"
|
||||||
"usr_figures"
|
"usr_figures"
|
||||||
" WHERE crs_usr.CrsCod=%ld"
|
" WHERE crs_users.CrsCod=%ld"
|
||||||
" AND crs_usr.UsrCod=usr_figures.UsrCod"
|
" AND crs_users.UsrCod=usr_figures.UsrCod"
|
||||||
" AND usr_figures.%s>0"
|
" AND usr_figures.%s>0"
|
||||||
" AND usr_figures.UsrCod NOT IN (SELECT UsrCod FROM usr_banned)"
|
" AND usr_figures.UsrCod NOT IN"
|
||||||
|
" (SELECT UsrCod"
|
||||||
|
" FROM usr_banned)"
|
||||||
" ORDER BY usr_figures.%s DESC,"
|
" ORDER BY usr_figures.%s DESC,"
|
||||||
"usr_figures.UsrCod"
|
"usr_figures.UsrCod"
|
||||||
" LIMIT 100",
|
" LIMIT 100",
|
||||||
|
@ -1654,13 +1666,15 @@ void Prf_GetAndShowRankingClicksPerDay (void)
|
||||||
case Hie_Lvl_SYS:
|
case Hie_Lvl_SYS:
|
||||||
NumUsrs = (unsigned)
|
NumUsrs = (unsigned)
|
||||||
DB_QuerySELECT (&mysql_res,"can not get ranking",
|
DB_QuerySELECT (&mysql_res,"can not get ranking",
|
||||||
"SELECT UsrCod,"
|
"SELECT UsrCod," // row[0]
|
||||||
"NumClicks/(DATEDIFF(NOW(),"
|
"NumClicks/(DATEDIFF(NOW(),"
|
||||||
"FirstClickTime)+1) AS NumClicksPerDay"
|
"FirstClickTime)+1) AS NumClicksPerDay" // row[1]
|
||||||
" FROM usr_figures"
|
" FROM usr_figures"
|
||||||
" WHERE NumClicks>0"
|
" WHERE NumClicks>0"
|
||||||
" AND FirstClickTime>FROM_UNIXTIME(0)"
|
" AND FirstClickTime>FROM_UNIXTIME(0)"
|
||||||
" AND UsrCod NOT IN (SELECT UsrCod FROM usr_banned)"
|
" AND UsrCod NOT IN"
|
||||||
|
" (SELECT UsrCod"
|
||||||
|
" FROM usr_banned)"
|
||||||
" ORDER BY NumClicksPerDay DESC,UsrCod"
|
" ORDER BY NumClicksPerDay DESC,UsrCod"
|
||||||
" LIMIT 100");
|
" LIMIT 100");
|
||||||
break;
|
break;
|
||||||
|
@ -1668,24 +1682,26 @@ void Prf_GetAndShowRankingClicksPerDay (void)
|
||||||
NumUsrs = (unsigned)
|
NumUsrs = (unsigned)
|
||||||
DB_QuerySELECT (&mysql_res,"can not get ranking",
|
DB_QuerySELECT (&mysql_res,"can not get ranking",
|
||||||
"SELECT DISTINCTROW "
|
"SELECT DISTINCTROW "
|
||||||
"usr_figures.UsrCod,"
|
"usr_figures.UsrCod," // row[0]
|
||||||
"usr_figures.NumClicks/(DATEDIFF(NOW(),"
|
"usr_figures.NumClicks/(DATEDIFF(NOW(),"
|
||||||
"usr_figures.FirstClickTime)+1) AS NumClicksPerDay"
|
"usr_figures.FirstClickTime)+1) AS NumClicksPerDay" // row[1]
|
||||||
" FROM ins_instits,"
|
" FROM ins_instits,"
|
||||||
"ctr_centers,"
|
"ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_figures"
|
"usr_figures"
|
||||||
" WHERE ins_instits.CtyCod=%ld"
|
" WHERE ins_instits.CtyCod=%ld"
|
||||||
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=usr_figures.UsrCod"
|
" AND crs_users.UsrCod=usr_figures.UsrCod"
|
||||||
" AND usr_figures.NumClicks>0"
|
" AND usr_figures.NumClicks>0"
|
||||||
" AND usr_figures.FirstClickTime>FROM_UNIXTIME(0)"
|
" AND usr_figures.FirstClickTime>FROM_UNIXTIME(0)"
|
||||||
" AND usr_figures.UsrCod NOT IN (SELECT UsrCod FROM usr_banned)"
|
" AND usr_figures.UsrCod NOT IN"
|
||||||
|
" (SELECT UsrCod"
|
||||||
|
" FROM usr_banned)"
|
||||||
" ORDER BY NumClicksPerDay DESC,"
|
" ORDER BY NumClicksPerDay DESC,"
|
||||||
"usr_figures.UsrCod"
|
"usr_figures.UsrCod"
|
||||||
" LIMIT 100",
|
" LIMIT 100",
|
||||||
|
@ -1695,22 +1711,24 @@ void Prf_GetAndShowRankingClicksPerDay (void)
|
||||||
NumUsrs = (unsigned)
|
NumUsrs = (unsigned)
|
||||||
DB_QuerySELECT (&mysql_res,"can not get ranking",
|
DB_QuerySELECT (&mysql_res,"can not get ranking",
|
||||||
"SELECT DISTINCTROW "
|
"SELECT DISTINCTROW "
|
||||||
"usr_figures.UsrCod,"
|
"usr_figures.UsrCod," // row[0]
|
||||||
"usr_figures.NumClicks/(DATEDIFF(NOW(),"
|
"usr_figures.NumClicks/(DATEDIFF(NOW(),"
|
||||||
"usr_figures.FirstClickTime)+1) AS NumClicksPerDay"
|
"usr_figures.FirstClickTime)+1) AS NumClicksPerDay" // row[1]
|
||||||
" FROM ctr_centers,"
|
" FROM ctr_centers,"
|
||||||
"deg_degrees,"
|
"deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_figures"
|
"usr_figures"
|
||||||
" WHERE ctr_centers.InsCod=%ld"
|
" WHERE ctr_centers.InsCod=%ld"
|
||||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=usr_figures.UsrCod"
|
" AND crs_users.UsrCod=usr_figures.UsrCod"
|
||||||
" AND usr_figures.NumClicks>0"
|
" AND usr_figures.NumClicks>0"
|
||||||
" AND usr_figures.FirstClickTime>FROM_UNIXTIME(0)"
|
" AND usr_figures.FirstClickTime>FROM_UNIXTIME(0)"
|
||||||
" AND usr_figures.UsrCod NOT IN (SELECT UsrCod FROM usr_banned)"
|
" AND usr_figures.UsrCod NOT IN"
|
||||||
|
" (SELECT UsrCod"
|
||||||
|
" FROM usr_banned)"
|
||||||
" ORDER BY NumClicksPerDay DESC,"
|
" ORDER BY NumClicksPerDay DESC,"
|
||||||
"usr_figures.UsrCod"
|
"usr_figures.UsrCod"
|
||||||
" LIMIT 100",
|
" LIMIT 100",
|
||||||
|
@ -1720,20 +1738,22 @@ void Prf_GetAndShowRankingClicksPerDay (void)
|
||||||
NumUsrs = (unsigned)
|
NumUsrs = (unsigned)
|
||||||
DB_QuerySELECT (&mysql_res,"can not get ranking",
|
DB_QuerySELECT (&mysql_res,"can not get ranking",
|
||||||
"SELECT DISTINCTROW "
|
"SELECT DISTINCTROW "
|
||||||
"usr_figures.UsrCod,"
|
"usr_figures.UsrCod," // row[0]
|
||||||
"usr_figures.NumClicks/(DATEDIFF(NOW(),"
|
"usr_figures.NumClicks/(DATEDIFF(NOW(),"
|
||||||
"usr_figures.FirstClickTime)+1) AS NumClicksPerDay"
|
"usr_figures.FirstClickTime)+1) AS NumClicksPerDay" // row[1]
|
||||||
" FROM deg_degrees,"
|
" FROM deg_degrees,"
|
||||||
"crs_courses,"
|
"crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_figures"
|
"usr_figures"
|
||||||
" WHERE deg_degrees.CtrCod=%ld"
|
" WHERE deg_degrees.CtrCod=%ld"
|
||||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=usr_figures.UsrCod"
|
" AND crs_users.UsrCod=usr_figures.UsrCod"
|
||||||
" AND usr_figures.NumClicks>0"
|
" AND usr_figures.NumClicks>0"
|
||||||
" AND usr_figures.FirstClickTime>FROM_UNIXTIME(0)"
|
" AND usr_figures.FirstClickTime>FROM_UNIXTIME(0)"
|
||||||
" AND usr_figures.UsrCod NOT IN (SELECT UsrCod FROM usr_banned)"
|
" AND usr_figures.UsrCod NOT IN"
|
||||||
|
" (SELECT UsrCod"
|
||||||
|
" FROM usr_banned)"
|
||||||
" ORDER BY NumClicksPerDay DESC,"
|
" ORDER BY NumClicksPerDay DESC,"
|
||||||
"usr_figures.UsrCod"
|
"usr_figures.UsrCod"
|
||||||
" LIMIT 100",
|
" LIMIT 100",
|
||||||
|
@ -1743,18 +1763,20 @@ void Prf_GetAndShowRankingClicksPerDay (void)
|
||||||
NumUsrs = (unsigned)
|
NumUsrs = (unsigned)
|
||||||
DB_QuerySELECT (&mysql_res,"can not get ranking",
|
DB_QuerySELECT (&mysql_res,"can not get ranking",
|
||||||
"SELECT DISTINCTROW "
|
"SELECT DISTINCTROW "
|
||||||
"usr_figures.UsrCod,"
|
"usr_figures.UsrCod," // row[0]
|
||||||
"usr_figures.NumClicks/(DATEDIFF(NOW(),"
|
"usr_figures.NumClicks/(DATEDIFF(NOW(),"
|
||||||
"usr_figures.FirstClickTime)+1) AS NumClicksPerDay"
|
"usr_figures.FirstClickTime)+1) AS NumClicksPerDay" // row[1]
|
||||||
" FROM crs_courses,"
|
" FROM crs_courses,"
|
||||||
"crs_usr,"
|
"crs_users,"
|
||||||
"usr_figures"
|
"usr_figures"
|
||||||
" WHERE crs_courses.DegCod=%ld"
|
" WHERE crs_courses.DegCod=%ld"
|
||||||
" AND crs_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||||
" AND crs_usr.UsrCod=usr_figures.UsrCod"
|
" AND crs_users.UsrCod=usr_figures.UsrCod"
|
||||||
" AND usr_figures.NumClicks>0"
|
" AND usr_figures.NumClicks>0"
|
||||||
" AND usr_figures.FirstClickTime>FROM_UNIXTIME(0)"
|
" AND usr_figures.FirstClickTime>FROM_UNIXTIME(0)"
|
||||||
" AND usr_figures.UsrCod NOT IN (SELECT UsrCod FROM usr_banned)"
|
" AND usr_figures.UsrCod NOT IN"
|
||||||
|
" (SELECT UsrCod"
|
||||||
|
" FROM usr_banned)"
|
||||||
" ORDER BY NumClicksPerDay DESC,"
|
" ORDER BY NumClicksPerDay DESC,"
|
||||||
"usr_figures.UsrCod"
|
"usr_figures.UsrCod"
|
||||||
" LIMIT 100",
|
" LIMIT 100",
|
||||||
|
@ -1764,16 +1786,16 @@ void Prf_GetAndShowRankingClicksPerDay (void)
|
||||||
NumUsrs = (unsigned)
|
NumUsrs = (unsigned)
|
||||||
DB_QuerySELECT (&mysql_res,"can not get ranking",
|
DB_QuerySELECT (&mysql_res,"can not get ranking",
|
||||||
"SELECT DISTINCTROW "
|
"SELECT DISTINCTROW "
|
||||||
"usr_figures.UsrCod,"
|
"usr_figures.UsrCod," // row[0]
|
||||||
"usr_figures.NumClicks/(DATEDIFF(NOW(),"
|
"usr_figures.NumClicks/(DATEDIFF(NOW(),"
|
||||||
"usr_figures.FirstClickTime)+1) AS NumClicksPerDay"
|
"usr_figures.FirstClickTime)+1) AS NumClicksPerDay" // row[1]
|
||||||
" FROM crs_usr,"
|
" FROM crs_users,"
|
||||||
"usr_figures"
|
"usr_figures"
|
||||||
" WHERE crs_usr.CrsCod=%ld"
|
" WHERE crs_users.CrsCod=%ld"
|
||||||
" AND crs_usr.UsrCod=usr_figures.UsrCod"
|
" AND crs_users.UsrCod=usr_figures.UsrCod"
|
||||||
" AND usr_figures.NumClicks>0"
|
" AND usr_figures.NumClicks>0"
|
||||||
" AND usr_figures.FirstClickTime>FROM_UNIXTIME(0)"
|
" AND usr_figures.FirstClickTime>FROM_UNIXTIME(0)"
|
||||||
" AND usr_figures.UsrCod NOT IN (SELECT UsrCod FROM usr_banned)"
|
" AND usr_figures.UsrCod NOT IN (SELECT UsrCod FROM usr_banned)"
|
||||||
" ORDER BY NumClicksPerDay DESC,"
|
" ORDER BY NumClicksPerDay DESC,"
|
||||||
"usr_figures.UsrCod"
|
"usr_figures.UsrCod"
|
||||||
" LIMIT 100",
|
" LIMIT 100",
|
||||||
|
|
|
@ -1013,13 +1013,17 @@ static void Rep_GetAndWriteMyCurrentCrss (Rol_Role_t Role,
|
||||||
"SELECT my_courses.CrsCod," // row[0]
|
"SELECT my_courses.CrsCod," // row[0]
|
||||||
"COUNT(*) AS N" // row[1]
|
"COUNT(*) AS N" // row[1]
|
||||||
" FROM"
|
" FROM"
|
||||||
" (SELECT CrsCod FROM crs_usr"
|
" (SELECT CrsCod"
|
||||||
" WHERE UsrCod=%ld AND Role=%u) AS my_courses" // It's imperative to use a derived table to not block crs_usr!
|
" FROM crs_users"
|
||||||
|
" WHERE UsrCod=%ld"
|
||||||
|
" AND Role=%u) AS my_courses" // It's imperative to use a derived table to not block crs_usr!
|
||||||
" LEFT JOIN log"
|
" LEFT JOIN log"
|
||||||
" ON (my_courses.CrsCod=log.CrsCod)"
|
" ON (my_courses.CrsCod=log.CrsCod)"
|
||||||
" WHERE log.UsrCod=%ld AND log.Role=%u"
|
" WHERE log.UsrCod=%ld"
|
||||||
|
" AND log.Role=%u"
|
||||||
" GROUP BY my_courses.CrsCod"
|
" GROUP BY my_courses.CrsCod"
|
||||||
" ORDER BY N DESC,my_courses.CrsCod DESC",
|
" ORDER BY N DESC,"
|
||||||
|
"my_courses.CrsCod DESC",
|
||||||
Gbl.Usrs.Me.UsrDat.UsrCod,(unsigned) Role,
|
Gbl.Usrs.Me.UsrDat.UsrCod,(unsigned) Role,
|
||||||
Gbl.Usrs.Me.UsrDat.UsrCod,(unsigned) Role);
|
Gbl.Usrs.Me.UsrDat.UsrCod,(unsigned) Role);
|
||||||
|
|
||||||
|
|
|
@ -387,8 +387,10 @@ Rol_Role_t Rol_GetRoleUsrInCrs (long UsrCod,long CrsCod)
|
||||||
Gbl.Cache.RoleUsrInCrs.CrsCod = CrsCod;
|
Gbl.Cache.RoleUsrInCrs.CrsCod = CrsCod;
|
||||||
Gbl.Cache.RoleUsrInCrs.Role = Rol_UNK;
|
Gbl.Cache.RoleUsrInCrs.Role = Rol_UNK;
|
||||||
if (DB_QuerySELECT (&mysql_res,"can not get the role of a user in a course",
|
if (DB_QuerySELECT (&mysql_res,"can not get the role of a user in a course",
|
||||||
"SELECT Role FROM crs_usr"
|
"SELECT Role" // row[0]
|
||||||
" WHERE CrsCod=%ld AND UsrCod=%ld",
|
" FROM crs_users"
|
||||||
|
" WHERE CrsCod=%ld"
|
||||||
|
" AND UsrCod=%ld",
|
||||||
CrsCod,UsrCod) == 1) // User belongs to the course
|
CrsCod,UsrCod) == 1) // User belongs to the course
|
||||||
{
|
{
|
||||||
row = mysql_fetch_row (mysql_res);
|
row = mysql_fetch_row (mysql_res);
|
||||||
|
@ -419,7 +421,8 @@ void Rol_GetRolesInAllCrssIfNotYetGot (struct UsrData *UsrDat)
|
||||||
NumRoles =
|
NumRoles =
|
||||||
(unsigned) DB_QuerySELECT (&mysql_res,"can not get the roles of a user"
|
(unsigned) DB_QuerySELECT (&mysql_res,"can not get the roles of a user"
|
||||||
" in all his/her courses",
|
" in all his/her courses",
|
||||||
"SELECT DISTINCT(Role) FROM crs_usr"
|
"SELECT DISTINCT(Role)" // row[0]
|
||||||
|
" FROM crs_users"
|
||||||
" WHERE UsrCod=%ld",
|
" WHERE UsrCod=%ld",
|
||||||
UsrDat->UsrCod);
|
UsrDat->UsrCod);
|
||||||
for (NumRole = 0, UsrDat->Roles.InCrss = 0;
|
for (NumRole = 0, UsrDat->Roles.InCrss = 0;
|
||||||
|
|
|
@ -863,10 +863,10 @@ static unsigned Sch_SearchDocumentsInMyCoursesInDB (const char *RangeQuery)
|
||||||
" (FilCod INT NOT NULL,UNIQUE INDEX(FilCod))"
|
" (FilCod INT NOT NULL,UNIQUE INDEX(FilCod))"
|
||||||
" ENGINE=MEMORY"
|
" ENGINE=MEMORY"
|
||||||
" SELECT brw_files.FilCod"
|
" SELECT brw_files.FilCod"
|
||||||
" FROM crs_usr,"
|
" FROM crs_users,"
|
||||||
"brw_files"
|
"brw_files"
|
||||||
" WHERE crs_usr.UsrCod=%ld"
|
" WHERE crs_users.UsrCod=%ld"
|
||||||
" AND crs_usr.CrsCod=brw_files.Cod"
|
" AND crs_users.CrsCod=brw_files.Cod"
|
||||||
" AND brw_files.FileBrowser IN (%u,%u,%u,%u)",
|
" AND brw_files.FileBrowser IN (%u,%u,%u,%u)",
|
||||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||||
(unsigned) Brw_ADMI_DOC_CRS,
|
(unsigned) Brw_ADMI_DOC_CRS,
|
||||||
|
@ -879,7 +879,8 @@ static unsigned Sch_SearchDocumentsInMyCoursesInDB (const char *RangeQuery)
|
||||||
" (FilCod INT NOT NULL,UNIQUE INDEX(FilCod))"
|
" (FilCod INT NOT NULL,UNIQUE INDEX(FilCod))"
|
||||||
" ENGINE=MEMORY"
|
" ENGINE=MEMORY"
|
||||||
" SELECT brw_files.FilCod"
|
" SELECT brw_files.FilCod"
|
||||||
" FROM crs_grp_usr,brw_files"
|
" FROM crs_grp_usr,"
|
||||||
|
"brw_files"
|
||||||
" WHERE crs_grp_usr.UsrCod=%ld"
|
" WHERE crs_grp_usr.UsrCod=%ld"
|
||||||
" AND crs_grp_usr.GrpCod=brw_files.Cod"
|
" AND crs_grp_usr.GrpCod=brw_files.Cod"
|
||||||
" AND brw_files.FileBrowser IN (%u,%u,%u,%u)",
|
" AND brw_files.FileBrowser IN (%u,%u,%u,%u)",
|
||||||
|
|
|
@ -724,10 +724,10 @@ static void Tmt_FillTimeTableFromDB (struct Tmt_Timetable *Timetable,
|
||||||
"tmt_courses.GrpCod,"
|
"tmt_courses.GrpCod,"
|
||||||
"tmt_courses.CrsCod"
|
"tmt_courses.CrsCod"
|
||||||
" FROM tmt_courses,"
|
" FROM tmt_courses,"
|
||||||
"crs_usr"
|
"crs_users"
|
||||||
" WHERE crs_usr.UsrCod=%ld"
|
" WHERE crs_users.UsrCod=%ld"
|
||||||
" AND tmt_courses.GrpCod=-1"
|
" AND tmt_courses.GrpCod=-1"
|
||||||
" AND tmt_courses.CrsCod=crs_usr.CrsCod"
|
" AND tmt_courses.CrsCod=crs_users.CrsCod"
|
||||||
" UNION DISTINCT "
|
" UNION DISTINCT "
|
||||||
"SELECT tmt_courses.Weekday,"
|
"SELECT tmt_courses.Weekday,"
|
||||||
"TIME_TO_SEC(tmt_courses.StartTime) AS S,"
|
"TIME_TO_SEC(tmt_courses.StartTime) AS S,"
|
||||||
|
@ -764,9 +764,9 @@ static void Tmt_FillTimeTableFromDB (struct Tmt_Timetable *Timetable,
|
||||||
"tmt_courses.GrpCod," // row[5]
|
"tmt_courses.GrpCod," // row[5]
|
||||||
"tmt_courses.CrsCod" // row[6]
|
"tmt_courses.CrsCod" // row[6]
|
||||||
" FROM tmt_courses,"
|
" FROM tmt_courses,"
|
||||||
"crs_usr"
|
"crs_users"
|
||||||
" WHERE crs_usr.UsrCod=%ld"
|
" WHERE crs_users.UsrCod=%ld"
|
||||||
" AND tmt_courses.CrsCod=crs_usr.CrsCod"
|
" AND tmt_courses.CrsCod=crs_users.CrsCod"
|
||||||
" UNION "
|
" UNION "
|
||||||
"SELECT Weekday," // row[0]
|
"SELECT Weekday," // row[0]
|
||||||
"TIME_TO_SEC(StartTime) AS S,"
|
"TIME_TO_SEC(StartTime) AS S,"
|
||||||
|
@ -817,10 +817,11 @@ static void Tmt_FillTimeTableFromDB (struct Tmt_Timetable *Timetable,
|
||||||
"tmt_courses.ClassType," // row[4]
|
"tmt_courses.ClassType," // row[4]
|
||||||
"tmt_courses.GrpCod" // row[5]
|
"tmt_courses.GrpCod" // row[5]
|
||||||
" FROM tmt_courses,"
|
" FROM tmt_courses,"
|
||||||
"crs_usr"
|
"crs_users"
|
||||||
" WHERE tmt_courses.CrsCod=%ld"
|
" WHERE tmt_courses.CrsCod=%ld"
|
||||||
" AND tmt_courses.GrpCod=-1 AND crs_usr.UsrCod=%ld"
|
" AND tmt_courses.GrpCod=-1"
|
||||||
" AND tmt_courses.CrsCod=crs_usr.CrsCod"
|
" AND crs_users.UsrCod=%ld"
|
||||||
|
" AND tmt_courses.CrsCod=crs_users.CrsCod"
|
||||||
" UNION DISTINCT "
|
" UNION DISTINCT "
|
||||||
"SELECT tmt_courses.Weekday," // row[0]
|
"SELECT tmt_courses.Weekday," // row[0]
|
||||||
"TIME_TO_SEC(tmt_courses.StartTime) AS S," // row[1]
|
"TIME_TO_SEC(tmt_courses.StartTime) AS S," // row[1]
|
||||||
|
|
1357
swad_user.c
1357
swad_user.c
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue