From 1cebec4de5569b62bb19fd3ad26f50219a84fc65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20Ca=C3=B1as=20Vargas?= Date: Tue, 15 Dec 2015 02:55:45 +0100 Subject: [PATCH] Version 15.67 --- swad_changelog.h | 3 +- swad_enrollment.c | 135 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 137 insertions(+), 1 deletion(-) diff --git a/swad_changelog.h b/swad_changelog.h index 17aec594f..e3646e897 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -120,12 +120,13 @@ /****************************** Public constants *****************************/ /*****************************************************************************/ -#define Log_PLATFORM_VERSION "SWAD 15.66.3 (2015/12/15)" +#define Log_PLATFORM_VERSION "SWAD 15.67 (2015/12/15)" #define CSS_FILE "swad15.65.1.css" // Number of lines (includes comments but not blank lines) has been got with the following command: // nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*.h sql/swad*.sql | tail -1 /* + Version 15.67: Dec 15, 2015 Fixed bugs in queries of enrollment requests. (187140 lines) Version 15.66.3: Dec 15, 2015 Changes in some small icons. Fixed bug in record card. (187004 lines) 2 changes necessary in database: diff --git a/swad_enrollment.c b/swad_enrollment.c index aaae9f4e6..cb0a52ac6 100644 --- a/swad_enrollment.c +++ b/swad_enrollment.c @@ -2260,6 +2260,7 @@ void Enr_ShowEnrollmentRequests (void) switch (Gbl.Usrs.Me.LoggedRole) { case Rol_TEACHER: + // Requests in all courses in which I am teacher sprintf (Query,"SELECT crs_usr_requests.ReqCod," "crs_usr_requests.CrsCod," "crs_usr_requests.UsrCod," @@ -2267,13 +2268,16 @@ void Enr_ShowEnrollmentRequests (void) "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" " FROM crs_usr,crs_usr_requests" " WHERE crs_usr.UsrCod='%ld'" + " AND crs_usr.Role='%u'" " AND crs_usr.CrsCod=crs_usr_requests.CrsCod" " AND ((1<0" " ORDER BY crs_usr_requests.RequestTime DESC", Gbl.Usrs.Me.UsrDat.UsrCod, + (unsigned) Rol_TEACHER, RolesSelected); break; case Rol_DEG_ADM: + // Requests in all degrees administrated by me sprintf (Query,"SELECT crs_usr_requests.ReqCod," "crs_usr_requests.CrsCod," "crs_usr_requests.UsrCod," @@ -2289,6 +2293,7 @@ void Enr_ShowEnrollmentRequests (void) RolesSelected); break; case Rol_CTR_ADM: + // Requests in all centres administrated by me sprintf (Query,"SELECT crs_usr_requests.ReqCod," "crs_usr_requests.CrsCod," "crs_usr_requests.UsrCod," @@ -2305,6 +2310,7 @@ void Enr_ShowEnrollmentRequests (void) RolesSelected); break; case Rol_INS_ADM: + // Requests in all institutions administrated by me sprintf (Query,"SELECT crs_usr_requests.ReqCod," "crs_usr_requests.CrsCod," "crs_usr_requests.UsrCod," @@ -2322,6 +2328,7 @@ void Enr_ShowEnrollmentRequests (void) RolesSelected); break; case Rol_SYS_ADM: + // All requests sprintf (Query,"SELECT ReqCod," "CrsCod," "UsrCod," @@ -2337,10 +2344,123 @@ void Enr_ShowEnrollmentRequests (void) break; } break; + case Sco_SCOPE_CTY: // Show requesters for the current country + switch (Gbl.Usrs.Me.LoggedRole) + { + case Rol_TEACHER: + // Requests in courses of this country in which I am teacher + sprintf (Query,"SELECT crs_usr_requests.ReqCod," + "crs_usr_requests.CrsCod," + "crs_usr_requests.UsrCod," + "crs_usr_requests.Role," + "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" + " FROM crs_usr,institutions,centres,degrees,courses,crs_usr_requests" + " WHERE crs_usr.UsrCod='%ld'" + " AND crs_usr.Role='%u'" + " AND crs_usr.CrsCod=courses.CrsCod" + " AND courses.DegCod=degrees.DegCod" + " AND degrees.CtrCod=centres.CtrCod" + " AND centres.InsCod=institutions.InsCod" + " AND institutions.CtyCod='%ld'" + " AND courses.CrsCod=crs_usr_requests.CrsCod" + " AND ((1<0" + " ORDER BY crs_usr_requests.RequestTime DESC", + Gbl.Usrs.Me.UsrDat.UsrCod, + (unsigned) Rol_TEACHER, + Gbl.CurrentCty.Cty.CtyCod, + RolesSelected); + break; + case Rol_DEG_ADM: + // Requests in degrees of this country administrated by me + sprintf (Query,"SELECT crs_usr_requests.ReqCod," + "crs_usr_requests.CrsCod," + "crs_usr_requests.UsrCod," + "crs_usr_requests.Role," + "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" + " FROM admin,institutions,centres,degrees,courses,crs_usr_requests" + " WHERE admin.UsrCod='%ld' AND admin.Scope='Deg'" + " AND admin.Cod=degrees.DegCod" + " AND degrees.CtrCod=centres.CtrCod" + " AND centres.InsCod=institutions.InsCod" + " AND institutions.CtyCod='%ld'" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_usr_requests.CrsCod" + " AND ((1<0" + " ORDER BY crs_usr_requests.RequestTime DESC", + Gbl.Usrs.Me.UsrDat.UsrCod, + Gbl.CurrentCty.Cty.CtyCod, + RolesSelected); + break; + case Rol_CTR_ADM: + // Requests in centres of this country administrated by me + sprintf (Query,"SELECT crs_usr_requests.ReqCod," + "crs_usr_requests.CrsCod," + "crs_usr_requests.UsrCod," + "crs_usr_requests.Role," + "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" + " FROM admin,institutions,centres,degrees,courses,crs_usr_requests" + " WHERE admin.UsrCod='%ld' AND admin.Scope='Ctr'" + " AND admin.Cod=centres.CtrCod" + " AND centres.InsCod=institutions.InsCod" + " AND institutions.CtyCod='%ld'" + " AND centres.CtrCod=degrees.CtrCod" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_usr_requests.CrsCod" + " AND ((1<0" + " ORDER BY crs_usr_requests.RequestTime DESC", + Gbl.Usrs.Me.UsrDat.UsrCod, + Gbl.CurrentCty.Cty.CtyCod, + RolesSelected); + break; + case Rol_INS_ADM: + // Requests in institutions of this country administrated by me + sprintf (Query,"SELECT crs_usr_requests.ReqCod," + "crs_usr_requests.CrsCod," + "crs_usr_requests.UsrCod," + "crs_usr_requests.Role," + "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" + " FROM admin,institutions,centres,degrees,courses,crs_usr_requests" + " WHERE admin.UsrCod='%ld' AND admin.Scope='Ins'" + " AND admin.Cod=institutions.InsCod" + " AND institutions.CtyCod='%ld'" + " AND institutions.InsCod=centres.InsCod" + " AND centres.CtrCod=degrees.CtrCod" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_usr_requests.CrsCod" + " AND ((1<0" + " ORDER BY crs_usr_requests.RequestTime DESC", + Gbl.Usrs.Me.UsrDat.UsrCod, + Gbl.CurrentCty.Cty.CtyCod, + RolesSelected); + break; + case Rol_SYS_ADM: + // Requests in any course of this country + sprintf (Query,"SELECT crs_usr_requests.ReqCod," + "crs_usr_requests.CrsCod," + "crs_usr_requests.UsrCod," + "crs_usr_requests.Role," + "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" + " FROM institutions,centres,degrees,courses,crs_usr_requests" + " WHERE institutions.CtyCod='%ld'" + " AND institutions.InsCod=centres.InsCod" + " AND centres.CtrCod=degrees.CtrCod" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_usr_requests.CrsCod" + " AND ((1<0" + " ORDER BY crs_usr_requests.RequestTime DESC", + Gbl.CurrentCty.Cty.CtyCod, + RolesSelected); + break; + default: + Lay_ShowErrorAndExit ("You don't have permission to list requesters."); + break; + } + break; case Sco_SCOPE_INS: // Show requesters for the current institution switch (Gbl.Usrs.Me.LoggedRole) { case Rol_TEACHER: + // Requests in courses of this institution in which I am teacher sprintf (Query,"SELECT crs_usr_requests.ReqCod," "crs_usr_requests.CrsCod," "crs_usr_requests.UsrCod," @@ -2348,6 +2468,7 @@ void Enr_ShowEnrollmentRequests (void) "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" " FROM crs_usr,centres,degrees,courses,crs_usr_requests" " WHERE crs_usr.UsrCod='%ld'" + " AND crs_usr.Role='%u'" " AND crs_usr.CrsCod=courses.CrsCod" " AND courses.DegCod=degrees.DegCod" " AND degrees.CtrCod=centres.CtrCod" @@ -2356,10 +2477,12 @@ void Enr_ShowEnrollmentRequests (void) " AND ((1<0" " ORDER BY crs_usr_requests.RequestTime DESC", Gbl.Usrs.Me.UsrDat.UsrCod, + (unsigned) Rol_TEACHER, Gbl.CurrentIns.Ins.InsCod, RolesSelected); break; case Rol_DEG_ADM: + // Requests in degrees of this institution administrated by me sprintf (Query,"SELECT crs_usr_requests.ReqCod," "crs_usr_requests.CrsCod," "crs_usr_requests.UsrCod," @@ -2379,6 +2502,7 @@ void Enr_ShowEnrollmentRequests (void) RolesSelected); break; case Rol_CTR_ADM: + // Requests in centres of this institution administrated by me sprintf (Query,"SELECT crs_usr_requests.ReqCod," "crs_usr_requests.CrsCod," "crs_usr_requests.UsrCod," @@ -2399,6 +2523,7 @@ void Enr_ShowEnrollmentRequests (void) 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 sprintf (Query,"SELECT crs_usr_requests.ReqCod," "crs_usr_requests.CrsCod," "crs_usr_requests.UsrCod," @@ -2423,6 +2548,7 @@ void Enr_ShowEnrollmentRequests (void) switch (Gbl.Usrs.Me.LoggedRole) { case Rol_TEACHER: + // Requests in courses of this centre in which I am teacher sprintf (Query,"SELECT crs_usr_requests.ReqCod," "crs_usr_requests.CrsCod," "crs_usr_requests.UsrCod," @@ -2430,6 +2556,7 @@ void Enr_ShowEnrollmentRequests (void) "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" " FROM crs_usr,degrees,courses,crs_usr_requests" " WHERE crs_usr.UsrCod='%ld'" + " AND crs_usr.Role='%u'" " AND crs_usr.CrsCod=courses.CrsCod" " AND courses.DegCod=degrees.DegCod" " AND degrees.CtrCod='%ld'" @@ -2437,10 +2564,12 @@ void Enr_ShowEnrollmentRequests (void) " AND ((1<0" " ORDER BY crs_usr_requests.RequestTime DESC", Gbl.Usrs.Me.UsrDat.UsrCod, + (unsigned) Rol_TEACHER, Gbl.CurrentCtr.Ctr.CtrCod, RolesSelected); break; case Rol_DEG_ADM: + // Requests in degrees of this centre administrated by me sprintf (Query,"SELECT crs_usr_requests.ReqCod," "crs_usr_requests.CrsCod," "crs_usr_requests.UsrCod," @@ -2461,6 +2590,7 @@ void Enr_ShowEnrollmentRequests (void) case Rol_CTR_ADM: // If I am logged as admin of this centre , I can view all the requesters from this centre case Rol_INS_ADM: // If I am logged as admin of this institution, I can view all the requesters from this centre case Rol_SYS_ADM: + // Request in any course of this centre sprintf (Query,"SELECT crs_usr_requests.ReqCod," "crs_usr_requests.CrsCod," "crs_usr_requests.UsrCod," @@ -2484,6 +2614,7 @@ void Enr_ShowEnrollmentRequests (void) switch (Gbl.Usrs.Me.LoggedRole) { case Rol_TEACHER: + // Requests in courses of this degree in which I am teacher sprintf (Query,"SELECT crs_usr_requests.ReqCod," "crs_usr_requests.CrsCod," "crs_usr_requests.UsrCod," @@ -2491,12 +2622,14 @@ void Enr_ShowEnrollmentRequests (void) "UNIX_TIMESTAMP(crs_usr_requests.RequestTime)" " FROM crs_usr,courses,crs_usr_requests" " WHERE crs_usr.UsrCod='%ld'" + " AND crs_usr.Role='%u'" " AND crs_usr.CrsCod=courses.CrsCod" " AND courses.DegCod='%ld'" " AND courses.CrsCod=crs_usr_requests.CrsCod" " AND ((1<0" " ORDER BY crs_usr_requests.RequestTime DESC", Gbl.Usrs.Me.UsrDat.UsrCod, + (unsigned) Rol_TEACHER, Gbl.CurrentDeg.Deg.DegCod, RolesSelected); break; @@ -2504,6 +2637,7 @@ void Enr_ShowEnrollmentRequests (void) case Rol_CTR_ADM: // If I am logged as admin of this centre , 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 sprintf (Query,"SELECT crs_usr_requests.ReqCod," "crs_usr_requests.CrsCod," "crs_usr_requests.UsrCod," @@ -2530,6 +2664,7 @@ void Enr_ShowEnrollmentRequests (void) case Rol_CTR_ADM: // If I am logged as admin of this centre , 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 sprintf (Query,"SELECT ReqCod,CrsCod,UsrCod,Role," "UNIX_TIMESTAMP(RequestTime)" " FROM crs_usr_requests"