diff --git a/swad_changelog.h b/swad_changelog.h index 9c6c8b0a7..278ddff40 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -471,10 +471,11 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - * En OpenSWAD: ps2pdf source.ps destination.pdf */ -#define Log_PLATFORM_VERSION "SWAD 19.19.4 (2019-09-29)" +#define Log_PLATFORM_VERSION "SWAD 19.19.5 (2019-09-29)" #define CSS_FILE "swad19.15.css" #define JS_FILE "swad19.15.js" /* + Version 19.19.5: Sep 29, 2019 Code refactoring in games. (246612 lines) Version 19.19.4: Sep 29, 2019 Code refactoring in games. (246638 lines) Version 19.19.3: Sep 29, 2019 Students will not see matches results for groups to which they don't belong. (246645 lines) Version 19.19.2: Sep 29, 2019 Students will not see icons to remove matches. (246619 lines) diff --git a/swad_game.c b/swad_game.c index 6d733c2cd..4be5beb0a 100644 --- a/swad_game.c +++ b/swad_game.c @@ -402,7 +402,7 @@ void Gam_ShowOneGame (long GamCod, fprintf (Gbl.F.Out,""); /***** Icons related to this game *****/ - if (Game.Status.ICanEdit) + if (Gam_CheckIfICanEditGames ()) { fprintf (Gbl.F.Out,""); @@ -451,8 +451,8 @@ void Gam_ShowOneGame (long GamCod, Frm_StartForm (ActSeeGam); Gam_PutParams (); Frm_LinkFormSubmit (Txt_View_game, - Game.Status.Visible ? "ASG_TITLE" : - "ASG_TITLE_LIGHT",NULL); + Game.Hidden ? "ASG_TITLE_LIGHT": + "ASG_TITLE",NULL); fprintf (Gbl.F.Out,"%s", Game.Title); Frm_EndForm (); @@ -460,8 +460,8 @@ void Gam_ShowOneGame (long GamCod, /* Number of questions */ fprintf (Gbl.F.Out,"
%s: %u
", - Game.Status.Visible ? "ASG_GRP" : - "ASG_GRP_LIGHT", + Game.Hidden ? "ASG_GRP_LIGHT" : + "ASG_GRP", Txt_No_of_questions, Game.NumQsts); @@ -477,8 +477,8 @@ void Gam_ShowOneGame (long GamCod, Frm_StartForm (ActSeeGam); Gam_PutParams (); Frm_LinkFormSubmit (Txt_Matches, - Game.Status.Visible ? "ASG_TITLE" : - "ASG_TITLE_LIGHT",NULL); + Game.Hidden ? "ASG_TITLE_LIGHT" : + "ASG_TITLE",NULL); if (ShowOnlyThisGame) fprintf (Gbl.F.Out,"%s: ",Txt_Matches); fprintf (Gbl.F.Out,"%u",Game.NumMchs); @@ -511,8 +511,8 @@ void Gam_ShowOneGame (long GamCod, Str_InsertLinks (Txt,Cns_MAX_BYTES_TEXT,60); // Insert links fprintf (Gbl.F.Out,"
%s
" "", - Game.Status.Visible ? "DAT" : - "DAT_LIGHT", + Game.Hidden ? "DAT_LIGHT" : + "DAT", Txt); /***** End 2nd row of this game *****/ @@ -547,7 +547,7 @@ void Gam_ShowOneGame (long GamCod, static void Gam_WriteAuthor (struct Game *Game) { - Usr_WriteAuthor1Line (Game->UsrCod,!Game->Status.Visible); + Usr_WriteAuthor1Line (Game->UsrCod,Game->Hidden); } /*****************************************************************************/ @@ -569,11 +569,11 @@ static void Gam_PutFormsToRemEditOneGame (const struct Game *Game, /***** Put icon to remove game *****/ Ico_PutContextualIconToRemove (ActReqRemGam,Gam_PutParams); - /***** Put icon to hide/show game *****/ - if (Game->Status.Visible) - Ico_PutContextualIconToHide (ActHidGam,Anchor,Gam_PutParams); - else + /***** Put icon to unhide/hide game *****/ + if (Game->Hidden) Ico_PutContextualIconToUnhide (ActShoGam,Anchor,Gam_PutParams); + else + Ico_PutContextualIconToHide (ActHidGam,Anchor,Gam_PutParams); /***** Put icon to edit game *****/ if (!Game->NumMchs) // Edit only if match has no matches @@ -754,7 +754,7 @@ void Gam_GetDataOfGameByCod (struct Game *Game) Game->CrsCod = Str_ConvertStrCodToLongCod (row[1]); /* Get whether the game is hidden (row[2]) */ - Game->Status.Visible = (row[2][0] == 'N'); + Game->Hidden = (row[2][0] == 'Y'); /* Get author of the game (row[3]) */ Game->UsrCod = Str_ConvertStrCodToLongCod (row[3]); @@ -768,30 +768,6 @@ void Gam_GetDataOfGameByCod (struct Game *Game) /* Get number of matches */ Game->NumMchs = Mch_GetNumMchsInGame (Game->GamCod); - - /* Can I view results of the game? - Can I edit game? */ - switch (Gbl.Usrs.Me.Role.Logged) - { - case Rol_STD: - Game->Status.ICanEdit = false; - break; - case Rol_NET: - Game->Status.ICanEdit = false; - break; - case Rol_TCH: - case Rol_DEG_ADM: - case Rol_CTR_ADM: - case Rol_INS_ADM: - Game->Status.ICanEdit = true; - break; - case Rol_SYS_ADM: - Game->Status.ICanEdit = true; - break; - default: - Game->Status.ICanEdit = false; - break; - } } else /* Initialize to empty game */ @@ -846,8 +822,7 @@ static void Gam_ResetGame (struct Game *Game) Game->Title[0] = '\0'; Game->NumQsts = 0; Game->NumMchs = 0; - Game->Status.Visible = true; - Game->Status.ICanEdit = false; + Game->Hidden = false; } /*****************************************************************************/ @@ -934,7 +909,7 @@ void Gam_AskRemGame (void) /***** Get data of the game from database *****/ Gam_GetDataOfGameByCod (&Game); - if (!Game.Status.ICanEdit) + if (!Gam_CheckIfICanEditGames ()) Lay_ShowErrorAndExit ("You can not remove this game."); /***** Show question and button to remove game *****/ @@ -963,7 +938,7 @@ void Gam_RemoveGame (void) /***** Get data of the game from database *****/ Gam_GetDataOfGameByCod (&Game); - if (!Game.Status.ICanEdit) + if (!Gam_CheckIfICanEditGames ()) Lay_ShowErrorAndExit ("You can not remove this game."); /***** Remove game from all tables *****/ @@ -1035,7 +1010,7 @@ void Gam_HideGame (void) /***** Get data of the game from database *****/ Gam_GetDataOfGameByCod (&Game); - if (!Game.Status.ICanEdit) + if (!Gam_CheckIfICanEditGames ()) Lay_ShowErrorAndExit ("You can not hide this game."); /***** Hide game *****/ @@ -1061,7 +1036,7 @@ void Gam_UnhideGame (void) /***** Get data of the game from database *****/ Gam_GetDataOfGameByCod (&Game); - if (!Game.Status.ICanEdit) + if (!Gam_CheckIfICanEditGames ()) Lay_ShowErrorAndExit ("You can not unhide this game."); /***** Show game *****/ @@ -1128,7 +1103,7 @@ void Gam_RequestCreatOrEditGame (void) { /* Get data of the game from database */ Gam_GetDataOfGameByCod (&Game); - if (!Game.Status.ICanEdit) + if (!Gam_CheckIfICanEditGames ()) Lay_ShowErrorAndExit ("You can not update this game."); /* Get text of the game from database */ @@ -1227,7 +1202,7 @@ void Gam_RecFormGame (void) /* Get data of the old (current) game from database */ OldGame.GamCod = NewGame.GamCod; Gam_GetDataOfGameByCod (&OldGame); - if (!OldGame.Status.ICanEdit) + if (!Gam_CheckIfICanEditGames ()) Lay_ShowErrorAndExit ("You can not update this game."); } @@ -1581,6 +1556,7 @@ static void Gam_ListGameQuestions (struct Game *Game) unsigned NumQsts; bool Editing = (Gbl.Action.Act == ActEdiOneGam || Gbl.Action.Act == ActAddOneGamQst); // TODO: Ampliar casos en los que se está editando para que se muestre el botón de Añadir preguntas + bool ICanEditGames = Gam_CheckIfICanEditGames (); /***** Get data of questions from database *****/ NumQsts = (unsigned) DB_QuerySELECT (&mysql_res,"can not get data of a question", @@ -1598,8 +1574,8 @@ static void Gam_ListGameQuestions (struct Game *Game) /***** Start box *****/ Gam_CurrentGamCod = Game->GamCod; - Box_StartBox (NULL,Txt_Questions,Game->Status.ICanEdit ? Gam_PutIconToAddNewQuestions : - NULL, + Box_StartBox (NULL,Txt_Questions,ICanEditGames ? Gam_PutIconToAddNewQuestions : + NULL, Hlp_ASSESSMENT_Games_questions,Box_NOT_CLOSABLE); if (NumQsts) @@ -1608,9 +1584,9 @@ static void Gam_ListGameQuestions (struct Game *Game) else // This game has no questions Ale_ShowAlert (Ale_INFO,Txt_This_game_has_no_questions); - if (Game->Status.ICanEdit && // I can edit - (!NumQsts || // This game has no questions - Editing)) // I am editing + if (ICanEditGames && // I can edit + (!NumQsts || // This game has no questions + Editing)) // I am editing /***** Put button to add a new question in this game *****/ Gam_PutButtonToAddNewQuestions (); diff --git a/swad_game.h b/swad_game.h index 200e8a3f3..dc5dc63f5 100644 --- a/swad_game.h +++ b/swad_game.h @@ -44,13 +44,9 @@ struct Game long UsrCod; // Author code char Title[Gam_MAX_BYTES_TITLE + 1]; time_t TimeUTC[Dat_NUM_START_END_TIME]; + bool Hidden; // Game is hidden unsigned NumQsts; // Number of questions in the game unsigned NumMchs; // Number of matches in the game - struct - { - bool Visible; // Game is not hidden - bool ICanEdit; - } Status; }; #define Gam_NUM_ORDERS 3