mirror of
https://github.com/acanas/swad-core.git
synced 2024-06-17 05:55:43 +02:00
Version 20.91.2: Jun 11, 2021 Queries moved to module swad_enrolment_database.
This commit is contained in:
parent
f5d59b104d
commit
ca9420971c
|
@ -602,13 +602,14 @@ TODO: FIX BUG, URGENT! En las fechas como par
|
|||
|
||||
TODO: En las encuestas, que los estudiantes no puedan ver los resultados hasta que no finalice el plazo.
|
||||
*/
|
||||
#define Log_PLATFORM_VERSION "SWAD 20.91.1 (2021-06-10)"
|
||||
#define Log_PLATFORM_VERSION "SWAD 20.91.2 (2021-06-11)"
|
||||
#define CSS_FILE "swad20.45.css"
|
||||
#define JS_FILE "swad20.69.1.js"
|
||||
/*
|
||||
TODO: Rename CENTRE to CENTER in help wiki.
|
||||
TODO: Rename ASSESSMENT.Announcements to ASSESSMENT.Calls_for_exams
|
||||
|
||||
Version 20.91.2: Jun 11, 2021 Queries moved to module swad_enrolment_database. (313143 lines)
|
||||
Version 20.91.1: Jun 10, 2021 Queries moved to module swad_enrolment_database. (313145 lines)
|
||||
Version 20.91: Jun 09, 2021 New module swad_enrolment_database for database queries related to user's enrolment. (313063 lines)
|
||||
Version 20.90.1: Jun 09, 2021 Queries moved to module swad_duplicate_database. (312962 lines)
|
||||
|
|
591
swad_enrolment.c
591
swad_enrolment.c
|
@ -1917,7 +1917,8 @@ void Enr_SignUpInCrs (void)
|
|||
Err_WrongRoleExit ();
|
||||
|
||||
/***** Try to get and old request of the same user (me) in the current course *****/
|
||||
ReqCod = Enr_DB_GetMyLastEnrolmentRequestInCurrentCrs ();
|
||||
ReqCod = Enr_DB_GetUsrEnrolmentRequestInCrs (Gbl.Hierarchy.Crs.CrsCod,
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod);
|
||||
|
||||
/***** Request user in current course in database *****/
|
||||
if (ReqCod > 0) // Old request exists in database
|
||||
|
@ -2158,7 +2159,7 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
|
|||
extern const char *Txt_No_enrolment_requests;
|
||||
MYSQL_RES *mysql_res;
|
||||
MYSQL_ROW row;
|
||||
unsigned NumReqs = 0; // Initialized to avoid warning
|
||||
unsigned NumReqs;
|
||||
unsigned NumReq;
|
||||
long ReqCod;
|
||||
struct Deg_Degree Deg;
|
||||
|
@ -2224,556 +2225,8 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
|
|||
HTM_TABLE_End ();
|
||||
Frm_EndForm ();
|
||||
|
||||
/***** Build query *****/
|
||||
switch (Gbl.Scope.Current)
|
||||
{
|
||||
case HieLvl_SYS: // Show requesters for the whole platform
|
||||
switch (Gbl.Usrs.Me.Role.Logged)
|
||||
{
|
||||
case Rol_TCH:
|
||||
// Requests in all courses in which I am teacher
|
||||
NumReqs = (unsigned)
|
||||
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
||||
"SELECT crs_requests.ReqCod," // row[0]
|
||||
"crs_requests.CrsCod," // row[1]
|
||||
"crs_requests.UsrCod," // row[2]
|
||||
"crs_requests.Role," // row[3]
|
||||
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||
" FROM crs_users,"
|
||||
"crs_requests"
|
||||
" WHERE crs_users.UsrCod=%ld"
|
||||
" AND crs_users.Role=%u"
|
||||
" AND crs_users.CrsCod=crs_requests.CrsCod"
|
||||
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||
" ORDER BY crs_requests.RequestTime DESC",
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
(unsigned) Rol_TCH,
|
||||
RolesSelected);
|
||||
break;
|
||||
case Rol_DEG_ADM:
|
||||
// Requests in all degrees administrated by me
|
||||
NumReqs = (unsigned)
|
||||
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
||||
"SELECT crs_requests.ReqCod," // row[0]
|
||||
"crs_requests.CrsCod," // row[1]
|
||||
"crs_requests.UsrCod," // row[2]
|
||||
"crs_requests.Role," // row[3]
|
||||
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||
" FROM usr_admins,"
|
||||
"crs_courses,"
|
||||
"crs_requests"
|
||||
" WHERE usr_admins.UsrCod=%ld"
|
||||
" AND usr_admins.Scope='%s'"
|
||||
" AND usr_admins.Cod=crs_courses.DegCod"
|
||||
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||
" ORDER BY crs_requests.RequestTime DESC",
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,Sco_GetDBStrFromScope (HieLvl_DEG),
|
||||
RolesSelected);
|
||||
break;
|
||||
case Rol_CTR_ADM:
|
||||
// Requests in all centers administrated by me
|
||||
NumReqs = (unsigned)
|
||||
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
||||
"SELECT crs_requests.ReqCod," // row[0]
|
||||
"crs_requests.CrsCod," // row[1]
|
||||
"crs_requests.UsrCod," // row[2]
|
||||
"crs_requests.Role," // row[3]
|
||||
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||
" FROM usr_admins,"
|
||||
"deg_degrees,"
|
||||
"crs_courses,"
|
||||
"crs_requests"
|
||||
" WHERE usr_admins.UsrCod=%ld"
|
||||
" AND usr_admins.Scope='%s'"
|
||||
" AND usr_admins.Cod=deg_degrees.CtrCod"
|
||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||
" ORDER BY crs_requests.RequestTime DESC",
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,Sco_GetDBStrFromScope (HieLvl_CTR),
|
||||
RolesSelected);
|
||||
break;
|
||||
case Rol_INS_ADM:
|
||||
// Requests in all institutions administrated by me
|
||||
NumReqs = (unsigned)
|
||||
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
||||
"SELECT crs_requests.ReqCod," // row[0]
|
||||
"crs_requests.CrsCod," // row[1]
|
||||
"crs_requests.UsrCod," // row[2]
|
||||
"crs_requests.Role," // row[3]
|
||||
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||
" FROM usr_admins,"
|
||||
"ctr_centers,"
|
||||
"deg_degrees,"
|
||||
"crs_courses,"
|
||||
"crs_requests"
|
||||
" WHERE usr_admins.UsrCod=%ld"
|
||||
" AND usr_admins.Scope='%s'"
|
||||
" AND usr_admins.Cod=ctr_centers.InsCod"
|
||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||
" ORDER BY crs_requests.RequestTime DESC",
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,Sco_GetDBStrFromScope (HieLvl_INS),
|
||||
RolesSelected);
|
||||
break;
|
||||
case Rol_SYS_ADM:
|
||||
// All requests
|
||||
NumReqs = (unsigned)
|
||||
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
||||
"SELECT ReqCod," // row[0]
|
||||
"CrsCod," // row[1]
|
||||
"UsrCod," // row[2]
|
||||
"Role," // row[3]
|
||||
"UNIX_TIMESTAMP(RequestTime)" // row[4]
|
||||
" FROM crs_requests"
|
||||
" WHERE ((1<<Role)&%u)<>0"
|
||||
" ORDER BY RequestTime DESC",
|
||||
RolesSelected);
|
||||
break;
|
||||
default:
|
||||
Err_NoPermissionExit ();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case HieLvl_CTY: // Show requesters for the current country
|
||||
switch (Gbl.Usrs.Me.Role.Logged)
|
||||
{
|
||||
case Rol_TCH:
|
||||
// Requests in courses of this country in which I am teacher
|
||||
NumReqs = (unsigned)
|
||||
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
||||
"SELECT crs_requests.ReqCod," // row[0]
|
||||
"crs_requests.CrsCod," // row[1]
|
||||
"crs_requests.UsrCod," // row[2]
|
||||
"crs_requests.Role," // row[3]
|
||||
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // roe[4]
|
||||
" FROM crs_users,"
|
||||
"ins_instits,"
|
||||
"ctr_centers,"
|
||||
"deg_degrees,"
|
||||
"crs_courses,"
|
||||
"crs_requests"
|
||||
" WHERE crs_users.UsrCod=%ld"
|
||||
" AND crs_users.Role=%u"
|
||||
" AND crs_users.CrsCod=crs_courses.CrsCod"
|
||||
" AND crs_courses.DegCod=deg_degrees.DegCod"
|
||||
" AND deg_degrees.CtrCod=ctr_centers.CtrCod"
|
||||
" AND ctr_centers.InsCod=ins_instits.InsCod"
|
||||
" AND ins_instits.CtyCod=%ld"
|
||||
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||
" ORDER BY crs_requests.RequestTime DESC",
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
(unsigned) Rol_TCH,
|
||||
Gbl.Hierarchy.Cty.CtyCod,
|
||||
RolesSelected);
|
||||
break;
|
||||
case Rol_DEG_ADM:
|
||||
// Requests in degrees of this country administrated by me
|
||||
NumReqs = (unsigned)
|
||||
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
||||
"SELECT crs_requests.ReqCod," // row[0]
|
||||
"crs_requests.CrsCod," // row[1]
|
||||
"crs_requests.UsrCod," // row[2]
|
||||
"crs_requests.Role," // row[3]
|
||||
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||
" FROM usr_admins,"
|
||||
"ins_instits,"
|
||||
"ctr_centers,"
|
||||
"deg_degrees,"
|
||||
"crs_courses,"
|
||||
"crs_requests"
|
||||
" WHERE usr_admins.UsrCod=%ld"
|
||||
" AND usr_admins.Scope='%s'"
|
||||
" AND usr_admins.Cod=deg_degrees.DegCod"
|
||||
" AND deg_degrees.CtrCod=ctr_centers.CtrCod"
|
||||
" AND ctr_centers.InsCod=ins_instits.InsCod"
|
||||
" AND ins_instits.CtyCod=%ld"
|
||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||
" ORDER BY crs_requests.RequestTime DESC",
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
Sco_GetDBStrFromScope (HieLvl_DEG),
|
||||
Gbl.Hierarchy.Cty.CtyCod,
|
||||
RolesSelected);
|
||||
break;
|
||||
case Rol_CTR_ADM:
|
||||
// Requests in centers of this country administrated by me
|
||||
NumReqs = (unsigned)
|
||||
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
||||
"SELECT crs_requests.ReqCod," // row[0]
|
||||
"crs_requests.CrsCod," // row[1]
|
||||
"crs_requests.UsrCod," // row[2]
|
||||
"crs_requests.Role," // row[3]
|
||||
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||
" FROM usr_admins,"
|
||||
"ins_instits,"
|
||||
"ctr_centers,"
|
||||
"deg_degrees,"
|
||||
"crs_courses,"
|
||||
"crs_requests"
|
||||
" WHERE usr_admins.UsrCod=%ld"
|
||||
" AND usr_admins.Scope='%s'"
|
||||
" AND usr_admins.Cod=ctr_centers.CtrCod"
|
||||
" AND ctr_centers.InsCod=ins_instits.InsCod"
|
||||
" AND ins_instits.CtyCod=%ld"
|
||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||
" ORDER BY crs_requests.RequestTime DESC",
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
Sco_GetDBStrFromScope (HieLvl_CTR),
|
||||
Gbl.Hierarchy.Cty.CtyCod,
|
||||
RolesSelected);
|
||||
break;
|
||||
case Rol_INS_ADM:
|
||||
// Requests in institutions of this country administrated by me
|
||||
NumReqs = (unsigned)
|
||||
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
||||
"SELECT crs_requests.ReqCod," // row[0]
|
||||
"crs_requests.CrsCod," // row[1]
|
||||
"crs_requests.UsrCod," // row[2]
|
||||
"crs_requests.Role," // row[3]
|
||||
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||
" FROM usr_admins,"
|
||||
"ins_instits,"
|
||||
"ctr_centers,"
|
||||
"deg_degrees,"
|
||||
"crs_courses,"
|
||||
"crs_requests"
|
||||
" WHERE usr_admins.UsrCod=%ld"
|
||||
" AND usr_admins.Scope='%s'"
|
||||
" AND usr_admins.Cod=ins_instits.InsCod"
|
||||
" AND ins_instits.CtyCod=%ld"
|
||||
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||
" ORDER BY crs_requests.RequestTime DESC",
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
Sco_GetDBStrFromScope (HieLvl_INS),
|
||||
Gbl.Hierarchy.Cty.CtyCod,
|
||||
RolesSelected);
|
||||
break;
|
||||
case Rol_SYS_ADM:
|
||||
// Requests in any course of this country
|
||||
NumReqs = (unsigned)
|
||||
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
||||
"SELECT crs_requests.ReqCod," // row[0]
|
||||
"crs_requests.CrsCod," // row[1]
|
||||
"crs_requests.UsrCod," // row[2]
|
||||
"crs_requests.Role," // row[3]
|
||||
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||
" FROM ins_instits,"
|
||||
"ctr_centers,"
|
||||
"deg_degrees,"
|
||||
"crs_courses,"
|
||||
"crs_requests"
|
||||
" WHERE ins_instits.CtyCod=%ld"
|
||||
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||
" ORDER BY crs_requests.RequestTime DESC",
|
||||
Gbl.Hierarchy.Cty.CtyCod,
|
||||
RolesSelected);
|
||||
break;
|
||||
default:
|
||||
Err_NoPermissionExit ();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case HieLvl_INS: // Show requesters for the current institution
|
||||
switch (Gbl.Usrs.Me.Role.Logged)
|
||||
{
|
||||
case Rol_TCH:
|
||||
// Requests in courses of this institution in which I am teacher
|
||||
NumReqs = (unsigned)
|
||||
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
||||
"SELECT crs_requests.ReqCod," // row[0]
|
||||
"crs_requests.CrsCod," // row[1]
|
||||
"crs_requests.UsrCod," // row[2]
|
||||
"crs_requests.Role," // row[3]
|
||||
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||
" FROM crs_users,"
|
||||
"ctr_centers,"
|
||||
"deg_degrees,"
|
||||
"crs_courses,"
|
||||
"crs_requests"
|
||||
" WHERE crs_users.UsrCod=%ld"
|
||||
" AND crs_users.Role=%u"
|
||||
" AND crs_users.CrsCod=crs_courses.CrsCod"
|
||||
" AND crs_courses.DegCod=deg_degrees.DegCod"
|
||||
" AND deg_degrees.CtrCod=ctr_centers.CtrCod"
|
||||
" AND ctr_centers.InsCod=%ld"
|
||||
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||
" ORDER BY crs_requests.RequestTime DESC",
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
(unsigned) Rol_TCH,
|
||||
Gbl.Hierarchy.Ins.InsCod,
|
||||
RolesSelected);
|
||||
break;
|
||||
case Rol_DEG_ADM:
|
||||
// Requests in degrees of this institution administrated by me
|
||||
NumReqs = (unsigned)
|
||||
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
||||
"SELECT crs_requests.ReqCod," // row[0]
|
||||
"crs_requests.CrsCod," // row[1]
|
||||
"crs_requests.UsrCod," // row[2]
|
||||
"crs_requests.Role," // row[3]
|
||||
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||
" FROM usr_admins,"
|
||||
"ctr_centers,"
|
||||
"deg_degrees,"
|
||||
"crs_courses,"
|
||||
"crs_requests"
|
||||
" WHERE usr_admins.UsrCod=%ld"
|
||||
" AND usr_admins.Scope='%s'"
|
||||
" AND usr_admins.Cod=deg_degrees.DegCod"
|
||||
" AND deg_degrees.CtrCod=ctr_centers.CtrCod"
|
||||
" AND ctr_centers.InsCod=%ld"
|
||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||
" ORDER BY crs_requests.RequestTime DESC",
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
Sco_GetDBStrFromScope (HieLvl_DEG),
|
||||
Gbl.Hierarchy.Ins.InsCod,
|
||||
RolesSelected);
|
||||
break;
|
||||
case Rol_CTR_ADM:
|
||||
// Requests in centers of this institution administrated by me
|
||||
NumReqs = (unsigned)
|
||||
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
||||
"SELECT crs_requests.ReqCod," // row[0]
|
||||
"crs_requests.CrsCod," // row[1]
|
||||
"crs_requests.UsrCod," // row[2]
|
||||
"crs_requests.Role," // row[3]
|
||||
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||
" FROM usr_admins,"
|
||||
"ctr_centers,"
|
||||
"deg_degrees,"
|
||||
"crs_courses,"
|
||||
"crs_requests"
|
||||
" WHERE usr_admins.UsrCod=%ld"
|
||||
" AND usr_admins.Scope='%s'"
|
||||
" AND usr_admins.Cod=ctr_centers.CtrCod"
|
||||
" AND ctr_centers.InsCod=%ld"
|
||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||
" ORDER BY crs_requests.RequestTime DESC",
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,Sco_GetDBStrFromScope (HieLvl_CTR),
|
||||
Gbl.Hierarchy.Ins.InsCod,
|
||||
RolesSelected);
|
||||
break;
|
||||
case Rol_INS_ADM: // If I am logged as admin of this institution, I can view all the requesters from this institution
|
||||
case Rol_SYS_ADM:
|
||||
// Requests in any course of this institution
|
||||
NumReqs = (unsigned)
|
||||
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
||||
"SELECT crs_requests.ReqCod," // row[0]
|
||||
"crs_requests.CrsCod," // row[1]
|
||||
"crs_requests.UsrCod," // row[2]
|
||||
"crs_requests.Role," // row[3]
|
||||
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||
" FROM ctr_centers,"
|
||||
"deg_degrees,"
|
||||
"crs_courses,"
|
||||
"crs_requests"
|
||||
" WHERE ctr_centers.InsCod=%ld"
|
||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||
" ORDER BY crs_requests.RequestTime DESC",
|
||||
Gbl.Hierarchy.Ins.InsCod,
|
||||
RolesSelected);
|
||||
break;
|
||||
default:
|
||||
Err_NoPermissionExit ();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case HieLvl_CTR: // Show requesters for the current center
|
||||
switch (Gbl.Usrs.Me.Role.Logged)
|
||||
{
|
||||
case Rol_TCH:
|
||||
// Requests in courses of this center in which I am teacher
|
||||
NumReqs = (unsigned)
|
||||
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
||||
"SELECT crs_requests.ReqCod," // row[0]
|
||||
"crs_requests.CrsCod," // row[1]
|
||||
"crs_requests.UsrCod," // row[2]
|
||||
"crs_requests.Role," // row[3]
|
||||
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||
" FROM crs_users,"
|
||||
"deg_degrees,"
|
||||
"crs_courses,"
|
||||
"crs_requests"
|
||||
" WHERE crs_users.UsrCod=%ld"
|
||||
" AND crs_users.Role=%u"
|
||||
" AND crs_users.CrsCod=crs_courses.CrsCod"
|
||||
" AND crs_courses.DegCod=deg_degrees.DegCod"
|
||||
" AND deg_degrees.CtrCod=%ld"
|
||||
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||
" ORDER BY crs_requests.RequestTime DESC",
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
(unsigned) Rol_TCH,
|
||||
Gbl.Hierarchy.Ctr.CtrCod,
|
||||
RolesSelected);
|
||||
break;
|
||||
case Rol_DEG_ADM:
|
||||
// Requests in degrees of this center administrated by me
|
||||
NumReqs = (unsigned)
|
||||
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
||||
"SELECT crs_requests.ReqCod," // row[0]
|
||||
"crs_requests.CrsCod," // row[1]
|
||||
"crs_requests.UsrCod," // row[2]
|
||||
"crs_requests.Role," // row[3]
|
||||
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||
" FROM usr_admins,"
|
||||
"deg_degrees,"
|
||||
"crs_courses,"
|
||||
"crs_requests"
|
||||
" WHERE usr_admins.UsrCod=%ld"
|
||||
" AND usr_admins.Scope='%s'"
|
||||
" AND usr_admins.Cod=deg_degrees.DegCod"
|
||||
" AND deg_degrees.CtrCod=%ld"
|
||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||
" ORDER BY crs_requests.RequestTime DESC",
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
Sco_GetDBStrFromScope (HieLvl_DEG),
|
||||
Gbl.Hierarchy.Ctr.CtrCod,
|
||||
RolesSelected);
|
||||
break;
|
||||
case Rol_CTR_ADM: // If I am logged as admin of this center , I can view all the requesters from this center
|
||||
case Rol_INS_ADM: // If I am logged as admin of this institution, I can view all the requesters from this center
|
||||
case Rol_SYS_ADM:
|
||||
// Request in any course of this center
|
||||
NumReqs = (unsigned)
|
||||
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
||||
"SELECT crs_requests.ReqCod," // row[0]
|
||||
"crs_requests.CrsCod," // row[1]
|
||||
"crs_requests.UsrCod," // row[2]
|
||||
"crs_requests.Role," // row[3]
|
||||
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||
" FROM deg_degrees,"
|
||||
"crs_courses,"
|
||||
"crs_requests"
|
||||
" WHERE deg_degrees.CtrCod=%ld"
|
||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||
" ORDER BY crs_requests.RequestTime DESC",
|
||||
Gbl.Hierarchy.Ctr.CtrCod,
|
||||
RolesSelected);
|
||||
break;
|
||||
default:
|
||||
Err_NoPermissionExit ();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case HieLvl_DEG: // Show requesters for the current degree
|
||||
switch (Gbl.Usrs.Me.Role.Logged)
|
||||
{
|
||||
case Rol_TCH:
|
||||
// Requests in courses of this degree in which I am teacher
|
||||
NumReqs = (unsigned)
|
||||
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
||||
"SELECT crs_requests.ReqCod," // row[0]
|
||||
"crs_requests.CrsCod," // row[1]
|
||||
"crs_requests.UsrCod," // row[2]
|
||||
"crs_requests.Role," // row[3]
|
||||
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||
" FROM crs_users,"
|
||||
"crs_courses,"
|
||||
"crs_requests"
|
||||
" WHERE crs_users.UsrCod=%ld"
|
||||
" AND crs_users.Role=%u"
|
||||
" AND crs_users.CrsCod=crs_courses.CrsCod"
|
||||
" AND crs_courses.DegCod=%ld"
|
||||
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||
" ORDER BY crs_requests.RequestTime DESC",
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
(unsigned) Rol_TCH,
|
||||
Gbl.Hierarchy.Deg.DegCod,
|
||||
RolesSelected);
|
||||
break;
|
||||
case Rol_DEG_ADM: // If I am logged as admin of this degree , I can view all the requesters from this degree
|
||||
case Rol_CTR_ADM: // If I am logged as admin of this center , I can view all the requesters from this degree
|
||||
case Rol_INS_ADM: // If I am logged as admin of this institution, I can view all the requesters from this degree
|
||||
case Rol_SYS_ADM:
|
||||
// Requests in any course of this degree
|
||||
NumReqs = (unsigned)
|
||||
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
||||
"SELECT crs_requests.ReqCod," // row[0]
|
||||
"crs_requests.CrsCod," // row[1]
|
||||
"crs_requests.UsrCod," // row[2]
|
||||
"crs_requests.Role," // row[3]
|
||||
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||
" FROM crs_courses,"
|
||||
"crs_requests"
|
||||
" WHERE crs_courses.DegCod=%ld"
|
||||
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||
" ORDER BY crs_requests.RequestTime DESC",
|
||||
Gbl.Hierarchy.Deg.DegCod,
|
||||
RolesSelected);
|
||||
break;
|
||||
default:
|
||||
Err_NoPermissionExit ();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case HieLvl_CRS: // Show requesters for the current course
|
||||
switch (Gbl.Usrs.Me.Role.Logged)
|
||||
{
|
||||
case Rol_TCH: // If I am logged as teacher of this course , I can view all the requesters from this course
|
||||
case Rol_DEG_ADM: // If I am logged as admin of this degree , I can view all the requesters from this course
|
||||
case Rol_CTR_ADM: // If I am logged as admin of this center , I can view all the requesters from this course
|
||||
case Rol_INS_ADM: // If I am logged as admin of this institution, I can view all the requesters from this course
|
||||
case Rol_SYS_ADM:
|
||||
// Requests in this course
|
||||
NumReqs = (unsigned)
|
||||
DB_QuerySELECT (&mysql_res,"can not get requests for enrolment",
|
||||
"SELECT ReqCod," // row[0]
|
||||
"CrsCod," // row[1]
|
||||
"UsrCod," // row[2]
|
||||
"Role," // row[3]
|
||||
"UNIX_TIMESTAMP(RequestTime)" // row[4]
|
||||
" FROM crs_requests"
|
||||
" WHERE CrsCod=%ld"
|
||||
" AND ((1<<Role)&%u)<>0"
|
||||
" ORDER BY RequestTime DESC",
|
||||
Gbl.Hierarchy.Crs.CrsCod,
|
||||
RolesSelected);
|
||||
break;
|
||||
default:
|
||||
Err_NoPermissionExit ();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
Err_WrongScopeExit ();
|
||||
break;
|
||||
}
|
||||
|
||||
/***** List requests *****/
|
||||
if (NumReqs)
|
||||
if ((NumReqs = Enr_DB_GetEnrolmentRequests (&mysql_res,RolesSelected)))
|
||||
{
|
||||
/* Initialize structure with user's data */
|
||||
Usr_UsrDataConstructor (&UsrDat);
|
||||
|
@ -2783,7 +2236,6 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
|
|||
|
||||
/* Table heading */
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TH_Empty (1);
|
||||
HTM_TH (1,1,"LT",Txt_Course);
|
||||
HTM_TH (1,1,"RT",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH]);
|
||||
|
@ -2791,7 +2243,6 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
|
|||
HTM_TH (1,1,"LT",Txt_Role);
|
||||
HTM_TH (1,1,"CT",Txt_Date);
|
||||
HTM_TH_Empty (2);
|
||||
|
||||
HTM_TR_End ();
|
||||
|
||||
/* List requests */
|
||||
|
@ -2946,27 +2397,18 @@ static void Enr_RemoveEnrolmentRequest (long CrsCod,long UsrCod)
|
|||
{
|
||||
long ReqCod;
|
||||
|
||||
/***** Get request code *****/
|
||||
ReqCod = Enr_DB_GetUsrEnrolmentRequestInCrs (CrsCod,UsrCod);
|
||||
|
||||
if (ReqCod > 0)
|
||||
{
|
||||
/***** Mark possible notifications as removed
|
||||
Important: do this before removing the request *****/
|
||||
/* Request request code (returns 0 or 1 rows) */
|
||||
ReqCod = DB_QuerySELECTCode ("can not get request code",
|
||||
"SELECT ReqCod"
|
||||
" FROM crs_requests"
|
||||
" WHERE CrsCod=%ld"
|
||||
" AND UsrCod=%ld",
|
||||
CrsCod,
|
||||
UsrCod);
|
||||
|
||||
/* Mark possible notifications as removed */
|
||||
Ntf_MarkNotifAsRemoved (Ntf_EVENT_ENROLMENT_REQUEST,ReqCod);
|
||||
|
||||
/***** Remove enrolment request *****/
|
||||
DB_QueryDELETE ("can not remove a request for enrolment",
|
||||
"DELETE FROM crs_requests"
|
||||
" WHERE CrsCod=%ld"
|
||||
" AND UsrCod=%ld",
|
||||
CrsCod,
|
||||
UsrCod);
|
||||
Enr_DB_RemRequest (ReqCod);
|
||||
}
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -4216,15 +3658,8 @@ static void Enr_EffectivelyRemAdm (struct UsrData *UsrDat,HieLvl_Level_t Scope,
|
|||
|
||||
if (Usr_CheckIfUsrIsAdm (UsrDat->UsrCod,Scope,Cod)) // User is administrator of current institution/center/degree
|
||||
{
|
||||
/***** Remove user from the table of admins *****/
|
||||
DB_QueryDELETE ("can not remove an administrator",
|
||||
"DELETE FROM usr_admins"
|
||||
" WHERE UsrCod=%ld"
|
||||
" AND Scope='%s'"
|
||||
" AND Cod=%ld",
|
||||
UsrDat->UsrCod,
|
||||
Sco_GetDBStrFromScope (Scope),
|
||||
Cod);
|
||||
/***** Remove user as administrator of institution, center or degree *****/
|
||||
Enr_DB_RemAdmin (UsrDat->UsrCod,Scope,Cod);
|
||||
|
||||
Ale_ShowAlert (Ale_SUCCESS,Txt_THE_USER_X_has_been_removed_as_administrator_of_Y,
|
||||
UsrDat->FullName,InsCtrDegName);
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
// #include "swad_duplicate.h"
|
||||
#include "swad_enrolment.h"
|
||||
#include "swad_enrolment_database.h"
|
||||
// #include "swad_error.h"
|
||||
#include "swad_error.h"
|
||||
// #include "swad_exam_print.h"
|
||||
// #include "swad_form.h"
|
||||
#include "swad_global.h"
|
||||
|
@ -135,6 +135,540 @@ void Enr_DB_AcceptUsrInCrs (long UsrCod)
|
|||
UsrCod);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/********* Set a user's acceptation to true in the current course ************/
|
||||
/*****************************************************************************/
|
||||
|
||||
unsigned Enr_DB_GetEnrolmentRequests (MYSQL_RES **mysql_res,unsigned RolesSelected)
|
||||
{
|
||||
switch (Gbl.Scope.Current)
|
||||
{
|
||||
case HieLvl_SYS: // Show requesters for the whole platform
|
||||
switch (Gbl.Usrs.Me.Role.Logged)
|
||||
{
|
||||
case Rol_TCH:
|
||||
// Requests in all courses in which I am teacher
|
||||
return (unsigned)
|
||||
DB_QuerySELECT (mysql_res,"can not get requests for enrolment",
|
||||
"SELECT crs_requests.ReqCod," // row[0]
|
||||
"crs_requests.CrsCod," // row[1]
|
||||
"crs_requests.UsrCod," // row[2]
|
||||
"crs_requests.Role," // row[3]
|
||||
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||
" FROM crs_users,"
|
||||
"crs_requests"
|
||||
" WHERE crs_users.UsrCod=%ld"
|
||||
" AND crs_users.Role=%u"
|
||||
" AND crs_users.CrsCod=crs_requests.CrsCod"
|
||||
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||
" ORDER BY crs_requests.RequestTime DESC",
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
(unsigned) Rol_TCH,
|
||||
RolesSelected);
|
||||
case Rol_DEG_ADM:
|
||||
// Requests in all degrees administrated by me
|
||||
return (unsigned)
|
||||
DB_QuerySELECT (mysql_res,"can not get requests for enrolment",
|
||||
"SELECT crs_requests.ReqCod," // row[0]
|
||||
"crs_requests.CrsCod," // row[1]
|
||||
"crs_requests.UsrCod," // row[2]
|
||||
"crs_requests.Role," // row[3]
|
||||
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||
" FROM usr_admins,"
|
||||
"crs_courses,"
|
||||
"crs_requests"
|
||||
" WHERE usr_admins.UsrCod=%ld"
|
||||
" AND usr_admins.Scope='%s'"
|
||||
" AND usr_admins.Cod=crs_courses.DegCod"
|
||||
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||
" ORDER BY crs_requests.RequestTime DESC",
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,Sco_GetDBStrFromScope (HieLvl_DEG),
|
||||
RolesSelected);
|
||||
case Rol_CTR_ADM:
|
||||
// Requests in all centers administrated by me
|
||||
return (unsigned)
|
||||
DB_QuerySELECT (mysql_res,"can not get requests for enrolment",
|
||||
"SELECT crs_requests.ReqCod," // row[0]
|
||||
"crs_requests.CrsCod," // row[1]
|
||||
"crs_requests.UsrCod," // row[2]
|
||||
"crs_requests.Role," // row[3]
|
||||
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||
" FROM usr_admins,"
|
||||
"deg_degrees,"
|
||||
"crs_courses,"
|
||||
"crs_requests"
|
||||
" WHERE usr_admins.UsrCod=%ld"
|
||||
" AND usr_admins.Scope='%s'"
|
||||
" AND usr_admins.Cod=deg_degrees.CtrCod"
|
||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||
" ORDER BY crs_requests.RequestTime DESC",
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,Sco_GetDBStrFromScope (HieLvl_CTR),
|
||||
RolesSelected);
|
||||
case Rol_INS_ADM:
|
||||
// Requests in all institutions administrated by me
|
||||
return (unsigned)
|
||||
DB_QuerySELECT (mysql_res,"can not get requests for enrolment",
|
||||
"SELECT crs_requests.ReqCod," // row[0]
|
||||
"crs_requests.CrsCod," // row[1]
|
||||
"crs_requests.UsrCod," // row[2]
|
||||
"crs_requests.Role," // row[3]
|
||||
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||
" FROM usr_admins,"
|
||||
"ctr_centers,"
|
||||
"deg_degrees,"
|
||||
"crs_courses,"
|
||||
"crs_requests"
|
||||
" WHERE usr_admins.UsrCod=%ld"
|
||||
" AND usr_admins.Scope='%s'"
|
||||
" AND usr_admins.Cod=ctr_centers.InsCod"
|
||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||
" ORDER BY crs_requests.RequestTime DESC",
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,Sco_GetDBStrFromScope (HieLvl_INS),
|
||||
RolesSelected);
|
||||
case Rol_SYS_ADM:
|
||||
// All requests
|
||||
return (unsigned)
|
||||
DB_QuerySELECT (mysql_res,"can not get requests for enrolment",
|
||||
"SELECT ReqCod," // row[0]
|
||||
"CrsCod," // row[1]
|
||||
"UsrCod," // row[2]
|
||||
"Role," // row[3]
|
||||
"UNIX_TIMESTAMP(RequestTime)" // row[4]
|
||||
" FROM crs_requests"
|
||||
" WHERE ((1<<Role)&%u)<>0"
|
||||
" ORDER BY RequestTime DESC",
|
||||
RolesSelected);
|
||||
default:
|
||||
Err_NoPermissionExit ();
|
||||
return 0; // Not reached
|
||||
}
|
||||
break;
|
||||
case HieLvl_CTY: // Show requesters for the current country
|
||||
switch (Gbl.Usrs.Me.Role.Logged)
|
||||
{
|
||||
case Rol_TCH:
|
||||
// Requests in courses of this country in which I am teacher
|
||||
return (unsigned)
|
||||
DB_QuerySELECT (mysql_res,"can not get requests for enrolment",
|
||||
"SELECT crs_requests.ReqCod," // row[0]
|
||||
"crs_requests.CrsCod," // row[1]
|
||||
"crs_requests.UsrCod," // row[2]
|
||||
"crs_requests.Role," // row[3]
|
||||
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // roe[4]
|
||||
" FROM crs_users,"
|
||||
"ins_instits,"
|
||||
"ctr_centers,"
|
||||
"deg_degrees,"
|
||||
"crs_courses,"
|
||||
"crs_requests"
|
||||
" WHERE crs_users.UsrCod=%ld"
|
||||
" AND crs_users.Role=%u"
|
||||
" AND crs_users.CrsCod=crs_courses.CrsCod"
|
||||
" AND crs_courses.DegCod=deg_degrees.DegCod"
|
||||
" AND deg_degrees.CtrCod=ctr_centers.CtrCod"
|
||||
" AND ctr_centers.InsCod=ins_instits.InsCod"
|
||||
" AND ins_instits.CtyCod=%ld"
|
||||
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||
" ORDER BY crs_requests.RequestTime DESC",
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
(unsigned) Rol_TCH,
|
||||
Gbl.Hierarchy.Cty.CtyCod,
|
||||
RolesSelected);
|
||||
case Rol_DEG_ADM:
|
||||
// Requests in degrees of this country administrated by me
|
||||
return (unsigned)
|
||||
DB_QuerySELECT (mysql_res,"can not get requests for enrolment",
|
||||
"SELECT crs_requests.ReqCod," // row[0]
|
||||
"crs_requests.CrsCod," // row[1]
|
||||
"crs_requests.UsrCod," // row[2]
|
||||
"crs_requests.Role," // row[3]
|
||||
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||
" FROM usr_admins,"
|
||||
"ins_instits,"
|
||||
"ctr_centers,"
|
||||
"deg_degrees,"
|
||||
"crs_courses,"
|
||||
"crs_requests"
|
||||
" WHERE usr_admins.UsrCod=%ld"
|
||||
" AND usr_admins.Scope='%s'"
|
||||
" AND usr_admins.Cod=deg_degrees.DegCod"
|
||||
" AND deg_degrees.CtrCod=ctr_centers.CtrCod"
|
||||
" AND ctr_centers.InsCod=ins_instits.InsCod"
|
||||
" AND ins_instits.CtyCod=%ld"
|
||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||
" ORDER BY crs_requests.RequestTime DESC",
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
Sco_GetDBStrFromScope (HieLvl_DEG),
|
||||
Gbl.Hierarchy.Cty.CtyCod,
|
||||
RolesSelected);
|
||||
case Rol_CTR_ADM:
|
||||
// Requests in centers of this country administrated by me
|
||||
return (unsigned)
|
||||
DB_QuerySELECT (mysql_res,"can not get requests for enrolment",
|
||||
"SELECT crs_requests.ReqCod," // row[0]
|
||||
"crs_requests.CrsCod," // row[1]
|
||||
"crs_requests.UsrCod," // row[2]
|
||||
"crs_requests.Role," // row[3]
|
||||
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||
" FROM usr_admins,"
|
||||
"ins_instits,"
|
||||
"ctr_centers,"
|
||||
"deg_degrees,"
|
||||
"crs_courses,"
|
||||
"crs_requests"
|
||||
" WHERE usr_admins.UsrCod=%ld"
|
||||
" AND usr_admins.Scope='%s'"
|
||||
" AND usr_admins.Cod=ctr_centers.CtrCod"
|
||||
" AND ctr_centers.InsCod=ins_instits.InsCod"
|
||||
" AND ins_instits.CtyCod=%ld"
|
||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||
" ORDER BY crs_requests.RequestTime DESC",
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
Sco_GetDBStrFromScope (HieLvl_CTR),
|
||||
Gbl.Hierarchy.Cty.CtyCod,
|
||||
RolesSelected);
|
||||
case Rol_INS_ADM:
|
||||
// Requests in institutions of this country administrated by me
|
||||
return (unsigned)
|
||||
DB_QuerySELECT (mysql_res,"can not get requests for enrolment",
|
||||
"SELECT crs_requests.ReqCod," // row[0]
|
||||
"crs_requests.CrsCod," // row[1]
|
||||
"crs_requests.UsrCod," // row[2]
|
||||
"crs_requests.Role," // row[3]
|
||||
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||
" FROM usr_admins,"
|
||||
"ins_instits,"
|
||||
"ctr_centers,"
|
||||
"deg_degrees,"
|
||||
"crs_courses,"
|
||||
"crs_requests"
|
||||
" WHERE usr_admins.UsrCod=%ld"
|
||||
" AND usr_admins.Scope='%s'"
|
||||
" AND usr_admins.Cod=ins_instits.InsCod"
|
||||
" AND ins_instits.CtyCod=%ld"
|
||||
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||
" ORDER BY crs_requests.RequestTime DESC",
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
Sco_GetDBStrFromScope (HieLvl_INS),
|
||||
Gbl.Hierarchy.Cty.CtyCod,
|
||||
RolesSelected);
|
||||
case Rol_SYS_ADM:
|
||||
// Requests in any course of this country
|
||||
return (unsigned)
|
||||
DB_QuerySELECT (mysql_res,"can not get requests for enrolment",
|
||||
"SELECT crs_requests.ReqCod," // row[0]
|
||||
"crs_requests.CrsCod," // row[1]
|
||||
"crs_requests.UsrCod," // row[2]
|
||||
"crs_requests.Role," // row[3]
|
||||
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||
" FROM ins_instits,"
|
||||
"ctr_centers,"
|
||||
"deg_degrees,"
|
||||
"crs_courses,"
|
||||
"crs_requests"
|
||||
" WHERE ins_instits.CtyCod=%ld"
|
||||
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||
" ORDER BY crs_requests.RequestTime DESC",
|
||||
Gbl.Hierarchy.Cty.CtyCod,
|
||||
RolesSelected);
|
||||
default:
|
||||
Err_NoPermissionExit ();
|
||||
return 0; // Not reached
|
||||
}
|
||||
return 0; // Not reached
|
||||
case HieLvl_INS: // Show requesters for the current institution
|
||||
switch (Gbl.Usrs.Me.Role.Logged)
|
||||
{
|
||||
case Rol_TCH:
|
||||
// Requests in courses of this institution in which I am teacher
|
||||
return (unsigned)
|
||||
DB_QuerySELECT (mysql_res,"can not get requests for enrolment",
|
||||
"SELECT crs_requests.ReqCod," // row[0]
|
||||
"crs_requests.CrsCod," // row[1]
|
||||
"crs_requests.UsrCod," // row[2]
|
||||
"crs_requests.Role," // row[3]
|
||||
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||
" FROM crs_users,"
|
||||
"ctr_centers,"
|
||||
"deg_degrees,"
|
||||
"crs_courses,"
|
||||
"crs_requests"
|
||||
" WHERE crs_users.UsrCod=%ld"
|
||||
" AND crs_users.Role=%u"
|
||||
" AND crs_users.CrsCod=crs_courses.CrsCod"
|
||||
" AND crs_courses.DegCod=deg_degrees.DegCod"
|
||||
" AND deg_degrees.CtrCod=ctr_centers.CtrCod"
|
||||
" AND ctr_centers.InsCod=%ld"
|
||||
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||
" ORDER BY crs_requests.RequestTime DESC",
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
(unsigned) Rol_TCH,
|
||||
Gbl.Hierarchy.Ins.InsCod,
|
||||
RolesSelected);
|
||||
case Rol_DEG_ADM:
|
||||
// Requests in degrees of this institution administrated by me
|
||||
return (unsigned)
|
||||
DB_QuerySELECT (mysql_res,"can not get requests for enrolment",
|
||||
"SELECT crs_requests.ReqCod," // row[0]
|
||||
"crs_requests.CrsCod," // row[1]
|
||||
"crs_requests.UsrCod," // row[2]
|
||||
"crs_requests.Role," // row[3]
|
||||
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||
" FROM usr_admins,"
|
||||
"ctr_centers,"
|
||||
"deg_degrees,"
|
||||
"crs_courses,"
|
||||
"crs_requests"
|
||||
" WHERE usr_admins.UsrCod=%ld"
|
||||
" AND usr_admins.Scope='%s'"
|
||||
" AND usr_admins.Cod=deg_degrees.DegCod"
|
||||
" AND deg_degrees.CtrCod=ctr_centers.CtrCod"
|
||||
" AND ctr_centers.InsCod=%ld"
|
||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||
" ORDER BY crs_requests.RequestTime DESC",
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
Sco_GetDBStrFromScope (HieLvl_DEG),
|
||||
Gbl.Hierarchy.Ins.InsCod,
|
||||
RolesSelected);
|
||||
case Rol_CTR_ADM:
|
||||
// Requests in centers of this institution administrated by me
|
||||
return (unsigned)
|
||||
DB_QuerySELECT (mysql_res,"can not get requests for enrolment",
|
||||
"SELECT crs_requests.ReqCod," // row[0]
|
||||
"crs_requests.CrsCod," // row[1]
|
||||
"crs_requests.UsrCod," // row[2]
|
||||
"crs_requests.Role," // row[3]
|
||||
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||
" FROM usr_admins,"
|
||||
"ctr_centers,"
|
||||
"deg_degrees,"
|
||||
"crs_courses,"
|
||||
"crs_requests"
|
||||
" WHERE usr_admins.UsrCod=%ld"
|
||||
" AND usr_admins.Scope='%s'"
|
||||
" AND usr_admins.Cod=ctr_centers.CtrCod"
|
||||
" AND ctr_centers.InsCod=%ld"
|
||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||
" ORDER BY crs_requests.RequestTime DESC",
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,Sco_GetDBStrFromScope (HieLvl_CTR),
|
||||
Gbl.Hierarchy.Ins.InsCod,
|
||||
RolesSelected);
|
||||
case Rol_INS_ADM: // If I am logged as admin of this institution, I can view all the requesters from this institution
|
||||
case Rol_SYS_ADM:
|
||||
// Requests in any course of this institution
|
||||
return (unsigned)
|
||||
DB_QuerySELECT (mysql_res,"can not get requests for enrolment",
|
||||
"SELECT crs_requests.ReqCod," // row[0]
|
||||
"crs_requests.CrsCod," // row[1]
|
||||
"crs_requests.UsrCod," // row[2]
|
||||
"crs_requests.Role," // row[3]
|
||||
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||
" FROM ctr_centers,"
|
||||
"deg_degrees,"
|
||||
"crs_courses,"
|
||||
"crs_requests"
|
||||
" WHERE ctr_centers.InsCod=%ld"
|
||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||
" ORDER BY crs_requests.RequestTime DESC",
|
||||
Gbl.Hierarchy.Ins.InsCod,
|
||||
RolesSelected);
|
||||
default:
|
||||
Err_NoPermissionExit ();
|
||||
return 0; // Not reached
|
||||
}
|
||||
return 0; // Not reached
|
||||
case HieLvl_CTR: // Show requesters for the current center
|
||||
switch (Gbl.Usrs.Me.Role.Logged)
|
||||
{
|
||||
case Rol_TCH:
|
||||
// Requests in courses of this center in which I am teacher
|
||||
return (unsigned)
|
||||
DB_QuerySELECT (mysql_res,"can not get requests for enrolment",
|
||||
"SELECT crs_requests.ReqCod," // row[0]
|
||||
"crs_requests.CrsCod," // row[1]
|
||||
"crs_requests.UsrCod," // row[2]
|
||||
"crs_requests.Role," // row[3]
|
||||
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||
" FROM crs_users,"
|
||||
"deg_degrees,"
|
||||
"crs_courses,"
|
||||
"crs_requests"
|
||||
" WHERE crs_users.UsrCod=%ld"
|
||||
" AND crs_users.Role=%u"
|
||||
" AND crs_users.CrsCod=crs_courses.CrsCod"
|
||||
" AND crs_courses.DegCod=deg_degrees.DegCod"
|
||||
" AND deg_degrees.CtrCod=%ld"
|
||||
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||
" ORDER BY crs_requests.RequestTime DESC",
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
(unsigned) Rol_TCH,
|
||||
Gbl.Hierarchy.Ctr.CtrCod,
|
||||
RolesSelected);
|
||||
case Rol_DEG_ADM:
|
||||
// Requests in degrees of this center administrated by me
|
||||
return (unsigned)
|
||||
DB_QuerySELECT (mysql_res,"can not get requests for enrolment",
|
||||
"SELECT crs_requests.ReqCod," // row[0]
|
||||
"crs_requests.CrsCod," // row[1]
|
||||
"crs_requests.UsrCod," // row[2]
|
||||
"crs_requests.Role," // row[3]
|
||||
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||
" FROM usr_admins,"
|
||||
"deg_degrees,"
|
||||
"crs_courses,"
|
||||
"crs_requests"
|
||||
" WHERE usr_admins.UsrCod=%ld"
|
||||
" AND usr_admins.Scope='%s'"
|
||||
" AND usr_admins.Cod=deg_degrees.DegCod"
|
||||
" AND deg_degrees.CtrCod=%ld"
|
||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||
" ORDER BY crs_requests.RequestTime DESC",
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
Sco_GetDBStrFromScope (HieLvl_DEG),
|
||||
Gbl.Hierarchy.Ctr.CtrCod,
|
||||
RolesSelected);
|
||||
case Rol_CTR_ADM: // If I am logged as admin of this center , I can view all the requesters from this center
|
||||
case Rol_INS_ADM: // If I am logged as admin of this institution, I can view all the requesters from this center
|
||||
case Rol_SYS_ADM:
|
||||
// Request in any course of this center
|
||||
return (unsigned)
|
||||
DB_QuerySELECT (mysql_res,"can not get requests for enrolment",
|
||||
"SELECT crs_requests.ReqCod," // row[0]
|
||||
"crs_requests.CrsCod," // row[1]
|
||||
"crs_requests.UsrCod," // row[2]
|
||||
"crs_requests.Role," // row[3]
|
||||
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||
" FROM deg_degrees,"
|
||||
"crs_courses,"
|
||||
"crs_requests"
|
||||
" WHERE deg_degrees.CtrCod=%ld"
|
||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||
" ORDER BY crs_requests.RequestTime DESC",
|
||||
Gbl.Hierarchy.Ctr.CtrCod,
|
||||
RolesSelected);
|
||||
default:
|
||||
Err_NoPermissionExit ();
|
||||
return 0; // Not reached
|
||||
}
|
||||
return 0; // Not reached
|
||||
case HieLvl_DEG: // Show requesters for the current degree
|
||||
switch (Gbl.Usrs.Me.Role.Logged)
|
||||
{
|
||||
case Rol_TCH:
|
||||
// Requests in courses of this degree in which I am teacher
|
||||
return (unsigned)
|
||||
DB_QuerySELECT (mysql_res,"can not get requests for enrolment",
|
||||
"SELECT crs_requests.ReqCod," // row[0]
|
||||
"crs_requests.CrsCod," // row[1]
|
||||
"crs_requests.UsrCod," // row[2]
|
||||
"crs_requests.Role," // row[3]
|
||||
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||
" FROM crs_users,"
|
||||
"crs_courses,"
|
||||
"crs_requests"
|
||||
" WHERE crs_users.UsrCod=%ld"
|
||||
" AND crs_users.Role=%u"
|
||||
" AND crs_users.CrsCod=crs_courses.CrsCod"
|
||||
" AND crs_courses.DegCod=%ld"
|
||||
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||
" ORDER BY crs_requests.RequestTime DESC",
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
(unsigned) Rol_TCH,
|
||||
Gbl.Hierarchy.Deg.DegCod,
|
||||
RolesSelected);
|
||||
case Rol_DEG_ADM: // If I am logged as admin of this degree , I can view all the requesters from this degree
|
||||
case Rol_CTR_ADM: // If I am logged as admin of this center , I can view all the requesters from this degree
|
||||
case Rol_INS_ADM: // If I am logged as admin of this institution, I can view all the requesters from this degree
|
||||
case Rol_SYS_ADM:
|
||||
// Requests in any course of this degree
|
||||
return (unsigned)
|
||||
DB_QuerySELECT (mysql_res,"can not get requests for enrolment",
|
||||
"SELECT crs_requests.ReqCod," // row[0]
|
||||
"crs_requests.CrsCod," // row[1]
|
||||
"crs_requests.UsrCod," // row[2]
|
||||
"crs_requests.Role," // row[3]
|
||||
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||
" FROM crs_courses,"
|
||||
"crs_requests"
|
||||
" WHERE crs_courses.DegCod=%ld"
|
||||
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||
" ORDER BY crs_requests.RequestTime DESC",
|
||||
Gbl.Hierarchy.Deg.DegCod,
|
||||
RolesSelected);
|
||||
default:
|
||||
Err_NoPermissionExit ();
|
||||
return 0; // Not reached
|
||||
}
|
||||
return 0; // Not reached
|
||||
case HieLvl_CRS: // Show requesters for the current course
|
||||
switch (Gbl.Usrs.Me.Role.Logged)
|
||||
{
|
||||
case Rol_TCH: // If I am logged as teacher of this course , I can view all the requesters from this course
|
||||
case Rol_DEG_ADM: // If I am logged as admin of this degree , I can view all the requesters from this course
|
||||
case Rol_CTR_ADM: // If I am logged as admin of this center , I can view all the requesters from this course
|
||||
case Rol_INS_ADM: // If I am logged as admin of this institution, I can view all the requesters from this course
|
||||
case Rol_SYS_ADM:
|
||||
// Requests in this course
|
||||
return (unsigned)
|
||||
DB_QuerySELECT (mysql_res,"can not get requests for enrolment",
|
||||
"SELECT ReqCod," // row[0]
|
||||
"CrsCod," // row[1]
|
||||
"UsrCod," // row[2]
|
||||
"Role," // row[3]
|
||||
"UNIX_TIMESTAMP(RequestTime)" // row[4]
|
||||
" FROM crs_requests"
|
||||
" WHERE CrsCod=%ld"
|
||||
" AND ((1<<Role)&%u)<>0"
|
||||
" ORDER BY RequestTime DESC",
|
||||
Gbl.Hierarchy.Crs.CrsCod,
|
||||
RolesSelected);
|
||||
default:
|
||||
Err_NoPermissionExit ();
|
||||
return 0; // Not reached
|
||||
}
|
||||
return 0; // Not reached
|
||||
default:
|
||||
Err_WrongScopeExit ();
|
||||
return 0; // Not reached
|
||||
}
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/****** Get enrolment request (user and requested role) given its code *******/
|
||||
/*****************************************************************************/
|
||||
|
@ -151,10 +685,10 @@ unsigned Enr_DB_GetEnrolmentRequestByCod (MYSQL_RES **mysql_res,long ReqCod)
|
|||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/*** Try to get and old request of me in the current course from database ****/
|
||||
/********** Try to get an enrolment request from a user in a course **********/
|
||||
/*****************************************************************************/
|
||||
|
||||
long Enr_DB_GetMyLastEnrolmentRequestInCurrentCrs (void)
|
||||
long Enr_DB_GetUsrEnrolmentRequestInCrs (long CrsCod,long UsrCod)
|
||||
{
|
||||
return
|
||||
DB_QuerySELECTCode ("can not get enrolment request",
|
||||
|
@ -162,8 +696,8 @@ long Enr_DB_GetMyLastEnrolmentRequestInCurrentCrs (void)
|
|||
" FROM crs_requests"
|
||||
" WHERE CrsCod=%ld"
|
||||
" AND UsrCod=%ld",
|
||||
Gbl.Hierarchy.Crs.CrsCod,
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod);
|
||||
CrsCod,
|
||||
UsrCod);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -202,6 +736,18 @@ void Enr_DB_UpdateMyEnrolmentRequestInCurrentCrs (long ReqCod,Rol_Role_t NewRole
|
|||
Gbl.Usrs.Me.UsrDat.UsrCod);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/************************** Remove enrolment request *************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Enr_DB_RemRequest (long ReqCod)
|
||||
{
|
||||
DB_QueryDELETE ("can not remove a request for enrolment",
|
||||
"DELETE FROM crs_requests"
|
||||
" WHERE ReqCod=%ld",
|
||||
ReqCod);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/*********** Remove all users' requests for inscription in a course **********/
|
||||
/*****************************************************************************/
|
||||
|
@ -287,3 +833,19 @@ void Enr_DB_RemAdmins (HieLvl_Level_t Scope,long Cod)
|
|||
Sco_GetDBStrFromScope (Scope),
|
||||
Cod);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/***** Remove user as administrator of an institution, center or degree ******/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Enr_DB_RemAdmin (long UsrCod,HieLvl_Level_t Scope,long Cod)
|
||||
{
|
||||
DB_QueryDELETE ("can not remove an administrator",
|
||||
"DELETE FROM usr_admins"
|
||||
" WHERE UsrCod=%ld"
|
||||
" AND Scope='%s'"
|
||||
" AND Cod=%ld",
|
||||
UsrCod,
|
||||
Sco_GetDBStrFromScope (Scope),
|
||||
Cod);
|
||||
}
|
||||
|
|
|
@ -52,17 +52,21 @@ void Enr_DB_UpdateInstitutionCenterDepartment (void);
|
|||
|
||||
void Enr_DB_AcceptUsrInCrs (long UsrCod);
|
||||
|
||||
unsigned Enr_DB_GetEnrolmentRequests (MYSQL_RES **mysql_res,unsigned RolesSelected);
|
||||
unsigned Enr_DB_GetEnrolmentRequestByCod (MYSQL_RES **mysql_res,long ReqCod);
|
||||
long Enr_DB_GetMyLastEnrolmentRequestInCurrentCrs (void);
|
||||
long Enr_DB_GetUsrEnrolmentRequestInCrs (long CrsCod,long UsrCod);
|
||||
long Enr_DB_CreateMyEnrolmentRequestInCurrentCrs (Rol_Role_t NewRole);
|
||||
void Enr_DB_UpdateMyEnrolmentRequestInCurrentCrs (long ReqCod,Rol_Role_t NewRole);
|
||||
|
||||
void Enr_DB_RemRequest (long ReqCod);
|
||||
void Enr_DB_RemCrsRequests (long CrsCod);
|
||||
void Enr_DB_RemUsrRequests (long UsrCod);
|
||||
|
||||
void Enr_DB_RemAllUsrsFromCrsSettings (long CrsCod);
|
||||
void Enr_DB_RemAllUsrsFromCrs (long CrsCod);
|
||||
void Enr_DB_RemUsrFromAllCrss (long UsrCod);
|
||||
|
||||
void Enr_DB_RemUsrAsAdmin (long UsrCod);
|
||||
void Enr_DB_RemAdmins (HieLvl_Level_t Scope,long Cod);
|
||||
void Enr_DB_RemAdmin (long UsrCod,HieLvl_Level_t Scope,long Cod);
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue
Block a user