Version19.6

This commit is contained in:
Antonio Cañas Vargas 2019-09-17 23:52:44 +02:00
parent 0ce46926a9
commit 8f146f33d6
6 changed files with 43 additions and 198 deletions

View File

@ -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

View File

@ -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 **********************************/

View File

@ -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 , 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.

View File

@ -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 ******************************/
/*****************************************************************************/

View File

@ -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);

View File

@ -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 <strong>%s</strong>?";
#elif L==2 // de
"Wollen Sie die Spiel <strong>%s</strong> wirklich reset?";
#elif L==3 // en
"Do you really want to reset the game <strong>%s</strong>?";
#elif L==4 // es
"&iquest;Realmente desea poner a cero el juego <strong>%s</strong>?";
#elif L==5 // fr
"Voulez-vous vraiment reset le jeu <strong>%s</strong>?";
#elif L==6 // gn
"&iquest;Realmente desea poner a cero el juego <strong>%s</strong>?"; // Okoteve traducción
#elif L==7 // it
"Vuoi realmente resettare il gioco <strong>%s</strong>?";
#elif L==8 // pl
"Czy na pewno chcesz zresetowac gra <strong>%s</strong>?";
#elif L==9 // pt
"Voc&ecirc; realmente deseja reiniciar o jogo <strong>%s</strong>?";
#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 <strong>%s</strong>?";
@ -13574,27 +13553,6 @@ const char *Txt_Game_X_removed = // Warning: it is very important to include %s
"Jogo <strong>%s</strong> 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 <strong>%s</strong> posat a zero..";
#elif L==2 // de
"Spiel <strong>%s</strong> zur&uuml;ckgesetzt.";
#elif L==3 // en
"Game <strong>%s</strong> reset.";
#elif L==4 // es
"Juego <strong>%s</strong> puesto a cero.";
#elif L==5 // fr
"Jeu <strong>%s</strong> remis &agrave; z&eacute;ro.";
#elif L==6 // gn
"Juego <strong>%s</strong> puesto a cero."; // Okoteve traducción
#elif L==7 // it
"Gioco <strong>%s</strong> resettato.";
#elif L==8 // pl
"Gra <strong>%s</strong> zresetowane.";
#elif L==9 // pt
"Jogo <strong>%s</strong> 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&eogon;";
#elif L==9 // pt
"Reiniciar jogo";
#endif
const char *Txt_Reset_survey =
#if L==1 // ca
"Posar enquesta a zero";