diff --git a/swad_changelog.h b/swad_changelog.h index 49419df13..4da0db97d 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -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.46 (2022-10-13)" +#define Log_PLATFORM_VERSION "SWAD 22.46.1 (2022-10-14)" #define CSS_FILE "swad22.46.css" #define JS_FILE "swad21.100.js" /* + Version 22.46.1: Oct 14, 2022 Fixed bug filtering projects by department. (333227 lines) Version 22.46: Oct 13, 2022 Review of projects. (333219 lines) Version 22.45: Oct 13, 2022 Review of projects (not finished). (333137 lines) Version 22.44.3: Oct 12, 2022 Code refactoring in projects. (333015 lines) diff --git a/swad_department.c b/swad_department.c index 3018a55bd..2dd1d325a 100644 --- a/swad_department.c +++ b/swad_department.c @@ -998,6 +998,7 @@ unsigned Dpt_GetNumDptsInIns (long InsCod) /*****************************************************************************/ void Dpt_WriteSelectorDepartment (long InsCod,long DptCod, + const char *ParamName, const char *SelectClass, long FirstOption, const char *TextWhenNoDptSelected, @@ -1018,7 +1019,7 @@ void Dpt_WriteSelectorDepartment (long InsCod,long DptCod, /* Begin selector */ HTM_SELECT_Begin (SubmitFormOnChange, "id=\"%s\" name=\"%s\" class=\"%s\"", - Dpt_PARAM_DPT_COD_NAME,Dpt_PARAM_DPT_COD_NAME,SelectClass); + ParamName,ParamName,SelectClass); if (FirstOption <= 0) { diff --git a/swad_department.h b/swad_department.h index aacca4182..81db3df4c 100644 --- a/swad_department.h +++ b/swad_department.h @@ -82,6 +82,7 @@ void Dpt_FlushCacheNumDptsInIns (void); unsigned Dpt_GetNumDptsInIns (long InsCod); void Dpt_WriteSelectorDepartment (long InsCod,long DptCod, + const char *ParamName, const char *SelectClass, long FirstOption, const char *TextWhenNoDptSelected, diff --git a/swad_indicator.c b/swad_indicator.c index 05d220451..628d506a5 100644 --- a/swad_indicator.c +++ b/swad_indicator.c @@ -166,6 +166,7 @@ void Ind_ReqIndicatorsCourses (void) Err_NotEnoughMemoryExit (); Dpt_WriteSelectorDepartment (Gbl.Hierarchy.Ins.InsCod, // Departments in current insitution Indicators.DptCod, // Selected department + Dpt_PARAM_DPT_COD_NAME, // Parameter name SelectClass, // Selector class -1L, // First option Txt_Any_department, // Text when no department selected diff --git a/swad_project.c b/swad_project.c index ff90f2dcf..448605bae 100644 --- a/swad_project.c +++ b/swad_project.c @@ -66,10 +66,11 @@ extern struct Globals Gbl; /*****************************************************************************/ /***** Parameters used to filter listing of projects *****/ -#define Prj_PARAM_PRE_NON_NAME "PreNon" -#define Prj_PARAM_HID_VIS_NAME "HidVis" -#define Prj_PARAM_FAULTIN_NAME "Faulti" -#define Prj_PARAM_REVIEW_NAME "Review" +#define Prj_PARAM_FILTER_PRE_NON_NAME "FilPreNon" +#define Prj_PARAM_FILTER_HID_VIS_NAME "FilHidVis" +#define Prj_PARAM_FILTER_FAULTIN_NAME "FilFaulti" +#define Prj_PARAM_FILTER_REVIEW_NAME "FilReview" +#define Prj_PARAM_FILTER_DPT_COD_NAME "FilDptCod" /***** User roles are shown in this order *****/ static const Prj_RoleInProject_t Prj_RolesToShow[] = @@ -180,12 +181,12 @@ static void Prj_PutHiddenParamAssign (unsigned Assign); static void Prj_PutHiddenParamHidden (unsigned Hidden); static void Prj_PutHiddenParamFaulti (unsigned Faulti); static void Prj_PutHiddenParamReview (unsigned Review); -static void Prj_PutHiddenParamDptCod (long DptCod); +static void Prj_PutHiddenParamFilterDptCod (long DptCod); static void Prj_GetHiddenParamPreNon (struct Prj_Projects *Projects); static Prj_HiddenVisibl_t Prj_GetHiddenParamHidVis (void); static unsigned Prj_GetHiddenParamFaulti (void); static unsigned Prj_GetHiddenParamReview (void); -static long Prj_GetHiddenParamDptCod (void); +static long Prj_GetHiddenParamFilterDptCod (void); static Usr_Who_t Prj_GetParamWho (void); static void Prj_ShowProjectsHead (struct Prj_Projects *Projects); @@ -827,12 +828,13 @@ static void Prj_ShowFormToFilterByDpt (const struct Prj_Projects *Projects) if (asprintf (&SelectClass,"TITLE_DESCRIPTION_WIDTH INPUT_%s", The_GetSuffix ()) < 0) Err_NotEnoughMemoryExit (); - Dpt_WriteSelectorDepartment (Gbl.Hierarchy.Ins.InsCod, // Departments in current insitution - Projects->Filter.DptCod, // Selected department - SelectClass, // Selector class - -1L, // First option - Txt_Any_department, // Text when no department selected - true); // Submit on change + Dpt_WriteSelectorDepartment (Gbl.Hierarchy.Ins.InsCod, // Departments in current insitution + Projects->Filter.DptCod, // Selected department + Prj_PARAM_FILTER_DPT_COD_NAME, // Parameter name + SelectClass, // Selector class + -1L, // First option + Txt_Any_department, // Text when no department selected + true); // Submit on change free (SelectClass); /***** End form *****/ @@ -884,7 +886,7 @@ void Prj_PutParams (struct Prj_Filter *Filter, Prj_PutHiddenParamReview (Filter->Review); if (Filter->DptCod != Prj_FILTER_DPT_DEFAULT) - Prj_PutHiddenParamDptCod (Filter->DptCod); + Prj_PutHiddenParamFilterDptCod (Filter->DptCod); /***** Put order field *****/ if (Order != Prj_ORDER_DEFAULT) @@ -913,27 +915,27 @@ void Prj_PutParams (struct Prj_Filter *Filter, static void Prj_PutHiddenParamAssign (unsigned Assign) { - Par_PutHiddenParamUnsigned (NULL,Prj_PARAM_PRE_NON_NAME,Assign); + Par_PutHiddenParamUnsigned (NULL,Prj_PARAM_FILTER_PRE_NON_NAME,Assign); } static void Prj_PutHiddenParamHidden (unsigned Hidden) { - Par_PutHiddenParamUnsigned (NULL,Prj_PARAM_HID_VIS_NAME,Hidden); + Par_PutHiddenParamUnsigned (NULL,Prj_PARAM_FILTER_HID_VIS_NAME,Hidden); } static void Prj_PutHiddenParamFaulti (unsigned Faulti) { - Par_PutHiddenParamUnsigned (NULL,Prj_PARAM_FAULTIN_NAME,Faulti); + Par_PutHiddenParamUnsigned (NULL,Prj_PARAM_FILTER_FAULTIN_NAME,Faulti); } static void Prj_PutHiddenParamReview (unsigned Review) { - Par_PutHiddenParamUnsigned (NULL,Prj_PARAM_REVIEW_NAME,Review); + Par_PutHiddenParamUnsigned (NULL,Prj_PARAM_FILTER_REVIEW_NAME,Review); } -static void Prj_PutHiddenParamDptCod (long DptCod) +static void Prj_PutHiddenParamFilterDptCod (long DptCod) { - Par_PutHiddenParamUnsigned (NULL,Dpt_PARAM_DPT_COD_NAME,DptCod); + Par_PutHiddenParamUnsigned (NULL,Prj_PARAM_FILTER_DPT_COD_NAME,DptCod); } /*****************************************************************************/ @@ -942,7 +944,7 @@ static void Prj_PutHiddenParamDptCod (long DptCod) static void Prj_GetHiddenParamPreNon (struct Prj_Projects *Projects) { - Projects->Filter.Assign = (unsigned) Par_GetParToUnsignedLong (Prj_PARAM_PRE_NON_NAME, + Projects->Filter.Assign = (unsigned) Par_GetParToUnsignedLong (Prj_PARAM_FILTER_PRE_NON_NAME, 0, (1 << Prj_ASSIGNED) | (1 << Prj_NONASSIG), @@ -960,7 +962,7 @@ static Prj_HiddenVisibl_t Prj_GetHiddenParamHidVis (void) case Rol_TCH: case Rol_SYS_ADM: return (Prj_HiddenVisibl_t) - Par_GetParToUnsignedLong (Prj_PARAM_HID_VIS_NAME, + Par_GetParToUnsignedLong (Prj_PARAM_FILTER_HID_VIS_NAME, 0, (1 << Prj_HIDDEN) | (1 << Prj_VISIBL), @@ -975,7 +977,7 @@ static Prj_HiddenVisibl_t Prj_GetHiddenParamHidVis (void) static unsigned Prj_GetHiddenParamFaulti (void) { return (unsigned) - Par_GetParToUnsignedLong (Prj_PARAM_FAULTIN_NAME, + Par_GetParToUnsignedLong (Prj_PARAM_FILTER_FAULTIN_NAME, 0, (1 << Prj_FAULTY) | (1 << Prj_FAULTLESS), @@ -986,7 +988,7 @@ static unsigned Prj_GetHiddenParamFaulti (void) static unsigned Prj_GetHiddenParamReview (void) { return (unsigned) - Par_GetParToUnsignedLong (Prj_PARAM_REVIEW_NAME, + Par_GetParToUnsignedLong (Prj_PARAM_FILTER_REVIEW_NAME, 0, (1 << Prj_UNREVIEWED) | (1 << Prj_UNAPPROVED) | @@ -996,9 +998,9 @@ static unsigned Prj_GetHiddenParamReview (void) (unsigned) Prj_FILTER_APPROVED_DEFAULT); } -static long Prj_GetHiddenParamDptCod (void) +static long Prj_GetHiddenParamFilterDptCod (void) { - return Par_GetParToLong (Dpt_PARAM_DPT_COD_NAME); + return Par_GetParToLong (Prj_PARAM_FILTER_DPT_COD_NAME); } /*****************************************************************************/ @@ -1013,7 +1015,7 @@ void Prj_GetParams (struct Prj_Projects *Projects) Projects->Filter.Hidden = Prj_GetHiddenParamHidVis (); Projects->Filter.Faulti = Prj_GetHiddenParamFaulti (); Projects->Filter.Review = Prj_GetHiddenParamReview (); - Projects->Filter.DptCod = Prj_GetHiddenParamDptCod (); + Projects->Filter.DptCod = Prj_GetHiddenParamFilterDptCod (); /***** Get order and page *****/ Projects->SelectedOrder = Prj_GetParamPrjOrder (); @@ -3765,6 +3767,7 @@ static void Prj_PutFormProject (struct Prj_Projects *Projects, Err_NotEnoughMemoryExit (); Dpt_WriteSelectorDepartment (Gbl.Hierarchy.Ins.InsCod, // Departments in current institution Projects->Prj.DptCod, // Selected department + Dpt_PARAM_DPT_COD_NAME, // Parameter name SelectClass, // Selector class 0, // First option Txt_Another_department, // Text when no department selected diff --git a/swad_record.c b/swad_record.c index 4b801d440..bb3034b2c 100644 --- a/swad_record.c +++ b/swad_record.c @@ -3907,6 +3907,7 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher) Err_NotEnoughMemoryExit (); Dpt_WriteSelectorDepartment (Gbl.Usrs.Me.UsrDat.InsCod, // Departments in my institution Gbl.Usrs.Me.UsrDat.Tch.DptCod, // Selected department + Dpt_PARAM_DPT_COD_NAME, // Parameter name SelectClass, // Selector class -1L, // First option "", // Text when no department selected