From 09bfa8fb7918ff2a64255a90c4f20558a86f99f8 Mon Sep 17 00:00:00 2001 From: acanas Date: Fri, 17 Mar 2023 22:23:54 +0100 Subject: [PATCH] Version 22.76: Mar 17, 2023 Fixed moving rubric criteria up and down. --- swad_action_list.c | 34 +++--- swad_action_list.h | 19 ++-- swad_changelog.h | 4 +- swad_exam_set.c | 6 +- swad_rubric_criteria.c | 245 +---------------------------------------- swad_rubric_criteria.h | 21 ---- swad_rubric_database.c | 10 +- swad_rubric_database.h | 2 +- swad_text_action.c | 183 ++++++++++++++++++++++++++++-- 9 files changed, 212 insertions(+), 312 deletions(-) diff --git a/swad_action_list.c b/swad_action_list.c index e3edbcff..8ce472b9 100644 --- a/swad_action_list.c +++ b/swad_action_list.c @@ -844,15 +844,14 @@ const struct Act_Actions ActLst_Actions[ActLst_NUM_ACTIONS] = [ActReqRemRub ] = {1957,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Rub_AskRemRubric ,NULL}, [ActRemRub ] = {1958,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Rub_RemoveRubric ,NULL}, - [ActFrmNewRubCri ] = {1959,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,RubCri_ReqCreatOrEditCriterion ,NULL}, - [ActNewRubCri ] = {1960,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,RubCri_ReceiveFormCriterion ,NULL}, - [ActReqRemRubCri ] = {1961,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,RubCri_ReqRemCriterion ,NULL}, - [ActRemRubCri ] = {1962,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,RubCri_RemoveCriterion ,NULL}, - [ActUp_RubCri ] = {1963,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,RubCri_MoveUpCriterion ,NULL}, - [ActDwnRubCri ] = {1964,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,RubCri_MoveDownCriterion ,NULL}, - [ActChgTitRubCri ] = {1965,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,RubCri_ChangeCriterionTitle ,NULL}, - [ActChgMinRubCri ] = {1966,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,RubCri_ChangeMinValueCriterion ,NULL}, - [ActChgMaxRubCri ] = {1967,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,RubCri_ChangeMaxValueCriterion ,NULL}, + [ActNewRubCri ] = {1959,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,RubCri_ReceiveFormCriterion ,NULL}, + [ActReqRemRubCri ] = {1960,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,RubCri_ReqRemCriterion ,NULL}, + [ActRemRubCri ] = {1961,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,RubCri_RemoveCriterion ,NULL}, + [ActUp_RubCri ] = {1962,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,RubCri_MoveUpCriterion ,NULL}, + [ActDwnRubCri ] = {1963,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,RubCri_MoveDownCriterion ,NULL}, + [ActChgTitRubCri ] = {1964,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,RubCri_ChangeCriterionTitle ,NULL}, + [ActChgMinRubCri ] = {1965,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,RubCri_ChangeMinValueCriterion ,NULL}, + [ActChgMaxRubCri ] = {1966,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,RubCri_ChangeMaxValueCriterion ,NULL}, // TabFil ****************************************************************** // Actions in menu: @@ -3843,13 +3842,12 @@ Act_Action_t ActLst_FromActCodToAction[1 + ActLst_MAX_ACTION_COD] = // Do not re ActChgRub, // #1956 ActReqRemRub, // #1957 ActRemRub, // #1958 - ActFrmNewRubCri, // #1959 - ActNewRubCri, // #1960 - ActReqRemRubCri, // #1961 - ActRemRubCri, // #1962 - ActUp_RubCri, // #1963 - ActDwnRubCri, // #1964 - ActChgTitRubCri, // #1965 - ActChgMinRubCri, // #1966 - ActChgMaxRubCri, // #1967 + ActNewRubCri, // #1959 + ActReqRemRubCri, // #1960 + ActRemRubCri, // #1961 + ActUp_RubCri, // #1962 + ActDwnRubCri, // #1963 + ActChgTitRubCri, // #1964 + ActChgMinRubCri, // #1965 + ActChgMaxRubCri, // #1966 }; diff --git a/swad_action_list.h b/swad_action_list.h index c1989f40..bda44e96 100644 --- a/swad_action_list.h +++ b/swad_action_list.h @@ -767,15 +767,14 @@ #define ActReqRemRub (ActChgCrsTT1stDay + 225) #define ActRemRub (ActChgCrsTT1stDay + 226) -#define ActFrmNewRubCri (ActChgCrsTT1stDay + 227) -#define ActNewRubCri (ActChgCrsTT1stDay + 228) -#define ActReqRemRubCri (ActChgCrsTT1stDay + 229) -#define ActRemRubCri (ActChgCrsTT1stDay + 230) -#define ActUp_RubCri (ActChgCrsTT1stDay + 231) -#define ActDwnRubCri (ActChgCrsTT1stDay + 232) -#define ActChgTitRubCri (ActChgCrsTT1stDay + 233) -#define ActChgMinRubCri (ActChgCrsTT1stDay + 234) -#define ActChgMaxRubCri (ActChgCrsTT1stDay + 235) +#define ActNewRubCri (ActChgCrsTT1stDay + 227) +#define ActReqRemRubCri (ActChgCrsTT1stDay + 228) +#define ActRemRubCri (ActChgCrsTT1stDay + 229) +#define ActUp_RubCri (ActChgCrsTT1stDay + 230) +#define ActDwnRubCri (ActChgCrsTT1stDay + 231) +#define ActChgTitRubCri (ActChgCrsTT1stDay + 232) +#define ActChgMinRubCri (ActChgCrsTT1stDay + 233) +#define ActChgMaxRubCri (ActChgCrsTT1stDay + 234) /*****************************************************************************/ /******************************** Files tab **********************************/ @@ -1768,7 +1767,7 @@ #define ActLst_NUM_ACTIONS (ActChgMyTT1stDay + 1) -#define ActLst_MAX_ACTION_COD 1967 +#define ActLst_MAX_ACTION_COD 1966 #define ActLst_DEFAULT_ACTION_AFTER_LOGIN ActSeeGblTL diff --git a/swad_changelog.h b/swad_changelog.h index 88b24d9a..54541852 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -629,11 +629,11 @@ 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.75 (2023-03-17)" +#define Log_PLATFORM_VERSION "SWAD 22.76 (2023-03-17)" #define CSS_FILE "swad22.57.1.css" #define JS_FILE "swad22.49.js" /* - Version 22.75.1: Mar 17, 2023 Fixed up and down criteria. (? lines) + Version 22.76: Mar 17, 2023 Fixed moving rubric criteria up and down. (337585 lines) Version 22.75: Mar 17, 2023 New module swad_rubric_criteria. (337631 lines) Code refactoring in exams. 2 changes necessary in database: diff --git a/swad_exam_set.c b/swad_exam_set.c index 13b6cbf0..242c40de 100644 --- a/swad_exam_set.c +++ b/swad_exam_set.c @@ -154,7 +154,6 @@ void ExaSet_GetDataOfSetByCod (struct ExaSet_Set *Set) { MYSQL_RES *mysql_res; MYSQL_ROW row; - char StrSetInd[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; /***** Trivial check *****/ if (Set->SetCod <= 0) @@ -184,7 +183,6 @@ void ExaSet_GetDataOfSetByCod (struct ExaSet_Set *Set) /* Get set index (row[2]) */ Set->SetInd = Str_ConvertStrToUnsigned (row[2]); - snprintf (StrSetInd,sizeof (Set->SetInd),"%u",Set->SetInd); /* Get set index (row[3]) */ Set->NumQstsToPrint = Str_ConvertStrToUnsigned (row[3]); @@ -653,7 +651,6 @@ static void ExaSet_ListOneOrMoreSetsForEdition (struct Exa_Exams *Exams, struct ExaSet_Set Set; MYSQL_ROW row; char *Anchor; - char StrSetInd[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; /***** Trivial check *****/ if (!NumSets) @@ -687,7 +684,6 @@ static void ExaSet_ListOneOrMoreSetsForEdition (struct Exa_Exams *Exams, /* Get set index (row[1]) */ Set.SetInd = Str_ConvertStrToUnsigned (row[1]); - snprintf (StrSetInd,sizeof (Set.SetInd),"%u",Set.SetInd); /* Get number of questions to exam (row[2]) */ Set.NumQstsToPrint = Str_ConvertStrToUnsigned (row[2]); @@ -1467,7 +1463,7 @@ void ExaSet_MoveDownSet (void) { /* Indexes of sets to be exchanged */ SetIndBottom = Exa_DB_GetNextSetIndexInExam (Exams.Exam.ExaCod,SetIndTop); - if (SetIndBottom == 0) + if (SetIndBottom == 0) // 0 means error reading from database Err_ShowErrorAndExit ("Wrong set index."); /* Exchange sets */ diff --git a/swad_rubric_criteria.c b/swad_rubric_criteria.c index 62fea47c..6f914400 100644 --- a/swad_rubric_criteria.c +++ b/swad_rubric_criteria.c @@ -20,35 +20,26 @@ You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ +/*****************************************************************************/ +/********************************* Headers ***********************************/ +/*****************************************************************************/ -#define _GNU_SOURCE // For asprintf #include // For DBL_MAX -#include // For PATH_MAX -#include // For NULL -#include // For asprintf -#include // For free +#include // To access MySQL databases #include // For string functions #include "swad_action_list.h" +#include "swad_alert.h" #include "swad_box.h" #include "swad_database.h" #include "swad_error.h" -#include "swad_figure.h" #include "swad_form.h" #include "swad_global.h" -#include "swad_HTML.h" -#include "swad_match.h" -#include "swad_match_result.h" -#include "swad_pagination.h" #include "swad_parameter.h" #include "swad_parameter_code.h" -#include "swad_question_database.h" -#include "swad_role.h" #include "swad_rubric.h" #include "swad_rubric_criteria.h" #include "swad_rubric_database.h" -#include "swad_test.h" -#include "swad_test_visibility.h" /*****************************************************************************/ /************** External global variables from others modules ****************/ @@ -60,9 +51,6 @@ extern struct Globals Gbl; /***************************** Private constants *****************************/ /*****************************************************************************/ -#define RubCri_MAX_SELECTED_QUESTIONS 10000 -#define RubCri_MAX_BYTES_LIST_SELECTED_QUESTIONS (RubCri_MAX_SELECTED_QUESTIONS * (Cns_MAX_DECIMAL_DIGITS_LONG + 1)) - // Form parameters for minimum/maximum criterion values static const char *RubCri_ParValues[RubCri_NUM_VALUES] = { @@ -70,10 +58,6 @@ static const char *RubCri_ParValues[RubCri_NUM_VALUES] = [RubCri_MAX] = "MaxVal", }; -/*****************************************************************************/ -/************************** Public types and constants ***********************/ -/*****************************************************************************/ - /*****************************************************************************/ /***************************** Private prototypes ****************************/ /*****************************************************************************/ @@ -104,189 +88,6 @@ static void RubCri_GetAndCheckPars (struct Rub_Rubrics *Rubrics, static void RubCri_ExchangeCriteria (long RubCod, unsigned CriIndTop,unsigned CriIndBottom); -/*****************************************************************************/ -/********************************* Headers ***********************************/ -/*****************************************************************************/ - -#include // For boolean type -#include // To access MySQL databases -#include // For string functions - -#include "swad_action_list.h" -#include "swad_box.h" -#include "swad_button.h" -#include "swad_database.h" -#include "swad_error.h" -#include "swad_form.h" -#include "swad_parameter.h" -#include "swad_rubric.h" -#include "swad_rubric_criteria.h" -#include "swad_rubric_database.h" - -/*****************************************************************************/ -/************** External global variables from others modules ****************/ -/*****************************************************************************/ - -extern struct Globals Gbl; - -/*****************************************************************************/ -/***************************** Private prototypes ****************************/ -/*****************************************************************************/ - - -/*****************************************************************************/ -/********************** Initialize a new citerion to zero ********************/ -/*****************************************************************************/ - -void RubCri_CriterionConstructor (struct RubCri_Criterion *Criterion) - { - Criterion->CriCod = -1L; - } - -/*****************************************************************************/ -/*************** Free memory allocated for rubric criterion ******************/ -/*****************************************************************************/ - -void RubCri_CriterionDestructor (struct RubCri_Criterion *Criterion) - { - Criterion->CriCod = -1L; - } - -/*****************************************************************************/ -/******************* List a rubric criterion for edition *********************/ -/*****************************************************************************/ - -void RubCri_ListCriterionForEdition (struct RubCri_Criterion *Criterion, - unsigned CriInd,bool CriterionExists, - const char *Anchor) - { - extern const char *Txt_Criterion_removed; - - /***** Number of criterion *****/ - HTM_TD_Begin ("class=\"RT %s\"",The_GetColorRows ()); - Lay_WriteIndex (CriInd,"BIG_INDEX"); - HTM_TD_End (); - - /***** Write criterion code *****/ - HTM_TD_Begin ("class=\"CT DAT_SMALL_%s %s CT\"", - The_GetSuffix (),The_GetColorRows ()); - HTM_TxtF ("%ld ",Criterion->CriCod); - HTM_TD_End (); - - /***** Write title *****/ - HTM_TD_Begin ("class=\"LT %s\"",The_GetColorRows ()); - HTM_ARTICLE_Begin (Anchor); - if (CriterionExists) - /* Write title */ - RubCri_WriteCriterionTitle (Criterion); // Visible - else - { - HTM_SPAN_Begin ("class=\"DAT_LIGHT_%s\"", - The_GetSuffix ()); - HTM_Txt (Txt_Criterion_removed); - HTM_SPAN_End (); - } - HTM_ARTICLE_End (); - HTM_TD_End (); - } - -/*****************************************************************************/ -/***************** Put icon to add a new criterion to rubric *****************/ -/*****************************************************************************/ - -void RubCri_PutIconToAddNewCriterion (void *Rubrics) - { - Ico_PutContextualIconToAdd (ActFrmNewRubCri,NULL,Rub_PutPars,Rubrics); - } - -/*****************************************************************************/ -/***************** Put button to add new criteria to rubric ******************/ -/*****************************************************************************/ - -void RubCri_PutButtonToAddNewCriterion (struct Rub_Rubrics *Rubrics) - { - extern const char *Txt_New_criterion; - - Frm_BeginForm (ActFrmNewRubCri); - Rub_PutPars (Rubrics); - - Btn_PutConfirmButton (Txt_New_criterion); - - Frm_EndForm (); - } - -/*****************************************************************************/ -/****************** Write parameter with index of criterion ******************/ -/*****************************************************************************/ - -void RubCri_PutParCriInd (unsigned CriInd) - { - Par_PutParUnsigned (NULL,"CriInd",CriInd); - } - -/*****************************************************************************/ -/******************* Get parameter with index of criterion *******************/ -/*****************************************************************************/ - -unsigned RubCri_GetParCriInd (void) - { - long CriInd; - - if ((CriInd = Par_GetParLong ("CriInd")) <= 0) // In rubrics, criterion index should be 1, 2, 3... - Err_WrongCriterionIndexExit (); - - return (unsigned) CriInd; - } - -/*****************************************************************************/ -/************ Request the creation or edition of a rubric criterion **********/ -/*****************************************************************************/ - -void RubCri_ReqCreatOrEditCriterion (void) - { - struct Rub_Rubrics Rubrics; - struct RubCri_Criterion Criterion; - bool ItsANewCriterion; - char Txt[Cns_MAX_BYTES_TEXT + 1]; - - /***** Check if I can edit rubrics *****/ - if (!Rub_CheckIfICanEditRubrics ()) - Err_NoPermissionExit (); - - /***** Reset rubrics context *****/ - Rub_ResetRubrics (&Rubrics); - Rub_ResetRubric (&Rubrics.Rubric); - RubCri_ResetCriterion (&Criterion); - - /***** Get parameters *****/ - Rub_GetPars (&Rubrics,true); - Rubrics.CriCod = Criterion.CriCod = ParCod_GetPar (ParCod_Cri); - ItsANewCriterion = (Criterion.CriCod <= 0); - - /***** Get exam data from database *****/ - Rub_GetDataOfRubricByCod (&Rubrics.Rubric); - Rub_DB_GetRubricTxt (Rubrics.Rubric.RubCod,Txt); - - /***** Get rubric data *****/ - if (ItsANewCriterion) - /* Initialize to empty rubric */ - Rub_ResetRubric (&Rubrics.Rubric); - else - { - /* Get rubric data from database */ - RubCri_GetDataOfCriterionByCod (&Criterion); - Rubrics.CriCod = Criterion.CriCod; - } - - /***** Put form to edit the rubric created or updated *****/ - Rub_PutFormEditionRubric (&Rubrics,Txt, - false); // No new rubric - } - -/****************************************************************************************************************************/ -/******************************************************* Headers ************************************************************/ -/****************************************************************************************************************************/ - /*****************************************************************************/ /*************** Put parameter to edit one rubric criterion ******************/ /*****************************************************************************/ @@ -308,7 +109,6 @@ void RubCri_GetDataOfCriterionByCod (struct RubCri_Criterion *Criterion) { MYSQL_RES *mysql_res; MYSQL_ROW row; - char StrCriInd[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; RubCri_ValueRange_t ValueRange; /***** Trivial check *****/ @@ -340,7 +140,6 @@ void RubCri_GetDataOfCriterionByCod (struct RubCri_Criterion *Criterion) /* Get criterion index (row[2]) */ Criterion->CriInd = Str_ConvertStrToUnsigned (row[2]); - snprintf (StrCriInd,sizeof (Criterion->CriInd),"%u",Criterion->CriInd); /* Get criterion minimum and maximum values (row[3], row[4]) */ for (ValueRange = (RubCri_ValueRange_t) 0; @@ -699,7 +498,6 @@ static void RubCri_ListOneOrMoreCriteriaForEdition (struct Rub_Rubrics *Rubrics, struct RubCri_Criterion Criterion; MYSQL_ROW row; char *Anchor; - char StrCriInd[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; RubCri_ValueRange_t ValueRange; /***** Trivial check *****/ @@ -735,7 +533,6 @@ static void RubCri_ListOneOrMoreCriteriaForEdition (struct Rub_Rubrics *Rubrics, /* Get criterion index (row[1]) */ Criterion.CriInd = Str_ConvertStrToUnsigned (row[1]); - snprintf (StrCriInd,sizeof (Criterion.CriInd),"%u",Criterion.CriInd); /* Get minimum value (row[2]) and maximum value (row[3]) */ for (ValueRange = (RubCri_ValueRange_t) 0; @@ -1071,7 +868,7 @@ void RubCri_MoveDownCriterion (void) { /* Indexes of criteria to be exchanged */ CriIndBottom = Rub_DB_GetNextCriterionIndexInRubric (Rubrics.Rubric.RubCod,CriIndTop); - if (CriIndBottom == 0) + if (CriIndBottom == 0) // 0 means error reading from database Err_ShowErrorAndExit ("Wrong criterion index."); /* Exchange criteria */ @@ -1152,33 +949,3 @@ static void RubCri_ExchangeCriteria (long RubCod, /***** Unlock table *****/ DB_UnlockTables (); } - -/*****************************************************************************/ -/********************** Show title of rubric criterion ***********************/ -/*****************************************************************************/ - -void RubCri_WriteCriterionTitle (const struct RubCri_Criterion *Criterion) - { - RubCri_ValueRange_t ValueRange; - - /***** Begin table *****/ - HTM_TABLE_BeginWide (); - - /***** Title *****/ - HTM_TD_Begin ("class=\"CRI_TITLE\""); - HTM_Txt (Criterion->Title); - HTM_TD_End (); - - /***** Minimum and maximum values *****/ - for (ValueRange = (RubCri_ValueRange_t) 0; - ValueRange <= (RubCri_ValueRange_t) (RubCri_NUM_VALUES - 1); - ValueRange++) - { - HTM_TD_Begin ("class=\"CRI_VALUE\""); - HTM_Double (Criterion->Values[ValueRange]); - HTM_TD_End (); - } - - /***** End table *****/ - HTM_TABLE_End (); - } diff --git a/swad_rubric_criteria.h b/swad_rubric_criteria.h index 9a1f326b..5abdd34d 100644 --- a/swad_rubric_criteria.h +++ b/swad_rubric_criteria.h @@ -33,25 +33,6 @@ /***************************** Public prototypes *****************************/ /*****************************************************************************/ -void RubCri_CriterionConstructor (struct RubCri_Criterion *Criterion); -void RubCri_CriterionDestructor (struct RubCri_Criterion *Criterion); - -void RubCri_ListCriterionForEdition (struct RubCri_Criterion *Criterion, - unsigned CriInd,bool CriterionExists, - const char *Anchor); - -void RubCri_PutIconToAddNewCriterion (void *Rubrics); -void RubCri_PutButtonToAddNewCriterion (struct Rub_Rubrics *Rubrics); - -void RubCri_PutParCriInd (unsigned CriInd); -unsigned RubCri_GetParCriInd (void); - -void RubCri_ReqCreatOrEditCriterion (void); - -/*****************************************************************************/ -/***************************** Public prototypes *****************************/ -/*****************************************************************************/ - void RubCri_GetDataOfCriterionByCod (struct RubCri_Criterion *Criterion); void RubCri_ReceiveFormCriterion (void); @@ -70,6 +51,4 @@ void RubCri_RemoveCriterion (void); void RubCri_MoveUpCriterion (void); void RubCri_MoveDownCriterion (void); -void RubCri_WriteCriterionTitle (const struct RubCri_Criterion *Criterion); - #endif diff --git a/swad_rubric_database.c b/swad_rubric_database.c index 767691ea..73b658d4 100644 --- a/swad_rubric_database.c +++ b/swad_rubric_database.c @@ -426,16 +426,16 @@ void Rub_DB_UpdateCriteriaIndexesInRubricGreaterThan (long RubCod,unsigned CriIn /****************** Change index of a criterion in a rubric ******************/ /*****************************************************************************/ -void Rub_DB_UpdateCriterionIndex (long CriInd,long RubCod,long CriCod) +void Rub_DB_UpdateCriterionIndex (long CriInd,long CriCod,long RubCod) { DB_QueryUPDATE ("can not exchange indexes of criteria", "UPDATE rub_criteria" " SET CriInd=%ld" - " WHERE RubCod=%ld" - " AND CriCod=%ld", + " WHERE CriCod=%ld" + " AND RubCod=%ld", // Extra check CriInd, - RubCod, - CriCod); + CriCod, + RubCod); } /*****************************************************************************/ diff --git a/swad_rubric_database.h b/swad_rubric_database.h index 23055f29..349e8ca8 100644 --- a/swad_rubric_database.h +++ b/swad_rubric_database.h @@ -60,7 +60,7 @@ void Rub_DB_UpdateCriterionTitle (long CriCod,long RubCod, void Rub_DB_UpdateCriterionValue (long CriCod,long RubCod, RubCri_ValueRange_t ValueRange,double Value); void Rub_DB_UpdateCriteriaIndexesInRubricGreaterThan (long RubCod,unsigned CriInd); -void Rub_DB_UpdateCriterionIndex (long CriInd,long RubCod,long CriCod); +void Rub_DB_UpdateCriterionIndex (long CriInd,long CriCod,long RubCod); void Rub_DB_LockTable (void); unsigned Rub_DB_GetNumCriteriaInRubric (long RubCod); diff --git a/swad_text_action.c b/swad_text_action.c index 768ba109..63c70fce 100644 --- a/swad_text_action.c +++ b/swad_text_action.c @@ -14046,27 +14046,188 @@ const char *Txt_Actions[ActLst_NUM_ACTIONS] = "Remove rubric" // Çeviri lazim! #endif , - [ActFrmNewRubCri] = + [ActNewRubCri] = #if L==1 // ca - "Edit new rubric criterion" // Necessita traducció + "Create new rubric criterion" // Necessita traducció #elif L==2 // de - "Edit new rubric criterion" // Need Übersetzung + "Create new rubric criterion" // Need Übersetzung #elif L==3 // en - "Edit new rubric criterion" + "Create new rubric criterion" #elif L==4 // es - "Editar nuevo criterio de rúbrica" + "Crear nuevo criterio de rúbrica" #elif L==5 // fr - "Edit new rubric criterion" // Besoin de traduction + "Create new rubric criterion" // Besoin de traduction #elif L==6 // gn - "Editar nuevo criterio de rúbrica" // Okoteve traducción + "Crear nuevo criterio de rúbrica" // Okoteve traducción #elif L==7 // it - "Edit new rubric criterion" // Bisogno di traduzione + "Create new rubric criterion" // Bisogno di traduzione #elif L==8 // pl - "Edit new rubric criterion" // Potrzebujesz tlumaczenie + "Create new rubric criterion" // Potrzebujesz tlumaczenie #elif L==9 // pt - "Edit new rubric criterion" // Precisa de tradução + "Create new rubric criterion" // Precisa de tradução #elif L==10 // tr - "Edit new rubric criterion" // Çeviri lazim! + "Create new rubric criterion" // Çeviri lazim! +#endif + , + [ActReqRemRubCri] = +#if L==1 // ca + "Request rubric criterion removal" // Necessita traducció +#elif L==2 // de + "Request rubric criterion removal" // Need Übersetzung +#elif L==3 // en + "Request rubric criterion removal" +#elif L==4 // es + "Solicitar eliminación de criterio de rúbrica" +#elif L==5 // fr + "Request rubric criterion removal" // Besoin de traduction +#elif L==6 // gn + "Solicitar eliminación de criterio de rúbrica" // Okoteve traducción +#elif L==7 // it + "Request rubric criterion removal" // Bisogno di traduzione +#elif L==8 // pl + "Request rubric criterion removal" // Potrzebujesz tlumaczenie +#elif L==9 // pt + "Request rubric criterion removal" // Precisa de tradução +#elif L==10 // tr + "Request rubric criterion removal" // Çeviri lazim! +#endif + , + [ActRemRubCri] = +#if L==1 // ca + "Remove rubric criterion" // Necessita traducció +#elif L==2 // de + "Remove rubric criterion" // Need Übersetzung +#elif L==3 // en + "Remove rubric criterion" +#elif L==4 // es + "Eliminar criterio de rúbrica" +#elif L==5 // fr + "Remove rubric criterion" // Besoin de traduction +#elif L==6 // gn + "Eliminar criterio de rúbrica" // Okoteve traducción +#elif L==7 // it + "Remove rubric criterion" // Bisogno di traduzione +#elif L==8 // pl + "Remove rubric criterion" // Potrzebujesz tlumaczenie +#elif L==9 // pt + "Remove rubric criterion" // Precisa de tradução +#elif L==10 // tr + "Remove rubric criterion" // Çeviri lazim! +#endif + , + [ActUp_RubCri] = +#if L==1 // ca + "Move up rubric criterion" // Necessita traducció +#elif L==2 // de + "Move up rubric criterion" // Need Übersetzung +#elif L==3 // en + "Move up rubric criterion" +#elif L==4 // es + "Mover hacia arriba criterio de rúbrica" +#elif L==5 // fr + "Move up rubric criterion" // Besoin de traduction +#elif L==6 // gn + "Mover hacia arriba criterio de rúbrica" // Okoteve traducción +#elif L==7 // it + "Move up rubric criterion" // Bisogno di traduzione +#elif L==8 // pl + "Move up rubric criterion" // Potrzebujesz tlumaczenie +#elif L==9 // pt + "Move up rubric criterion" // Precisa de tradução +#elif L==10 // tr + "Move up rubric criterion" // Çeviri lazim! +#endif + , + [ActDwnRubCri] = +#if L==1 // ca + "Move down rubric criterion" // Necessita traducció +#elif L==2 // de + "Move down rubric criterion" // Need Übersetzung +#elif L==3 // en + "Move down rubric criterion" +#elif L==4 // es + "Mover hacia abajo criterio de rúbrica" +#elif L==5 // fr + "Move down rubric criterion" // Besoin de traduction +#elif L==6 // gn + "Mover hacia abajo criterio de rúbrica" // Okoteve traducción +#elif L==7 // it + "Move down rubric criterion" // Bisogno di traduzione +#elif L==8 // pl + "Move down rubric criterion" // Potrzebujesz tlumaczenie +#elif L==9 // pt + "Move down rubric criterion" // Precisa de tradução +#elif L==10 // tr + "Move down rubric criterion" // Çeviri lazim! +#endif + , + [ActChgTitRubCri] = +#if L==1 // ca + "Change rubric criterion title" // Necessita traducció +#elif L==2 // de + "Change rubric criterion title" // Need Übersetzung +#elif L==3 // en + "Change rubric criterion title" +#elif L==4 // es + "Cambiar título de criterio de rúbrica" +#elif L==5 // fr + "Change rubric criterion title" // Besoin de traduction +#elif L==6 // gn + "Cambiar título de criterio de rúbrica" // Okoteve traducción +#elif L==7 // it + "Change rubric criterion title" // Bisogno di traduzione +#elif L==8 // pl + "Change rubric criterion title" // Potrzebujesz tlumaczenie +#elif L==9 // pt + "Change rubric criterion title" // Precisa de tradução +#elif L==10 // tr + "Change rubric criterion title" // Çeviri lazim! +#endif + , + [ActChgMinRubCri] = +#if L==1 // ca + "Change minimum value of rubric criterion" // Necessita traducció +#elif L==2 // de + "Change minimum value of rubric criterion" // Need Übersetzung +#elif L==3 // en + "Change minimum value of rubric criterion" +#elif L==4 // es + "Cambiar valor mínimo de criterio de rúbrica" +#elif L==5 // fr + "Change minimum value of rubric criterion" // Besoin de traduction +#elif L==6 // gn + "Cambiar valor mínimo de criterio de rúbrica" // Okoteve traducción +#elif L==7 // it + "Change minimum value of rubric criterion" // Bisogno di traduzione +#elif L==8 // pl + "Change minimum value of rubric criterion" // Potrzebujesz tlumaczenie +#elif L==9 // pt + "Change minimum value of rubric criterion" // Precisa de tradução +#elif L==10 // tr + "Change minimum value of rubric criterion" // Çeviri lazim! +#endif + , + [ActChgMaxRubCri] = +#if L==1 // ca + "Change maximum value of rubric criterion" // Necessita traducció +#elif L==2 // de + "Change maximum value of rubric criterion" // Need Übersetzung +#elif L==3 // en + "Change maximum value of rubric criterion" +#elif L==4 // es + "Cambiar valor máximo de criterio de rúbrica" +#elif L==5 // fr + "Change maximum value of rubric criterion" // Besoin de traduction +#elif L==6 // gn + "Cambiar valor máximo de criterio de rúbrica" // Okoteve traducción +#elif L==7 // it + "Change maximum value of rubric criterion" // Bisogno di traduzione +#elif L==8 // pl + "Change maximum value of rubric criterion" // Potrzebujesz tlumaczenie +#elif L==9 // pt + "Change maximum value of rubric criterion" // Precisa de tradução +#elif L==10 // tr + "Change maximum value of rubric criterion" // Çeviri lazim! #endif , [ActSeeAdmDocIns] =