Version 22.49.1: Oct 17, 2022 Fixed bug filtering projects.

This commit is contained in:
acanas 2022-10-17 10:47:15 +02:00
parent e10185af2e
commit a9c5d4d1d0
2 changed files with 25 additions and 10 deletions

View File

@ -606,10 +606,11 @@ TODO: Fix bug: error al enviar un mensaje a dos recipientes, error on duplicate
TODO: Attach pdf files in multimedia.
*/
#define Log_PLATFORM_VERSION "SWAD 22.49 (2022-10-16)"
#define Log_PLATFORM_VERSION "SWAD 22.49.1 (2022-10-17)"
#define CSS_FILE "swad22.49.css"
#define JS_FILE "swad22.49.js"
/*
Version 22.49.1: Oct 17, 2022 Fixed bug filtering projects. (333176 lines)
Version 22.49: Oct 16, 2022 Changes in project review form. (333161 lines)
Version 22.48: Oct 15, 2022 Code optimization related to nick links. (333157 lines)
Version 22.47.2: Oct 15, 2022 Code optimization related to forms. (333124 lines)

View File

@ -244,6 +244,7 @@ unsigned Prj_DB_GetListProjects (MYSQL_RES **mysql_res,
{
char *AssignSubQuery;
char *HidVisSubQuery;
char *ReviewSubQuery;
char *DptCodSubQuery;
static const char *OrderBySubQuery[Prj_NUM_ORDERS] =
{
@ -315,43 +316,43 @@ unsigned Prj_DB_GetListProjects (MYSQL_RES **mysql_res,
switch (Projects->Filter.Review)
{
case (1 << Prj_UNREVIEWED): // Unreviewed projects
if (asprintf (&AssignSubQuery," AND prj_projects.ReviewStatus='%s'",
if (asprintf (&ReviewSubQuery," AND prj_projects.ReviewStatus='%s'",
Prj_ReviewStatus_DB[Prj_UNREVIEWED]) < 0)
Err_NotEnoughMemoryExit ();
break;
case (1 << Prj_UNAPPROVED): // Unapproved projects
if (asprintf (&AssignSubQuery," AND prj_projects.ReviewStatus='%s'",
if (asprintf (&ReviewSubQuery," AND prj_projects.ReviewStatus='%s'",
Prj_ReviewStatus_DB[Prj_UNAPPROVED]) < 0)
Err_NotEnoughMemoryExit ();
break;
case (1 << Prj_APPROVED): // Approved projects
if (asprintf (&AssignSubQuery," AND prj_projects.ReviewStatus='%s'",
if (asprintf (&ReviewSubQuery," AND prj_projects.ReviewStatus='%s'",
Prj_ReviewStatus_DB[Prj_APPROVED ]) < 0)
Err_NotEnoughMemoryExit ();
break;
case (1 << Prj_UNREVIEWED |
1 << Prj_UNAPPROVED): // Unreviewed and unapproved projects
if (asprintf (&AssignSubQuery," AND prj_projects.ReviewStatus IN ('%s','%s')",
if (asprintf (&ReviewSubQuery," AND prj_projects.ReviewStatus IN ('%s','%s')",
Prj_ReviewStatus_DB[Prj_UNREVIEWED],
Prj_ReviewStatus_DB[Prj_UNAPPROVED]) < 0)
Err_NotEnoughMemoryExit ();
break;
case (1 << Prj_UNREVIEWED |
1 << Prj_APPROVED): // Unreviewed and approved projects
if (asprintf (&AssignSubQuery," AND prj_projects.ReviewStatus IN ('%s','%s')",
if (asprintf (&ReviewSubQuery," AND prj_projects.ReviewStatus IN ('%s','%s')",
Prj_ReviewStatus_DB[Prj_UNREVIEWED],
Prj_ReviewStatus_DB[Prj_APPROVED ]) < 0)
Err_NotEnoughMemoryExit ();
break;
case (1 << Prj_UNAPPROVED |
1 << Prj_APPROVED): // Unapproved and approved projects
if (asprintf (&AssignSubQuery," AND prj_projects.ReviewStatus IN ('%s','%s')",
if (asprintf (&ReviewSubQuery," AND prj_projects.ReviewStatus IN ('%s','%s')",
Prj_ReviewStatus_DB[Prj_UNAPPROVED],
Prj_ReviewStatus_DB[Prj_APPROVED ]) < 0)
Err_NotEnoughMemoryExit ();
break;
default: // All projects
if (asprintf (&AssignSubQuery,"%s","") < 0)
if (asprintf (&ReviewSubQuery,"%s","") < 0)
Err_NotEnoughMemoryExit ();
break;
}
@ -388,6 +389,7 @@ unsigned Prj_DB_GetListProjects (MYSQL_RES **mysql_res,
"%s"
"%s"
"%s"
"%s"
" AND prj_projects.PrjCod=prj_users.PrjCod"
" AND prj_users.UsrCod=%ld"
" GROUP BY prj_projects.PrjCod" // To not repeat projects (DISTINCT can not be used)
@ -395,6 +397,7 @@ unsigned Prj_DB_GetListProjects (MYSQL_RES **mysql_res,
Gbl.Hierarchy.Crs.CrsCod,
AssignSubQuery,
HidVisSubQuery,
ReviewSubQuery,
DptCodSubQuery,
Gbl.Usrs.Me.UsrDat.UsrCod,
OrderBySubQuery[Projects->SelectedOrder]);
@ -411,6 +414,7 @@ unsigned Prj_DB_GetListProjects (MYSQL_RES **mysql_res,
"%s"
"%s"
"%s"
"%s"
" AND prj_projects.PrjCod=prj_users.PrjCod"
" AND prj_users.UsrCod=%ld"
" GROUP BY prj_projects.PrjCod" // To not repeat projects (DISTINCT can not be used)
@ -418,6 +422,7 @@ unsigned Prj_DB_GetListProjects (MYSQL_RES **mysql_res,
Gbl.Hierarchy.Crs.CrsCod,
AssignSubQuery,
HidVisSubQuery,
ReviewSubQuery,
DptCodSubQuery,
Gbl.Usrs.Me.UsrDat.UsrCod,
OrderBySubQuery[Projects->SelectedOrder]);
@ -442,6 +447,7 @@ unsigned Prj_DB_GetListProjects (MYSQL_RES **mysql_res,
"%s"
"%s"
"%s"
"%s"
" AND prj_projects.PrjCod=prj_users.PrjCod"
" AND prj_users.UsrCod IN (%s)"
" GROUP BY prj_projects.PrjCod" // To not repeat projects (DISTINCT can not be used)
@ -449,6 +455,7 @@ unsigned Prj_DB_GetListProjects (MYSQL_RES **mysql_res,
Gbl.Hierarchy.Crs.CrsCod,
AssignSubQuery,
HidVisSubQuery,
ReviewSubQuery,
DptCodSubQuery,
UsrsSubQuery,
OrderBySubQuery[Projects->SelectedOrder]);
@ -465,6 +472,7 @@ unsigned Prj_DB_GetListProjects (MYSQL_RES **mysql_res,
"%s"
"%s"
"%s"
"%s"
" AND prj_projects.PrjCod=prj_users.PrjCod"
" AND prj_users.UsrCod IN (%s)"
" GROUP BY prj_projects.PrjCod" // To not repeat projects (DISTINCT can not be used)
@ -472,6 +480,7 @@ unsigned Prj_DB_GetListProjects (MYSQL_RES **mysql_res,
Gbl.Hierarchy.Crs.CrsCod,
AssignSubQuery,
HidVisSubQuery,
ReviewSubQuery,
DptCodSubQuery,
UsrsSubQuery,
OrderBySubQuery[Projects->SelectedOrder]);
@ -494,10 +503,12 @@ unsigned Prj_DB_GetListProjects (MYSQL_RES **mysql_res,
"%s"
"%s"
"%s"
"%s"
" ORDER BY %s",
Gbl.Hierarchy.Crs.CrsCod,
AssignSubQuery,
HidVisSubQuery,
ReviewSubQuery,
DptCodSubQuery,
OrderBySubQuery[Projects->SelectedOrder]);
break;
@ -511,10 +522,12 @@ unsigned Prj_DB_GetListProjects (MYSQL_RES **mysql_res,
"%s"
"%s"
"%s"
"%s"
" ORDER BY %s",
Gbl.Hierarchy.Crs.CrsCod,
AssignSubQuery,
HidVisSubQuery,
ReviewSubQuery,
DptCodSubQuery,
OrderBySubQuery[Projects->SelectedOrder]);
break;
@ -526,9 +539,10 @@ unsigned Prj_DB_GetListProjects (MYSQL_RES **mysql_res,
}
/* Free allocated memory for subqueries */
free (AssignSubQuery);
free (HidVisSubQuery);
free (DptCodSubQuery);
free (ReviewSubQuery);
free (HidVisSubQuery);
free (AssignSubQuery);
return NumPrjsFromDB;
}