From 90cd506f8e4cdc0cd9bf5f6da2d35aee6677ddaa Mon Sep 17 00:00:00 2001 From: acanas Date: Wed, 30 Sep 2020 20:23:52 +0200 Subject: [PATCH] Version20.3 --- sha2/sha2.o | Bin 31976 -> 31880 bytes swad_action.c | 3 ++ swad_action.h | 66 ++++++++++++++++++++------------------- swad_changelog.h | 4 +++ swad_config.h | 4 +-- swad_game.c | 75 ++++++++++++++++++++++++++++++++++++++++----- swad_game.h | 2 ++ swad_icon.c | 2 +- swad_text_action.c | 39 +++++++++++++++++------ 9 files changed, 144 insertions(+), 51 deletions(-) diff --git a/sha2/sha2.o b/sha2/sha2.o index 116172b21d4cb3c347c7df29d471c92d4eeadee6..cdc8304eaf298e4abc7cf53df6cd41baea36cf59 100644 GIT binary patch literal 31880 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 literal 31976 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 AUjP6A diff --git a/swad_action.c b/swad_action.c index 824b2dcd..3d8e6288 100644 --- a/swad_action.c +++ b/swad_action.c @@ -779,6 +779,8 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] = [ActChgVisResMchUsr ] = {1801,-1,TabUnk,ActSeeAllGam ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Mch_ToggleVisResultsMchUsr ,NULL}, + [ActLstOneGam ] = {1912,-1,TabUnk,ActSeeAllGam ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Gam_ListGame ,NULL}, + [ActFrmNewGam ] = {1652,-1,TabUnk,ActSeeAllGam ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Gam_RequestCreatOrEditGame ,NULL}, [ActEdiOneGam ] = {1653,-1,TabUnk,ActSeeAllGam ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Gam_RequestCreatOrEditGame ,NULL}, [ActNewGam ] = {1654,-1,TabUnk,ActSeeAllGam ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Gam_ReceiveFormGame ,NULL}, @@ -3725,6 +3727,7 @@ Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD] = // Do not reuse un ActValSetQst, // #1909 ActInvSetQst, // #1910 ActChgRooMAC, // #1911 + ActLstOneGam, // #1912 }; /*****************************************************************************/ diff --git a/swad_action.h b/swad_action.h index fa415392..0a56b4dc 100644 --- a/swad_action.h +++ b/swad_action.h @@ -64,7 +64,7 @@ typedef enum typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to indicate obsolete action -#define Act_MAX_ACTION_COD 1911 +#define Act_MAX_ACTION_COD 1912 #define Act_MAX_OPTIONS_IN_MENU_PER_TAB 13 @@ -741,38 +741,40 @@ typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to #define ActChgVisResMchUsr (ActChgCrsTT1stDay + 205) -#define ActFrmNewGam (ActChgCrsTT1stDay + 206) -#define ActEdiOneGam (ActChgCrsTT1stDay + 207) -#define ActNewGam (ActChgCrsTT1stDay + 208) -#define ActChgGam (ActChgCrsTT1stDay + 209) -#define ActReqRemGam (ActChgCrsTT1stDay + 210) -#define ActRemGam (ActChgCrsTT1stDay + 211) -#define ActHidGam (ActChgCrsTT1stDay + 212) -#define ActShoGam (ActChgCrsTT1stDay + 213) -#define ActAddOneGamQst (ActChgCrsTT1stDay + 214) -#define ActGamLstTstQst (ActChgCrsTT1stDay + 215) -#define ActAddTstQstToGam (ActChgCrsTT1stDay + 216) -#define ActReqRemGamQst (ActChgCrsTT1stDay + 217) -#define ActRemGamQst (ActChgCrsTT1stDay + 218) -#define ActUp_GamQst (ActChgCrsTT1stDay + 219) -#define ActDwnGamQst (ActChgCrsTT1stDay + 220) +#define ActLstOneGam (ActChgCrsTT1stDay + 206) -#define ActSeeSvy (ActChgCrsTT1stDay + 221) -#define ActAnsSvy (ActChgCrsTT1stDay + 222) -#define ActFrmNewSvy (ActChgCrsTT1stDay + 223) -#define ActEdiOneSvy (ActChgCrsTT1stDay + 224) -#define ActNewSvy (ActChgCrsTT1stDay + 225) -#define ActChgSvy (ActChgCrsTT1stDay + 226) -#define ActReqRemSvy (ActChgCrsTT1stDay + 227) -#define ActRemSvy (ActChgCrsTT1stDay + 228) -#define ActReqRstSvy (ActChgCrsTT1stDay + 229) -#define ActRstSvy (ActChgCrsTT1stDay + 230) -#define ActHidSvy (ActChgCrsTT1stDay + 231) -#define ActShoSvy (ActChgCrsTT1stDay + 232) -#define ActEdiOneSvyQst (ActChgCrsTT1stDay + 233) -#define ActRcvSvyQst (ActChgCrsTT1stDay + 234) -#define ActReqRemSvyQst (ActChgCrsTT1stDay + 235) -#define ActRemSvyQst (ActChgCrsTT1stDay + 236) +#define ActFrmNewGam (ActChgCrsTT1stDay + 207) +#define ActEdiOneGam (ActChgCrsTT1stDay + 208) +#define ActNewGam (ActChgCrsTT1stDay + 209) +#define ActChgGam (ActChgCrsTT1stDay + 210) +#define ActReqRemGam (ActChgCrsTT1stDay + 211) +#define ActRemGam (ActChgCrsTT1stDay + 212) +#define ActHidGam (ActChgCrsTT1stDay + 213) +#define ActShoGam (ActChgCrsTT1stDay + 214) +#define ActAddOneGamQst (ActChgCrsTT1stDay + 215) +#define ActGamLstTstQst (ActChgCrsTT1stDay + 216) +#define ActAddTstQstToGam (ActChgCrsTT1stDay + 217) +#define ActReqRemGamQst (ActChgCrsTT1stDay + 218) +#define ActRemGamQst (ActChgCrsTT1stDay + 219) +#define ActUp_GamQst (ActChgCrsTT1stDay + 220) +#define ActDwnGamQst (ActChgCrsTT1stDay + 221) + +#define ActSeeSvy (ActChgCrsTT1stDay + 222) +#define ActAnsSvy (ActChgCrsTT1stDay + 223) +#define ActFrmNewSvy (ActChgCrsTT1stDay + 224) +#define ActEdiOneSvy (ActChgCrsTT1stDay + 225) +#define ActNewSvy (ActChgCrsTT1stDay + 226) +#define ActChgSvy (ActChgCrsTT1stDay + 227) +#define ActReqRemSvy (ActChgCrsTT1stDay + 228) +#define ActRemSvy (ActChgCrsTT1stDay + 229) +#define ActReqRstSvy (ActChgCrsTT1stDay + 230) +#define ActRstSvy (ActChgCrsTT1stDay + 231) +#define ActHidSvy (ActChgCrsTT1stDay + 232) +#define ActShoSvy (ActChgCrsTT1stDay + 233) +#define ActEdiOneSvyQst (ActChgCrsTT1stDay + 234) +#define ActRcvSvyQst (ActChgCrsTT1stDay + 235) +#define ActReqRemSvyQst (ActChgCrsTT1stDay + 236) +#define ActRemSvyQst (ActChgCrsTT1stDay + 237) /*****************************************************************************/ /******************************** Files tab **********************************/ diff --git a/swad_changelog.h b/swad_changelog.h index 0b73dc4c..53a414f8 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -573,6 +573,10 @@ TODO: Que al generar un examen s TODO: Create module swad_test_result "sudo apt install webp" en Ubuntu, y "yum install libwebp libwebp-tools" en CentOS, para decodificar imágenes Web/ug reportado por Javier Fernández Baldomero. +TODO: En los resultados de una partida, cuando la pregunta ha sido modificada, no calcular ni mostrar la puntuación de esa pregunta. + Por ejemplo una pregunta podria haber sido bien contestada con 1 punto, y se muestra en esa pregunta modificada aparece 0 en rojo. + + Version 20.3: Sep 30, 2020 Non-editing teachers can list questions in a game. (304528 lines) Version 20.2.2: Sep 27, 2020 Fixed bug in exam. (304448 lines) Version 20.2.1: Sep 27, 2020 Fixed bug in exam, reported by Nuria Torres Rosell. (304442 lines) Version 20.2: Sep 26, 2020 Removed unused action. diff --git a/swad_config.h b/swad_config.h index 1c1ede28..f1b9ce1d 100644 --- a/swad_config.h +++ b/swad_config.h @@ -28,9 +28,9 @@ /** Uncomment one of the following installations of SWAD or create your own **/ /*****************************************************************************/ -//#define LOCALHOST_UBUNTU // Comment this line if not applicable +#define LOCALHOST_UBUNTU // Comment this line if not applicable //#define OPENSWAD_ORG // Comment this line if not applicable -#define SWAD_UGR_ES // Comment this line if not applicable +//#define SWAD_UGR_ES // Comment this line if not applicable //#define SWADBERRY_UGR_ES // Comment this line if not applicable /*****************************************************************************/ diff --git a/swad_game.c b/swad_game.c index a8883f22..ecdc7b74 100644 --- a/swad_game.c +++ b/swad_game.c @@ -110,6 +110,7 @@ extern struct Globals Gbl; static void Gam_ListAllGames (struct Gam_Games *Games); static bool Gam_CheckIfICanEditGames (void); +static bool Gam_CheckIfICanListGameQuestions (void); static void Gam_PutIconsListGames (void *Games); static void Gam_PutIconToCreateNewGame (struct Gam_Games *Games); static void Gam_PutButtonToCreateNewGame (struct Gam_Games *Games); @@ -275,7 +276,8 @@ static void Gam_ListAllGames (struct Gam_Games *Games) /***** Table head *****/ HTM_TABLE_BeginWideMarginPadding (5); HTM_TR_Begin (NULL); - if (Gam_CheckIfICanEditGames ()) + if (Gam_CheckIfICanEditGames () || + Gam_CheckIfICanListGameQuestions ()) HTM_TH (1,1,"CONTEXT_COL",NULL); // Column for contextual icons for (Order = (Gam_Order_t) 0; @@ -357,6 +359,24 @@ static bool Gam_CheckIfICanEditGames (void) return false; } +/*****************************************************************************/ +/**************** Check if I can list questions in games *********************/ +/*****************************************************************************/ + +static bool Gam_CheckIfICanListGameQuestions (void) + { + switch (Gbl.Usrs.Me.Role.Logged) + { + case Rol_NET: + case Rol_TCH: + case Rol_SYS_ADM: + return true; + default: + return false; + } + return false; + } + /*****************************************************************************/ /***************** Put contextual icons in list of games *******************/ /*****************************************************************************/ @@ -517,6 +537,8 @@ static void Gam_ShowOneGame (struct Gam_Games *Games, Dat_StartEndTime_t StartEndTime; const char *Color; char Txt[Cns_MAX_BYTES_TEXT + 1]; + bool ICanEditGames = Gam_CheckIfICanEditGames (); + bool ICanListQuestions = Gam_CheckIfICanListGameQuestions (); /***** Set anchor string *****/ Frm_SetAnchorStr (Game->GamCod,&Anchor); @@ -529,15 +551,23 @@ static void Gam_ShowOneGame (struct Gam_Games *Games, HTM_TR_Begin (NULL); /***** Icons related to this game *****/ - if (Gam_CheckIfICanEditGames ()) + if (ICanEditGames || + ICanListQuestions) { + Games->GamCod = Game->GamCod; + if (ShowOnlyThisGame) HTM_TD_Begin ("rowspan=\"2\" class=\"CONTEXT_COL\""); else HTM_TD_Begin ("rowspan=\"2\" class=\"CONTEXT_COL COLOR%u\"",Gbl.RowEvenOdd); - /* Icons to remove/edit this game */ - Gam_PutFormsToRemEditOneGame (Games,Game,Anchor); + if (ICanEditGames) + /* Icons to remove/edit this game */ + Gam_PutFormsToRemEditOneGame (Games,Game,Anchor); + else + /* Put icon to view game listing its questions */ + Ico_PutContextualIconToView (ActLstOneGam, + Gam_PutParams,Games); HTM_TD_End (); } @@ -717,8 +747,6 @@ static void Gam_PutFormsToRemEditOneGame (struct Gam_Games *Games, const struct Gam_Game *Game, const char *Anchor) { - Games->GamCod = Game->GamCod; - /***** Put icon to remove game *****/ Ico_PutContextualIconToRemove (ActReqRemGam, Gam_PutParams,Games); @@ -1331,6 +1359,40 @@ static bool Gam_CheckIfSimilarGameExists (const struct Gam_Game *Game) Game->GamCod) != 0); } +/*****************************************************************************/ +/************************* List the questions in a game **********************/ +/*****************************************************************************/ + +void Gam_ListGame (void) + { + struct Gam_Games Games; + struct Gam_Game Game; + char Txt[Cns_MAX_BYTES_TEXT + 1]; + + /***** Reset games context *****/ + Gam_ResetGames (&Games); + + /***** Reset game *****/ + Gam_ResetGame (&Game); + + /***** Check if I can list game questions *****/ + if (!Gam_CheckIfICanListGameQuestions ()) + Lay_NoPermissionExit (); + + /***** Get parameters *****/ + if ((Game.GamCod = Gam_GetParams (&Games)) <= 0) + Lay_ShowErrorAndExit ("Code of game is missing."); + + /***** Get game data *****/ + Gam_GetDataOfGameByCod (&Game); + Gam_GetGameTxtFromDB (Game.GamCod,Txt); + + /***** Show game *****/ + Gam_ShowOnlyOneGame (&Games,&Game, + true, // List game questions + false); // Do not put form to start new match + } + /*****************************************************************************/ /**************** Request the creation or edition of a game ******************/ /*****************************************************************************/ @@ -1379,7 +1441,6 @@ void Gam_RequestCreatOrEditGame (void) else /* Show questions of the game ready to be edited */ Gam_ListGameQuestions (&Games,&Game); - } /*****************************************************************************/ diff --git a/swad_game.h b/swad_game.h index 4f3c2916..e42b4e7e 100644 --- a/swad_game.h +++ b/swad_game.h @@ -131,6 +131,8 @@ void Gam_RemoveCrsGames (long CrsCod); void Gam_HideGame (void); void Gam_UnhideGame (void); +void Gam_ListGame (void); + void Gam_RequestCreatOrEditGame (void); void Gam_ReceiveFormGame (void); diff --git a/swad_icon.c b/swad_icon.c index d5ff9119..00ff4a3a 100644 --- a/swad_icon.c +++ b/swad_icon.c @@ -268,7 +268,7 @@ void Ico_PutContextualIconToView (Act_Action_t NextAction, Lay_PutContextualLinkOnlyIcon (NextAction,NULL, FuncParams,Args, - "eye.svg", + "list.svg", Txt_View); } diff --git a/swad_text_action.c b/swad_text_action.c index 058258bd..abfd1986 100644 --- a/swad_text_action.c +++ b/swad_text_action.c @@ -11757,6 +11757,27 @@ const char *Txt_Actions[Act_NUM_ACTIONS] = "" // Potrzebujesz tlumaczenie #elif L==9 // pt "" // Precisa de tradução +#endif + , + [ActLstOneGam] = +#if L==1 // ca + "" // Necessita traducció +#elif L==2 // de + "" // Need Übersetzung +#elif L==3 // en + "View one game and its questions" +#elif L==4 // es + "Ver un juego y sus preguntas" +#elif L==5 // fr + "" // Besoin de traduction +#elif L==6 // gn + "Ver un juego y sus preguntas" // Okoteve traducción +#elif L==7 // it + "" // Bisogno di traduzione +#elif L==8 // pl + "" // Potrzebujesz tlumaczenie +#elif L==9 // pt + "" // Precisa de tradução #endif , [ActFrmNewGam] = @@ -11767,11 +11788,11 @@ const char *Txt_Actions[Act_NUM_ACTIONS] = #elif L==3 // en "Form to create a new game" #elif L==4 // es - "" + "Formulario para crear un nuevo juego" #elif L==5 // fr "" // Besoin de traduction #elif L==6 // gn - "" // Okoteve traducción + "Formulario para crear un nuevo juego" // Okoteve traducción #elif L==7 // it "" // Bisogno di traduzione #elif L==8 // pl @@ -11786,13 +11807,13 @@ const char *Txt_Actions[Act_NUM_ACTIONS] = #elif L==2 // de "" // Need Übersetzung #elif L==3 // en - "Edit one game" + "Edit game" #elif L==4 // es - "" + "Editar juego" #elif L==5 // fr "" // Besoin de traduction #elif L==6 // gn - "" // Okoteve traducción + "Editar juego" // Okoteve traducción #elif L==7 // it "" // Bisogno di traduzione #elif L==8 // pl @@ -11809,11 +11830,11 @@ const char *Txt_Actions[Act_NUM_ACTIONS] = #elif L==3 // en "Create new game" #elif L==4 // es - "" + "Crear nuevo juego" #elif L==5 // fr "" // Besoin de traduction #elif L==6 // gn - "" // Okoteve traducción + "Crear nuevo juego" // Okoteve traducción #elif L==7 // it "" // Bisogno di traduzione #elif L==8 // pl @@ -11830,11 +11851,11 @@ const char *Txt_Actions[Act_NUM_ACTIONS] = #elif L==3 // en "Modify data of an existing game" #elif L==4 // es - "" + "Modificar datos de un juego existente" #elif L==5 // fr "" // Besoin de traduction #elif L==6 // gn - "" // Okoteve traducción + "Modificar datos de un juego existente" // Okoteve traducción #elif L==7 // it "" // Bisogno di traduzione #elif L==8 // pl