diff --git a/swad_changelog.h b/swad_changelog.h index aad23a0e4..bb2b28638 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -252,13 +252,14 @@ /****************************** Public constants *****************************/ /*****************************************************************************/ -#define Log_PLATFORM_VERSION "SWAD 17.11 (2017-09-29)" +#define Log_PLATFORM_VERSION "SWAD 17.11.1 (2017-09-29)" #define CSS_FILE "swad17.0.css" #define JS_FILE "swad16.206.3.js" // 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 17.11.1: Sep 29, 2017 Code refactoring in projects. (231510 lines) Version 17.11: Sep 29, 2017 Select which projects to show: only my projects or all projects. (231531 lines) Version 17.10.7: Sep 29, 2017 Icons to select which projects to show: only my projects or all projects. (231456 lines) Version 17.10.6: Sep 25, 2017 Fixed bug when receiving projects. (231357 lines) diff --git a/swad_project.c b/swad_project.c index b05132a61..9bbc74065 100644 --- a/swad_project.c +++ b/swad_project.c @@ -1599,63 +1599,51 @@ void Prj_GetListProjects (void) Prj_FreeListProjects (); /***** Get list of projects from database *****/ + /* Hidden subquery */ + switch (Gbl.Usrs.Me.Role.Logged) + { + case Rol_TCH: + case Rol_SYS_ADM: + HiddenSubQuery[0] = '\0'; + break; + default: + sprintf (HiddenSubQuery," AND projects.Hidden='N'"); + break; + } + + /* Order subquery */ switch (Gbl.Prjs.SelectedOrder) { case Prj_ORDER_START_TIME: + sprintf (OrderBySubQuery,"projects.StartTime DESC," + "projects.EndTime DESC," + "projects.Title"); + break; case Prj_ORDER_END_TIME: + sprintf (OrderBySubQuery,"projects.EndTime DESC," + "projects.StartTime DESC," + "projects.Title"); + break; case Prj_ORDER_TITLE: - /* Hidden subquery */ - switch (Gbl.Usrs.Me.Role.Logged) - { - case Rol_NET: - case Rol_TCH: - case Rol_SYS_ADM: - HiddenSubQuery[0] = '\0'; - break; - default: - sprintf (HiddenSubQuery," AND Hidden='N'"); - break; - } + sprintf (OrderBySubQuery,"projects.Title," + "projects.StartTime DESC," + "projects.EndTime DESC"); + break; + case Prj_ORDER_DEPARTMENT: + sprintf (OrderBySubQuery,"departments.FullName," + "projects.StartTime DESC," + "projects.EndTime DESC," + "projects.Title"); + break; + } - /* Order subquery */ - switch (Gbl.Prjs.SelectedOrder) - { - case Prj_ORDER_START_TIME: - if (Gbl.CurrentCrs.Prjs.WhichPrjs == Prj_ONLY_MY_PROJECTS) - sprintf (OrderBySubQuery,"projects.StartTime DESC," - "projects.EndTime DESC," - "projects.Title"); - else - sprintf (OrderBySubQuery,"StartTime DESC," - "EndTime DESC," - "Title"); - break; - case Prj_ORDER_END_TIME: - if (Gbl.CurrentCrs.Prjs.WhichPrjs == Prj_ONLY_MY_PROJECTS) - sprintf (OrderBySubQuery,"projects.EndTime DESC," - "projects.StartTime DESC," - "projects.Title"); - else - sprintf (OrderBySubQuery,"EndTime DESC," - "StartTime DESC," - "Title"); - break; - case Prj_ORDER_TITLE: - if (Gbl.CurrentCrs.Prjs.WhichPrjs == Prj_ONLY_MY_PROJECTS) - sprintf (OrderBySubQuery,"projects.Title," - "projects.StartTime DESC," - "projects.EndTime DESC"); - else - sprintf (OrderBySubQuery,"Title," - "StartTime DESC," - "EndTime DESC"); - break; - case Prj_ORDER_DEPARTMENT: // Not applicable - break; - } - - /* Query */ - if (Gbl.CurrentCrs.Prjs.WhichPrjs == Prj_ONLY_MY_PROJECTS) + /* Query */ + if (Gbl.CurrentCrs.Prjs.WhichPrjs == Prj_ONLY_MY_PROJECTS) + switch (Gbl.Prjs.SelectedOrder) + { + case Prj_ORDER_START_TIME: + case Prj_ORDER_END_TIME: + case Prj_ORDER_TITLE: sprintf (Query,"SELECT projects.PrjCod" " FROM projects,prj_usr" " WHERE projects.CrsCod=%ld%s" @@ -1665,35 +1653,8 @@ void Prj_GetListProjects (void) Gbl.CurrentCrs.Crs.CrsCod,HiddenSubQuery, Gbl.Usrs.Me.UsrDat.UsrCod, OrderBySubQuery); - else // Gbl.CurrentCrs.Prjs.WhichPrjs == Prj_ALL_PROJECTS - sprintf (Query,"SELECT PrjCod" - " FROM projects" - " WHERE CrsCod=%ld%s" - " ORDER BY %s", - Gbl.CurrentCrs.Crs.CrsCod,HiddenSubQuery, - OrderBySubQuery); - break; - case Prj_ORDER_DEPARTMENT: - /* Hidden subquery */ - switch (Gbl.Usrs.Me.Role.Logged) - { - case Rol_TCH: - case Rol_SYS_ADM: - HiddenSubQuery[0] = '\0'; - break; - default: - sprintf (HiddenSubQuery," AND projects.Hidden='N'"); - break; - } - - /* Order subquery */ - sprintf (OrderBySubQuery,"departments.FullName," - "projects.StartTime DESC," - "projects.EndTime DESC," - "projects.Title"); - - /* Query */ - if (Gbl.CurrentCrs.Prjs.WhichPrjs == Prj_ONLY_MY_PROJECTS) + break; + case Prj_ORDER_DEPARTMENT: sprintf (Query,"SELECT projects.PrjCod" " FROM prj_usr,projects LEFT JOIN departments" " ON projects.DptCod=departments.DptCod" @@ -1704,7 +1665,22 @@ void Prj_GetListProjects (void) Gbl.CurrentCrs.Crs.CrsCod,HiddenSubQuery, Gbl.Usrs.Me.UsrDat.UsrCod, OrderBySubQuery); - else // Gbl.CurrentCrs.Prjs.WhichPrjs == Prj_ALL_PROJECTS + break; + } + else // Gbl.CurrentCrs.Prjs.WhichPrjs == Prj_ALL_PROJECTS + switch (Gbl.Prjs.SelectedOrder) + { + case Prj_ORDER_START_TIME: + case Prj_ORDER_END_TIME: + case Prj_ORDER_TITLE: + sprintf (Query,"SELECT projects.PrjCod" + " FROM projects" + " WHERE projects.CrsCod=%ld%s" + " ORDER BY %s", + Gbl.CurrentCrs.Crs.CrsCod,HiddenSubQuery, + OrderBySubQuery); + break; + case Prj_ORDER_DEPARTMENT: sprintf (Query,"SELECT projects.PrjCod" " FROM projects LEFT JOIN departments" " ON projects.DptCod=departments.DptCod" @@ -1712,8 +1688,8 @@ void Prj_GetListProjects (void) " ORDER BY %s", Gbl.CurrentCrs.Crs.CrsCod,HiddenSubQuery, OrderBySubQuery); - break; - } + break; + } NumRows = DB_QuerySELECT (Query,&mysql_res,"can not get projects");