diff --git a/swad_action.c b/swad_action.c index be439c2c6..d3f000ede 100644 --- a/swad_action.c +++ b/swad_action.c @@ -632,8 +632,6 @@ Assessment: 463. ActChgGam Modify data of an existing game 464. ActReqRemGam Request the removal of a game 465. ActRemGam Remove game - 466. ActReqRstGam Request the reset of answers of a game - 467. ActRstGam Reset answers of game 468. ActHidGam Hide game 469. ActShoGam Show game 470. ActAddOneGamQst Add a new question to a game @@ -2176,8 +2174,6 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] = /* ActChgGam */{1655,-1,TabUnk,ActSeeAllGam ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Gam_RecFormGame ,NULL}, /* ActReqRemGam */{1656,-1,TabUnk,ActSeeAllGam ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Gam_AskRemGame ,NULL}, /* ActRemGam */{1657,-1,TabUnk,ActSeeAllGam ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Gam_RemoveGame ,NULL}, - /* ActReqRstGam */{1658,-1,TabUnk,ActSeeAllGam ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Gam_AskResetGame ,NULL}, - /* ActRstGam */{1659,-1,TabUnk,ActSeeAllGam ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Gam_ResetGame ,NULL}, /* ActHidGam */{1660,-1,TabUnk,ActSeeAllGam ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Gam_HideGame ,NULL}, /* ActShoGam */{1661,-1,TabUnk,ActSeeAllGam ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Gam_UnhideGame ,NULL}, /* ActAddOneGamQst */{1662,-1,TabUnk,ActSeeAllGam ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Gam_RequestNewQuestion ,NULL}, @@ -4878,8 +4874,8 @@ Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD] = // Do not reuse un ActChgGam, // #1655 ActReqRemGam, // #1656 ActRemGam, // #1657 - ActReqRstGam, // #1658 - ActRstGam, // #1659 + -1, // #1658 (obsolete action) + -1, // #1659 (obsolete action) ActHidGam, // #1660 ActShoGam, // #1661 ActAddOneGamQst, // #1662 @@ -4892,7 +4888,7 @@ Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD] = // Do not reuse un ActDwnGamQst, // #1669 ActReqNewMchTch, // #1670 ActNewMchTch, // #1671 - ActFwdMchTch, // #1672 + ActFwdMchTch, // #1672 -1, // #1673 (obsolete action) ActSeePrj, // #1674 ActFrmNewPrj, // #1675 diff --git a/swad_action.h b/swad_action.h index 53fb67856..b8f09dd4d 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_NUM_ACTIONS (1 + 4 + 64 + 38 + 12 + 42 + 36 + 19 + 110 + 173 + 437 + 176 + 169 + 16 + 68) +#define Act_NUM_ACTIONS (1 + 4 + 64 + 38 + 12 + 42 + 36 + 19 + 110 + 171 + 437 + 176 + 169 + 16 + 68) #define Act_MAX_ACTION_COD 1794 @@ -628,44 +628,42 @@ typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to #define ActChgGam (ActChgCrsTT1stDay + 135) #define ActReqRemGam (ActChgCrsTT1stDay + 136) #define ActRemGam (ActChgCrsTT1stDay + 137) -#define ActReqRstGam (ActChgCrsTT1stDay + 138) -#define ActRstGam (ActChgCrsTT1stDay + 139) -#define ActHidGam (ActChgCrsTT1stDay + 140) -#define ActShoGam (ActChgCrsTT1stDay + 141) -#define ActAddOneGamQst (ActChgCrsTT1stDay + 142) -#define ActGamLstTstQst (ActChgCrsTT1stDay + 143) -#define ActAddTstQstToGam (ActChgCrsTT1stDay + 144) -#define ActReqRemGamQst (ActChgCrsTT1stDay + 145) -#define ActRemGamQst (ActChgCrsTT1stDay + 146) -#define ActUp_GamQst (ActChgCrsTT1stDay + 147) -#define ActDwnGamQst (ActChgCrsTT1stDay + 148) +#define ActHidGam (ActChgCrsTT1stDay + 138) +#define ActShoGam (ActChgCrsTT1stDay + 139) +#define ActAddOneGamQst (ActChgCrsTT1stDay + 140) +#define ActGamLstTstQst (ActChgCrsTT1stDay + 141) +#define ActAddTstQstToGam (ActChgCrsTT1stDay + 142) +#define ActReqRemGamQst (ActChgCrsTT1stDay + 143) +#define ActRemGamQst (ActChgCrsTT1stDay + 144) +#define ActUp_GamQst (ActChgCrsTT1stDay + 145) +#define ActDwnGamQst (ActChgCrsTT1stDay + 146) -#define ActSeeSvy (ActChgCrsTT1stDay + 149) -#define ActAnsSvy (ActChgCrsTT1stDay + 150) -#define ActFrmNewSvy (ActChgCrsTT1stDay + 151) -#define ActEdiOneSvy (ActChgCrsTT1stDay + 152) -#define ActNewSvy (ActChgCrsTT1stDay + 153) -#define ActChgSvy (ActChgCrsTT1stDay + 154) -#define ActReqRemSvy (ActChgCrsTT1stDay + 155) -#define ActRemSvy (ActChgCrsTT1stDay + 156) -#define ActReqRstSvy (ActChgCrsTT1stDay + 157) -#define ActRstSvy (ActChgCrsTT1stDay + 158) -#define ActHidSvy (ActChgCrsTT1stDay + 159) -#define ActShoSvy (ActChgCrsTT1stDay + 160) -#define ActEdiOneSvyQst (ActChgCrsTT1stDay + 161) -#define ActRcvSvyQst (ActChgCrsTT1stDay + 162) -#define ActReqRemSvyQst (ActChgCrsTT1stDay + 163) -#define ActRemSvyQst (ActChgCrsTT1stDay + 164) +#define ActSeeSvy (ActChgCrsTT1stDay + 147) +#define ActAnsSvy (ActChgCrsTT1stDay + 148) +#define ActFrmNewSvy (ActChgCrsTT1stDay + 149) +#define ActEdiOneSvy (ActChgCrsTT1stDay + 150) +#define ActNewSvy (ActChgCrsTT1stDay + 151) +#define ActChgSvy (ActChgCrsTT1stDay + 152) +#define ActReqRemSvy (ActChgCrsTT1stDay + 153) +#define ActRemSvy (ActChgCrsTT1stDay + 154) +#define ActReqRstSvy (ActChgCrsTT1stDay + 155) +#define ActRstSvy (ActChgCrsTT1stDay + 156) +#define ActHidSvy (ActChgCrsTT1stDay + 157) +#define ActShoSvy (ActChgCrsTT1stDay + 158) +#define ActEdiOneSvyQst (ActChgCrsTT1stDay + 159) +#define ActRcvSvyQst (ActChgCrsTT1stDay + 160) +#define ActReqRemSvyQst (ActChgCrsTT1stDay + 161) +#define ActRemSvyQst (ActChgCrsTT1stDay + 162) -#define ActSeeOneExaAnn (ActChgCrsTT1stDay + 165) -#define ActSeeDatExaAnn (ActChgCrsTT1stDay + 166) -#define ActEdiExaAnn (ActChgCrsTT1stDay + 167) -#define ActRcvExaAnn (ActChgCrsTT1stDay + 168) -#define ActPrnExaAnn (ActChgCrsTT1stDay + 169) -#define ActReqRemExaAnn (ActChgCrsTT1stDay + 170) -#define ActRemExaAnn (ActChgCrsTT1stDay + 171) -#define ActHidExaAnn (ActChgCrsTT1stDay + 172) -#define ActShoExaAnn (ActChgCrsTT1stDay + 173) +#define ActSeeOneExaAnn (ActChgCrsTT1stDay + 163) +#define ActSeeDatExaAnn (ActChgCrsTT1stDay + 164) +#define ActEdiExaAnn (ActChgCrsTT1stDay + 165) +#define ActRcvExaAnn (ActChgCrsTT1stDay + 166) +#define ActPrnExaAnn (ActChgCrsTT1stDay + 167) +#define ActReqRemExaAnn (ActChgCrsTT1stDay + 168) +#define ActRemExaAnn (ActChgCrsTT1stDay + 169) +#define ActHidExaAnn (ActChgCrsTT1stDay + 170) +#define ActShoExaAnn (ActChgCrsTT1stDay + 171) /*****************************************************************************/ /******************************** Files tab **********************************/ diff --git a/swad_changelog.h b/swad_changelog.h index b281f021f..f2f3fcda5 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -459,20 +459,14 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - * En OpenSWAD: ps2pdf source.ps destination.pdf */ -/* -can not remove the groups associated to matches of a game -Type of answer not valid in a game. - - -¿Eliminar botón de reset en un juego? Tal vez sí, para simplificar. No tiene sentido resetear todas las partidas de un juego. -¿Poner botón de reset en una partida? No parece necesario, basta con eliminarla y crear otra - -*/ - -#define Log_PLATFORM_VERSION "SWAD 19.5.5 (2019-09-17)" +#define Log_PLATFORM_VERSION "SWAD 19.6 (2019-09-17)" #define CSS_FILE "swad19.3.css" #define JS_FILE "swad18.130.2.js" /* + Version 19.6: Sep 17, 2019 Remove actions to reset a game. (244600 lines) + 1 change necessary in database: +UPDATE actions SET Obsolete='Y' WHERE ActCod IN (1658,1659); + Version 19.5.5: Sep 17, 2019 Fixed bug while creating a match. (244733 lines) Version 19.5.4: Sep 17, 2019 Fixed bugs while removing games in a course. (244732 lines) Version 19.5.3: Sep 17, 2019 Removed unused column in table of matches. diff --git a/swad_game.c b/swad_game.c index bbf48137f..5d965af6e 100644 --- a/swad_game.c +++ b/swad_game.c @@ -532,16 +532,9 @@ void Gam_PutHiddenParamGameOrder (void) static void Gam_PutFormsToRemEditOneGame (const struct Game *Game, const char *Anchor) { - extern const char *Txt_Reset; - /***** Put icon to remove game *****/ Ico_PutContextualIconToRemove (ActReqRemGam,Gam_PutParams); - /***** Put icon to reset game *****/ - Lay_PutContextualLinkOnlyIcon (ActReqRstGam,NULL,Gam_PutParams, - "recycle.svg", - Txt_Reset); - /***** Put icon to hide/show game *****/ if (Game->Status.Visible) Ico_PutContextualIconToHide (ActHidGam,Anchor,Gam_PutParams); @@ -919,77 +912,6 @@ void Gam_RemoveGame (void) Gam_ListAllGames (); } -/*****************************************************************************/ -/***************** Ask for confirmation of reset of a game *****************/ -/*****************************************************************************/ - -void Gam_AskResetGame (void) - { - extern const char *Txt_Do_you_really_want_to_reset_the_game_X; - extern const char *Txt_Reset_game; - struct Game Game; - - /***** Get parameters *****/ - Gam_GetParamOrder (); - Grp_GetParamWhichGrps (); - Gbl.Games.CurrentPage = Pag_GetParamPagNum (Pag_GAMES); - - /***** Get game code *****/ - if ((Game.GamCod = Gam_GetParamGameCod ()) == -1L) - Lay_ShowErrorAndExit ("Code of game is missing."); - - /***** Get data of the game from database *****/ - Gam_GetDataOfGameByCod (&Game); - if (!Game.Status.ICanEdit) - Lay_ShowErrorAndExit ("You can not reset this game."); - - /***** Ask for confirmation of reset *****/ - Gam_CurrentGamCod = Game.GamCod; - Ale_ShowAlertAndButton (ActRstGam,NULL,NULL, - Gam_PutParams, - Btn_REMOVE_BUTTON, - Txt_Reset_game, - Ale_QUESTION,Txt_Do_you_really_want_to_reset_the_game_X, - Game.Title); - - /***** Show games again *****/ - Gam_ListAllGames (); - } - -/*****************************************************************************/ -/******************************* Reset a game ******************************/ -/*****************************************************************************/ - -void Gam_ResetGame (void) - { - extern const char *Txt_Game_X_reset; - struct Game Game; - - /***** Get game code *****/ - if ((Game.GamCod = Gam_GetParamGameCod ()) == -1L) - Lay_ShowErrorAndExit ("Code of game is missing."); - - /***** Get data of the game from database *****/ - Gam_GetDataOfGameByCod (&Game); - if (!Game.Status.ICanEdit) - Lay_ShowErrorAndExit ("You can not reset this game."); - - /***** Reset all the answers in this game *****/ - DB_QueryUPDATE ("can not reset answers of a game", - "DELETE FROM mch_answers" - " USING mch_matches,mch_answers" - " WHERE mch_matches.GamCod=%ld" - " AND mch_matches.MchCod=mch_answers.MchCod", - Game.GamCod); - - /***** Write message to show the change made *****/ - Ale_ShowAlert (Ale_SUCCESS,Txt_Game_X_reset, - Game.Title); - - /***** Show games again *****/ - Gam_ListAllGames (); - } - /*****************************************************************************/ /******************************** Hide a game ******************************/ /*****************************************************************************/ diff --git a/swad_game.h b/swad_game.h index 366479c37..9fbef36c3 100644 --- a/swad_game.h +++ b/swad_game.h @@ -97,8 +97,6 @@ void Gam_PutParamGameCod (long GamCod); long Gam_GetParamGameCod (void); void Gam_AskRemGame (void); void Gam_RemoveGame (void); -void Gam_AskResetGame (void); -void Gam_ResetGame (void); void Gam_HideGame (void); void Gam_UnhideGame (void); void Gam_RecFormGame (void); diff --git a/swad_text.c b/swad_text.c index 1e2f3e7b7..4cf5a180c 100644 --- a/swad_text.c +++ b/swad_text.c @@ -9075,27 +9075,6 @@ const char *Txt_Do_you_really_want_to_remove_your_photo = "Você realmente deseja remover a sua foto?"; #endif -const char *Txt_Do_you_really_want_to_reset_the_game_X = // Warning: it is very important to include %s in the following sentences -#if L==1 // ca - "De veres voleu posar a zero le joc %s?"; -#elif L==2 // de - "Wollen Sie die Spiel %s wirklich reset?"; -#elif L==3 // en - "Do you really want to reset the game %s?"; -#elif L==4 // es - "¿Realmente desea poner a cero el juego %s?"; -#elif L==5 // fr - "Voulez-vous vraiment reset le jeu %s?"; -#elif L==6 // gn - "¿Realmente desea poner a cero el juego %s?"; // Okoteve traducción -#elif L==7 // it - "Vuoi realmente resettare il gioco %s?"; -#elif L==8 // pl - "Czy na pewno chcesz zresetowac gra %s?"; -#elif L==9 // pt - "Você realmente deseja reiniciar o jogo %s?"; -#endif - const char *Txt_Do_you_really_want_to_reset_the_survey_X = // Warning: it is very important to include %s in the following sentences #if L==1 // ca "De veres voleu posar a zero l'enquesta %s?"; @@ -13574,27 +13553,6 @@ const char *Txt_Game_X_removed = // Warning: it is very important to include %s "Jogo %s removido."; #endif -const char *Txt_Game_X_reset = // Warning: it is very important to include %s in the following sentences -#if L==1 // ca - "Joc %s posat a zero.."; -#elif L==2 // de - "Spiel %s zurückgesetzt."; -#elif L==3 // en - "Game %s reset."; -#elif L==4 // es - "Juego %s puesto a cero."; -#elif L==5 // fr - "Jeu %s remis à zéro."; -#elif L==6 // gn - "Juego %s puesto a cero."; // Okoteve traducción -#elif L==7 // it - "Gioco %s resettato."; -#elif L==8 // pl - "Gra %s zresetowane."; -#elif L==9 // pt - "Jogo %s fixado em zero."; -#endif - const char *Txt_Games = #if L==1 // ca "Jocs"; @@ -33257,27 +33215,6 @@ const char *Txt_Reset = "Reiniciar"; #endif -const char *Txt_Reset_game = -#if L==1 // ca - "Posar joc a zero"; -#elif L==2 // de - "Reset Spiel"; -#elif L==3 // en - "Reset game"; -#elif L==4 // es - "Poner juego a cero"; -#elif L==5 // fr - "Reset jeu"; -#elif L==6 // gn - "Poner juego a cero"; // Okoteve traducción -#elif L==7 // it - "Resettare gioco"; -#elif L==8 // pl - "Reset grę"; -#elif L==9 // pt - "Reiniciar jogo"; -#endif - const char *Txt_Reset_survey = #if L==1 // ca "Posar enquesta a zero";