diff --git a/swad_action_list.c b/swad_action_list.c index d2fb613d..ee9b789a 100644 --- a/swad_action_list.c +++ b/swad_action_list.c @@ -852,8 +852,7 @@ const struct Act_Actions ActLst_Actions[ActLst_NUM_ACTIONS] = [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_ChangeTitle ,NULL}, - [ActChgTypRubCri ] = {1968,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,RubCri_ChangeType ,NULL}, - [ActChgLnkRubCri ] = {1970,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,RubCri_ChangeLink ,NULL}, + [ActChgLnkRubCri ] = {1968,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,RubCri_ChangeLink ,NULL}, [ActChgMinRubCri ] = {1965,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,RubCri_ChangeMinValue ,NULL}, [ActChgMaxRubCri ] = {1966,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,RubCri_ChangeMaxValue ,NULL}, [ActChgWeiRubCri ] = {1967,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,RubCri_ChangeWeight ,NULL}, @@ -3856,7 +3855,6 @@ Act_Action_t ActLst_FromActCodToAction[1 + ActLst_MAX_ACTION_COD] = // Do not re ActChgMinRubCri, // #1965 ActChgMaxRubCri, // #1966 ActChgWeiRubCri, // #1967 - ActChgTypRubCri, // #1968 + ActChgLnkRubCri, // #1968 ActReqLnkRub, // #1969 - ActChgLnkRubCri, // #1970 }; diff --git a/swad_action_list.h b/swad_action_list.h index 408cdd93..90a5d731 100644 --- a/swad_action_list.h +++ b/swad_action_list.h @@ -774,11 +774,10 @@ #define ActUp_RubCri (ActChgCrsTT1stDay + 231) #define ActDwnRubCri (ActChgCrsTT1stDay + 232) #define ActChgTitRubCri (ActChgCrsTT1stDay + 233) -#define ActChgTypRubCri (ActChgCrsTT1stDay + 234) -#define ActChgLnkRubCri (ActChgCrsTT1stDay + 235) -#define ActChgMinRubCri (ActChgCrsTT1stDay + 236) -#define ActChgMaxRubCri (ActChgCrsTT1stDay + 237) -#define ActChgWeiRubCri (ActChgCrsTT1stDay + 238) +#define ActChgLnkRubCri (ActChgCrsTT1stDay + 234) +#define ActChgMinRubCri (ActChgCrsTT1stDay + 235) +#define ActChgMaxRubCri (ActChgCrsTT1stDay + 236) +#define ActChgWeiRubCri (ActChgCrsTT1stDay + 237) /*****************************************************************************/ /******************************** Files tab **********************************/ @@ -1771,7 +1770,7 @@ #define ActLst_NUM_ACTIONS (ActChgMyTT1stDay + 1) -#define ActLst_MAX_ACTION_COD 1970 +#define ActLst_MAX_ACTION_COD 1969 #define ActLst_DEFAULT_ACTION_AFTER_LOGIN ActSeeGblTL diff --git a/swad_changelog.h b/swad_changelog.h index 6e3753b2..6c58863a 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -629,10 +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.83.1 (2023-03-27)" +#define Log_PLATFORM_VERSION "SWAD 22.83.2 (2023-03-27)" #define CSS_FILE "swad22.78.15.css" #define JS_FILE "swad22.49.js" /* + Version 22.83.2: Mar 27, 2023 Changes in rubric criteria. (338189 lines) Version 22.83.1: Mar 27, 2023 Changes in rubric criteria. (338297 lines) Version 22.83: Mar 27, 2023 New module swad_resource_database. (338208 lines) 1 change necessary in database: diff --git a/swad_rubric_criteria.c b/swad_rubric_criteria.c index 38b7ca70..3689d5e5 100644 --- a/swad_rubric_criteria.c +++ b/swad_rubric_criteria.c @@ -390,48 +390,6 @@ void RubCri_ChangeTitle (void) Rub_EXISTING_RUBRIC); // It's not a new rubric } -/*****************************************************************************/ -/******************* Receive form to change criterion type *******************/ -/*****************************************************************************/ - -void RubCri_ChangeType (void) - { - struct Rub_Rubrics Rubrics; - struct RubCri_Criterion Criterion; - - /***** 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); - Criterion.RubCod = Rubrics.Rubric.RubCod; - Rubrics.CriCod = Criterion.CriCod = ParCod_GetAndCheckPar (ParCod_Cri); - - /***** Get and check parameters *****/ - RubCri_GetAndCheckPars (&Rubrics,&Criterion); - - /***** Check if rubric is editable *****/ - if (!Rub_CheckIfEditable (&Rubrics.Rubric)) - Err_NoPermissionExit (); - - /***** Receive new type from form *****/ - Criterion.Link.Type = RubCri_GetParType (); - - /***** Change type *****/ - /* Update the table changing old type by new type */ - Rub_DB_UpdateCriterionType (&Criterion); - - /***** Show current rubric and its criteria *****/ - Rub_PutFormsOneRubric (&Rubrics,&Criterion, - Rub_EXISTING_RUBRIC); // It's not a new rubric - } - /*****************************************************************************/ /********* Receive form to change minimum/maximum value of criterion *********/ /*****************************************************************************/ @@ -616,8 +574,6 @@ static void RubCri_ListOneOrMoreCriteriaForEdition (struct Rub_Rubrics *Rubrics, unsigned NumCriterion; struct RubCri_Criterion Criterion; char *Anchor; - Rsc_Type_t Type; - unsigned SourceUnsigned; RubCri_ValueRange_t ValueRange; /***** Trivial check *****/ @@ -712,29 +668,8 @@ static void RubCri_ListOneOrMoreCriteriaForEdition (struct Rub_Rubrics *Rubrics, HTM_ARTICLE_End (); HTM_TD_End (); - /***** Source *****/ + /***** Link to resource *****/ HTM_TD_Begin ("class=\"LT %s\"",The_GetColorRows ()); - /* Type of source selector */ - Frm_BeginFormAnchor (ActChgTypRubCri,Anchor); - RubCri_PutParsOneCriterion (Rubrics); - HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE, - "name=\"Type\" class=\"INPUT_%s\"", - The_GetSuffix ()); - for (Type = (Rsc_Type_t) 0; - Type <= (Rsc_Type_t) (Rsc_NUM_TYPES - 1); - Type++) - { - SourceUnsigned = (unsigned) Type; - HTM_OPTION (HTM_Type_UNSIGNED,&SourceUnsigned, - Type == Criterion.Link.Type,false, - "%s",Txt_RESOURCE_TYPES[Type]); - } - HTM_SELECT_End (); - Frm_EndForm (); - - HTM_BR (); - - /* Resource */ RubCri_ShowResource (Rubrics,&Criterion, true,Anchor); // Editing HTM_TD_End (); @@ -835,8 +770,10 @@ static void RubCri_GetCriterionDataFromRow (MYSQL_RES *mysql_res, row[8] Title */ /***** Get criterion code (row[0]) and rubric code (row[1]) *****/ - Criterion->CriCod = Str_ConvertStrCodToLongCod (row[0]); - Criterion->RubCod = Str_ConvertStrCodToLongCod (row[1]); + if ((Criterion->CriCod = Str_ConvertStrCodToLongCod (row[0])) <= 0) + Err_WrongCriterionExit (); + if ((Criterion->RubCod = Str_ConvertStrCodToLongCod (row[1])) <= 0) + Err_WrongRubricExit (); /***** Get criterion index (row[2]) *****/ Criterion->CriInd = Str_ConvertStrToUnsigned (row[2]); @@ -1195,11 +1132,6 @@ static void RubCri_ShowClipboard (struct Rub_Rubrics *Rubrics, /***** Begin form *****/ Frm_BeginFormAnchor (ActChgLnkRubCri,Anchor); RubCri_PutParsOneCriterion (Rubrics); - if (Criterion->CriCod > 0) - ParCod_PutPar (ParCod_Cri,Criterion->CriCod); - // else - /* No resource selected, so it's a new resource at the end of the item */ - // ParCod_PutPar (ParCod_Itm,Item->Hierarchy.ItmCod); /***** Begin list *****/ HTM_UL_Begin ("class=\"PRG_CLIPBOARD\""); @@ -1260,18 +1192,6 @@ void RubCri_ChangeLink (void) Criterion.Link.Type = Rsc_GetTypeFromString (TypeStr); Criterion.Link.Cod = Cod; - /***** Is it an existing resource? *****/ - // if (Criterion.CriCod <= 0) - //{ - /* No resource selected, so it's a new resource at the end of the item */ - /* Get the new title for the new resource from link title */ - //Rsc_GetResourceTitleFromLink (&Item.Resource.Link, - // Item.Resource.Title); - - /***** Create resource *****/ - // Item.Resource.Hierarchy.RscCod = Prg_DB_CreateResource (&Item); - //} - /***** Update link to resource in criterion *****/ Rub_DB_UpdateCriterionLink (&Criterion); diff --git a/swad_rubric_criteria.h b/swad_rubric_criteria.h index 5692914b..46f6e098 100644 --- a/swad_rubric_criteria.h +++ b/swad_rubric_criteria.h @@ -37,7 +37,6 @@ void RubCri_GetCriterionDataByCod (struct RubCri_Criterion *Criterion); void RubCri_ReceiveFormCriterion (void); void RubCri_ChangeTitle (void); -void RubCri_ChangeType (void); void RubCri_ChangeMinValue (void); void RubCri_ChangeMaxValue (void); void RubCri_ChangeWeight (void); diff --git a/swad_rubric_database.c b/swad_rubric_database.c index 43ea5336..d2a0ecc8 100644 --- a/swad_rubric_database.c +++ b/swad_rubric_database.c @@ -393,21 +393,21 @@ void Rub_DB_UpdateCriterionTitle (const struct RubCri_Criterion *Criterion) } /*****************************************************************************/ -/********************** Update criterion type in database ********************/ +/******** Update the link to a resource in a criterion given its code ********/ /*****************************************************************************/ -void Rub_DB_UpdateCriterionType (const struct RubCri_Criterion *Criterion) +void Rub_DB_UpdateCriterionLink (const struct RubCri_Criterion *Criterion) { extern const char *Rsc_ResourceTypesDB[Rsc_NUM_TYPES]; - DB_QueryUPDATE ("can not update the value of a criterion", + DB_QueryUPDATE ("can not update link of criterion", "UPDATE rub_criteria" - " SET Type='%s'" - " WHERE CriCod=%ld" - " AND RubCod=%ld", // Extra check + " SET Type='%s'," + "Cod=%ld" + " WHERE CriCod=%ld", Rsc_ResourceTypesDB[Criterion->Link.Type], - Criterion->CriCod, - Criterion->RubCod); + Criterion->Link.Cod, + Criterion->CriCod); } /*****************************************************************************/ @@ -478,24 +478,6 @@ void Rub_DB_UpdateCriterionIndex (long CriInd,long CriCod,long RubCod) RubCod); } -/*****************************************************************************/ -/******** Update the link to a resource in a criterion given its code ********/ -/*****************************************************************************/ - -void Rub_DB_UpdateCriterionLink (const struct RubCri_Criterion *Criterion) - { - extern const char *Rsc_ResourceTypesDB[Rsc_NUM_TYPES]; - - DB_QueryUPDATE ("can not update link of criterion", - "UPDATE rub_criteria" - " SET Type='%s'," - "Cod=%ld" - " WHERE CriCod=%ld", - Rsc_ResourceTypesDB[Criterion->Link.Type], - Criterion->Link.Cod, - Criterion->CriCod); - } - /*****************************************************************************/ /************ Lock table to make the exchange of criteria atomic ***********/ /*****************************************************************************/ diff --git a/swad_rubric_database.h b/swad_rubric_database.h index 5d6a6026..b7cad3d9 100644 --- a/swad_rubric_database.h +++ b/swad_rubric_database.h @@ -56,13 +56,12 @@ void Rub_DB_RemoveCrsRubrics (long CrsCod); //--------------------------- Rubric criteria ------------------------------- long Rub_DB_CreateCriterion (const struct RubCri_Criterion *Criterion); void Rub_DB_UpdateCriterionTitle (const struct RubCri_Criterion *Criterion); -void Rub_DB_UpdateCriterionType (const struct RubCri_Criterion *Criterion); +void Rub_DB_UpdateCriterionLink (const struct RubCri_Criterion *Criterion); void Rub_DB_UpdateCriterionValue (const struct RubCri_Criterion *Criterion, RubCri_ValueRange_t ValueRange); void Rub_DB_UpdateCriterionWeight (const struct RubCri_Criterion *Criterion); void Rub_DB_UpdateCriteriaIndexesInRubricGreaterThan (long RubCod,unsigned CriInd); void Rub_DB_UpdateCriterionIndex (long CriInd,long CriCod,long RubCod); -void Rub_DB_UpdateCriterionLink (const struct RubCri_Criterion *Criterion); void Rub_DB_LockTable (void); unsigned Rub_DB_GetNumCriteriaInRubric (long RubCod); diff --git a/swad_text_action.c b/swad_text_action.c index afd5064c..f8f86274 100644 --- a/swad_text_action.c +++ b/swad_text_action.c @@ -14205,29 +14205,6 @@ const char *Txt_Actions[ActLst_NUM_ACTIONS] = "Alterar título do critério de rubrica" #elif L==10 // tr "Puan anahtarı ölçüt başlığını değiştir" // Çeviri lazim! -#endif - , - [ActChgTypRubCri] = -#if L==1 // ca - "Canviar font de criteri de rúbrica" -#elif L==2 // de - "Schriftart der Rubrikkriterien ändern" -#elif L==3 // en - "Change rubric criterion source" -#elif L==4 // es - "Cambiar fuente de criterio de rúbrica" -#elif L==5 // fr - "Modifier source de critère de rubrique" -#elif L==6 // gn - "Omoambue criterio rúbrica fuente" -#elif L==7 // it - "Cambiare fonte di criterio di rubrica" -#elif L==8 // pl - "Zmień źródło kryterium rubryki" -#elif L==9 // pt - "Alterar origem do critério de rubrica" -#elif L==10 // tr - "Puan anahtarı ölçüt yazı tipini değiştir" #endif , [ActChgLnkRubCri] =