diff --git a/swad_changelog.h b/swad_changelog.h index 90c07615..8558d7d9 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -557,14 +557,14 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - * En OpenSWAD: ps2pdf source.ps destination.pdf */ -#define Log_PLATFORM_VERSION "SWAD 19.235 (2020-05-17)" +#define Log_PLATFORM_VERSION "SWAD 19.235.1 (2020-05-17)" #define CSS_FILE "swad19.230.1.css" #define JS_FILE "swad19.230.3.js" /* TODO: Comprobar si el directorio público que devuelve Ses_GetPublicDirFromCache sigue existiendo. // Si no existe, hay que crear un nuevo directorio y meterlo en cache -TODO: ¿Mover importar y exportar a icono en la esquina? + Version 19.235.1: May 17, 2020 Changes in edition of bank of questions. (301193 lines) Version 19.235: May 17, 2020 New module swad_tag for question tags. (301147 lines) Version 19.234: May 17, 2020 Option to edit tags in bank of questions. (301061 lines) Copy the following 3 icons to icon public directory: diff --git a/swad_tag.c b/swad_tag.c index 90185e11..0293fe5d 100644 --- a/swad_tag.c +++ b/swad_tag.c @@ -104,6 +104,21 @@ void Tag_FreeTagsList (struct Tag_Tags *Tags) } } +/*****************************************************************************/ +/*************** Put a link (form) to import test questions ******************/ +/*****************************************************************************/ + +void Tag_PutIconToEditTags (void) + { + extern const char *Txt_Edit_tags; + + /***** Put a link to create a file with questions *****/ + Lay_PutContextualLinkOnlyIcon (ActEdiTag,NULL, + NULL,NULL, + "tag.svg", + Txt_Edit_tags); + } + /*****************************************************************************/ /******************* Check if current course has test tags *******************/ /*****************************************************************************/ diff --git a/swad_tag.h b/swad_tag.h index af2f1bf1..2637e83f 100644 --- a/swad_tag.h +++ b/swad_tag.h @@ -59,6 +59,8 @@ struct Tag_Tags void Tag_ResetTags (struct Tag_Tags *Tags); void Tag_FreeTagsList (struct Tag_Tags *Tags); +void Tag_PutIconToEditTags (void); + bool Tag_CheckIfCurrentCrsHasTestTags (void); unsigned Tag_GetAllTagsFromCurrentCrs (MYSQL_RES **mysql_res); unsigned Tag_GetEnabledTagsFromThisCrs (MYSQL_RES **mysql_res); diff --git a/swad_test.c b/swad_test.c index b0e46e8e..34a6378a 100644 --- a/swad_test.c +++ b/swad_test.c @@ -150,7 +150,8 @@ static void Tst_ShowFormRequestSelectTestsForSet (struct Exa_Exams *Exams, static void Tst_ShowFormRequestSelectTestsForGame (struct Gam_Games *Games, struct Tst_Test *Test); static bool Tst_CheckIfICanEditTests (void); -static void Tst_PutIconsBankQsts (void *Test); +static void Tst_PutIconsRequestBankQsts (__attribute__((unused)) void *Args); +static void Tst_PutIconsEditBankQsts (void *Test); static void Tst_PutIconsTests (__attribute__((unused)) void *Args); static void Tst_PutButtonToAddQuestion (void); @@ -1170,14 +1171,9 @@ static void Tst_ShowFormRequestEditTests (struct Tst_Test *Test) [Dat_END_TIME ] = Dat_HMS_DO_NOT_SET }; - /***** Contextual menu *****/ - Mnu_ContextMenuBegin (); - TsI_PutFormToImportQuestions (); // Import questions from XML file - Mnu_ContextMenuEnd (); - /***** Begin box *****/ Box_BoxBegin (NULL,Txt_Question_bank, - Tst_PutIconsBankQsts,Test, + Tst_PutIconsRequestBankQsts,NULL, Hlp_ASSESSMENT_Tests_editing_questions,Box_NOT_CLOSABLE); /***** Get tags already present in the table of questions *****/ @@ -1390,7 +1386,30 @@ static bool Tst_CheckIfICanEditTests (void) /********************* Put contextual icons in tests *************************/ /*****************************************************************************/ -static void Tst_PutIconsBankQsts (void *Test) +static void Tst_PutIconsRequestBankQsts (__attribute__((unused)) void *Args) + { + extern const char *Txt_New_question; + + /***** Put icon to create a new test question *****/ + Ico_PutContextualIconToAdd (ActEdiOneTstQst,NULL, + NULL,NULL, + Txt_New_question); + + /***** Put icon to edit tags *****/ + Tag_PutIconToEditTags (); + + /***** Put icon to import questions *****/ + TsI_PutIconToImportQuestions (); + + /***** Put icon to show a figure *****/ + Fig_PutIconToShowFigure (Fig_TESTS); + } + +/*****************************************************************************/ +/********************* Put contextual icons in tests *************************/ +/*****************************************************************************/ + +static void Tst_PutIconsEditBankQsts (void *Test) { extern const char *Txt_New_question; @@ -1415,11 +1434,11 @@ static void Tst_PutIconsBankQsts (void *Test) NULL,NULL, Txt_New_question); - /***** Put form to edit tags *****/ - Lay_PutContextualLinkOnlyIcon (ActEdiTag,NULL, - NULL,NULL, - "tag.svg", - "Editar descriptores"); // TODO: Need translation!!! + /***** Put icon to edit tags *****/ + Tag_PutIconToEditTags (); + + /***** Put icon to export questions *****/ + TsI_PutIconToExportQuestions (Test); /***** Put icon to show a figure *****/ Fig_PutIconToShowFigure (Fig_TESTS); @@ -1792,14 +1811,13 @@ void Tst_ListQuestionsToEdit (void) if (Test.NumQsts) { /* Contextual menu */ - Mnu_ContextMenuBegin (); - if (TsI_GetCreateXMLParamFromForm ()) + { + Mnu_ContextMenuBegin (); TsI_CreateXML (Test.NumQsts,mysql_res); // Create XML file with exported questions... // ...and put a link to download it - else - TsI_PutFormToExportQuestions (&Test); // Export questions - Mnu_ContextMenuEnd (); + Mnu_ContextMenuEnd (); + } /* Show the table with the questions */ Tst_ListOneOrMoreQuestionsForEdition (&Test,mysql_res); @@ -2292,7 +2310,7 @@ static void Tst_ListOneQstToEdit (struct Tst_Test *Test) /***** Begin box *****/ Box_BoxBegin (NULL,Txt_Questions, - Tst_PutIconsBankQsts,Test, + Tst_PutIconsEditBankQsts,Test, Hlp_ASSESSMENT_Tests,Box_NOT_CLOSABLE); /***** Write the heading *****/ @@ -2326,7 +2344,7 @@ static void Tst_ListOneOrMoreQuestionsForEdition (struct Tst_Test *Test, /***** Begin box *****/ Box_BoxBegin (NULL,Txt_Questions, - Tst_PutIconsBankQsts,Test, + Tst_PutIconsEditBankQsts,Test, Hlp_ASSESSMENT_Tests,Box_NOT_CLOSABLE); /***** Write the heading *****/ diff --git a/swad_test_import.c b/swad_test_import.c index 78b61328..cc7f977a 100644 --- a/swad_test_import.c +++ b/swad_test_import.c @@ -88,12 +88,12 @@ static void TsI_WriteRowImportedQst (struct XMLElement *StemElem, /**************** Put a link (form) to export test questions *****************/ /*****************************************************************************/ -void TsI_PutFormToExportQuestions (struct Tst_Test *Test) +void TsI_PutIconToExportQuestions (struct Tst_Test *Test) { extern const char *Txt_Export_questions; /***** Put a link to create a file with questions *****/ - Lay_PutContextualLinkIconText (ActLstTstQst,NULL, + Lay_PutContextualLinkOnlyIcon (ActLstTstQst,NULL, TsI_PutParamsExportQsts,Test, "file-import.svg", Txt_Export_questions); @@ -137,12 +137,12 @@ bool TsI_GetCreateXMLParamFromForm (void) /*************** Put a link (form) to import test questions ******************/ /*****************************************************************************/ -void TsI_PutFormToImportQuestions (void) +void TsI_PutIconToImportQuestions (void) { extern const char *Txt_Import_questions; /***** Put a link to create a file with questions *****/ - Lay_PutContextualLinkIconText (ActReqImpTstQst,NULL, + Lay_PutContextualLinkOnlyIcon (ActReqImpTstQst,NULL, NULL,NULL, "file-export.svg", Txt_Import_questions); diff --git a/swad_test_import.h b/swad_test_import.h index 27be46bc..51af6d60 100644 --- a/swad_test_import.h +++ b/swad_test_import.h @@ -39,9 +39,9 @@ /***************************** Public prototypes *****************************/ /*****************************************************************************/ -void TsI_PutFormToExportQuestions (struct Tst_Test *Test); +void TsI_PutIconToExportQuestions (struct Tst_Test *Test); bool TsI_GetCreateXMLParamFromForm (void); -void TsI_PutFormToImportQuestions (void); +void TsI_PutIconToImportQuestions (void); void TsI_CreateXML (unsigned long NumRows,MYSQL_RES *mysql_res); void TsI_ShowFormImportQstsFromXML (void); void TsI_ImportQstsFromXML (void); diff --git a/swad_text.c b/swad_text.c index 59a8e2a8..4adc571e 100644 --- a/swad_text.c +++ b/swad_text.c @@ -10401,6 +10401,27 @@ const char *Txt_Edit_rich_text = "Editar texto rico"; #endif +const char *Txt_Edit_tags = +#if L==1 // ca + "Editar descriptors"; +#elif L==2 // de + "Tags bearbeiten"; +#elif L==3 // en + "Edit tags"; +#elif L==4 // es + "Editar descriptores"; +#elif L==5 // fr + "Éditer descripteurs"; +#elif L==6 // gn + "Editar descriptores"; // Okoteve traducción +#elif L==7 // it + "Editare etichette"; +#elif L==8 // pl + "Edycja tagów"; +#elif L==9 // pt + "Editar descritores"; +#endif + const char *Txt_Editable = #if L==1 // ca "Editables";