diff --git a/swad_changelog.h b/swad_changelog.h index 9c7fc0aec..4cc975cf6 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -98,13 +98,12 @@ /****************************** Public constants *****************************/ /*****************************************************************************/ -#define Log_PLATFORM_VERSION "SWAD 15.1.1 (2015/09/26)" +#define Log_PLATFORM_VERSION "SWAD 15.1.2 (2015/09/27)" // 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 /* -BUG: Registering teachers after notification, as Institution admin --> "You don't have permission to list requesters." - + Version 15.1.2: Sep 27, 2015 Fixed bug in requests for registration. (185170 lines) Version 15.1.1: Sep 26, 2015 Fixed bug in statistics. (185084 lines) Version 15.1: Sep 25, 2015 Changes in layout of statistics of clicks. (185058 lines) Version 15.0.3: Sep 24, 2015 Fixed bug when printing country information. (185013 lines) diff --git a/swad_enrollment.c b/swad_enrollment.c index 98e2951bb..fe3e6247e 100644 --- a/swad_enrollment.c +++ b/swad_enrollment.c @@ -2198,6 +2198,8 @@ void Enr_ShowEnrollmentRequests (void) Roles = (1 << Rol_STUDENT) | (1 << Rol_TEACHER); break; case Rol_DEG_ADM: + case Rol_CTR_ADM: + case Rol_INS_ADM: case Rol_SYS_ADM: Roles = (1 << Rol_TEACHER); break; @@ -2224,7 +2226,11 @@ void Enr_ShowEnrollmentRequests (void) switch (Gbl.Usrs.Me.LoggedRole) { case Rol_TEACHER: - sprintf (Query,"SELECT crs_usr_requests.ReqCod,crs_usr_requests.CrsCod,crs_usr_requests.UsrCod,crs_usr_requests.Role,DATE_FORMAT(crs_usr_requests.RequestTime,'%%Y%%m%%d%%H%%i%%S')" + sprintf (Query,"SELECT crs_usr_requests.ReqCod," + "crs_usr_requests.CrsCod," + "crs_usr_requests.UsrCod," + "crs_usr_requests.Role," + "DATE_FORMAT(crs_usr_requests.RequestTime,'%%Y%%m%%d%%H%%i%%S')" " FROM crs_usr,crs_usr_requests" " WHERE crs_usr.UsrCod='%ld'" " AND crs_usr.CrsCod=crs_usr_requests.CrsCod" @@ -2234,7 +2240,11 @@ void Enr_ShowEnrollmentRequests (void) Roles); break; case Rol_DEG_ADM: - sprintf (Query,"SELECT crs_usr_requests.ReqCod,crs_usr_requests.CrsCod,crs_usr_requests.UsrCod,crs_usr_requests.Role,DATE_FORMAT(crs_usr_requests.RequestTime,'%%Y%%m%%d%%H%%i%%S')" + sprintf (Query,"SELECT crs_usr_requests.ReqCod," + "crs_usr_requests.CrsCod," + "crs_usr_requests.UsrCod," + "crs_usr_requests.Role," + "DATE_FORMAT(crs_usr_requests.RequestTime,'%%Y%%m%%d%%H%%i%%S')" " FROM admin,courses,crs_usr_requests" " WHERE admin.UsrCod='%ld' AND admin.Scope='Deg'" " AND admin.Cod=courses.DegCod" @@ -2244,9 +2254,47 @@ void Enr_ShowEnrollmentRequests (void) Gbl.Usrs.Me.UsrDat.UsrCod, Roles); break; + case Rol_CTR_ADM: + sprintf (Query,"SELECT crs_usr_requests.ReqCod," + "crs_usr_requests.CrsCod," + "crs_usr_requests.UsrCod," + "crs_usr_requests.Role," + "DATE_FORMAT(crs_usr_requests.RequestTime,'%%Y%%m%%d%%H%%i%%S')" + " FROM admin,degrees,courses,crs_usr_requests" + " WHERE admin.UsrCod='%ld' AND admin.Scope='Ctr'" + " AND admin.Cod=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, + Roles); + break; + case Rol_INS_ADM: + sprintf (Query,"SELECT crs_usr_requests.ReqCod," + "crs_usr_requests.CrsCod," + "crs_usr_requests.UsrCod," + "crs_usr_requests.Role," + "DATE_FORMAT(crs_usr_requests.RequestTime,'%%Y%%m%%d%%H%%i%%S')" + " FROM admin,centres,degrees,courses,crs_usr_requests" + " WHERE admin.UsrCod='%ld' AND admin.Scope='Ins'" + " AND admin.Cod=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, + Roles); + break; case Rol_SYS_ADM: - sprintf (Query,"SELECT ReqCod,CrsCod,UsrCod,Role,DATE_FORMAT(RequestTime,'%%Y%%m%%d%%H%%i%%S')" - " FROM crs_usr_requests WHERE ((1<0" + sprintf (Query,"SELECT ReqCod," + "CrsCod," + "UsrCod," + "Role," + "DATE_FORMAT(RequestTime,'%%Y%%m%%d%%H%%i%%S')" + " FROM crs_usr_requests" + " WHERE ((1<0" " ORDER BY RequestTime DESC", Roles); break; @@ -2259,13 +2307,17 @@ void Enr_ShowEnrollmentRequests (void) switch (Gbl.Usrs.Me.LoggedRole) { case Rol_TEACHER: - sprintf (Query,"SELECT crs_usr_requests.ReqCod,crs_usr_requests.CrsCod,crs_usr_requests.UsrCod,crs_usr_requests.Role,DATE_FORMAT(crs_usr_requests.RequestTime,'%%Y%%m%%d%%H%%i%%S')" + sprintf (Query,"SELECT crs_usr_requests.ReqCod," + "crs_usr_requests.CrsCod," + "crs_usr_requests.UsrCod," + "crs_usr_requests.Role," + "DATE_FORMAT(crs_usr_requests.RequestTime,'%%Y%%m%%d%%H%%i%%S')" " FROM crs_usr,centres,degrees,courses,crs_usr_requests" " WHERE crs_usr.UsrCod='%ld'" - " AND centres.InsCod='%ld'" " AND crs_usr.CrsCod=courses.CrsCod" - " AND degrees.DegCod=courses.DegCod" + " AND courses.DegCod=degrees.DegCod" " AND degrees.CtrCod=centres.CtrCod" + " AND centres.InsCod='%ld'" " AND courses.CrsCod=crs_usr_requests.CrsCod" " AND ((1<0" " ORDER BY crs_usr_requests.RequestTime DESC", @@ -2274,13 +2326,17 @@ void Enr_ShowEnrollmentRequests (void) Roles); break; case Rol_DEG_ADM: - sprintf (Query,"SELECT crs_usr_requests.ReqCod,crs_usr_requests.CrsCod,crs_usr_requests.UsrCod,crs_usr_requests.Role,DATE_FORMAT(crs_usr_requests.RequestTime,'%%Y%%m%%d%%H%%i%%S')" + sprintf (Query,"SELECT crs_usr_requests.ReqCod," + "crs_usr_requests.CrsCod," + "crs_usr_requests.UsrCod," + "crs_usr_requests.Role," + "DATE_FORMAT(crs_usr_requests.RequestTime,'%%Y%%m%%d%%H%%i%%S')" " FROM admin,centres,degrees,courses,crs_usr_requests" " WHERE admin.UsrCod='%ld' AND admin.Scope='Deg'" - " AND centres.InsCod='%ld'" " AND admin.Cod=degrees.DegCod" - " AND admin.Cod=courses.DegCod" " AND degrees.CtrCod=centres.CtrCod" + " AND centres.InsCod='%ld'" + " AND degrees.DegCod=courses.DegCod" " AND courses.CrsCod=crs_usr_requests.CrsCod" " AND ((1<0" " ORDER BY crs_usr_requests.RequestTime DESC", @@ -2288,8 +2344,32 @@ void Enr_ShowEnrollmentRequests (void) Gbl.CurrentIns.Ins.InsCod, Roles); break; - case Rol_SYS_ADM: - sprintf (Query,"SELECT crs_usr_requests.ReqCod,crs_usr_requests.CrsCod,crs_usr_requests.UsrCod,crs_usr_requests.Role,DATE_FORMAT(crs_usr_requests.RequestTime,'%%Y%%m%%d%%H%%i%%S')" + case Rol_CTR_ADM: + sprintf (Query,"SELECT crs_usr_requests.ReqCod," + "crs_usr_requests.CrsCod," + "crs_usr_requests.UsrCod," + "crs_usr_requests.Role," + "DATE_FORMAT(crs_usr_requests.RequestTime,'%%Y%%m%%d%%H%%i%%S')" + " FROM admin,centres,degrees,courses,crs_usr_requests" + " WHERE admin.UsrCod='%ld' AND admin.Scope='Ctr'" + " AND admin.Cod=centres.CtrCod" + " AND centres.InsCod='%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.CurrentIns.Ins.InsCod, + Roles); + 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: + sprintf (Query,"SELECT crs_usr_requests.ReqCod," + "crs_usr_requests.CrsCod," + "crs_usr_requests.UsrCod," + "crs_usr_requests.Role," + "DATE_FORMAT(crs_usr_requests.RequestTime,'%%Y%%m%%d%%H%%i%%S')" " FROM centres,degrees,courses,crs_usr_requests" " WHERE centres.InsCod='%ld'" " AND centres.CtrCod=degrees.CtrCod" @@ -2312,9 +2392,9 @@ void Enr_ShowEnrollmentRequests (void) sprintf (Query,"SELECT crs_usr_requests.ReqCod,crs_usr_requests.CrsCod,crs_usr_requests.UsrCod,crs_usr_requests.Role,DATE_FORMAT(crs_usr_requests.RequestTime,'%%Y%%m%%d%%H%%i%%S')" " FROM crs_usr,degrees,courses,crs_usr_requests" " WHERE crs_usr.UsrCod='%ld'" - " AND degrees.CtrCod='%ld'" " AND crs_usr.CrsCod=courses.CrsCod" - " AND degrees.DegCod=courses.DegCod" + " AND courses.DegCod=degrees.DegCod" + " AND degrees.CtrCod='%ld'" " AND courses.CrsCod=crs_usr_requests.CrsCod" " AND ((1<0" " ORDER BY crs_usr_requests.RequestTime DESC", @@ -2326,9 +2406,9 @@ void Enr_ShowEnrollmentRequests (void) sprintf (Query,"SELECT crs_usr_requests.ReqCod,crs_usr_requests.CrsCod,crs_usr_requests.UsrCod,crs_usr_requests.Role,DATE_FORMAT(crs_usr_requests.RequestTime,'%%Y%%m%%d%%H%%i%%S')" " FROM admin,degrees,courses,crs_usr_requests" " WHERE admin.UsrCod='%ld' AND admin.Scope='Deg'" - " AND degrees.CtrCod='%ld'" " AND admin.Cod=degrees.DegCod" - " AND admin.Cod=courses.DegCod" + " AND degrees.CtrCod='%ld'" + " AND degrees.DegCod=courses.DegCod" " AND courses.CrsCod=crs_usr_requests.CrsCod" " AND ((1<0" " ORDER BY crs_usr_requests.RequestTime DESC", @@ -2336,7 +2416,9 @@ void Enr_ShowEnrollmentRequests (void) Gbl.CurrentCtr.Ctr.CtrCod, Roles); break; - case Rol_SYS_ADM: + 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: sprintf (Query,"SELECT crs_usr_requests.ReqCod,crs_usr_requests.CrsCod,crs_usr_requests.UsrCod,crs_usr_requests.Role,DATE_FORMAT(crs_usr_requests.RequestTime,'%%Y%%m%%d%%H%%i%%S')" " FROM degrees,courses,crs_usr_requests" " WHERE degrees.CtrCod='%ld'" @@ -2368,7 +2450,9 @@ void Enr_ShowEnrollmentRequests (void) Gbl.CurrentDeg.Deg.DegCod, Roles); break; - case Rol_DEG_ADM: + 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 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: sprintf (Query,"SELECT crs_usr_requests.ReqCod,crs_usr_requests.CrsCod,crs_usr_requests.UsrCod,crs_usr_requests.Role,DATE_FORMAT(crs_usr_requests.RequestTime,'%%Y%%m%%d%%H%%i%%S')" " FROM courses,crs_usr_requests" @@ -2387,8 +2471,10 @@ void Enr_ShowEnrollmentRequests (void) case Sco_SCOPE_CRS: // Show requesters for the current course switch (Gbl.Usrs.Me.LoggedRole) { - case Rol_TEACHER: - case Rol_DEG_ADM: + case Rol_TEACHER: // 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 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: sprintf (Query,"SELECT ReqCod,CrsCod,UsrCod,Role,DATE_FORMAT(RequestTime,'%%Y%%m%%d%%H%%i%%S')" " FROM crs_usr_requests"