From 010b2d38e670562360336ef92989d1343940e00a Mon Sep 17 00:00:00 2001 From: acanas Date: Fri, 24 Mar 2023 09:15:51 +0100 Subject: [PATCH] Version 22.79: Mar 24, 2023 New action to change source of rubric criterion. --- swad_action_list.c | 10 ++-- swad_action_list.h | 9 +-- swad_changelog.h | 3 +- swad_rubric_criteria.c | 126 +++++++++++++++++++++++++++++++++-------- swad_rubric_criteria.h | 9 +-- swad_rubric_database.c | 43 +++++++++----- swad_rubric_database.h | 10 ++-- swad_rubric_type.h | 1 - swad_text.c | 106 ++++++++++++++++++++++++++++++++-- swad_text_action.c | 23 ++++++++ 10 files changed, 278 insertions(+), 62 deletions(-) diff --git a/swad_action_list.c b/swad_action_list.c index b28ef728..aeb9a7e7 100644 --- a/swad_action_list.c +++ b/swad_action_list.c @@ -849,10 +849,11 @@ const struct Act_Actions ActLst_Actions[ActLst_NUM_ACTIONS] = [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}, - [ActChgWeiRubCri ] = {1967,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,RubCri_ChangeWeightCriterion ,NULL}, + [ActChgTitRubCri ] = {1964,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,RubCri_ChangeTitle ,NULL}, + [ActChgSrcRubCri ] = {1968,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,RubCri_ChangeSource ,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}, // TabFil ****************************************************************** // Actions in menu: @@ -3852,4 +3853,5 @@ Act_Action_t ActLst_FromActCodToAction[1 + ActLst_MAX_ACTION_COD] = // Do not re ActChgMinRubCri, // #1965 ActChgMaxRubCri, // #1966 ActChgWeiRubCri, // #1967 + ActChgSrcRubCri, // #1968 }; diff --git a/swad_action_list.h b/swad_action_list.h index db372657..294893e4 100644 --- a/swad_action_list.h +++ b/swad_action_list.h @@ -773,9 +773,10 @@ #define ActUp_RubCri (ActChgCrsTT1stDay + 230) #define ActDwnRubCri (ActChgCrsTT1stDay + 231) #define ActChgTitRubCri (ActChgCrsTT1stDay + 232) -#define ActChgMinRubCri (ActChgCrsTT1stDay + 233) -#define ActChgMaxRubCri (ActChgCrsTT1stDay + 234) -#define ActChgWeiRubCri (ActChgCrsTT1stDay + 235) +#define ActChgSrcRubCri (ActChgCrsTT1stDay + 233) +#define ActChgMinRubCri (ActChgCrsTT1stDay + 234) +#define ActChgMaxRubCri (ActChgCrsTT1stDay + 235) +#define ActChgWeiRubCri (ActChgCrsTT1stDay + 236) /*****************************************************************************/ /******************************** Files tab **********************************/ @@ -1768,7 +1769,7 @@ #define ActLst_NUM_ACTIONS (ActChgMyTT1stDay + 1) -#define ActLst_MAX_ACTION_COD 1967 +#define ActLst_MAX_ACTION_COD 1968 #define ActLst_DEFAULT_ACTION_AFTER_LOGIN ActSeeGblTL diff --git a/swad_changelog.h b/swad_changelog.h index c3a66fc0..9f1411fc 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.78.15 (2023-03-23)" +#define Log_PLATFORM_VERSION "SWAD 22.79 (2023-03-24)" #define CSS_FILE "swad22.78.15.css" #define JS_FILE "swad22.49.js" /* + 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) Version 22.78.13: Mar 23, 2023 Code refactoring in rooms. (337641 lines) diff --git a/swad_rubric_criteria.c b/swad_rubric_criteria.c index 65db91cf..c2017337 100644 --- a/swad_rubric_criteria.c +++ b/swad_rubric_criteria.c @@ -70,6 +70,7 @@ static void RubCri_PutFormNewCriterion (struct Rub_Rubrics *Rubrics, static void RubCri_ReceiveCriterionFieldsFromForm (struct RubCri_Criterion *Criterion); static bool RubCri_CheckCriterionTitleReceivedFromForm (const struct RubCri_Criterion *Criterion, const char NewTitle[RubCri_MAX_BYTES_TITLE + 1]); +static RubCri_Source_t RubCri_GetParSource (void); static void RubCri_ChangeValueCriterion (RubCri_ValueRange_t ValueRange); @@ -141,7 +142,10 @@ static void RubCri_PutFormNewCriterion (struct Rub_Rubrics *Rubrics, unsigned MaxCriInd) { extern const char *Txt_New_criterion; + extern const char *Txt_RUBRIC_CRITERION_SOURCES[RubCri_NUM_SOURCES]; extern const char *Txt_Create_criterion; + RubCri_Source_t Source; + unsigned SourceUnsigned; RubCri_ValueRange_t ValueRange; /***** Begin form *****/ @@ -181,10 +185,17 @@ static void RubCri_PutFormNewCriterion (struct Rub_Rubrics *Rubrics, /***** Source *****/ HTM_TD_Begin ("class=\"LM %s\"",The_GetColorRows ()); HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE, - "id=\"deg\" name=\"Source\" class=\"INPUT_%s\"", + "name=\"Source\" class=\"INPUT_%s\"", The_GetSuffix ()); - HTM_OPTION (HTM_Type_STRING,"Y",true,false, - "%s","Fuente"); + for (Source = (RubCri_Source_t) 0; + Source <= (RubCri_Source_t) (RubCri_NUM_SOURCES - 1); + Source++) + { + SourceUnsigned = (unsigned) Source; + HTM_OPTION (HTM_Type_UNSIGNED,&SourceUnsigned, + Source == Criterion->Source,false, + "%s",Txt_RUBRIC_CRITERION_SOURCES[Source]); + } HTM_SELECT_End (); HTM_TD_End (); @@ -264,6 +275,9 @@ static void RubCri_ReceiveCriterionFieldsFromForm (struct RubCri_Criterion *Crit /***** Get criterion title *****/ Par_GetParText ("Title",Criterion->Title,RubCri_MAX_BYTES_TITLE); + /***** Get criterion source *****/ + Criterion->Source = RubCri_GetParSource (); + /***** Get minimum and maximum values of criterion *****/ for (ValueRange = (RubCri_ValueRange_t) 0; ValueRange <= (RubCri_ValueRange_t) (RubCri_NUM_VALUES - 1); @@ -310,11 +324,24 @@ static bool RubCri_CheckCriterionTitleReceivedFromForm (const struct RubCri_Crit return NewTitleIsCorrect; } +/*****************************************************************************/ +/****************** Get parameter with criterion source **********************/ +/*****************************************************************************/ + +static RubCri_Source_t RubCri_GetParSource (void) + { + return (RubCri_Source_t) + Par_GetParUnsignedLong ("Source", + 0, + RubCri_NUM_SOURCES - 1, + (unsigned long) RubCri_SOURCE_DEFAULT); + } + /*****************************************************************************/ /************* Receive form to change title of rubric criterion **************/ /*****************************************************************************/ -void RubCri_ChangeCriterionTitle (void) +void RubCri_ChangeTitle (void) { struct Rub_Rubrics Rubrics; struct RubCri_Criterion Criterion; @@ -342,11 +369,9 @@ void RubCri_ChangeCriterionTitle (void) /***** Check if title should be changed *****/ if (RubCri_CheckCriterionTitleReceivedFromForm (&Criterion,NewTitle)) { - /* Update the table changing old title by new title */ - Rub_DB_UpdateCriterionTitle (Criterion.CriCod,Criterion.RubCod,NewTitle); - - /* Update title */ + /* Update title and database table */ Str_Copy (Criterion.Title,NewTitle,sizeof (Criterion.Title) - 1); + Rub_DB_UpdateCriterionTitle (&Criterion); } /***** Show current rubric and its criteria *****/ @@ -354,16 +379,58 @@ void RubCri_ChangeCriterionTitle (void) false); // It's not a new rubric } +/*****************************************************************************/ +/****************** Receive form to change criterion source ******************/ +/*****************************************************************************/ + +void RubCri_ChangeSource (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 source from form *****/ + Criterion.Source = RubCri_GetParSource (); + + /***** Change source *****/ + /* Update the table changing old source by new source */ + Rub_DB_UpdateCriterionSource (&Criterion); + + /***** Show current rubric and its criteria *****/ + Rub_PutFormsOneRubric (&Rubrics,&Criterion, + false); // It's not a new rubric + } + /*****************************************************************************/ /********* Receive form to change minimum/maximum value of criterion *********/ /*****************************************************************************/ -void RubCri_ChangeMinValueCriterion (void) +void RubCri_ChangeMinValue (void) { RubCri_ChangeValueCriterion (RubCri_MIN); } -void RubCri_ChangeMaxValueCriterion (void) +void RubCri_ChangeMaxValue (void) { RubCri_ChangeValueCriterion (RubCri_MAX); } @@ -401,8 +468,7 @@ static void RubCri_ChangeValueCriterion (RubCri_ValueRange_t ValueRange) /***** Change value *****/ /* Update the table changing old value by new value */ - Rub_DB_UpdateCriterionValue (Criterion.CriCod,Criterion.RubCod, - ValueRange,Criterion.Values[ValueRange]); + Rub_DB_UpdateCriterionValue (&Criterion,ValueRange); /***** Show current rubric and its criteria *****/ Rub_PutFormsOneRubric (&Rubrics,&Criterion, @@ -410,10 +476,10 @@ static void RubCri_ChangeValueCriterion (RubCri_ValueRange_t ValueRange) } /*****************************************************************************/ -/********* Receive form to change minimum/maximum value of criterion *********/ +/****************** Receive form to change criterion weight ******************/ /*****************************************************************************/ -void RubCri_ChangeWeightCriterion (void) +void RubCri_ChangeWeight (void) { struct Rub_Rubrics Rubrics; struct RubCri_Criterion Criterion; @@ -440,14 +506,13 @@ void RubCri_ChangeWeightCriterion (void) if (!Rub_CheckIfEditable (&Rubrics.Rubric)) Err_NoPermissionExit (); - /***** Receive new value from form *****/ + /***** Receive new weight from form *****/ Par_GetParText ("Weight",WeightStr,sizeof (WeightStr) - 1); Criterion.Weight = Str_GetDoubleFromStr (WeightStr); /***** Change value *****/ - /* Update the table changing old value by new value */ - Rub_DB_UpdateCriterionWeight (Criterion.CriCod,Criterion.RubCod, - Criterion.Weight); + /* Update the table changing old weight by new weight */ + Rub_DB_UpdateCriterionWeight (&Criterion); /***** Show current rubric and its criteria *****/ Rub_PutFormsOneRubric (&Rubrics,&Criterion, @@ -530,6 +595,7 @@ static void RubCri_ListOneOrMoreCriteriaForEdition (struct Rub_Rubrics *Rubrics, { extern const char *Txt_Criteria; extern const char *Txt_Movement_not_allowed; + extern const char *Txt_RUBRIC_CRITERION_SOURCES[RubCri_NUM_SOURCES]; // Actions to change minimum/maximum criterion values static Act_Action_t RubCri_ActionsValues[RubCri_NUM_VALUES] = { @@ -539,6 +605,8 @@ static void RubCri_ListOneOrMoreCriteriaForEdition (struct Rub_Rubrics *Rubrics, unsigned NumCriterion; struct RubCri_Criterion Criterion; char *Anchor; + RubCri_Source_t Source; + unsigned SourceUnsigned; RubCri_ValueRange_t ValueRange; /***** Trivial check *****/ @@ -635,12 +703,22 @@ static void RubCri_ListOneOrMoreCriteriaForEdition (struct Rub_Rubrics *Rubrics, /***** Source *****/ HTM_TD_Begin ("class=\"LT %s\"",The_GetColorRows ()); - HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE, - "id=\"deg\" name=\"Source\" class=\"INPUT_%s\"", - The_GetSuffix ()); - HTM_OPTION (HTM_Type_STRING,"Y",true,false, - "%s","Fuente"); - HTM_SELECT_End (); + Frm_BeginFormAnchor (ActChgSrcRubCri,Anchor); + RubCri_PutParsOneCriterion (Rubrics); + HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE, + "name=\"Source\" class=\"INPUT_%s\"", + The_GetSuffix ()); + for (Source = (RubCri_Source_t) 0; + Source <= (RubCri_Source_t) (RubCri_NUM_SOURCES - 1); + Source++) + { + SourceUnsigned = (unsigned) Source; + HTM_OPTION (HTM_Type_UNSIGNED,&SourceUnsigned, + Source == Criterion.Source,false, + "%s",Txt_RUBRIC_CRITERION_SOURCES[Source]); + } + HTM_SELECT_End (); + Frm_EndForm (); HTM_TD_End (); /***** Minimum and maximum values of criterion *****/ diff --git a/swad_rubric_criteria.h b/swad_rubric_criteria.h index aade5d20..e4aaf342 100644 --- a/swad_rubric_criteria.h +++ b/swad_rubric_criteria.h @@ -36,10 +36,11 @@ void RubCri_GetCriterionDataByCod (struct RubCri_Criterion *Criterion); void RubCri_ReceiveFormCriterion (void); -void RubCri_ChangeCriterionTitle (void); -void RubCri_ChangeMinValueCriterion (void); -void RubCri_ChangeMaxValueCriterion (void); -void RubCri_ChangeWeightCriterion (void); +void RubCri_ChangeTitle (void); +void RubCri_ChangeSource (void); +void RubCri_ChangeMinValue (void); +void RubCri_ChangeMaxValue (void); +void RubCri_ChangeWeight (void); void RubCri_ListCriteria (struct Rub_Rubrics *Rubrics, struct RubCri_Criterion *Criterion); diff --git a/swad_rubric_database.c b/swad_rubric_database.c index e0b5a187..77b31cbc 100644 --- a/swad_rubric_database.c +++ b/swad_rubric_database.c @@ -379,25 +379,40 @@ long Rub_DB_CreateCriterion (const struct RubCri_Criterion *Criterion) /********************* Update criterion title in database ********************/ /*****************************************************************************/ -void Rub_DB_UpdateCriterionTitle (long CriCod,long RubCod, - const char NewTitle[RubCri_MAX_BYTES_TITLE + 1]) +void Rub_DB_UpdateCriterionTitle (const struct RubCri_Criterion *Criterion) { DB_QueryUPDATE ("can not update the title of a criterion", "UPDATE rub_criteria" " SET Title='%s'" " WHERE CriCod=%ld" " AND RubCod=%ld", // Extra check - NewTitle, - CriCod, - RubCod); + Criterion->Title, + Criterion->CriCod, + Criterion->RubCod); + } + +/*****************************************************************************/ +/********************* Update criterion source in database *******************/ +/*****************************************************************************/ + +void Rub_DB_UpdateCriterionSource (const struct RubCri_Criterion *Criterion) + { + DB_QueryUPDATE ("can not update the value of a criterion", + "UPDATE rub_criteria" + " SET Source='%s'" + " WHERE CriCod=%ld" + " AND RubCod=%ld", // Extra check + RubCri_GetDBStrFromSource (Criterion->Source), + Criterion->CriCod, + Criterion->RubCod); } /*****************************************************************************/ /********************* Update criterion value in database ********************/ /*****************************************************************************/ -void Rub_DB_UpdateCriterionValue (long CriCod,long RubCod, - RubCri_ValueRange_t ValueRange,double Value) +void Rub_DB_UpdateCriterionValue (const struct RubCri_Criterion *Criterion, + RubCri_ValueRange_t ValueRange) { Str_SetDecimalPointToUS (); // To write the decimal point as a dot DB_QueryUPDATE ("can not update the value of a criterion", @@ -405,9 +420,9 @@ void Rub_DB_UpdateCriterionValue (long CriCod,long RubCod, " SET %s=%.15lg" " WHERE CriCod=%ld" " AND RubCod=%ld", // Extra check - RubCri_ValuesFields[ValueRange],Value, - CriCod, - RubCod); + RubCri_ValuesFields[ValueRange],Criterion->Values[ValueRange], + Criterion->CriCod, + Criterion->RubCod); Str_SetDecimalPointToLocal (); // Return to local system } @@ -415,7 +430,7 @@ void Rub_DB_UpdateCriterionValue (long CriCod,long RubCod, /********************* Update criterion weight in database *******************/ /*****************************************************************************/ -void Rub_DB_UpdateCriterionWeight (long CriCod,long RubCod,double Weight) +void Rub_DB_UpdateCriterionWeight (const struct RubCri_Criterion *Criterion) { Str_SetDecimalPointToUS (); // To write the decimal point as a dot DB_QueryUPDATE ("can not update the value of a criterion", @@ -423,9 +438,9 @@ void Rub_DB_UpdateCriterionWeight (long CriCod,long RubCod,double Weight) " SET Weight=%.15lg" " WHERE CriCod=%ld" " AND RubCod=%ld", // Extra check - Weight, - CriCod, - RubCod); + Criterion->Weight, + Criterion->CriCod, + Criterion->RubCod); Str_SetDecimalPointToLocal (); // Return to local system } diff --git a/swad_rubric_database.h b/swad_rubric_database.h index a5d77ef7..874e5df2 100644 --- a/swad_rubric_database.h +++ b/swad_rubric_database.h @@ -55,11 +55,11 @@ void Rub_DB_RemoveCrsRubrics (long CrsCod); //--------------------------- Rubric criteria ------------------------------- long Rub_DB_CreateCriterion (const struct RubCri_Criterion *Criterion); -void Rub_DB_UpdateCriterionTitle (long CriCod,long RubCod, - const char NewTitle[RubCri_MAX_BYTES_TITLE + 1]); -void Rub_DB_UpdateCriterionValue (long CriCod,long RubCod, - RubCri_ValueRange_t ValueRange,double Value); -void Rub_DB_UpdateCriterionWeight (long CriCod,long RubCod,double Weight); +void Rub_DB_UpdateCriterionTitle (const struct RubCri_Criterion *Criterion); +void Rub_DB_UpdateCriterionSource (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_LockTable (void); diff --git a/swad_rubric_type.h b/swad_rubric_type.h index ebe0fee1..aa734516 100644 --- a/swad_rubric_type.h +++ b/swad_rubric_type.h @@ -23,7 +23,6 @@ You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ - /*****************************************************************************/ /********************************* Headers ***********************************/ /*****************************************************************************/ diff --git a/swad_text.c b/swad_text.c index 1d7e4c2f..75341d74 100644 --- a/swad_text.c +++ b/swad_text.c @@ -87,6 +87,7 @@ #include "swad_record.h" #include "swad_role.h" #include "swad_room.h" +#include "swad_rubric_type.h" #include "swad_setting.h" #include "swad_statistic.h" #include "swad_survey.h" @@ -15911,7 +15912,7 @@ const char *Txt_Game = #elif L==5 // fr "Jeu"; #elif L==6 // gn - "Juego"; // Okoteve traducción + "Ñeha'a"; #elif L==7 // it "Gioco"; #elif L==8 // pl @@ -37722,7 +37723,7 @@ const char *Txt_ROLES_SINGUL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS] = #elif L==9 // pt "Professor/a" #elif L==10 // tr - "Teacher" // Çeviri lazim! + "Öğretmen" #endif , [Rol_TCH][Usr_SEX_FEMALE] = @@ -37745,7 +37746,7 @@ const char *Txt_ROLES_SINGUL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS] = #elif L==9 // pt "Professora" #elif L==10 // tr - "Teacher" // Çeviri lazim! + "Öğretmen" #endif , [Rol_TCH][Usr_SEX_MALE] = @@ -37768,7 +37769,7 @@ const char *Txt_ROLES_SINGUL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS] = #elif L==9 // pt "Professor" #elif L==10 // tr - "Teacher" // Çeviri lazim! + "Öğretmen" #endif , [Rol_TCH][Usr_SEX_ALL] = @@ -37791,7 +37792,7 @@ const char *Txt_ROLES_SINGUL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS] = #elif L==9 // pt "Professor/a" #elif L==10 // tr - "Teacher" // Çeviri lazim! + "Öğretmen" #endif , [Rol_DEG_ADM][Usr_SEX_UNKNOWN] = @@ -42812,6 +42813,101 @@ const char *Txt_Rubric_X_removed = // Warning: it is very important to include % "Değerlendirme listesi %s kaldırıldı."; #endif +const char *Txt_RUBRIC_CRITERION_SOURCES[RubCri_NUM_SOURCES] = + { + [RubCri_FROM_TEACHER] = +#if L==1 // ca + "Professor/a" +#elif L==2 // de + "Lehrkraft" +#elif L==3 // en + "Teacher" +#elif L==4 // es + "Profesor/a" +#elif L==5 // fr + "Enseignant/e" +#elif L==6 // gn + "Mbo'ehára" +#elif L==7 // it + "Professore/ssa" +#elif L==8 // pl + "Nauczyciel" +#elif L==9 // pt + "Professor/a" +#elif L==10 // tr + "Öğretmen" +#endif + , + [RubCri_FROM_ANOTHER_RUBRIC] = +#if L==1 // ca + "Rúbrica" +#elif L==2 // de + "Rubrik" +#elif L==3 // en + "Rubric" +#elif L==4 // es + "Rúbrica" +#elif L==5 // fr + "Rubrique" +#elif L==6 // gn + "Rúbrica" // Okoteve traducción +#elif L==7 // it + "Rubriche" +#elif L==8 // pl + "Rubryki" +#elif L==9 // pt + "Rubrica" +#elif L==10 // tr + "Değerlendirme" +#endif + , + [RubCri_FROM_EXAM_PRINT] = +#if L==1 // ca + "Exàmen" +#elif L==2 // de + "Prüfung" +#elif L==3 // en + "Exam" +#elif L==4 // es + "Examen" +#elif L==5 // fr + "Examen" +#elif L==6 // gn + "Aranduchauka" +#elif L==7 // it + "Esame" +#elif L==8 // pl + "Egzamin" +#elif L==9 // pt + "Exame" +#elif L==10 // tr + "Sınav" +#endif + , + [RubCri_FROM_GAME_MATCH] = +#if L==1 // ca + "Joc" +#elif L==2 // de + "Spiel" +#elif L==3 // en + "Game" +#elif L==4 // es + "Juego" +#elif L==5 // fr + "Jeu" +#elif L==6 // gn + "Ñeha'a" +#elif L==7 // it + "Gioco" +#elif L==8 // pl + "Gra" +#elif L==9 // pt + "Jogo" +#elif L==10 // tr + "Oyun" +#endif + }; + const char *Txt_Rubrics = #if L==1 // ca "Rúbriques"; diff --git a/swad_text_action.c b/swad_text_action.c index e1614094..47e43957 100644 --- a/swad_text_action.c +++ b/swad_text_action.c @@ -14182,6 +14182,29 @@ const char *Txt_Actions[ActLst_NUM_ACTIONS] = "Change rubric criterion title" // Precisa de tradução #elif L==10 // tr "Change rubric criterion title" // Çeviri lazim! +#endif + , + [ActChgSrcRubCri] = +#if L==1 // ca + "Change source of rubric criterion" // Necessita traducció +#elif L==2 // de + "Change source of rubric criterion" // Need Übersetzung +#elif L==3 // en + "Change source of rubric criterion" +#elif L==4 // es + "Cambiar fuente de criterio de rúbrica" +#elif L==5 // fr + "Change source of rubric criterion" // Besoin de traduction +#elif L==6 // gn + "Cambiar fuente de criterio de rúbrica" // Okoteve traducción +#elif L==7 // it + "Change source of rubric criterion" // Bisogno di traduzione +#elif L==8 // pl + "Change source of rubric criterion" // Potrzebujesz tlumaczenie +#elif L==9 // pt + "Change source of rubric criterion" // Precisa de tradução +#elif L==10 // tr + "Change source of rubric criterion" // Çeviri lazim! #endif , [ActChgMinRubCri] =