From 3521819e7309223baf8c4cb021f1a82583426d75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20Ca=C3=B1as=20Vargas?= Date: Wed, 13 Nov 2019 09:49:52 +0100 Subject: [PATCH] Version19.66.2 --- swad_action.c | 10 +++--- swad_changelog.h | 5 ++- swad_project.c | 93 +++++++++++++++++++----------------------------- swad_project.h | 11 +++--- swad_test.c | 4 +-- swad_user.c | 17 ++++++--- 6 files changed, 64 insertions(+), 76 deletions(-) diff --git a/swad_action.c b/swad_action.c index 311a8db3c..930c449de 100644 --- a/swad_action.c +++ b/swad_action.c @@ -2062,13 +2062,13 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] = /* ActHidAsg */{ 964,-1,TabUnk,ActSeeAsg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Asg_HideAssignment ,NULL}, /* ActShoAsg */{ 965,-1,TabUnk,ActSeeAsg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Asg_ShowAssignment ,NULL}, - /* ActSeeTblAllPrj */{1696,-1,TabUnk,ActSeePrj ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_NEW_TAB,NULL ,Prj_ShowTableAllProjects ,NULL}, + /* ActSeeTblAllPrj */{1696,-1,TabUnk,ActSeePrj ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_NEW_TAB,NULL ,Prj_ShowTableSelectedProjects ,NULL}, /* ActCfgPrj */{1803,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ShowFormConfig ,NULL}, /* ActRcvCfgPrj */{1804,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ReceiveConfigPrj ,NULL}, - /* ActReqLckAllPrj */{1775,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ReqLockAllProjectsEdition ,NULL}, - /* ActReqUnlAllPrj */{1776,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ReqUnlockAllProjectsEdition,NULL}, - /* ActLckAllPrj */{1777,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_LockAllProjectsEdition ,NULL}, - /* ActUnlAllPrj */{1778,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_UnlockAllProjectsEdition ,NULL}, + /* ActReqLckAllPrj */{1775,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ReqLockSelectedProjectsEdition ,NULL}, + /* ActReqUnlAllPrj */{1776,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ReqUnlockSelectedProjectsEdition,NULL}, + /* ActLckAllPrj */{1777,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_LockSelectedProjectsEdition ,NULL}, + /* ActUnlAllPrj */{1778,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_UnlockSelectedProjectsEdition ,NULL}, /* ActFrmNewPrj */{1675,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_RequestCreatePrj ,NULL}, /* ActEdiOnePrj */{1676,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_RequestEditPrj ,NULL}, /* ActPrnOnePrj */{1677,-1,TabUnk,ActSeePrj ,0x3F8,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_NEW_TAB,NULL ,Prj_PrintOneProject ,NULL}, diff --git a/swad_changelog.h b/swad_changelog.h index 52df69480..e751b54bb 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -487,7 +487,7 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - * En OpenSWAD: ps2pdf source.ps destination.pdf */ -#define Log_PLATFORM_VERSION "SWAD 19.66 (2019-11-12)" +#define Log_PLATFORM_VERSION "SWAD 19.66.2 (2019-11-13)" #define CSS_FILE "swad19.47.css" #define JS_FILE "swad19.65.js" /* @@ -496,6 +496,9 @@ ps2pdf source.ps destination.pdf // TODO: Importante: filtrar proyectos por usuarios (igual que en trabajos o en asistencia) // TODO: Code refactoring in HTML h1, title, meta, video, p, iframe, input hidden, area + Version 19.66.3: Nov 13, 2019 Filter projects by selected users. (? lines) + Version 19.66.2: Nov 13, 2019 Fixed bug in edition of test question. (246628 lines) + Version 19.66.1: Nov 13, 2019 Filter projects by selected users. Not finished. (246627 lines) Version 19.66: Nov 13, 2019 Changes in selection of which users in projects. (246638 lines) Version 19.65.5: Nov 12, 2019 Changes in selection of which users in projects. (246519 lines) Version 19.65.4: Nov 12, 2019 Fixed bug in HTML input texts. (246505 lines) diff --git a/swad_project.c b/swad_project.c index 401a27c48..9767c3c5e 100644 --- a/swad_project.c +++ b/swad_project.c @@ -125,7 +125,6 @@ struct Prj_Faults /*****************************************************************************/ static void Prj_ReqListUsrsToSelect (void); -static void Prj_ShowProjectsOfSelectedUsrs (void); static void Prj_GetListSelectedUsrCods (unsigned NumUsrsInList,long **LstSelectedUsrCods); static void Prj_ShowProjectsInCurrentPage (void); @@ -207,6 +206,8 @@ static void Prj_PutFormsToRemEditOnePrj (const struct Project *Prj, static bool Prj_CheckIfICanEditProject (const struct Project *Prj); +static void Prj_GetListProjects (void); + static void Prj_ResetProject (struct Project *Prj); static void Prj_RequestCreatOrEditPrj (long PrjCod); @@ -244,16 +245,16 @@ void Prj_SeeProjects (void) { case Usr_WHO_ME: case Usr_WHO_ALL: - /***** Show projects *****/ + /* Show my projects / all projects */ Prj_ShowProjectsInCurrentPage (); break; case Usr_WHO_SELECTED: - if (Gbl.Prjs.Filter.ReqUsrs) - /***** List users to select some of them *****/ + if (Gbl.Prjs.Filter.ReqUsrs) // Request the selection of users + /* List users to select some of them */ Prj_ReqListUsrsToSelect (); if (Gbl.Prjs.Filter.SelUsrs) // Some users should have been selected - /***** Show projects *****/ - Prj_ShowProjectsOfSelectedUsrs (); + /* Show projects of selected users */ + Prj_ShowProjectsInCurrentPage (); break; default: break; @@ -277,47 +278,6 @@ static void Prj_ReqListUsrsToSelect (void) Txt_View_projects); } -/*****************************************************************************/ -/******************** Show projects of selected users ************************/ -/*****************************************************************************/ - -static void Prj_ShowProjectsOfSelectedUsrs (void) - { - extern const char *Txt_You_must_select_one_ore_more_users; - unsigned NumUsrsInList; - long *LstSelectedUsrCods; - - /***** Get list of selected students if not already got *****/ - Usr_GetListsSelectedUsrsCods (); - - /* Check the number of students to list */ - if ((NumUsrsInList = Usr_CountNumUsrsInListOfSelectedUsrs ())) - { - /***** Get list of groups selected ******/ - Grp_GetParCodsSeveralGrpsToShowUsrs (); - - /***** Get list of students selected to show their attendances *****/ - Prj_GetListSelectedUsrCods (NumUsrsInList,&LstSelectedUsrCods); - - /***** Show projects *****/ - Prj_ShowProjectsInCurrentPage (); - - /***** Free list of user codes *****/ - free (LstSelectedUsrCods); - - /***** Free list of groups selected *****/ - Grp_FreeListCodSelectedGrps (); - } - else // No users selected - { - Ale_ShowAlert (Ale_WARNING,Txt_You_must_select_one_ore_more_users); - Prj_ReqListUsrsToSelect (); // ...show again the form - } - - /***** Free memory used by list of selected users' codes *****/ - Usr_FreeListsSelectedUsrsCods (); - } - /*****************************************************************************/ /************* Get list of users selected to show their projects *************/ /*****************************************************************************/ @@ -351,10 +311,10 @@ static void Prj_GetListSelectedUsrCods (unsigned NumUsrsInList,long **LstSelecte } /*****************************************************************************/ -/************************ Show all projects in a table ***********************/ +/********************** Show selected projects in a table ********************/ /*****************************************************************************/ -void Prj_ShowTableAllProjects (void) +void Prj_ShowTableSelectedProjects (void) { extern const char *Txt_No_projects; unsigned NumPrj; @@ -2694,7 +2654,7 @@ static bool Prj_CheckIfICanEditProject (const struct Project *Prj) /************************** List all the projects ****************************/ /*****************************************************************************/ -void Prj_GetListProjects (void) +static void Prj_GetListProjects (void) { char *PreNonSubQuery; char *HidVisSubQuery; @@ -2720,6 +2680,8 @@ void Prj_GetListProjects (void) }; MYSQL_RES *mysql_res; MYSQL_ROW row; + unsigned NumUsrsInList; + long *LstSelectedUsrCods; unsigned long NumRows = 0; // Initialized to avoid warning unsigned NumPrjsFromDB; unsigned NumPrjsAfterFilter = 0; @@ -2727,10 +2689,20 @@ void Prj_GetListProjects (void) struct Prj_Faults Faults; long PrjCod; + /***** Get list of selected users' codes if not already got *****/ + Usr_GetListsSelectedUsrsCods (); + NumUsrsInList = Usr_CountNumUsrsInListOfSelectedUsrs (); + + /***** Get list of users selected to show their projects *****/ + if (NumUsrsInList) + Prj_GetListSelectedUsrCods (NumUsrsInList,&LstSelectedUsrCods); + + // TODO: Filter by selected users if any + + /***** Get list of projects from database *****/ if (Gbl.Prjs.LstIsRead) Prj_FreeListProjects (); - /***** Get list of projects from database *****/ if (Gbl.Prjs.Filter.Assign && // Any selector is on Gbl.Prjs.Filter.Hidden && // Any selector is on Gbl.Prjs.Filter.Faulti) // Any selector is on @@ -2919,6 +2891,13 @@ void Prj_GetListProjects (void) Gbl.Prjs.Num = NumPrjsAfterFilter; Gbl.Prjs.LstIsRead = true; + + /***** Free list of user codes *****/ + if (NumUsrsInList) + free (LstSelectedUsrCods); + + /***** Free memory used by list of selected users' codes *****/ + Usr_FreeListsSelectedUsrsCods (); } /*****************************************************************************/ @@ -4001,10 +3980,10 @@ static void Prj_PutIconsToLockUnlockAllProjects (void) } /*****************************************************************************/ -/************ Request locking/unlocking edition of all projects **************/ +/********** Request locking/unlocking edition of selected projects ***********/ /*****************************************************************************/ -void Prj_ReqLockAllProjectsEdition (void) +void Prj_ReqLockSelectedProjectsEdition (void) { extern const char *Txt_Lock_editing; extern const char *Txt_Do_you_want_to_lock_the_editing_of_the_X_selected_projects; @@ -4038,7 +4017,7 @@ void Prj_ReqLockAllProjectsEdition (void) Prj_ShowProjectsInCurrentPage (); } -void Prj_ReqUnlockAllProjectsEdition (void) +void Prj_ReqUnlockSelectedProjectsEdition (void) { extern const char *Txt_Unlock_editing; extern const char *Txt_Do_you_want_to_unlock_the_editing_of_the_X_selected_projects; @@ -4073,10 +4052,10 @@ void Prj_ReqUnlockAllProjectsEdition (void) } /*****************************************************************************/ -/******************* Lock/unlock edition of all projects *********************/ +/***************** Lock/unlock edition of selected projects ******************/ /*****************************************************************************/ -void Prj_LockAllProjectsEdition (void) +void Prj_LockSelectedProjectsEdition (void) { extern const char *Txt_No_projects; unsigned NumPrj; @@ -4109,7 +4088,7 @@ void Prj_LockAllProjectsEdition (void) Prj_ShowProjectsInCurrentPage (); } -void Prj_UnlockAllProjectsEdition (void) +void Prj_UnlockSelectedProjectsEdition (void) { extern const char *Txt_No_projects; unsigned NumPrj; diff --git a/swad_project.h b/swad_project.h index 2f711ab02..a67d47d23 100644 --- a/swad_project.h +++ b/swad_project.h @@ -159,7 +159,7 @@ struct Project /*****************************************************************************/ void Prj_SeeProjects (void); -void Prj_ShowTableAllProjects (void); +void Prj_ShowTableSelectedProjects (void); void Prj_PutParams (struct Prj_Filter *Filter, Prj_Order_t Order, @@ -199,7 +199,6 @@ void Prj_RequestEditPrj (void); void Prj_AllocMemProject (struct Project *Prj); void Prj_FreeMemProject (struct Project *Prj); -void Prj_GetListProjects (void); void Prj_GetDataOfProjectByCod (struct Project *Prj); long Prj_GetCourseOfProject (long PrjCod); void Prj_FreeListProjects (void); @@ -215,10 +214,10 @@ void Prj_RecFormProject (void); void Prj_ShowFormConfig (void); void Prj_ReceiveConfigPrj (void); -void Prj_ReqLockAllProjectsEdition (void); -void Prj_ReqUnlockAllProjectsEdition (void); -void Prj_LockAllProjectsEdition (void); -void Prj_UnlockAllProjectsEdition (void); +void Prj_ReqLockSelectedProjectsEdition (void); +void Prj_ReqUnlockSelectedProjectsEdition (void); +void Prj_LockSelectedProjectsEdition (void); +void Prj_UnlockSelectedProjectsEdition (void); void Prj_LockProjectEdition (void); void Prj_UnlockProjectEdition (void); diff --git a/swad_test.c b/swad_test.c index 70578251a..e446f337d 100644 --- a/swad_test.c +++ b/swad_test.c @@ -5183,8 +5183,8 @@ static void Tst_PutFormEditOneQst (char Stem[Cns_MAX_BYTES_TEXT + 1], "TagTxt%u", NumTag); HTM_INPUT_TEXT (StrTagTxt,Tst_MAX_CHARS_TAG,Gbl.Test.Tags.Txt[NumTag],false, - "class=\"TAG_TXT\" onchange=\"changeSelTag('%u')\"", - NumTag); + "id=\"%s\" class=\"TAG_TXT\" onchange=\"changeSelTag('%u')\"", + StrTagTxt,NumTag); HTM_TD_End (); HTM_TR_End (); diff --git a/swad_user.c b/swad_user.c index 9b3a8846f..88da9d640 100644 --- a/swad_user.c +++ b/swad_user.c @@ -6188,20 +6188,27 @@ void Usr_PutFormToSelectUsrsToGoToAct (Act_Action_t NextAction,void (*FuncParams { if (Usr_GetIfShowBigList (NumTotalUsrs,FuncParams,NULL)) { - /* Form to select type of list used for select several users */ + /***** Form to select type of list used for select several users *****/ Usr_ShowFormsToSelectUsrListType (FuncParams); - /***** Put link to register students *****/ + /***** Link to register students *****/ Enr_CheckStdsAndPutButtonToRegisterStdsInCurrentCrs (); + /***** Form to select users ****/ /* Begin form */ Frm_StartForm (NextAction); + + /* Hidden parameters */ if (FuncParams) FuncParams (); Grp_PutParamsCodGrps (); - Gbl.FileBrowser.FullTree = true; // By default, show all files - Brw_PutHiddenParamFullTreeIfSelected (); // TODO: Put this parameter only in file browser - Par_PutHiddenParamChar ("SelectedUsrs",'Y'); + Par_PutHiddenParamChar ("SelectedUsrs",'Y'); // This parameter says to receiver of form + // that some users should be selected + if (NextAction == ActAdmAsgWrkCrs) + { + Gbl.FileBrowser.FullTree = true; // By default, show all files + Brw_PutHiddenParamFullTreeIfSelected (); + } /* Put list of users to select some of them */ HTM_TABLE_BeginCenter ();