From 8fe944ff1dafcf3ef5722d9a4b09e6488e5bcebc Mon Sep 17 00:00:00 2001 From: acanas Date: Fri, 24 Mar 2023 13:09:44 +0100 Subject: [PATCH] Version 22.79.2: Mar 24, 2023 Code refactoring in rubrics. --- swad_changelog.h | 4 +- swad_rubric.c | 194 +++++++++++++++++++++++++---------------- swad_rubric.h | 4 +- swad_rubric_criteria.c | 18 ++-- swad_rubric_type.h | 6 ++ swad_text_action.c | 112 ++++++++++++------------ 6 files changed, 194 insertions(+), 144 deletions(-) diff --git a/swad_changelog.h b/swad_changelog.h index 9f1411fc..9bf029f3 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -629,10 +629,12 @@ TODO: Emilce Barrera Mesa: Podr TODO: Emilce Barrera Mesa: Mis estudiantes presentan muchas dificultades a la hora de poner la foto porque la plataforma es muy exigente respecto al fondo de la imagen. */ -#define Log_PLATFORM_VERSION "SWAD 22.79 (2023-03-24)" +#define Log_PLATFORM_VERSION "SWAD 22.79.2 (2023-03-24)" #define CSS_FILE "swad22.78.15.css" #define JS_FILE "swad22.49.js" /* + Version 22.79.2: Mar 24, 2023 Code refactoring in rubrics. (337937 lines) + Version 22.79.1: Mar 24, 2023 Translation of some actions. (337889 lines) Version 22.79: Mar 24, 2023 New action to change source of rubric criterion. (337888 lines) Version 22.78.15: Mar 23, 2023 Changes in rubric criteria. (337686 lines) Version 22.78.14: Mar 23, 2023 Code refactoring in timeline. (337634 lines) diff --git a/swad_rubric.c b/swad_rubric.c index 95e65f42..115bcf54 100644 --- a/swad_rubric.c +++ b/swad_rubric.c @@ -738,7 +738,7 @@ void Rub_ReqCreatOrEditRubric (void) { struct Rub_Rubrics Rubrics; struct RubCri_Criterion Criterion; - bool ItsANewRubric; + Rub_ExistingNewRubric_t ExistingNewRubric; /***** Check if I can edit rubrics *****/ if (!Rub_CheckIfICanEditRubrics ()) @@ -751,18 +751,24 @@ void Rub_ReqCreatOrEditRubric (void) /***** Get parameters *****/ Rub_GetPars (&Rubrics,false); // Don't check rubric code - ItsANewRubric = (Rubrics.Rubric.RubCod <= 0); + ExistingNewRubric = (Rubrics.Rubric.RubCod > 0) ? Rub_EXISTING_RUBRIC : + Rub_NEW_RUBRIC; /***** Get rubric data *****/ - if (ItsANewRubric) - /* Initialize to empty rubric */ - Rub_ResetRubric (&Rubrics.Rubric); - else - /* Get rubric data from database */ - Rub_GetRubricDataByCod (&Rubrics.Rubric); + switch (ExistingNewRubric) + { + case Rub_EXISTING_RUBRIC: + /* Get rubric data from database */ + Rub_GetRubricDataByCod (&Rubrics.Rubric); + break; + case Rub_NEW_RUBRIC: + /* Initialize to empty rubric */ + Rub_ResetRubric (&Rubrics.Rubric); + break; + } /***** Put form to create/edit a rubric and show criteria *****/ - Rub_PutFormsOneRubric (&Rubrics,&Criterion,ItsANewRubric); + Rub_PutFormsOneRubric (&Rubrics,&Criterion,ExistingNewRubric); } /*****************************************************************************/ @@ -771,26 +777,36 @@ void Rub_ReqCreatOrEditRubric (void) void Rub_PutFormsOneRubric (struct Rub_Rubrics *Rubrics, struct RubCri_Criterion *Criterion, - bool ItsANewRubric) + Rub_ExistingNewRubric_t ExistingNewRubric) { char Txt[Cns_MAX_BYTES_TEXT + 1]; /***** Initialize text / get text from database *****/ - if (ItsANewRubric) - Txt[0] = '\0'; - else - Rub_DB_GetRubricTxt (Rubrics->Rubric.RubCod,Txt); + switch (ExistingNewRubric) + { + case Rub_EXISTING_RUBRIC: + Rub_DB_GetRubricTxt (Rubrics->Rubric.RubCod,Txt); + break; + case Rub_NEW_RUBRIC: + Txt[0] = '\0'; + break; + } /***** Put form to create/edit an exam *****/ - Rub_PutFormEditionRubric (Rubrics,Txt,ItsANewRubric); + Rub_PutFormEditionRubric (Rubrics,Txt,ExistingNewRubric); /***** Show other lists *****/ - if (ItsANewRubric) - /* Show rubrics again */ - Rub_ListAllRubrics (Rubrics); - else - /* Show list of criteria */ - RubCri_ListCriteria (Rubrics,Criterion); + switch (ExistingNewRubric) + { + case Rub_EXISTING_RUBRIC: + /* Show list of criteria */ + RubCri_ListCriteria (Rubrics,Criterion); + break; + case Rub_NEW_RUBRIC: + /* Show rubrics again */ + Rub_ListAllRubrics (Rubrics); + break; + } } /*****************************************************************************/ @@ -799,7 +815,7 @@ void Rub_PutFormsOneRubric (struct Rub_Rubrics *Rubrics, void Rub_PutFormEditionRubric (struct Rub_Rubrics *Rubrics, char Txt[Cns_MAX_BYTES_TEXT + 1], - bool ItsANewRubric) + Rub_ExistingNewRubric_t ExistingNewRubric) { extern const char *Hlp_ASSESSMENT_Rubrics_new_rubric; extern const char *Hlp_ASSESSMENT_Rubrics_edit_rubric; @@ -809,64 +825,81 @@ void Rub_PutFormEditionRubric (struct Rub_Rubrics *Rubrics, extern const char *Txt_Description; extern const char *Txt_Create_rubric; extern const char *Txt_Save_changes; + static Act_Action_t NextAction[] = + { + [Rub_EXISTING_RUBRIC] = ActChgRub, + [Rub_NEW_RUBRIC ] = ActNewRub, + }; + static Btn_Button_t Button[] = + { + [Rub_EXISTING_RUBRIC] = Btn_CONFIRM_BUTTON, + [Rub_NEW_RUBRIC ] = Btn_CREATE_BUTTON, + }; + const char *Title[] = + { + [Rub_EXISTING_RUBRIC] = Txt_Edit_rubric, + [Rub_NEW_RUBRIC ] = Txt_New_rubric, + }; + const char *HelpLink[] = + { + [Rub_EXISTING_RUBRIC] = Hlp_ASSESSMENT_Rubrics_edit_rubric, + [Rub_NEW_RUBRIC ] = Hlp_ASSESSMENT_Rubrics_new_rubric, + }; + const char *TxtButton[] = + { + [Rub_EXISTING_RUBRIC] = Txt_Save_changes, + [Rub_NEW_RUBRIC ] = Txt_Create_rubric, + }; /***** Begin form *****/ - Frm_BeginForm (ItsANewRubric ? ActNewRub : - ActChgRub); + Frm_BeginForm (NextAction[ExistingNewRubric]); Rub_PutPars (Rubrics); /***** Begin box and table *****/ - if (ItsANewRubric) - Box_BoxTableBegin (NULL,Txt_New_rubric, - NULL,NULL, - Hlp_ASSESSMENT_Rubrics_new_rubric,Box_NOT_CLOSABLE,2); - else - Box_BoxTableBegin (NULL, - Rubrics->Rubric.Title[0] ? Rubrics->Rubric.Title : - Txt_Edit_rubric, - NULL,NULL, - Hlp_ASSESSMENT_Rubrics_edit_rubric,Box_NOT_CLOSABLE,2); + Box_BoxTableBegin (NULL, + Rubrics->Rubric.Title[0] ? Rubrics->Rubric.Title : + Title[ExistingNewRubric], + NULL,NULL, + HelpLink[ExistingNewRubric],Box_NOT_CLOSABLE,2); - /***** Rubric title *****/ - HTM_TR_Begin (NULL); + /***** Rubric title *****/ + HTM_TR_Begin (NULL); - /* Label */ - Frm_LabelColumn ("RT","Title",Txt_Title); + /* Label */ + Frm_LabelColumn ("RT","Title",Txt_Title); - /* Data */ - HTM_TD_Begin ("class=\"LT\""); - HTM_INPUT_TEXT ("Title",Rub_MAX_CHARS_TITLE,Rubrics->Rubric.Title, - HTM_DONT_SUBMIT_ON_CHANGE, - "id=\"Title\"" - " class=\"TITLE_DESCRIPTION_WIDTH INPUT_%s\"" - " required=\"required\"", - The_GetSuffix ()); - HTM_TD_End (); + /* Data */ + HTM_TD_Begin ("class=\"LT\""); + HTM_INPUT_TEXT ("Title",Rub_MAX_CHARS_TITLE,Rubrics->Rubric.Title, + HTM_DONT_SUBMIT_ON_CHANGE, + "id=\"Title\"" + " class=\"TITLE_DESCRIPTION_WIDTH INPUT_%s\"" + " required=\"required\"", + The_GetSuffix ()); + HTM_TD_End (); - HTM_TR_End (); + HTM_TR_End (); - /***** Rubric text *****/ - HTM_TR_Begin (NULL); + /***** Rubric text *****/ + HTM_TR_Begin (NULL); - /* Label */ - Frm_LabelColumn ("RT","Txt",Txt_Description); + /* Label */ + Frm_LabelColumn ("RT","Txt",Txt_Description); - /* Data */ - HTM_TD_Begin ("class=\"LT\""); - HTM_TEXTAREA_Begin ("id=\"Txt\" name=\"Txt\" rows=\"5\"" - " class=\"TITLE_DESCRIPTION_WIDTH INPUT_%s\"", - The_GetSuffix ()); - HTM_Txt (Txt); - HTM_TEXTAREA_End (); - HTM_TD_End (); + /* Data */ + HTM_TD_Begin ("class=\"LT\""); + HTM_TEXTAREA_Begin ("id=\"Txt\" name=\"Txt\" rows=\"5\"" + " class=\"TITLE_DESCRIPTION_WIDTH INPUT_%s\"", + The_GetSuffix ()); + HTM_Txt (Txt); + HTM_TEXTAREA_End (); + HTM_TD_End (); - HTM_TR_End (); + HTM_TR_End (); /***** End table, send button and end box *****/ - if (ItsANewRubric) - Box_BoxTableWithButtonEnd (Btn_CREATE_BUTTON,Txt_Create_rubric); - else - Box_BoxTableWithButtonEnd (Btn_CONFIRM_BUTTON,Txt_Save_changes); + Box_BoxTableWithButtonEnd (Button[ExistingNewRubric], + TxtButton[ExistingNewRubric]); /***** End form *****/ Frm_EndForm (); @@ -880,7 +913,7 @@ void Rub_ReceiveFormRubric (void) { struct Rub_Rubrics Rubrics; struct RubCri_Criterion Criterion; - bool ItsANewRubric; + Rub_ExistingNewRubric_t ExistingNewRubric; char Txt[Cns_MAX_BYTES_TEXT + 1]; /***** Check if I can edit rubrics *****/ @@ -894,31 +927,40 @@ void Rub_ReceiveFormRubric (void) /***** Get parameters *****/ Rub_GetPars (&Rubrics,false); - ItsANewRubric = (Rubrics.Rubric.RubCod <= 0); + ExistingNewRubric = (Rubrics.Rubric.RubCod > 0) ? Rub_EXISTING_RUBRIC : + Rub_NEW_RUBRIC; /***** Get all current rubric data from database *****/ // Some data, not received from form, // are necessary to show rubric and criteria again - if (!ItsANewRubric) - Rub_GetRubricDataByCod (&Rubrics.Rubric); + switch (ExistingNewRubric) + { + case Rub_EXISTING_RUBRIC: + Rub_GetRubricDataByCod (&Rubrics.Rubric); + break; + case Rub_NEW_RUBRIC: + break; + } /***** Overwrite some rubric data with the data received from form *****/ Rub_ReceiveRubricFieldsFromForm (&Rubrics.Rubric,Txt); if (Rub_CheckRubricFieldsReceivedFromForm (&Rubrics.Rubric)) { /***** Create a new rubric or update an existing one *****/ - if (ItsANewRubric) + switch (ExistingNewRubric) { - Rub_CreateRubric (&Rubrics.Rubric,Txt); // Add new rubric to database - ItsANewRubric = false; + case Rub_EXISTING_RUBRIC: + Rub_UpdateRubric (&Rubrics.Rubric,Txt); // Update rubric data in database + break; + case Rub_NEW_RUBRIC: + Rub_CreateRubric (&Rubrics.Rubric,Txt); // Add new rubric to database + ExistingNewRubric = Rub_EXISTING_RUBRIC; + break; } - else - Rub_UpdateRubric (&Rubrics.Rubric,Txt); // Update rubric data in database } /***** Show current rubric and its criteria *****/ - Rub_PutFormsOneRubric (&Rubrics,&Criterion, - ItsANewRubric); + Rub_PutFormsOneRubric (&Rubrics,&Criterion,ExistingNewRubric); } static void Rub_ReceiveRubricFieldsFromForm (struct Rub_Rubric *Rubric, diff --git a/swad_rubric.h b/swad_rubric.h index cbad247f..b941b450 100644 --- a/swad_rubric.h +++ b/swad_rubric.h @@ -72,10 +72,10 @@ void Rub_ListRubric (void); void Rub_ReqCreatOrEditRubric (void); void Rub_PutFormsOneRubric (struct Rub_Rubrics *Rubrics, struct RubCri_Criterion *Criterion, - bool ItsANewRubric); + Rub_ExistingNewRubric_t ExistingNewRubric); void Rub_PutFormEditionRubric (struct Rub_Rubrics *Rubrics, char Txt[Cns_MAX_BYTES_TEXT + 1], - bool ItsANewRubric); + Rub_ExistingNewRubric_t ExistingNewRubric); void Rub_ReceiveFormRubric (void); diff --git a/swad_rubric_criteria.c b/swad_rubric_criteria.c index c2017337..de06cd59 100644 --- a/swad_rubric_criteria.c +++ b/swad_rubric_criteria.c @@ -263,7 +263,7 @@ void RubCri_ReceiveFormCriterion (void) /***** Show current rubric and its criteria *****/ Rub_PutFormsOneRubric (&Rubrics,&Criterion, - false); // It's not a new rubric + Rub_EXISTING_RUBRIC); // It's not a new rubric } static void RubCri_ReceiveCriterionFieldsFromForm (struct RubCri_Criterion *Criterion) @@ -376,7 +376,7 @@ void RubCri_ChangeTitle (void) /***** Show current rubric and its criteria *****/ Rub_PutFormsOneRubric (&Rubrics,&Criterion, - false); // It's not a new rubric + Rub_EXISTING_RUBRIC); // It's not a new rubric } /*****************************************************************************/ @@ -418,7 +418,7 @@ void RubCri_ChangeSource (void) /***** Show current rubric and its criteria *****/ Rub_PutFormsOneRubric (&Rubrics,&Criterion, - false); // It's not a new rubric + Rub_EXISTING_RUBRIC); // It's not a new rubric } /*****************************************************************************/ @@ -472,7 +472,7 @@ static void RubCri_ChangeValueCriterion (RubCri_ValueRange_t ValueRange) /***** Show current rubric and its criteria *****/ Rub_PutFormsOneRubric (&Rubrics,&Criterion, - false); // It's not a new rubric + Rub_EXISTING_RUBRIC); // It's not a new rubric } /*****************************************************************************/ @@ -516,7 +516,7 @@ void RubCri_ChangeWeight (void) /***** Show current rubric and its criteria *****/ Rub_PutFormsOneRubric (&Rubrics,&Criterion, - false); // It's not a new rubric + Rub_EXISTING_RUBRIC); // It's not a new rubric } /*****************************************************************************/ @@ -966,7 +966,7 @@ void RubCri_ReqRemCriterion (void) /***** Show current rubric and its criteria *****/ Rub_PutFormsOneRubric (&Rubrics,&Criterion, - false); // It's not a new rubric + Rub_EXISTING_RUBRIC); // It's not a new rubric } /*****************************************************************************/ @@ -1006,7 +1006,7 @@ void RubCri_RemoveCriterion (void) /***** Show current rubric and its criteria *****/ Rub_PutFormsOneRubric (&Rubrics,&Criterion, - false); // It's not a new rubric + Rub_EXISTING_RUBRIC); // It's not a new rubric } /*****************************************************************************/ @@ -1052,7 +1052,7 @@ void RubCri_MoveUpCriterion (void) /***** Show current rubric and its criteria *****/ Rub_PutFormsOneRubric (&Rubrics,&Criterion, - false); // It's not a new rubric + Rub_EXISTING_RUBRIC); // It's not a new rubric } /*****************************************************************************/ @@ -1102,7 +1102,7 @@ void RubCri_MoveDownCriterion (void) /***** Show current rubric and its criteria *****/ Rub_PutFormsOneRubric (&Rubrics,&Criterion, - false); // It's not a new trubric + Rub_EXISTING_RUBRIC); // It's not a new trubric } /*****************************************************************************/ diff --git a/swad_rubric_type.h b/swad_rubric_type.h index aa734516..29addcca 100644 --- a/swad_rubric_type.h +++ b/swad_rubric_type.h @@ -65,6 +65,12 @@ struct Rub_Rubrics long QstCod; // Current question code }; +typedef enum + { + Rub_EXISTING_RUBRIC, + Rub_NEW_RUBRIC, + } Rub_ExistingNewRubric_t; + #define RubCri_NUM_VALUES 2 typedef enum { diff --git a/swad_text_action.c b/swad_text_action.c index 47e43957..e5e191d6 100644 --- a/swad_text_action.c +++ b/swad_text_action.c @@ -13887,163 +13887,163 @@ const char *Txt_Actions[ActLst_NUM_ACTIONS] = , [ActSeeRub] = #if L==1 // ca - "See rubric" // Necessita traducció + "Veure rúbrica" #elif L==2 // de - "See rubric" // Need Übersetzung + "Siehe Rubrik" #elif L==3 // en "See rubric" #elif L==4 // es "Ver rúbrica" #elif L==5 // fr - "See rubric" // Besoin de traduction + "Voir rubrique" #elif L==6 // gn - "Ver rúbrica" // Okoteve traducción + "Ehecha rúbrica" #elif L==7 // it - "See rubric" // Bisogno di traduzione + "Vedi rubrica" #elif L==8 // pl - "See rubric" // Potrzebujesz tlumaczenie + "Zobacz rubrykę" #elif L==9 // pt - "See rubric" // Precisa de tradução + "Ver rubrica" #elif L==10 // tr - "See rubric" // Çeviri lazim! + "Değerlendirme tablosuna bakın" #endif , [ActFrmNewRub] = #if L==1 // ca - "Edit new rubric" // Necessita traducció + "Editar nova rúbrica" #elif L==2 // de - "Edit new rubric" // Need Übersetzung + "Neue Rubrik bearbeiten" #elif L==3 // en "Edit new rubric" #elif L==4 // es "Editar nueva rúbrica" #elif L==5 // fr - "Edit new rubric" // Besoin de traduction + "Modifier nouvelle rubrique" #elif L==6 // gn - "Editar nueva rúbrica" // Okoteve traducción + "Emohenda rúbrica pyahu" #elif L==7 // it - "Edit new rubric" // Bisogno di traduzione + "Modificare nuova rubrica" #elif L==8 // pl - "Edit new rubric" // Potrzebujesz tlumaczenie + "Edytuj nową rubrykę" #elif L==9 // pt - "Edit new rubric" // Precisa de tradução + "Editar nova rubrica" #elif L==10 // tr - "Edit new rubric" // Çeviri lazim! + "Yeni puan anahtarını dúzenle" #endif , [ActEdiOneRub] = #if L==1 // ca - "Edit rubric" // Necessita traducció + "Editar rúbrica" #elif L==2 // de - "Edit rubric" // Need Übersetzung + "Rubrik bearbeiten" #elif L==3 // en "Edit rubric" #elif L==4 // es "Editar rúbrica" #elif L==5 // fr - "Edit rubric" // Besoin de traduction + "Modifier rubrique" #elif L==6 // gn - "Editar rúbrica" // Okoteve traducción + "Editar rúbrica rehegua" #elif L==7 // it - "Edit rubric" // Bisogno di traduzione + "Modificare rubrica" #elif L==8 // pl - "Edit rubric" // Potrzebujesz tlumaczenie + "Edytuj rubrykę" #elif L==9 // pt - "Edit rubric" // Precisa de tradução + "Editar rubrica" #elif L==10 // tr - "Edit rubric" // Çeviri lazim! + "Puan anahtarını dúzenle" #endif , [ActNewRub] = #if L==1 // ca - "Create new rubric" // Necessita traducció + "Crear nova rúbrica" #elif L==2 // de - "Create new rubric" // Need Übersetzung + "Neue Rubrik erstellen" #elif L==3 // en "Create new rubric" #elif L==4 // es "Crear nueva rúbrica" #elif L==5 // fr - "Create new rubric" // Besoin de traduction + "Créer nouvelle rubrique" #elif L==6 // gn - "Crear nueva rúbrica" // Okoteve traducción + "Ojapo rúbrica pyahu" #elif L==7 // it - "Create new rubric" // Bisogno di traduzione + "Creare nuova rubrica" #elif L==8 // pl - "Create new rubric" // Potrzebujesz tlumaczenie + "Utwórz nową rubrykę" #elif L==9 // pt - "Create new rubric" // Precisa de tradução + "Criar nova rubrica" #elif L==10 // tr - "Create new rubric" // Çeviri lazim! + "Yeni değerlendirme listesi oluştur" #endif , [ActChgRub] = #if L==1 // ca - "Change rubric" // Necessita traducció + "Canviar rúbrica" #elif L==2 // de - "Change rubric" // Need Übersetzung + "Rubrik wechseln" #elif L==3 // en "Change rubric" #elif L==4 // es "Cambiar rúbrica" #elif L==5 // fr - "Change rubric" // Besoin de traduction + "Changer rubrique" #elif L==6 // gn - "Cambiar rúbrica" // Okoteve traducción + "Omoambue rúbrica" #elif L==7 // it - "Change rubric" // Bisogno di traduzione + "Cambiare rubrica" #elif L==8 // pl - "Change rubric" // Potrzebujesz tlumaczenie + "Zmienić rubrykę" #elif L==9 // pt - "Change rubric" // Precisa de tradução + "Mudar rubrica" #elif L==10 // tr - "Change rubric" // Çeviri lazim! + "Puan anahtarını değiştir" #endif , [ActReqRemRub] = #if L==1 // ca - "Request removal of rubric" // Necessita traducció + "Sol·licitar eliminació de rúbrica" #elif L==2 // de - "Request removal of rubric" // Need Übersetzung + "Entfernung der Rubrik beantragen" #elif L==3 // en "Request removal of rubric" #elif L==4 // es "Solicitar eliminación de rúbrica" #elif L==5 // fr - "Request removal of rubric" // Besoin de traduction + "Demander suppression de rubrique" #elif L==6 // gn - "Solicitar eliminación de rúbrica" // Okoteve traducción + "Ojerure ojeipe'a haguã rúbrica" #elif L==7 // it - "Request removal of rubric" // Bisogno di traduzione + "Richiesta rimozione di rubrica" #elif L==8 // pl - "Request removal of rubric" // Potrzebujesz tlumaczenie + "Poproś o usunięcie rubryki" #elif L==9 // pt - "Request removal of rubric" // Precisa de tradução + "Solicitar remoção de rubrica" #elif L==10 // tr - "Request removal of rubric" // Çeviri lazim! + "Puan anahtarının kaldırılmasını talep etme" #endif , [ActRemRub] = #if L==1 // ca - "Remove rubric" // Necessita traducció + "Eliminar rúbrica" #elif L==2 // de - "Remove rubric" // Need Übersetzung + "Rubrik entfernen" #elif L==3 // en "Remove rubric" #elif L==4 // es "Eliminar rúbrica" #elif L==5 // fr - "Remove rubric" // Besoin de traduction + "Supprimer rubrique" #elif L==6 // gn - "Eliminar rúbrica" // Okoteve traducción + "Ojepe'a pe rúbrica" #elif L==7 // it - "Remove rubric" // Bisogno di traduzione + "Rimuovere rubrica" #elif L==8 // pl - "Remove rubric" // Potrzebujesz tlumaczenie + "Usuń rubrykę" #elif L==9 // pt - "Remove rubric" // Precisa de tradução + "Remover rubrica" #elif L==10 // tr - "Remove rubric" // Çeviri lazim! + "Puan anahtarını kaldır" #endif , [ActNewRubCri] =