From 2f7bbefe59c4937178a4faa8bb6f1cc0e4a77f51 Mon Sep 17 00:00:00 2001 From: acanas Date: Wed, 1 Mar 2023 18:16:00 +0100 Subject: [PATCH] Version 22.65: Mar 01, 2023 New module swad_rubric for rubrics. Not finished. --- Makefile | 2 +- swad_action_list.c | 18 +- swad_action_list.h | 892 ++++++++++++++++++++++--------------------- swad_call_for_exam.c | 8 +- swad_changelog.h | 8 + swad_database.c | 42 ++ swad_error.c | 23 ++ swad_error.h | 3 + swad_figure.c | 2 + swad_figure.h | 3 +- swad_help_URL.c | 341 +++++++++++------ swad_notification.c | 8 +- swad_notification.h | 4 +- swad_pagination.c | 27 +- swad_pagination.h | 9 +- swad_survey.c | 26 +- swad_text.c | 839 +++++++++++++++++++++++++++++++--------- swad_text_action.c | 161 ++++++++ 18 files changed, 1650 insertions(+), 766 deletions(-) diff --git a/Makefile b/Makefile index 606234d5..26ec71f6 100644 --- a/Makefile +++ b/Makefile @@ -84,7 +84,7 @@ OBJS = swad_account.o swad_account_database.o swad_action.o swad_action_list.o \ swad_QR.o \ swad_record.o swad_record_database.o swad_report.o \ swad_report_database.o swad_role.o swad_role_database.o swad_room.o \ - swad_room_database.o swad_RSS.o \ + swad_room_database.o swad_RSS.o swad_rubric.o swad_rubric_database.o \ swad_scope.o swad_search.o swad_session.o swad_session_database.o \ swad_setting.o swad_setting_database.o swad_statistic.o \ swad_statistic_database.o swad_string.o swad_survey.o \ diff --git a/swad_action_list.c b/swad_action_list.c index b4ef1c0f..49f605ce 100644 --- a/swad_action_list.c +++ b/swad_action_list.c @@ -99,6 +99,7 @@ #include "swad_QR.h" #include "swad_report.h" #include "swad_role.h" +#include "swad_rubric.h" #include "swad_search.h" #include "swad_session.h" #include "swad_setting.h" @@ -593,7 +594,7 @@ const struct Act_Actions ActLst_Actions[ActLst_NUM_ACTIONS] = [ActReqTst ] = { 103, 4,TabAss,ActReqTst ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Tst_RequestTest ,"check" }, [ActSeeAllExa ] = {1848, 5,TabAss,ActSeeAllExa ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Exa_SeeAllExams ,"file-signature" }, [ActSeeAllGam ] = {1649, 6,TabAss,ActSeeAllGam ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Gam_SeeAllGames ,"gamepad" }, - [ActSeeAllRub ] = {1951, 7,TabAss,ActSeeAllRub ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Gam_SeeAllGames ,"tasks" }, + [ActSeeAllRub ] = {1951, 7,TabAss,ActSeeAllRub ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Rub_SeeAllRubrics ,"tasks" }, // Actions not in menu: [ActFrmNewAsg ] = { 812,-1,TabUnk,ActSeeAsg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Asg_RequestCreatOrEditAsg ,NULL}, @@ -834,6 +835,14 @@ const struct Act_Actions ActLst_Actions[ActLst_NUM_ACTIONS] = [ActDwnGamQst ] = {1669,-1,TabUnk,ActSeeAllGam ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Gam_MoveDownQst ,NULL}, [ActReqLnkGam ] = {1935,-1,TabUnk,ActSeeAllGam ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,GamRsc_GetLinkToGame ,NULL}, + [ActSeeRub ] = {1952,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Rub_SeeOneRubric ,NULL}, + [ActFrmNewRub ] = {1953,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Rub_RequestCreatOrEditRubric ,NULL}, + [ActEdiOneRub ] = {1954,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Rub_RequestCreatOrEditRubric ,NULL}, + [ActNewRub ] = {1955,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Rub_ReceiveFormRubric ,NULL}, + [ActChgRub ] = {1956,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Rub_ReceiveFormRubric ,NULL}, + [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}, + // TabFil ****************************************************************** // Actions in menu: [ActSeeAdmDocIns ] = {1249, 0,TabFil,ActSeeAdmDocIns , 0, 0, 0, 0,0x3C7, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Brw_ShowFileBrowserOrWorks ,"folder-open" }, @@ -3816,4 +3825,11 @@ Act_Action_t ActLst_FromActCodToAction[1 + ActLst_MAX_ACTION_COD] = // Do not re ActSeeOnePrj, // #1949 ActChgPrjRev, // #1950 ActSeeAllRub, // #1951 + ActSeeRub, // #1952 + ActFrmNewRub, // #1953 + ActEdiOneRub, // #1954 + ActNewRub, // #1955 + ActChgRub, // #1956 + ActReqRemRub, // #1957 + ActRemRub, // #1958 }; diff --git a/swad_action_list.h b/swad_action_list.h index 930ffd86..6accd5c4 100644 --- a/swad_action_list.h +++ b/swad_action_list.h @@ -759,479 +759,487 @@ #define ActDwnGamQst (ActChgCrsTT1stDay + 218) #define ActReqLnkGam (ActChgCrsTT1stDay + 219) +#define ActSeeRub (ActChgCrsTT1stDay + 220) +#define ActFrmNewRub (ActChgCrsTT1stDay + 221) +#define ActEdiOneRub (ActChgCrsTT1stDay + 222) +#define ActNewRub (ActChgCrsTT1stDay + 223) +#define ActChgRub (ActChgCrsTT1stDay + 224) +#define ActReqRemRub (ActChgCrsTT1stDay + 225) +#define ActRemRub (ActChgCrsTT1stDay + 226) + /*****************************************************************************/ /******************************** Files tab **********************************/ /*****************************************************************************/ // Actions in menu -#define ActSeeAdmDocIns (ActReqLnkGam + 1) -#define ActAdmShaIns (ActReqLnkGam + 2) -#define ActSeeAdmDocCtr (ActReqLnkGam + 3) -#define ActAdmShaCtr (ActReqLnkGam + 4) -#define ActSeeAdmDocDeg (ActReqLnkGam + 5) -#define ActAdmShaDeg (ActReqLnkGam + 6) -#define ActSeeAdmDocCrsGrp (ActReqLnkGam + 7) -#define ActAdmTchCrsGrp (ActReqLnkGam + 8) -#define ActAdmShaCrsGrp (ActReqLnkGam + 9) -#define ActAdmAsgWrkUsr (ActReqLnkGam + 10) -#define ActReqAsgWrkCrs (ActReqLnkGam + 11) -#define ActSeeAdmMrk (ActReqLnkGam + 12) -#define ActAdmBrf (ActReqLnkGam + 13) +#define ActSeeAdmDocIns (ActRemRub + 1) +#define ActAdmShaIns (ActRemRub + 2) +#define ActSeeAdmDocCtr (ActRemRub + 3) +#define ActAdmShaCtr (ActRemRub + 4) +#define ActSeeAdmDocDeg (ActRemRub + 5) +#define ActAdmShaDeg (ActRemRub + 6) +#define ActSeeAdmDocCrsGrp (ActRemRub + 7) +#define ActAdmTchCrsGrp (ActRemRub + 8) +#define ActAdmShaCrsGrp (ActRemRub + 9) +#define ActAdmAsgWrkUsr (ActRemRub + 10) +#define ActReqAsgWrkCrs (ActRemRub + 11) +#define ActSeeAdmMrk (ActRemRub + 12) +#define ActAdmBrf (ActRemRub + 13) // Secondary actions -#define ActChgToSeeDocIns (ActReqLnkGam + 14) -#define ActSeeDocIns (ActReqLnkGam + 15) -#define ActExpSeeDocIns (ActReqLnkGam + 16) -#define ActConSeeDocIns (ActReqLnkGam + 17) -#define ActZIPSeeDocIns (ActReqLnkGam + 18) -#define ActReqDatSeeDocIns (ActReqLnkGam + 19) -#define ActDowSeeDocIns (ActReqLnkGam + 20) -#define ActChgToAdmDocIns (ActReqLnkGam + 21) -#define ActAdmDocIns (ActReqLnkGam + 22) -#define ActReqRemFilDocIns (ActReqLnkGam + 23) -#define ActRemFilDocIns (ActReqLnkGam + 24) -#define ActRemFolDocIns (ActReqLnkGam + 25) -#define ActCopDocIns (ActReqLnkGam + 26) -#define ActPasDocIns (ActReqLnkGam + 27) -#define ActRemTreDocIns (ActReqLnkGam + 28) -#define ActFrmCreDocIns (ActReqLnkGam + 29) -#define ActCreFolDocIns (ActReqLnkGam + 30) -#define ActCreLnkDocIns (ActReqLnkGam + 31) -#define ActRenFolDocIns (ActReqLnkGam + 32) -#define ActRcvFilDocInsDZ (ActReqLnkGam + 33) -#define ActRcvFilDocInsCla (ActReqLnkGam + 34) -#define ActExpAdmDocIns (ActReqLnkGam + 35) -#define ActConAdmDocIns (ActReqLnkGam + 36) -#define ActZIPAdmDocIns (ActReqLnkGam + 37) -#define ActUnhDocIns (ActReqLnkGam + 38) -#define ActHidDocIns (ActReqLnkGam + 39) -#define ActReqDatAdmDocIns (ActReqLnkGam + 40) -#define ActChgDatAdmDocIns (ActReqLnkGam + 41) -#define ActDowAdmDocIns (ActReqLnkGam + 42) +#define ActChgToSeeDocIns (ActRemRub + 14) +#define ActSeeDocIns (ActRemRub + 15) +#define ActExpSeeDocIns (ActRemRub + 16) +#define ActConSeeDocIns (ActRemRub + 17) +#define ActZIPSeeDocIns (ActRemRub + 18) +#define ActReqDatSeeDocIns (ActRemRub + 19) +#define ActDowSeeDocIns (ActRemRub + 20) +#define ActChgToAdmDocIns (ActRemRub + 21) +#define ActAdmDocIns (ActRemRub + 22) +#define ActReqRemFilDocIns (ActRemRub + 23) +#define ActRemFilDocIns (ActRemRub + 24) +#define ActRemFolDocIns (ActRemRub + 25) +#define ActCopDocIns (ActRemRub + 26) +#define ActPasDocIns (ActRemRub + 27) +#define ActRemTreDocIns (ActRemRub + 28) +#define ActFrmCreDocIns (ActRemRub + 29) +#define ActCreFolDocIns (ActRemRub + 30) +#define ActCreLnkDocIns (ActRemRub + 31) +#define ActRenFolDocIns (ActRemRub + 32) +#define ActRcvFilDocInsDZ (ActRemRub + 33) +#define ActRcvFilDocInsCla (ActRemRub + 34) +#define ActExpAdmDocIns (ActRemRub + 35) +#define ActConAdmDocIns (ActRemRub + 36) +#define ActZIPAdmDocIns (ActRemRub + 37) +#define ActUnhDocIns (ActRemRub + 38) +#define ActHidDocIns (ActRemRub + 39) +#define ActReqDatAdmDocIns (ActRemRub + 40) +#define ActChgDatAdmDocIns (ActRemRub + 41) +#define ActDowAdmDocIns (ActRemRub + 42) -#define ActReqRemFilShaIns (ActReqLnkGam + 43) -#define ActRemFilShaIns (ActReqLnkGam + 44) -#define ActRemFolShaIns (ActReqLnkGam + 45) -#define ActCopShaIns (ActReqLnkGam + 46) -#define ActPasShaIns (ActReqLnkGam + 47) -#define ActRemTreShaIns (ActReqLnkGam + 48) -#define ActFrmCreShaIns (ActReqLnkGam + 49) -#define ActCreFolShaIns (ActReqLnkGam + 50) -#define ActCreLnkShaIns (ActReqLnkGam + 51) -#define ActRenFolShaIns (ActReqLnkGam + 52) -#define ActRcvFilShaInsDZ (ActReqLnkGam + 53) -#define ActRcvFilShaInsCla (ActReqLnkGam + 54) -#define ActExpShaIns (ActReqLnkGam + 55) -#define ActConShaIns (ActReqLnkGam + 56) -#define ActZIPShaIns (ActReqLnkGam + 57) -#define ActReqDatShaIns (ActReqLnkGam + 58) -#define ActChgDatShaIns (ActReqLnkGam + 59) -#define ActDowShaIns (ActReqLnkGam + 60) +#define ActReqRemFilShaIns (ActRemRub + 43) +#define ActRemFilShaIns (ActRemRub + 44) +#define ActRemFolShaIns (ActRemRub + 45) +#define ActCopShaIns (ActRemRub + 46) +#define ActPasShaIns (ActRemRub + 47) +#define ActRemTreShaIns (ActRemRub + 48) +#define ActFrmCreShaIns (ActRemRub + 49) +#define ActCreFolShaIns (ActRemRub + 50) +#define ActCreLnkShaIns (ActRemRub + 51) +#define ActRenFolShaIns (ActRemRub + 52) +#define ActRcvFilShaInsDZ (ActRemRub + 53) +#define ActRcvFilShaInsCla (ActRemRub + 54) +#define ActExpShaIns (ActRemRub + 55) +#define ActConShaIns (ActRemRub + 56) +#define ActZIPShaIns (ActRemRub + 57) +#define ActReqDatShaIns (ActRemRub + 58) +#define ActChgDatShaIns (ActRemRub + 59) +#define ActDowShaIns (ActRemRub + 60) -#define ActChgToSeeDocCtr (ActReqLnkGam + 61) -#define ActSeeDocCtr (ActReqLnkGam + 62) -#define ActExpSeeDocCtr (ActReqLnkGam + 63) -#define ActConSeeDocCtr (ActReqLnkGam + 64) -#define ActZIPSeeDocCtr (ActReqLnkGam + 65) -#define ActReqDatSeeDocCtr (ActReqLnkGam + 66) -#define ActDowSeeDocCtr (ActReqLnkGam + 67) -#define ActChgToAdmDocCtr (ActReqLnkGam + 68) -#define ActAdmDocCtr (ActReqLnkGam + 69) -#define ActReqRemFilDocCtr (ActReqLnkGam + 70) -#define ActRemFilDocCtr (ActReqLnkGam + 71) -#define ActRemFolDocCtr (ActReqLnkGam + 72) -#define ActCopDocCtr (ActReqLnkGam + 73) -#define ActPasDocCtr (ActReqLnkGam + 74) -#define ActRemTreDocCtr (ActReqLnkGam + 75) -#define ActFrmCreDocCtr (ActReqLnkGam + 76) -#define ActCreFolDocCtr (ActReqLnkGam + 77) -#define ActCreLnkDocCtr (ActReqLnkGam + 78) -#define ActRenFolDocCtr (ActReqLnkGam + 79) -#define ActRcvFilDocCtrDZ (ActReqLnkGam + 80) -#define ActRcvFilDocCtrCla (ActReqLnkGam + 81) -#define ActExpAdmDocCtr (ActReqLnkGam + 82) -#define ActConAdmDocCtr (ActReqLnkGam + 83) -#define ActZIPAdmDocCtr (ActReqLnkGam + 84) -#define ActUnhDocCtr (ActReqLnkGam + 85) -#define ActHidDocCtr (ActReqLnkGam + 86) -#define ActReqDatAdmDocCtr (ActReqLnkGam + 87) -#define ActChgDatAdmDocCtr (ActReqLnkGam + 88) -#define ActDowAdmDocCtr (ActReqLnkGam + 89) +#define ActChgToSeeDocCtr (ActRemRub + 61) +#define ActSeeDocCtr (ActRemRub + 62) +#define ActExpSeeDocCtr (ActRemRub + 63) +#define ActConSeeDocCtr (ActRemRub + 64) +#define ActZIPSeeDocCtr (ActRemRub + 65) +#define ActReqDatSeeDocCtr (ActRemRub + 66) +#define ActDowSeeDocCtr (ActRemRub + 67) +#define ActChgToAdmDocCtr (ActRemRub + 68) +#define ActAdmDocCtr (ActRemRub + 69) +#define ActReqRemFilDocCtr (ActRemRub + 70) +#define ActRemFilDocCtr (ActRemRub + 71) +#define ActRemFolDocCtr (ActRemRub + 72) +#define ActCopDocCtr (ActRemRub + 73) +#define ActPasDocCtr (ActRemRub + 74) +#define ActRemTreDocCtr (ActRemRub + 75) +#define ActFrmCreDocCtr (ActRemRub + 76) +#define ActCreFolDocCtr (ActRemRub + 77) +#define ActCreLnkDocCtr (ActRemRub + 78) +#define ActRenFolDocCtr (ActRemRub + 79) +#define ActRcvFilDocCtrDZ (ActRemRub + 80) +#define ActRcvFilDocCtrCla (ActRemRub + 81) +#define ActExpAdmDocCtr (ActRemRub + 82) +#define ActConAdmDocCtr (ActRemRub + 83) +#define ActZIPAdmDocCtr (ActRemRub + 84) +#define ActUnhDocCtr (ActRemRub + 85) +#define ActHidDocCtr (ActRemRub + 86) +#define ActReqDatAdmDocCtr (ActRemRub + 87) +#define ActChgDatAdmDocCtr (ActRemRub + 88) +#define ActDowAdmDocCtr (ActRemRub + 89) -#define ActReqRemFilShaCtr (ActReqLnkGam + 90) -#define ActRemFilShaCtr (ActReqLnkGam + 91) -#define ActRemFolShaCtr (ActReqLnkGam + 92) -#define ActCopShaCtr (ActReqLnkGam + 93) -#define ActPasShaCtr (ActReqLnkGam + 94) -#define ActRemTreShaCtr (ActReqLnkGam + 95) -#define ActFrmCreShaCtr (ActReqLnkGam + 96) -#define ActCreFolShaCtr (ActReqLnkGam + 97) -#define ActCreLnkShaCtr (ActReqLnkGam + 98) -#define ActRenFolShaCtr (ActReqLnkGam + 99) -#define ActRcvFilShaCtrDZ (ActReqLnkGam + 100) -#define ActRcvFilShaCtrCla (ActReqLnkGam + 101) -#define ActExpShaCtr (ActReqLnkGam + 102) -#define ActConShaCtr (ActReqLnkGam + 103) -#define ActZIPShaCtr (ActReqLnkGam + 104) -#define ActReqDatShaCtr (ActReqLnkGam + 105) -#define ActChgDatShaCtr (ActReqLnkGam + 106) -#define ActDowShaCtr (ActReqLnkGam + 107) +#define ActReqRemFilShaCtr (ActRemRub + 90) +#define ActRemFilShaCtr (ActRemRub + 91) +#define ActRemFolShaCtr (ActRemRub + 92) +#define ActCopShaCtr (ActRemRub + 93) +#define ActPasShaCtr (ActRemRub + 94) +#define ActRemTreShaCtr (ActRemRub + 95) +#define ActFrmCreShaCtr (ActRemRub + 96) +#define ActCreFolShaCtr (ActRemRub + 97) +#define ActCreLnkShaCtr (ActRemRub + 98) +#define ActRenFolShaCtr (ActRemRub + 99) +#define ActRcvFilShaCtrDZ (ActRemRub + 100) +#define ActRcvFilShaCtrCla (ActRemRub + 101) +#define ActExpShaCtr (ActRemRub + 102) +#define ActConShaCtr (ActRemRub + 103) +#define ActZIPShaCtr (ActRemRub + 104) +#define ActReqDatShaCtr (ActRemRub + 105) +#define ActChgDatShaCtr (ActRemRub + 106) +#define ActDowShaCtr (ActRemRub + 107) -#define ActChgToSeeDocDeg (ActReqLnkGam + 108) -#define ActSeeDocDeg (ActReqLnkGam + 109) -#define ActExpSeeDocDeg (ActReqLnkGam + 110) -#define ActConSeeDocDeg (ActReqLnkGam + 111) -#define ActZIPSeeDocDeg (ActReqLnkGam + 112) -#define ActReqDatSeeDocDeg (ActReqLnkGam + 113) -#define ActDowSeeDocDeg (ActReqLnkGam + 114) -#define ActChgToAdmDocDeg (ActReqLnkGam + 115) -#define ActAdmDocDeg (ActReqLnkGam + 116) -#define ActReqRemFilDocDeg (ActReqLnkGam + 117) -#define ActRemFilDocDeg (ActReqLnkGam + 118) -#define ActRemFolDocDeg (ActReqLnkGam + 119) -#define ActCopDocDeg (ActReqLnkGam + 120) -#define ActPasDocDeg (ActReqLnkGam + 121) -#define ActRemTreDocDeg (ActReqLnkGam + 122) -#define ActFrmCreDocDeg (ActReqLnkGam + 123) -#define ActCreFolDocDeg (ActReqLnkGam + 124) -#define ActCreLnkDocDeg (ActReqLnkGam + 125) -#define ActRenFolDocDeg (ActReqLnkGam + 126) -#define ActRcvFilDocDegDZ (ActReqLnkGam + 127) -#define ActRcvFilDocDegCla (ActReqLnkGam + 128) -#define ActExpAdmDocDeg (ActReqLnkGam + 129) -#define ActConAdmDocDeg (ActReqLnkGam + 130) -#define ActZIPAdmDocDeg (ActReqLnkGam + 131) -#define ActUnhDocDeg (ActReqLnkGam + 132) -#define ActHidDocDeg (ActReqLnkGam + 133) -#define ActReqDatAdmDocDeg (ActReqLnkGam + 134) -#define ActChgDatAdmDocDeg (ActReqLnkGam + 135) -#define ActDowAdmDocDeg (ActReqLnkGam + 136) +#define ActChgToSeeDocDeg (ActRemRub + 108) +#define ActSeeDocDeg (ActRemRub + 109) +#define ActExpSeeDocDeg (ActRemRub + 110) +#define ActConSeeDocDeg (ActRemRub + 111) +#define ActZIPSeeDocDeg (ActRemRub + 112) +#define ActReqDatSeeDocDeg (ActRemRub + 113) +#define ActDowSeeDocDeg (ActRemRub + 114) +#define ActChgToAdmDocDeg (ActRemRub + 115) +#define ActAdmDocDeg (ActRemRub + 116) +#define ActReqRemFilDocDeg (ActRemRub + 117) +#define ActRemFilDocDeg (ActRemRub + 118) +#define ActRemFolDocDeg (ActRemRub + 119) +#define ActCopDocDeg (ActRemRub + 120) +#define ActPasDocDeg (ActRemRub + 121) +#define ActRemTreDocDeg (ActRemRub + 122) +#define ActFrmCreDocDeg (ActRemRub + 123) +#define ActCreFolDocDeg (ActRemRub + 124) +#define ActCreLnkDocDeg (ActRemRub + 125) +#define ActRenFolDocDeg (ActRemRub + 126) +#define ActRcvFilDocDegDZ (ActRemRub + 127) +#define ActRcvFilDocDegCla (ActRemRub + 128) +#define ActExpAdmDocDeg (ActRemRub + 129) +#define ActConAdmDocDeg (ActRemRub + 130) +#define ActZIPAdmDocDeg (ActRemRub + 131) +#define ActUnhDocDeg (ActRemRub + 132) +#define ActHidDocDeg (ActRemRub + 133) +#define ActReqDatAdmDocDeg (ActRemRub + 134) +#define ActChgDatAdmDocDeg (ActRemRub + 135) +#define ActDowAdmDocDeg (ActRemRub + 136) -#define ActReqRemFilShaDeg (ActReqLnkGam + 137) -#define ActRemFilShaDeg (ActReqLnkGam + 138) -#define ActRemFolShaDeg (ActReqLnkGam + 139) -#define ActCopShaDeg (ActReqLnkGam + 140) -#define ActPasShaDeg (ActReqLnkGam + 141) -#define ActRemTreShaDeg (ActReqLnkGam + 142) -#define ActFrmCreShaDeg (ActReqLnkGam + 143) -#define ActCreFolShaDeg (ActReqLnkGam + 144) -#define ActCreLnkShaDeg (ActReqLnkGam + 145) -#define ActRenFolShaDeg (ActReqLnkGam + 146) -#define ActRcvFilShaDegDZ (ActReqLnkGam + 147) -#define ActRcvFilShaDegCla (ActReqLnkGam + 148) -#define ActExpShaDeg (ActReqLnkGam + 149) -#define ActConShaDeg (ActReqLnkGam + 150) -#define ActZIPShaDeg (ActReqLnkGam + 151) -#define ActReqDatShaDeg (ActReqLnkGam + 152) -#define ActChgDatShaDeg (ActReqLnkGam + 153) -#define ActDowShaDeg (ActReqLnkGam + 154) +#define ActReqRemFilShaDeg (ActRemRub + 137) +#define ActRemFilShaDeg (ActRemRub + 138) +#define ActRemFolShaDeg (ActRemRub + 139) +#define ActCopShaDeg (ActRemRub + 140) +#define ActPasShaDeg (ActRemRub + 141) +#define ActRemTreShaDeg (ActRemRub + 142) +#define ActFrmCreShaDeg (ActRemRub + 143) +#define ActCreFolShaDeg (ActRemRub + 144) +#define ActCreLnkShaDeg (ActRemRub + 145) +#define ActRenFolShaDeg (ActRemRub + 146) +#define ActRcvFilShaDegDZ (ActRemRub + 147) +#define ActRcvFilShaDegCla (ActRemRub + 148) +#define ActExpShaDeg (ActRemRub + 149) +#define ActConShaDeg (ActRemRub + 150) +#define ActZIPShaDeg (ActRemRub + 151) +#define ActReqDatShaDeg (ActRemRub + 152) +#define ActChgDatShaDeg (ActRemRub + 153) +#define ActDowShaDeg (ActRemRub + 154) -#define ActChgToSeeDocCrs (ActReqLnkGam + 155) -#define ActSeeDocCrs (ActReqLnkGam + 156) -#define ActExpSeeDocCrs (ActReqLnkGam + 157) -#define ActConSeeDocCrs (ActReqLnkGam + 158) -#define ActZIPSeeDocCrs (ActReqLnkGam + 159) -#define ActReqDatSeeDocCrs (ActReqLnkGam + 160) -#define ActReqLnkSeeDocCrs (ActReqLnkGam + 161) -#define ActDowSeeDocCrs (ActReqLnkGam + 162) +#define ActChgToSeeDocCrs (ActRemRub + 155) +#define ActSeeDocCrs (ActRemRub + 156) +#define ActExpSeeDocCrs (ActRemRub + 157) +#define ActConSeeDocCrs (ActRemRub + 158) +#define ActZIPSeeDocCrs (ActRemRub + 159) +#define ActReqDatSeeDocCrs (ActRemRub + 160) +#define ActReqLnkSeeDocCrs (ActRemRub + 161) +#define ActDowSeeDocCrs (ActRemRub + 162) -#define ActSeeDocGrp (ActReqLnkGam + 163) -#define ActExpSeeDocGrp (ActReqLnkGam + 164) -#define ActConSeeDocGrp (ActReqLnkGam + 165) -#define ActZIPSeeDocGrp (ActReqLnkGam + 166) -#define ActReqDatSeeDocGrp (ActReqLnkGam + 167) -#define ActDowSeeDocGrp (ActReqLnkGam + 168) +#define ActSeeDocGrp (ActRemRub + 163) +#define ActExpSeeDocGrp (ActRemRub + 164) +#define ActConSeeDocGrp (ActRemRub + 165) +#define ActZIPSeeDocGrp (ActRemRub + 166) +#define ActReqDatSeeDocGrp (ActRemRub + 167) +#define ActDowSeeDocGrp (ActRemRub + 168) -#define ActChgToAdmDocCrs (ActReqLnkGam + 169) -#define ActAdmDocCrs (ActReqLnkGam + 170) -#define ActReqRemFilDocCrs (ActReqLnkGam + 171) -#define ActRemFilDocCrs (ActReqLnkGam + 172) -#define ActRemFolDocCrs (ActReqLnkGam + 173) -#define ActCopDocCrs (ActReqLnkGam + 174) -#define ActPasDocCrs (ActReqLnkGam + 175) -#define ActRemTreDocCrs (ActReqLnkGam + 176) -#define ActFrmCreDocCrs (ActReqLnkGam + 177) -#define ActCreFolDocCrs (ActReqLnkGam + 178) -#define ActCreLnkDocCrs (ActReqLnkGam + 179) -#define ActRenFolDocCrs (ActReqLnkGam + 180) -#define ActRcvFilDocCrsDZ (ActReqLnkGam + 181) -#define ActRcvFilDocCrsCla (ActReqLnkGam + 182) -#define ActExpAdmDocCrs (ActReqLnkGam + 183) -#define ActConAdmDocCrs (ActReqLnkGam + 184) -#define ActZIPAdmDocCrs (ActReqLnkGam + 185) -#define ActUnhDocCrs (ActReqLnkGam + 186) -#define ActHidDocCrs (ActReqLnkGam + 187) -#define ActReqDatAdmDocCrs (ActReqLnkGam + 188) -#define ActChgDatAdmDocCrs (ActReqLnkGam + 189) -#define ActReqLnkAdmDocCrs (ActReqLnkGam + 190) -#define ActDowAdmDocCrs (ActReqLnkGam + 191) +#define ActChgToAdmDocCrs (ActRemRub + 169) +#define ActAdmDocCrs (ActRemRub + 170) +#define ActReqRemFilDocCrs (ActRemRub + 171) +#define ActRemFilDocCrs (ActRemRub + 172) +#define ActRemFolDocCrs (ActRemRub + 173) +#define ActCopDocCrs (ActRemRub + 174) +#define ActPasDocCrs (ActRemRub + 175) +#define ActRemTreDocCrs (ActRemRub + 176) +#define ActFrmCreDocCrs (ActRemRub + 177) +#define ActCreFolDocCrs (ActRemRub + 178) +#define ActCreLnkDocCrs (ActRemRub + 179) +#define ActRenFolDocCrs (ActRemRub + 180) +#define ActRcvFilDocCrsDZ (ActRemRub + 181) +#define ActRcvFilDocCrsCla (ActRemRub + 182) +#define ActExpAdmDocCrs (ActRemRub + 183) +#define ActConAdmDocCrs (ActRemRub + 184) +#define ActZIPAdmDocCrs (ActRemRub + 185) +#define ActUnhDocCrs (ActRemRub + 186) +#define ActHidDocCrs (ActRemRub + 187) +#define ActReqDatAdmDocCrs (ActRemRub + 188) +#define ActChgDatAdmDocCrs (ActRemRub + 189) +#define ActReqLnkAdmDocCrs (ActRemRub + 190) +#define ActDowAdmDocCrs (ActRemRub + 191) -#define ActAdmDocGrp (ActReqLnkGam + 192) -#define ActReqRemFilDocGrp (ActReqLnkGam + 193) -#define ActRemFilDocGrp (ActReqLnkGam + 194) -#define ActRemFolDocGrp (ActReqLnkGam + 195) -#define ActCopDocGrp (ActReqLnkGam + 196) -#define ActPasDocGrp (ActReqLnkGam + 197) -#define ActRemTreDocGrp (ActReqLnkGam + 198) -#define ActFrmCreDocGrp (ActReqLnkGam + 199) -#define ActCreFolDocGrp (ActReqLnkGam + 200) -#define ActCreLnkDocGrp (ActReqLnkGam + 201) -#define ActRenFolDocGrp (ActReqLnkGam + 202) -#define ActRcvFilDocGrpDZ (ActReqLnkGam + 203) -#define ActRcvFilDocGrpCla (ActReqLnkGam + 204) -#define ActExpAdmDocGrp (ActReqLnkGam + 205) -#define ActConAdmDocGrp (ActReqLnkGam + 206) -#define ActZIPAdmDocGrp (ActReqLnkGam + 207) -#define ActUnhDocGrp (ActReqLnkGam + 208) -#define ActHidDocGrp (ActReqLnkGam + 209) -#define ActReqDatAdmDocGrp (ActReqLnkGam + 210) -#define ActChgDatAdmDocGrp (ActReqLnkGam + 211) -#define ActDowAdmDocGrp (ActReqLnkGam + 212) +#define ActAdmDocGrp (ActRemRub + 192) +#define ActReqRemFilDocGrp (ActRemRub + 193) +#define ActRemFilDocGrp (ActRemRub + 194) +#define ActRemFolDocGrp (ActRemRub + 195) +#define ActCopDocGrp (ActRemRub + 196) +#define ActPasDocGrp (ActRemRub + 197) +#define ActRemTreDocGrp (ActRemRub + 198) +#define ActFrmCreDocGrp (ActRemRub + 199) +#define ActCreFolDocGrp (ActRemRub + 200) +#define ActCreLnkDocGrp (ActRemRub + 201) +#define ActRenFolDocGrp (ActRemRub + 202) +#define ActRcvFilDocGrpDZ (ActRemRub + 203) +#define ActRcvFilDocGrpCla (ActRemRub + 204) +#define ActExpAdmDocGrp (ActRemRub + 205) +#define ActConAdmDocGrp (ActRemRub + 206) +#define ActZIPAdmDocGrp (ActRemRub + 207) +#define ActUnhDocGrp (ActRemRub + 208) +#define ActHidDocGrp (ActRemRub + 209) +#define ActReqDatAdmDocGrp (ActRemRub + 210) +#define ActChgDatAdmDocGrp (ActRemRub + 211) +#define ActDowAdmDocGrp (ActRemRub + 212) -#define ActChgToAdmTch (ActReqLnkGam + 213) +#define ActChgToAdmTch (ActRemRub + 213) -#define ActAdmTchCrs (ActReqLnkGam + 214) -#define ActReqRemFilTchCrs (ActReqLnkGam + 215) -#define ActRemFilTchCrs (ActReqLnkGam + 216) -#define ActRemFolTchCrs (ActReqLnkGam + 217) -#define ActCopTchCrs (ActReqLnkGam + 218) -#define ActPasTchCrs (ActReqLnkGam + 219) -#define ActRemTreTchCrs (ActReqLnkGam + 220) -#define ActFrmCreTchCrs (ActReqLnkGam + 221) -#define ActCreFolTchCrs (ActReqLnkGam + 222) -#define ActCreLnkTchCrs (ActReqLnkGam + 223) -#define ActRenFolTchCrs (ActReqLnkGam + 224) -#define ActRcvFilTchCrsDZ (ActReqLnkGam + 225) -#define ActRcvFilTchCrsCla (ActReqLnkGam + 226) -#define ActExpTchCrs (ActReqLnkGam + 227) -#define ActConTchCrs (ActReqLnkGam + 228) -#define ActZIPTchCrs (ActReqLnkGam + 229) -#define ActReqDatTchCrs (ActReqLnkGam + 230) -#define ActChgDatTchCrs (ActReqLnkGam + 231) -#define ActDowTchCrs (ActReqLnkGam + 232) +#define ActAdmTchCrs (ActRemRub + 214) +#define ActReqRemFilTchCrs (ActRemRub + 215) +#define ActRemFilTchCrs (ActRemRub + 216) +#define ActRemFolTchCrs (ActRemRub + 217) +#define ActCopTchCrs (ActRemRub + 218) +#define ActPasTchCrs (ActRemRub + 219) +#define ActRemTreTchCrs (ActRemRub + 220) +#define ActFrmCreTchCrs (ActRemRub + 221) +#define ActCreFolTchCrs (ActRemRub + 222) +#define ActCreLnkTchCrs (ActRemRub + 223) +#define ActRenFolTchCrs (ActRemRub + 224) +#define ActRcvFilTchCrsDZ (ActRemRub + 225) +#define ActRcvFilTchCrsCla (ActRemRub + 226) +#define ActExpTchCrs (ActRemRub + 227) +#define ActConTchCrs (ActRemRub + 228) +#define ActZIPTchCrs (ActRemRub + 229) +#define ActReqDatTchCrs (ActRemRub + 230) +#define ActChgDatTchCrs (ActRemRub + 231) +#define ActDowTchCrs (ActRemRub + 232) -#define ActAdmTchGrp (ActReqLnkGam + 233) -#define ActReqRemFilTchGrp (ActReqLnkGam + 234) -#define ActRemFilTchGrp (ActReqLnkGam + 235) -#define ActRemFolTchGrp (ActReqLnkGam + 236) -#define ActCopTchGrp (ActReqLnkGam + 237) -#define ActPasTchGrp (ActReqLnkGam + 238) -#define ActRemTreTchGrp (ActReqLnkGam + 239) -#define ActFrmCreTchGrp (ActReqLnkGam + 240) -#define ActCreFolTchGrp (ActReqLnkGam + 241) -#define ActCreLnkTchGrp (ActReqLnkGam + 242) -#define ActRenFolTchGrp (ActReqLnkGam + 243) -#define ActRcvFilTchGrpDZ (ActReqLnkGam + 244) -#define ActRcvFilTchGrpCla (ActReqLnkGam + 245) -#define ActExpTchGrp (ActReqLnkGam + 246) -#define ActConTchGrp (ActReqLnkGam + 247) -#define ActZIPTchGrp (ActReqLnkGam + 248) -#define ActReqDatTchGrp (ActReqLnkGam + 249) -#define ActChgDatTchGrp (ActReqLnkGam + 250) -#define ActDowTchGrp (ActReqLnkGam + 251) +#define ActAdmTchGrp (ActRemRub + 233) +#define ActReqRemFilTchGrp (ActRemRub + 234) +#define ActRemFilTchGrp (ActRemRub + 235) +#define ActRemFolTchGrp (ActRemRub + 236) +#define ActCopTchGrp (ActRemRub + 237) +#define ActPasTchGrp (ActRemRub + 238) +#define ActRemTreTchGrp (ActRemRub + 239) +#define ActFrmCreTchGrp (ActRemRub + 240) +#define ActCreFolTchGrp (ActRemRub + 241) +#define ActCreLnkTchGrp (ActRemRub + 242) +#define ActRenFolTchGrp (ActRemRub + 243) +#define ActRcvFilTchGrpDZ (ActRemRub + 244) +#define ActRcvFilTchGrpCla (ActRemRub + 245) +#define ActExpTchGrp (ActRemRub + 246) +#define ActConTchGrp (ActRemRub + 247) +#define ActZIPTchGrp (ActRemRub + 248) +#define ActReqDatTchGrp (ActRemRub + 249) +#define ActChgDatTchGrp (ActRemRub + 250) +#define ActDowTchGrp (ActRemRub + 251) -#define ActChgToAdmSha (ActReqLnkGam + 252) +#define ActChgToAdmSha (ActRemRub + 252) -#define ActAdmShaCrs (ActReqLnkGam + 253) -#define ActReqRemFilShaCrs (ActReqLnkGam + 254) -#define ActRemFilShaCrs (ActReqLnkGam + 255) -#define ActRemFolShaCrs (ActReqLnkGam + 256) -#define ActCopShaCrs (ActReqLnkGam + 257) -#define ActPasShaCrs (ActReqLnkGam + 258) -#define ActRemTreShaCrs (ActReqLnkGam + 259) -#define ActFrmCreShaCrs (ActReqLnkGam + 260) -#define ActCreFolShaCrs (ActReqLnkGam + 261) -#define ActCreLnkShaCrs (ActReqLnkGam + 262) -#define ActRenFolShaCrs (ActReqLnkGam + 263) -#define ActRcvFilShaCrsDZ (ActReqLnkGam + 264) -#define ActRcvFilShaCrsCla (ActReqLnkGam + 265) -#define ActExpShaCrs (ActReqLnkGam + 266) -#define ActConShaCrs (ActReqLnkGam + 267) -#define ActZIPShaCrs (ActReqLnkGam + 268) -#define ActReqDatShaCrs (ActReqLnkGam + 269) -#define ActChgDatShaCrs (ActReqLnkGam + 270) -#define ActDowShaCrs (ActReqLnkGam + 271) +#define ActAdmShaCrs (ActRemRub + 253) +#define ActReqRemFilShaCrs (ActRemRub + 254) +#define ActRemFilShaCrs (ActRemRub + 255) +#define ActRemFolShaCrs (ActRemRub + 256) +#define ActCopShaCrs (ActRemRub + 257) +#define ActPasShaCrs (ActRemRub + 258) +#define ActRemTreShaCrs (ActRemRub + 259) +#define ActFrmCreShaCrs (ActRemRub + 260) +#define ActCreFolShaCrs (ActRemRub + 261) +#define ActCreLnkShaCrs (ActRemRub + 262) +#define ActRenFolShaCrs (ActRemRub + 263) +#define ActRcvFilShaCrsDZ (ActRemRub + 264) +#define ActRcvFilShaCrsCla (ActRemRub + 265) +#define ActExpShaCrs (ActRemRub + 266) +#define ActConShaCrs (ActRemRub + 267) +#define ActZIPShaCrs (ActRemRub + 268) +#define ActReqDatShaCrs (ActRemRub + 269) +#define ActChgDatShaCrs (ActRemRub + 270) +#define ActDowShaCrs (ActRemRub + 271) -#define ActAdmShaGrp (ActReqLnkGam + 272) -#define ActReqRemFilShaGrp (ActReqLnkGam + 273) -#define ActRemFilShaGrp (ActReqLnkGam + 274) -#define ActRemFolShaGrp (ActReqLnkGam + 275) -#define ActCopShaGrp (ActReqLnkGam + 276) -#define ActPasShaGrp (ActReqLnkGam + 277) -#define ActRemTreShaGrp (ActReqLnkGam + 278) -#define ActFrmCreShaGrp (ActReqLnkGam + 279) -#define ActCreFolShaGrp (ActReqLnkGam + 280) -#define ActCreLnkShaGrp (ActReqLnkGam + 281) -#define ActRenFolShaGrp (ActReqLnkGam + 282) -#define ActRcvFilShaGrpDZ (ActReqLnkGam + 283) -#define ActRcvFilShaGrpCla (ActReqLnkGam + 284) -#define ActExpShaGrp (ActReqLnkGam + 285) -#define ActConShaGrp (ActReqLnkGam + 286) -#define ActZIPShaGrp (ActReqLnkGam + 287) -#define ActReqDatShaGrp (ActReqLnkGam + 288) -#define ActChgDatShaGrp (ActReqLnkGam + 289) -#define ActDowShaGrp (ActReqLnkGam + 290) +#define ActAdmShaGrp (ActRemRub + 272) +#define ActReqRemFilShaGrp (ActRemRub + 273) +#define ActRemFilShaGrp (ActRemRub + 274) +#define ActRemFolShaGrp (ActRemRub + 275) +#define ActCopShaGrp (ActRemRub + 276) +#define ActPasShaGrp (ActRemRub + 277) +#define ActRemTreShaGrp (ActRemRub + 278) +#define ActFrmCreShaGrp (ActRemRub + 279) +#define ActCreFolShaGrp (ActRemRub + 280) +#define ActCreLnkShaGrp (ActRemRub + 281) +#define ActRenFolShaGrp (ActRemRub + 282) +#define ActRcvFilShaGrpDZ (ActRemRub + 283) +#define ActRcvFilShaGrpCla (ActRemRub + 284) +#define ActExpShaGrp (ActRemRub + 285) +#define ActConShaGrp (ActRemRub + 286) +#define ActZIPShaGrp (ActRemRub + 287) +#define ActReqDatShaGrp (ActRemRub + 288) +#define ActChgDatShaGrp (ActRemRub + 289) +#define ActDowShaGrp (ActRemRub + 290) -#define ActAdmAsgWrkCrs (ActReqLnkGam + 291) +#define ActAdmAsgWrkCrs (ActRemRub + 291) -#define ActReqRemFilAsgUsr (ActReqLnkGam + 292) -#define ActRemFilAsgUsr (ActReqLnkGam + 293) -#define ActRemFolAsgUsr (ActReqLnkGam + 294) -#define ActCopAsgUsr (ActReqLnkGam + 295) -#define ActPasAsgUsr (ActReqLnkGam + 296) -#define ActRemTreAsgUsr (ActReqLnkGam + 297) -#define ActFrmCreAsgUsr (ActReqLnkGam + 298) -#define ActCreFolAsgUsr (ActReqLnkGam + 299) -#define ActCreLnkAsgUsr (ActReqLnkGam + 300) -#define ActRenFolAsgUsr (ActReqLnkGam + 301) -#define ActRcvFilAsgUsrDZ (ActReqLnkGam + 302) -#define ActRcvFilAsgUsrCla (ActReqLnkGam + 303) -#define ActExpAsgUsr (ActReqLnkGam + 304) -#define ActConAsgUsr (ActReqLnkGam + 305) -#define ActZIPAsgUsr (ActReqLnkGam + 306) -#define ActReqDatAsgUsr (ActReqLnkGam + 307) -#define ActChgDatAsgUsr (ActReqLnkGam + 308) -#define ActDowAsgUsr (ActReqLnkGam + 309) +#define ActReqRemFilAsgUsr (ActRemRub + 292) +#define ActRemFilAsgUsr (ActRemRub + 293) +#define ActRemFolAsgUsr (ActRemRub + 294) +#define ActCopAsgUsr (ActRemRub + 295) +#define ActPasAsgUsr (ActRemRub + 296) +#define ActRemTreAsgUsr (ActRemRub + 297) +#define ActFrmCreAsgUsr (ActRemRub + 298) +#define ActCreFolAsgUsr (ActRemRub + 299) +#define ActCreLnkAsgUsr (ActRemRub + 300) +#define ActRenFolAsgUsr (ActRemRub + 301) +#define ActRcvFilAsgUsrDZ (ActRemRub + 302) +#define ActRcvFilAsgUsrCla (ActRemRub + 303) +#define ActExpAsgUsr (ActRemRub + 304) +#define ActConAsgUsr (ActRemRub + 305) +#define ActZIPAsgUsr (ActRemRub + 306) +#define ActReqDatAsgUsr (ActRemRub + 307) +#define ActChgDatAsgUsr (ActRemRub + 308) +#define ActDowAsgUsr (ActRemRub + 309) -#define ActReqRemFilWrkUsr (ActReqLnkGam + 310) -#define ActRemFilWrkUsr (ActReqLnkGam + 311) -#define ActRemFolWrkUsr (ActReqLnkGam + 312) -#define ActCopWrkUsr (ActReqLnkGam + 313) -#define ActPasWrkUsr (ActReqLnkGam + 314) -#define ActRemTreWrkUsr (ActReqLnkGam + 315) -#define ActFrmCreWrkUsr (ActReqLnkGam + 316) -#define ActCreFolWrkUsr (ActReqLnkGam + 317) -#define ActCreLnkWrkUsr (ActReqLnkGam + 318) -#define ActRenFolWrkUsr (ActReqLnkGam + 319) -#define ActRcvFilWrkUsrDZ (ActReqLnkGam + 320) -#define ActRcvFilWrkUsrCla (ActReqLnkGam + 321) -#define ActExpWrkUsr (ActReqLnkGam + 322) -#define ActConWrkUsr (ActReqLnkGam + 323) -#define ActZIPWrkUsr (ActReqLnkGam + 324) -#define ActReqDatWrkUsr (ActReqLnkGam + 325) -#define ActChgDatWrkUsr (ActReqLnkGam + 326) -#define ActDowWrkUsr (ActReqLnkGam + 327) +#define ActReqRemFilWrkUsr (ActRemRub + 310) +#define ActRemFilWrkUsr (ActRemRub + 311) +#define ActRemFolWrkUsr (ActRemRub + 312) +#define ActCopWrkUsr (ActRemRub + 313) +#define ActPasWrkUsr (ActRemRub + 314) +#define ActRemTreWrkUsr (ActRemRub + 315) +#define ActFrmCreWrkUsr (ActRemRub + 316) +#define ActCreFolWrkUsr (ActRemRub + 317) +#define ActCreLnkWrkUsr (ActRemRub + 318) +#define ActRenFolWrkUsr (ActRemRub + 319) +#define ActRcvFilWrkUsrDZ (ActRemRub + 320) +#define ActRcvFilWrkUsrCla (ActRemRub + 321) +#define ActExpWrkUsr (ActRemRub + 322) +#define ActConWrkUsr (ActRemRub + 323) +#define ActZIPWrkUsr (ActRemRub + 324) +#define ActReqDatWrkUsr (ActRemRub + 325) +#define ActChgDatWrkUsr (ActRemRub + 326) +#define ActDowWrkUsr (ActRemRub + 327) -#define ActReqRemFilAsgCrs (ActReqLnkGam + 328) -#define ActRemFilAsgCrs (ActReqLnkGam + 329) -#define ActRemFolAsgCrs (ActReqLnkGam + 330) -#define ActCopAsgCrs (ActReqLnkGam + 331) -#define ActPasAsgCrs (ActReqLnkGam + 332) -#define ActRemTreAsgCrs (ActReqLnkGam + 333) -#define ActFrmCreAsgCrs (ActReqLnkGam + 334) -#define ActCreFolAsgCrs (ActReqLnkGam + 335) -#define ActCreLnkAsgCrs (ActReqLnkGam + 336) -#define ActRenFolAsgCrs (ActReqLnkGam + 337) -#define ActRcvFilAsgCrsDZ (ActReqLnkGam + 338) -#define ActRcvFilAsgCrsCla (ActReqLnkGam + 339) -#define ActExpAsgCrs (ActReqLnkGam + 340) -#define ActConAsgCrs (ActReqLnkGam + 341) -#define ActZIPAsgCrs (ActReqLnkGam + 342) -#define ActReqDatAsgCrs (ActReqLnkGam + 343) -#define ActChgDatAsgCrs (ActReqLnkGam + 344) -#define ActDowAsgCrs (ActReqLnkGam + 345) +#define ActReqRemFilAsgCrs (ActRemRub + 328) +#define ActRemFilAsgCrs (ActRemRub + 329) +#define ActRemFolAsgCrs (ActRemRub + 330) +#define ActCopAsgCrs (ActRemRub + 331) +#define ActPasAsgCrs (ActRemRub + 332) +#define ActRemTreAsgCrs (ActRemRub + 333) +#define ActFrmCreAsgCrs (ActRemRub + 334) +#define ActCreFolAsgCrs (ActRemRub + 335) +#define ActCreLnkAsgCrs (ActRemRub + 336) +#define ActRenFolAsgCrs (ActRemRub + 337) +#define ActRcvFilAsgCrsDZ (ActRemRub + 338) +#define ActRcvFilAsgCrsCla (ActRemRub + 339) +#define ActExpAsgCrs (ActRemRub + 340) +#define ActConAsgCrs (ActRemRub + 341) +#define ActZIPAsgCrs (ActRemRub + 342) +#define ActReqDatAsgCrs (ActRemRub + 343) +#define ActChgDatAsgCrs (ActRemRub + 344) +#define ActDowAsgCrs (ActRemRub + 345) -#define ActReqRemFilWrkCrs (ActReqLnkGam + 346) -#define ActRemFilWrkCrs (ActReqLnkGam + 347) -#define ActRemFolWrkCrs (ActReqLnkGam + 348) -#define ActCopWrkCrs (ActReqLnkGam + 349) -#define ActPasWrkCrs (ActReqLnkGam + 350) -#define ActRemTreWrkCrs (ActReqLnkGam + 351) -#define ActFrmCreWrkCrs (ActReqLnkGam + 352) -#define ActCreFolWrkCrs (ActReqLnkGam + 353) -#define ActCreLnkWrkCrs (ActReqLnkGam + 354) -#define ActRenFolWrkCrs (ActReqLnkGam + 355) -#define ActRcvFilWrkCrsDZ (ActReqLnkGam + 356) -#define ActRcvFilWrkCrsCla (ActReqLnkGam + 357) -#define ActExpWrkCrs (ActReqLnkGam + 358) -#define ActConWrkCrs (ActReqLnkGam + 359) -#define ActZIPWrkCrs (ActReqLnkGam + 360) -#define ActReqDatWrkCrs (ActReqLnkGam + 361) -#define ActChgDatWrkCrs (ActReqLnkGam + 362) -#define ActDowWrkCrs (ActReqLnkGam + 363) +#define ActReqRemFilWrkCrs (ActRemRub + 346) +#define ActRemFilWrkCrs (ActRemRub + 347) +#define ActRemFolWrkCrs (ActRemRub + 348) +#define ActCopWrkCrs (ActRemRub + 349) +#define ActPasWrkCrs (ActRemRub + 350) +#define ActRemTreWrkCrs (ActRemRub + 351) +#define ActFrmCreWrkCrs (ActRemRub + 352) +#define ActCreFolWrkCrs (ActRemRub + 353) +#define ActCreLnkWrkCrs (ActRemRub + 354) +#define ActRenFolWrkCrs (ActRemRub + 355) +#define ActRcvFilWrkCrsDZ (ActRemRub + 356) +#define ActRcvFilWrkCrsCla (ActRemRub + 357) +#define ActExpWrkCrs (ActRemRub + 358) +#define ActConWrkCrs (ActRemRub + 359) +#define ActZIPWrkCrs (ActRemRub + 360) +#define ActReqDatWrkCrs (ActRemRub + 361) +#define ActChgDatWrkCrs (ActRemRub + 362) +#define ActDowWrkCrs (ActRemRub + 363) -#define ActChgToSeeMrk (ActReqLnkGam + 364) +#define ActChgToSeeMrk (ActRemRub + 364) -#define ActSeeMrkCrs (ActReqLnkGam + 365) -#define ActExpSeeMrkCrs (ActReqLnkGam + 366) -#define ActConSeeMrkCrs (ActReqLnkGam + 367) -#define ActReqDatSeeMrkCrs (ActReqLnkGam + 368) -#define ActReqLnkSeeMrkCrs (ActReqLnkGam + 369) -#define ActSeeMyMrkCrs (ActReqLnkGam + 370) +#define ActSeeMrkCrs (ActRemRub + 365) +#define ActExpSeeMrkCrs (ActRemRub + 366) +#define ActConSeeMrkCrs (ActRemRub + 367) +#define ActReqDatSeeMrkCrs (ActRemRub + 368) +#define ActReqLnkSeeMrkCrs (ActRemRub + 369) +#define ActSeeMyMrkCrs (ActRemRub + 370) -#define ActSeeMrkGrp (ActReqLnkGam + 371) -#define ActExpSeeMrkGrp (ActReqLnkGam + 372) -#define ActConSeeMrkGrp (ActReqLnkGam + 373) -#define ActReqDatSeeMrkGrp (ActReqLnkGam + 374) -#define ActSeeMyMrkGrp (ActReqLnkGam + 375) +#define ActSeeMrkGrp (ActRemRub + 371) +#define ActExpSeeMrkGrp (ActRemRub + 372) +#define ActConSeeMrkGrp (ActRemRub + 373) +#define ActReqDatSeeMrkGrp (ActRemRub + 374) +#define ActSeeMyMrkGrp (ActRemRub + 375) -#define ActChgToAdmMrk (ActReqLnkGam + 376) +#define ActChgToAdmMrk (ActRemRub + 376) -#define ActAdmMrkCrs (ActReqLnkGam + 377) -#define ActReqRemFilMrkCrs (ActReqLnkGam + 378) -#define ActRemFilMrkCrs (ActReqLnkGam + 379) -#define ActRemFolMrkCrs (ActReqLnkGam + 380) -#define ActCopMrkCrs (ActReqLnkGam + 381) -#define ActPasMrkCrs (ActReqLnkGam + 382) -#define ActRemTreMrkCrs (ActReqLnkGam + 383) -#define ActFrmCreMrkCrs (ActReqLnkGam + 384) -#define ActCreFolMrkCrs (ActReqLnkGam + 385) -#define ActRenFolMrkCrs (ActReqLnkGam + 386) -#define ActRcvFilMrkCrsDZ (ActReqLnkGam + 387) -#define ActRcvFilMrkCrsCla (ActReqLnkGam + 388) -#define ActExpAdmMrkCrs (ActReqLnkGam + 389) -#define ActConAdmMrkCrs (ActReqLnkGam + 390) -#define ActZIPAdmMrkCrs (ActReqLnkGam + 391) -#define ActUnhMrkCrs (ActReqLnkGam + 392) -#define ActHidMrkCrs (ActReqLnkGam + 393) -#define ActReqDatAdmMrkCrs (ActReqLnkGam + 394) -#define ActChgDatAdmMrkCrs (ActReqLnkGam + 395) -#define ActReqLnkAdmMrkCrs (ActReqLnkGam + 396) -#define ActDowAdmMrkCrs (ActReqLnkGam + 397) -#define ActChgNumRowHeaCrs (ActReqLnkGam + 398) -#define ActChgNumRowFooCrs (ActReqLnkGam + 399) +#define ActAdmMrkCrs (ActRemRub + 377) +#define ActReqRemFilMrkCrs (ActRemRub + 378) +#define ActRemFilMrkCrs (ActRemRub + 379) +#define ActRemFolMrkCrs (ActRemRub + 380) +#define ActCopMrkCrs (ActRemRub + 381) +#define ActPasMrkCrs (ActRemRub + 382) +#define ActRemTreMrkCrs (ActRemRub + 383) +#define ActFrmCreMrkCrs (ActRemRub + 384) +#define ActCreFolMrkCrs (ActRemRub + 385) +#define ActRenFolMrkCrs (ActRemRub + 386) +#define ActRcvFilMrkCrsDZ (ActRemRub + 387) +#define ActRcvFilMrkCrsCla (ActRemRub + 388) +#define ActExpAdmMrkCrs (ActRemRub + 389) +#define ActConAdmMrkCrs (ActRemRub + 390) +#define ActZIPAdmMrkCrs (ActRemRub + 391) +#define ActUnhMrkCrs (ActRemRub + 392) +#define ActHidMrkCrs (ActRemRub + 393) +#define ActReqDatAdmMrkCrs (ActRemRub + 394) +#define ActChgDatAdmMrkCrs (ActRemRub + 395) +#define ActReqLnkAdmMrkCrs (ActRemRub + 396) +#define ActDowAdmMrkCrs (ActRemRub + 397) +#define ActChgNumRowHeaCrs (ActRemRub + 398) +#define ActChgNumRowFooCrs (ActRemRub + 399) -#define ActAdmMrkGrp (ActReqLnkGam + 400) -#define ActReqRemFilMrkGrp (ActReqLnkGam + 401) -#define ActRemFilMrkGrp (ActReqLnkGam + 402) -#define ActRemFolMrkGrp (ActReqLnkGam + 403) -#define ActCopMrkGrp (ActReqLnkGam + 404) -#define ActPasMrkGrp (ActReqLnkGam + 405) -#define ActRemTreMrkGrp (ActReqLnkGam + 406) -#define ActFrmCreMrkGrp (ActReqLnkGam + 407) -#define ActCreFolMrkGrp (ActReqLnkGam + 408) -#define ActRenFolMrkGrp (ActReqLnkGam + 409) -#define ActRcvFilMrkGrpDZ (ActReqLnkGam + 410) -#define ActRcvFilMrkGrpCla (ActReqLnkGam + 411) -#define ActExpAdmMrkGrp (ActReqLnkGam + 412) -#define ActConAdmMrkGrp (ActReqLnkGam + 413) -#define ActZIPAdmMrkGrp (ActReqLnkGam + 414) -#define ActUnhMrkGrp (ActReqLnkGam + 415) -#define ActHidMrkGrp (ActReqLnkGam + 416) -#define ActReqDatAdmMrkGrp (ActReqLnkGam + 417) -#define ActChgDatAdmMrkGrp (ActReqLnkGam + 418) -#define ActDowAdmMrkGrp (ActReqLnkGam + 419) -#define ActChgNumRowHeaGrp (ActReqLnkGam + 420) -#define ActChgNumRowFooGrp (ActReqLnkGam + 421) +#define ActAdmMrkGrp (ActRemRub + 400) +#define ActReqRemFilMrkGrp (ActRemRub + 401) +#define ActRemFilMrkGrp (ActRemRub + 402) +#define ActRemFolMrkGrp (ActRemRub + 403) +#define ActCopMrkGrp (ActRemRub + 404) +#define ActPasMrkGrp (ActRemRub + 405) +#define ActRemTreMrkGrp (ActRemRub + 406) +#define ActFrmCreMrkGrp (ActRemRub + 407) +#define ActCreFolMrkGrp (ActRemRub + 408) +#define ActRenFolMrkGrp (ActRemRub + 409) +#define ActRcvFilMrkGrpDZ (ActRemRub + 410) +#define ActRcvFilMrkGrpCla (ActRemRub + 411) +#define ActExpAdmMrkGrp (ActRemRub + 412) +#define ActConAdmMrkGrp (ActRemRub + 413) +#define ActZIPAdmMrkGrp (ActRemRub + 414) +#define ActUnhMrkGrp (ActRemRub + 415) +#define ActHidMrkGrp (ActRemRub + 416) +#define ActReqDatAdmMrkGrp (ActRemRub + 417) +#define ActChgDatAdmMrkGrp (ActRemRub + 418) +#define ActDowAdmMrkGrp (ActRemRub + 419) +#define ActChgNumRowHeaGrp (ActRemRub + 420) +#define ActChgNumRowFooGrp (ActRemRub + 421) -#define ActReqRemFilBrf (ActReqLnkGam + 422) -#define ActRemFilBrf (ActReqLnkGam + 423) -#define ActRemFolBrf (ActReqLnkGam + 424) -#define ActCopBrf (ActReqLnkGam + 425) -#define ActPasBrf (ActReqLnkGam + 426) -#define ActRemTreBrf (ActReqLnkGam + 427) -#define ActFrmCreBrf (ActReqLnkGam + 428) -#define ActCreFolBrf (ActReqLnkGam + 429) -#define ActCreLnkBrf (ActReqLnkGam + 430) -#define ActRenFolBrf (ActReqLnkGam + 431) -#define ActRcvFilBrfDZ (ActReqLnkGam + 432) -#define ActRcvFilBrfCla (ActReqLnkGam + 433) -#define ActExpBrf (ActReqLnkGam + 434) -#define ActConBrf (ActReqLnkGam + 435) -#define ActZIPBrf (ActReqLnkGam + 436) -#define ActReqDatBrf (ActReqLnkGam + 437) -#define ActChgDatBrf (ActReqLnkGam + 438) -#define ActDowBrf (ActReqLnkGam + 439) -#define ActReqRemOldBrf (ActReqLnkGam + 440) -#define ActRemOldBrf (ActReqLnkGam + 441) +#define ActReqRemFilBrf (ActRemRub + 422) +#define ActRemFilBrf (ActRemRub + 423) +#define ActRemFolBrf (ActRemRub + 424) +#define ActCopBrf (ActRemRub + 425) +#define ActPasBrf (ActRemRub + 426) +#define ActRemTreBrf (ActRemRub + 427) +#define ActFrmCreBrf (ActRemRub + 428) +#define ActCreFolBrf (ActRemRub + 429) +#define ActCreLnkBrf (ActRemRub + 430) +#define ActRenFolBrf (ActRemRub + 431) +#define ActRcvFilBrfDZ (ActRemRub + 432) +#define ActRcvFilBrfCla (ActRemRub + 433) +#define ActExpBrf (ActRemRub + 434) +#define ActConBrf (ActRemRub + 435) +#define ActZIPBrf (ActRemRub + 436) +#define ActReqDatBrf (ActRemRub + 437) +#define ActChgDatBrf (ActRemRub + 438) +#define ActDowBrf (ActRemRub + 439) +#define ActReqRemOldBrf (ActRemRub + 440) +#define ActRemOldBrf (ActRemRub + 441) /*****************************************************************************/ /******************************* Users tab ***********************************/ @@ -1750,7 +1758,7 @@ #define ActLst_NUM_ACTIONS (ActChgMyTT1stDay + 1) -#define ActLst_MAX_ACTION_COD 1951 +#define ActLst_MAX_ACTION_COD 1958 #define ActLst_DEFAULT_ACTION_AFTER_LOGIN ActSeeGblTL diff --git a/swad_call_for_exam.c b/swad_call_for_exam.c index eb69636c..cf1ed341 100644 --- a/swad_call_for_exam.c +++ b/swad_call_for_exam.c @@ -875,8 +875,8 @@ static void Cfe_ShowCallForExam (struct Cfe_CallsForExams *CallsForExams, Cfe_TypeViewCallForExam_t TypeViewCallForExam, bool HighLight) { - extern const char *Hlp_ASSESSMENT_Calls_for_exam_new_call; - extern const char *Hlp_ASSESSMENT_Announcements_edit_announcement; + extern const char *Hlp_ASSESSMENT_Calls_for_exams_new_call; + extern const char *Hlp_ASSESSMENT_Calls_for_exams_edit_call; extern const char *Txt_YEAR_OF_DEGREE[1 + Deg_MAX_YEARS_PER_DEGREE]; extern const char *Txt_Call_for_exam; extern const char *Txt_CALL_FOR_EXAM_Course; @@ -940,8 +940,8 @@ static void Cfe_ShowCallForExam (struct Cfe_CallsForExams *CallsForExams, CallsForExams->ExaCod = ExaCod; // Used to put contextual icons FunctionToDrawContextualIcons = TypeViewCallForExam == Cfe_NORMAL_VIEW ? Cfe_PutIconsCallForExam : NULL; - HelpLink = TypeViewCallForExam == Cfe_FORM_VIEW ? ((ExaCod > 0) ? Hlp_ASSESSMENT_Announcements_edit_announcement : - Hlp_ASSESSMENT_Calls_for_exam_new_call) : + HelpLink = TypeViewCallForExam == Cfe_FORM_VIEW ? ((ExaCod > 0) ? Hlp_ASSESSMENT_Calls_for_exams_edit_call : + Hlp_ASSESSMENT_Calls_for_exams_new_call) : NULL; if (HighLight) { diff --git a/swad_changelog.h b/swad_changelog.h index eb262098..2dae428c 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -629,6 +629,14 @@ siempre atento a sus comentarios y agradecido de antemano por la ayuda que siemp TODO: Emilce Barrera Mesa: Calificación integrada de las actividades. TODO: Emilce Barrera Mesa: Para futuras mejoras podrías incluir por favor la opción de duplicar una pregunta al momento de crearlas. Esto en razón a que si tengo dos preguntas con las mismas opciones de respuesta, pero diferente enunciado me ahorrarías tiempo si me permites duplicar la pregunta y solo cambiar el enunciado. + Version 22.65: Mar 01, 2023 New module swad_rubric for rubrics. Not finished. (336989 lines) + 2 changes necessary in database: +CREATE TABLE IF NOT EXISTS rub_rubrics (RubCod INT NOT NULL AUTO_INCREMENT,CrsCod INT NOT NULL DEFAULT -1,UsrCod INT NOT NULL,Title VARCHAR(2047) NOT NULL,Txt TEXT NOT NULL,UNIQUE INDEX(RubCod),INDEX(CrsCod)); +CREATE TABLE IF NOT EXISTS rub_criteria (RubCod INT NOT NULL,CriInd INT NOT NULL,CriCod INT NOT NULL,UNIQUE INDEX(RubCod,CriInd),UNIQUE INDEX(RubCod,CriCod)); + If you want to use MyISAM: +ALTER TABLE rub_rubrics ENGINE=MyISAM; +ALTER TABLE rub_criteria ENGINE=MyISAM; + Version 22.64: Feb 23, 2023 Surveys moved to analytics tab. (334217 lines) Version 22.63: Feb 22, 2023 Assessment information moved to course tab. (334216 lines) Version 22.62.2: Feb 22, 2023 Changed icon for question bank. (334165 lines) diff --git a/swad_database.c b/swad_database.c index 224fa766..f08c7733 100644 --- a/swad_database.c +++ b/swad_database.c @@ -2796,6 +2796,48 @@ mysql> DESCRIBE roo_check_in; "INDEX(UsrCod,CheckInTime)," "INDEX(CheckInTime))"); + /***** Table rub_criteria *****/ +/* +mysql> DESCRIBE rub_criteria; ++--------+------+------+-----+---------+-------+ +| Field | Type | Null | Key | Default | Extra | ++--------+------+------+-----+---------+-------+ +| RubCod | int | NO | PRI | NULL | | +| CriInd | int | NO | PRI | NULL | | +| CriCod | int | NO | | NULL | | ++--------+------+------+-----+---------+-------+ +3 rows in set (0,00 sec) +*/ + DB_CreateTable ("CREATE TABLE IF NOT EXISTS rub_criteria (" + "RubCod INT NOT NULL," + "CriInd INT NOT NULL," + "CriCod INT NOT NULL," + "UNIQUE INDEX(RubCod,CriInd)," + "UNIQUE INDEX(RubCod,CriCod))"); + + /***** Table rub_rubrics *****/ +/* +mysql> DESCRIBE rub_rubrics; ++--------+---------------+------+-----+---------+----------------+ +| Field | Type | Null | Key | Default | Extra | ++--------+---------------+------+-----+---------+----------------+ +| RubCod | int | NO | PRI | NULL | auto_increment | +| CrsCod | int | NO | MUL | -1 | | +| UsrCod | int | NO | | NULL | | +| Title | varchar(2047) | NO | | NULL | | +| Txt | text | NO | | NULL | | ++--------+---------------+------+-----+---------+----------------+ +5 rows in set (0,00 sec) +*/ + DB_CreateTable ("CREATE TABLE IF NOT EXISTS rub_rubrics (" + "RubCod INT NOT NULL AUTO_INCREMENT," + "CrsCod INT NOT NULL DEFAULT -1," + "UsrCod INT NOT NULL," + "Title VARCHAR(2047) NOT NULL," // Rub_MAX_BYTES_TITLE + "Txt TEXT NOT NULL," // Cns_MAX_BYTES_TEXT + "UNIQUE INDEX(RubCod)," + "INDEX(CrsCod))"); + /***** Table ses_params *****/ /* mysql> DESCRIBE ses_params; diff --git a/swad_error.c b/swad_error.c index 37061bd0..aadb1b50 100644 --- a/swad_error.c +++ b/swad_error.c @@ -432,6 +432,29 @@ void Err_WrongMatchExit (void) Err_ShowErrorAndExit ("Wrong match."); } +/*****************************************************************************/ +/************** Write error message and exit when wrong ribric ***************/ +/*****************************************************************************/ + +void Err_WrongRubricExit (void) + { + Err_ShowErrorAndExit ("Wrong rubric."); + } + +/*****************************************************************************/ +/************ Write error message and exit when wrong criterion **************/ +/*****************************************************************************/ + +void Err_WrongCriterionExit (void) + { + Err_ShowErrorAndExit ("Wrong criterion."); + } + +void Err_WrongCriterionIndexExit (void) + { + Err_ShowErrorAndExit ("Wrong criterion index."); + } + /*****************************************************************************/ /************** Write error message and exit when wrong survey ***************/ /*****************************************************************************/ diff --git a/swad_error.h b/swad_error.h index af43ea50..35813265 100644 --- a/swad_error.h +++ b/swad_error.h @@ -77,6 +77,9 @@ void Err_WrongAnswerTypeExit (void); void Err_WrongExamSessionExit (void); void Err_WrongGameExit (void); void Err_WrongMatchExit (void); +void Err_WrongRubricExit (void); +void Err_WrongCriterionExit (void); +void Err_WrongCriterionIndexExit (void); void Err_WrongSurveyExit (void); void Err_WrongWhoExit (void); void Err_WrongEventExit (void); diff --git a/swad_figure.c b/swad_figure.c index 990b93e5..b959e38a 100644 --- a/swad_figure.c +++ b/swad_figure.c @@ -47,6 +47,7 @@ #include "swad_privacy.h" #include "swad_program.h" #include "swad_project.h" +#include "swad_rubric.h" #include "swad_survey.h" #include "swad_test.h" #include "swad_theme.h" @@ -208,6 +209,7 @@ void Fig_ShowFigures (void) [Fig_TESTS ] = Tst_GetAndShowTestsStats, [Fig_EXAMS ] = Exa_GetAndShowExamsStats, [Fig_GAMES ] = Gam_GetAndShowGamesStats, + [Fig_RUBRICS ] = Rub_GetAndShowRubricsStats, [Fig_TIMELINE ] = Tml_GetAndShowTimelineActivityStats, [Fig_FOLLOW ] = Fol_GetAndShowFollowStats, [Fig_FORUMS ] = For_GetAndShowForumStats, diff --git a/swad_figure.h b/swad_figure.h index 21fcfb64..61a7840e 100644 --- a/swad_figure.h +++ b/swad_figure.h @@ -33,7 +33,7 @@ /************************** Public types and constants ***********************/ /*****************************************************************************/ -#define Fig_NUM_FIGURES 32 +#define Fig_NUM_FIGURES 33 typedef enum { Fig_USERS, // Number of users @@ -49,6 +49,7 @@ typedef enum Fig_TESTS, // Number of test questions Fig_EXAMS, // Number of exams Fig_GAMES, // Number of games + Fig_RUBRICS, // Number of rubrics Fig_TIMELINE, // Number of timeline notes Fig_FOLLOW, // Number of following and followers Fig_FORUMS, // Number of forums, threads and posts diff --git a/swad_help_URL.c b/swad_help_URL.c index 8b969181..da5d245a 100644 --- a/swad_help_URL.c +++ b/swad_help_URL.c @@ -1495,6 +1495,75 @@ const char *Hlp_ASSESSMENT_Projects_add_user = "ASSESSMENT.Projects.en#add-user"; #endif +const char *Hlp_ASSESSMENT_Calls_for_exams = +#if L==1 + "ASSESSMENT.Calls_for_exams.es"; +#elif L==2 + "ASSESSMENT.Calls_for_exams.en"; +#elif L==3 + "ASSESSMENT.Calls_for_exams.en"; +#elif L==4 + "ASSESSMENT.Calls_for_exams.es"; +#elif L==5 + "ASSESSMENT.Calls_for_exams.en"; +#elif L==6 + "ASSESSMENT.Calls_for_exams.es"; +#elif L==7 + "ASSESSMENT.Calls_for_exams.en"; +#elif L==8 + "ASSESSMENT.Calls_for_exams.en"; +#elif L==9 + "ASSESSMENT.Calls_for_exams.en"; +#elif L==10 // tr + "ASSESSMENT.Calls_for_exams.en"; +#endif + +const char *Hlp_ASSESSMENT_Calls_for_exams_new_call = +#if L==1 + "ASSESSMENT.Calls_for_exams.es#nueva-convocatoria"; +#elif L==2 + "ASSESSMENT.Calls_for_exams.en#new-call"; +#elif L==3 + "ASSESSMENT.Calls_for_exams.en#new-call"; +#elif L==4 + "ASSESSMENT.Calls_for_exams.es#nueva-convocatoria"; +#elif L==5 + "ASSESSMENT.Calls_for_exams.en#new-call"; +#elif L==6 + "ASSESSMENT.Calls_for_exams.es#nueva-convocatoria"; +#elif L==7 + "ASSESSMENT.Calls_for_exams.en#new-call"; +#elif L==8 + "ASSESSMENT.Calls_for_exams.en#new-call"; +#elif L==9 + "ASSESSMENT.Calls_for_exams.en#new-call"; +#elif L==10 // tr + "ASSESSMENT.Calls_for_exams.en#new-call"; +#endif + +const char *Hlp_ASSESSMENT_Calls_for_exams_edit_call = +#if L==1 + "ASSESSMENT.Calls_for_exams.es#editar-convocatoria"; +#elif L==2 + "ASSESSMENT.Calls_for_exams.en#edit-call"; +#elif L==3 + "ASSESSMENT.Calls_for_exams.en#edit-call"; +#elif L==4 + "ASSESSMENT.Calls_for_exams.es#editar-convocatoria"; +#elif L==5 + "ASSESSMENT.Calls_for_exams.en#edit-call"; +#elif L==6 + "ASSESSMENT.Calls_for_exams.es#editar-convocatoria"; +#elif L==7 + "ASSESSMENT.Calls_for_exams.en#edit-call"; +#elif L==8 + "ASSESSMENT.Calls_for_exams.en#edit-call"; +#elif L==9 + "ASSESSMENT.Calls_for_exams.en#edit-call"; +#elif L==10 // tr + "ASSESSMENT.Calls_for_exams.en#edit-call"; +#endif + const char *Hlp_ASSESSMENT_Questions = #if L==1 "ASSESSMENT.Questions.es"; @@ -1955,165 +2024,96 @@ const char *Hlp_ASSESSMENT_Games_results = "ASSESSMENT.Games.en#results"; #endif -const char *Hlp_ASSESSMENT_Surveys = +const char *Hlp_ASSESSMENT_Rubrics = #if L==1 - "ASSESSMENT.Surveys.es"; + "ASSESSMENT.Rubrics.es"; #elif L==2 - "ASSESSMENT.Surveys.en"; + "ASSESSMENT.Rubrics.en"; #elif L==3 - "ASSESSMENT.Surveys.en"; + "ASSESSMENT.Rubrics.en"; #elif L==4 - "ASSESSMENT.Surveys.es"; + "ASSESSMENT.Rubrics.es"; #elif L==5 - "ASSESSMENT.Surveys.en"; + "ASSESSMENT.Rubrics.en"; #elif L==6 - "ASSESSMENT.Surveys.es"; + "ASSESSMENT.Rubrics.es"; #elif L==7 - "ASSESSMENT.Surveys.en"; + "ASSESSMENT.Rubrics.en"; #elif L==8 - "ASSESSMENT.Surveys.en"; + "ASSESSMENT.Rubrics.en"; #elif L==9 - "ASSESSMENT.Surveys.en"; + "ASSESSMENT.Rubrics.en"; #elif L==10 // tr - "ASSESSMENT.Surveys.en"; + "ASSESSMENT.Rubrics.en"; #endif -const char *Hlp_ASSESSMENT_Surveys_new_survey = +const char *Hlp_ASSESSMENT_Rubrics_edit_rubric = #if L==1 - "ASSESSMENT.Surveys.es#nueva-encuesta"; + "ASSESSMENT.Rubrics.es#editar-juego"; #elif L==2 - "ASSESSMENT.Surveys.en#new-survey"; + "ASSESSMENT.Rubrics.en#edit-rubric"; #elif L==3 - "ASSESSMENT.Surveys.en#new-survey"; + "ASSESSMENT.Rubrics.en#edit-rubric"; #elif L==4 - "ASSESSMENT.Surveys.es#nueva-encuesta"; + "ASSESSMENT.Rubrics.es#editar-rubrica"; #elif L==5 - "ASSESSMENT.Surveys.en#new-survey"; + "ASSESSMENT.Rubrics.en#edit-rubric"; #elif L==6 - "ASSESSMENT.Surveys.es#nueva-encuesta"; + "ASSESSMENT.Rubrics.es#editar-rubrica"; #elif L==7 - "ASSESSMENT.Surveys.en#new-survey"; + "ASSESSMENT.Rubrics.en#edit-rubric"; #elif L==8 - "ASSESSMENT.Surveys.en#new-survey"; + "ASSESSMENT.Rubrics.en#edit-rubric"; #elif L==9 - "ASSESSMENT.Surveys.en#new-survey"; + "ASSESSMENT.Rubrics.en#edit-rubric"; #elif L==10 // tr - "ASSESSMENT.Surveys.en#new-survey"; + "ASSESSMENT.Rubrics.en#edit-rubric"; #endif -const char *Hlp_ASSESSMENT_Surveys_edit_survey = +const char *Hlp_ASSESSMENT_Rubrics_new_rubric = #if L==1 - "ASSESSMENT.Surveys.es#editar-encuesta"; + "ASSESSMENT.Rubrics.es#nuevo-juego"; #elif L==2 - "ASSESSMENT.Surveys.en#edit-survey"; + "ASSESSMENT.Rubrics.en#new-rubric"; #elif L==3 - "ASSESSMENT.Surveys.en#edit-survey"; + "ASSESSMENT.Rubrics.en#new-rubric"; #elif L==4 - "ASSESSMENT.Surveys.es#editar-encuesta"; + "ASSESSMENT.Rubrics.es#nueva-rubrica"; #elif L==5 - "ASSESSMENT.Surveys.en#edit-survey"; + "ASSESSMENT.Rubrics.en#new-rubric"; #elif L==6 - "ASSESSMENT.Surveys.es#editar-encuesta"; + "ASSESSMENT.Rubrics.es#nueva-rubrica"; #elif L==7 - "ASSESSMENT.Surveys.en#edit-survey"; + "ASSESSMENT.Rubrics.en#new-rubric"; #elif L==8 - "ASSESSMENT.Surveys.en#edit-survey"; + "ASSESSMENT.Rubrics.en#new-rubric"; #elif L==9 - "ASSESSMENT.Surveys.en#edit-survey"; + "ASSESSMENT.Rubrics.en#new-rubric"; #elif L==10 // tr - "ASSESSMENT.Surveys.en#edit-survey"; + "ASSESSMENT.Rubrics.en#new-rubric"; #endif -const char *Hlp_ASSESSMENT_Surveys_questions = +const char *Hlp_ASSESSMENT_Rubrics_criteria = #if L==1 - "ASSESSMENT.Surveys.es#preguntas"; + "ASSESSMENT.Rubrics.es#criteria"; #elif L==2 - "ASSESSMENT.Surveys.en#questions"; + "ASSESSMENT.Rubrics.en#criteria"; #elif L==3 - "ASSESSMENT.Surveys.en#questions"; + "ASSESSMENT.Rubrics.en#criteria"; #elif L==4 - "ASSESSMENT.Surveys.es#preguntas"; + "ASSESSMENT.Rubrics.es#criterios"; #elif L==5 - "ASSESSMENT.Surveys.en#questions"; + "ASSESSMENT.Rubrics.en#criteria"; #elif L==6 - "ASSESSMENT.Surveys.es#preguntas"; + "ASSESSMENT.Rubrics.es#criterios"; #elif L==7 - "ASSESSMENT.Surveys.en#questions"; + "ASSESSMENT.Rubrics.en#criteria"; #elif L==8 - "ASSESSMENT.Surveys.en#questions"; + "ASSESSMENT.Rubrics.en#criteria"; #elif L==9 - "ASSESSMENT.Surveys.en#questions"; + "ASSESSMENT.Rubrics.en#criteria"; #elif L==10 // tr - "ASSESSMENT.Surveys.en#questions"; -#endif - -const char *Hlp_ASSESSMENT_Calls_for_exams = -#if L==1 - "ASSESSMENT.Calls_for_exams.es"; -#elif L==2 - "ASSESSMENT.Calls_for_exams.en"; -#elif L==3 - "ASSESSMENT.Calls_for_exams.en"; -#elif L==4 - "ASSESSMENT.Calls_for_exams.es"; -#elif L==5 - "ASSESSMENT.Calls_for_exams.en"; -#elif L==6 - "ASSESSMENT.Calls_for_exams.es"; -#elif L==7 - "ASSESSMENT.Calls_for_exams.en"; -#elif L==8 - "ASSESSMENT.Calls_for_exams.en"; -#elif L==9 - "ASSESSMENT.Calls_for_exams.en"; -#elif L==10 // tr - "ASSESSMENT.Calls_for_exams.en"; -#endif - -const char *Hlp_ASSESSMENT_Calls_for_exam_new_call = -#if L==1 - "ASSESSMENT.Calls_for_exams.es#nueva-convocatoria"; -#elif L==2 - "ASSESSMENT.Calls_for_exams.en#new-call"; -#elif L==3 - "ASSESSMENT.Calls_for_exams.en#new-call"; -#elif L==4 - "ASSESSMENT.Calls_for_exams.es#nueva-convocatoria"; -#elif L==5 - "ASSESSMENT.Calls_for_exams.en#new-call"; -#elif L==6 - "ASSESSMENT.Calls_for_exams.es#nueva-convocatoria"; -#elif L==7 - "ASSESSMENT.Calls_for_exams.en#new-call"; -#elif L==8 - "ASSESSMENT.Calls_for_exams.en#new-call"; -#elif L==9 - "ASSESSMENT.Calls_for_exams.en#new-call"; -#elif L==10 // tr - "ASSESSMENT.Calls_for_exams.en#new-call"; -#endif - -const char *Hlp_ASSESSMENT_Announcements_edit_announcement = -#if L==1 - "ASSESSMENT.Calls_for_exams.es#editar-convocatoria"; -#elif L==2 - "ASSESSMENT.Calls_for_exams.en#edit-call"; -#elif L==3 - "ASSESSMENT.Calls_for_exams.en#edit-call"; -#elif L==4 - "ASSESSMENT.Calls_for_exams.es#editar-convocatoria"; -#elif L==5 - "ASSESSMENT.Calls_for_exams.en#edit-call"; -#elif L==6 - "ASSESSMENT.Calls_for_exams.es#editar-convocatoria"; -#elif L==7 - "ASSESSMENT.Calls_for_exams.en#edit-call"; -#elif L==8 - "ASSESSMENT.Calls_for_exams.en#edit-call"; -#elif L==9 - "ASSESSMENT.Calls_for_exams.en#edit-call"; -#elif L==10 // tr - "ASSESSMENT.Calls_for_exams.en#edit-call"; + "ASSESSMENT.Rubrics.en#criteria"; #endif /***** FILES tab *****/ @@ -3435,6 +3435,29 @@ const char *Hlp_ANALYTICS_Figures_games = "ANALYTICS.Figures.en#games"; #endif +const char *Hlp_ANALYTICS_Figures_rubrics = +#if L==1 + "ANALYTICS.Figures.es#rubricas"; +#elif L==2 + "ANALYTICS.Figures.en#rubrics"; +#elif L==3 + "ANALYTICS.Figures.en#rubrics"; +#elif L==4 + "ANALYTICS.Figures.es#rubricas"; +#elif L==5 + "ANALYTICS.Figures.en#rubrics"; +#elif L==6 + "ANALYTICS.Figures.es#rubricas"; +#elif L==7 + "ANALYTICS.Figures.en#rubrics"; +#elif L==8 + "ANALYTICS.Figures.en#rubrics"; +#elif L==9 + "ANALYTICS.Figures.en#rubrics"; +#elif L==10 // tr + "ANALYTICS.Figures.en#rubrics"; +#endif + const char *Hlp_ANALYTICS_Figures_surveys = #if L==1 "ANALYTICS.Figures.es#encuestas"; @@ -3964,6 +3987,98 @@ const char *Hlp_ANALYTICS_Visits_visits_to_course = "ANALYTICS.Visits.en#visits-to-course"; #endif +const char *Hlp_ANALYTICS_Surveys = +#if L==1 + "ANALYTICS.Surveys.es"; +#elif L==2 + "ANALYTICS.Surveys.en"; +#elif L==3 + "ANALYTICS.Surveys.en"; +#elif L==4 + "ANALYTICS.Surveys.es"; +#elif L==5 + "ANALYTICS.Surveys.en"; +#elif L==6 + "ANALYTICS.Surveys.es"; +#elif L==7 + "ANALYTICS.Surveys.en"; +#elif L==8 + "ANALYTICS.Surveys.en"; +#elif L==9 + "ANALYTICS.Surveys.en"; +#elif L==10 // tr + "ANALYTICS.Surveys.en"; +#endif + +const char *Hlp_ANALYTICS_Surveys_new_survey = +#if L==1 + "ANALYTICS.Surveys.es#nueva-encuesta"; +#elif L==2 + "ANALYTICS.Surveys.en#new-survey"; +#elif L==3 + "ANALYTICS.Surveys.en#new-survey"; +#elif L==4 + "ANALYTICS.Surveys.es#nueva-encuesta"; +#elif L==5 + "ANALYTICS.Surveys.en#new-survey"; +#elif L==6 + "ANALYTICS.Surveys.es#nueva-encuesta"; +#elif L==7 + "ANALYTICS.Surveys.en#new-survey"; +#elif L==8 + "ANALYTICS.Surveys.en#new-survey"; +#elif L==9 + "ANALYTICS.Surveys.en#new-survey"; +#elif L==10 // tr + "ANALYTICS.Surveys.en#new-survey"; +#endif + +const char *Hlp_ANALYTICS_Surveys_edit_survey = +#if L==1 + "ANALYTICS.Surveys.es#editar-encuesta"; +#elif L==2 + "ANALYTICS.Surveys.en#edit-survey"; +#elif L==3 + "ANALYTICS.Surveys.en#edit-survey"; +#elif L==4 + "ANALYTICS.Surveys.es#editar-encuesta"; +#elif L==5 + "ANALYTICS.Surveys.en#edit-survey"; +#elif L==6 + "ANALYTICS.Surveys.es#editar-encuesta"; +#elif L==7 + "ANALYTICS.Surveys.en#edit-survey"; +#elif L==8 + "ANALYTICS.Surveys.en#edit-survey"; +#elif L==9 + "ANALYTICS.Surveys.en#edit-survey"; +#elif L==10 // tr + "ANALYTICS.Surveys.en#edit-survey"; +#endif + +const char *Hlp_ANALYTICS_Surveys_questions = +#if L==1 + "ANALYTICS.Surveys.es#preguntas"; +#elif L==2 + "ANALYTICS.Surveys.en#questions"; +#elif L==3 + "ANALYTICS.Surveys.en#questions"; +#elif L==4 + "ANALYTICS.Surveys.es#preguntas"; +#elif L==5 + "ANALYTICS.Surveys.en#questions"; +#elif L==6 + "ANALYTICS.Surveys.es#preguntas"; +#elif L==7 + "ANALYTICS.Surveys.en#questions"; +#elif L==8 + "ANALYTICS.Surveys.en#questions"; +#elif L==9 + "ANALYTICS.Surveys.en#questions"; +#elif L==10 // tr + "ANALYTICS.Surveys.en#questions"; +#endif + const char *Hlp_ANALYTICS_Report = #if L==1 "ANALYTICS.Report.es"; diff --git a/swad_notification.c b/swad_notification.c index 2f7e3965..b13213f8 100644 --- a/swad_notification.c +++ b/swad_notification.c @@ -102,7 +102,6 @@ const char *Ntf_WSNotifyEvents[Ntf_NUM_NOTIFY_EVENTS] = /* Course tab */ /* Assessment tab */ [Ntf_EVENT_ASSIGNMENT ] = "assignment", - [Ntf_EVENT_SURVEY ] = "survey", [Ntf_EVENT_CALL_FOR_EXAM ] = "examAnnouncement", /* Files tab */ [Ntf_EVENT_DOCUMENT_FILE ] = "documentFile", @@ -120,6 +119,7 @@ const char *Ntf_WSNotifyEvents[Ntf_NUM_NOTIFY_EVENTS] = [Ntf_EVENT_FORUM_REPLY ] = "forumReply", [Ntf_EVENT_MESSAGE ] = "message", /* Analytics tab */ + [Ntf_EVENT_SURVEY ] = "survey", /* Profile tab */ }; @@ -183,7 +183,6 @@ static const char *Ntf_ParamNotifMeAboutNotifyEvents[Ntf_NUM_NOTIFY_EVENTS] = /* Course tab */ /* Assessment tab */ [Ntf_EVENT_ASSIGNMENT ] = "NotifyNtfEventAssignment", - [Ntf_EVENT_SURVEY ] = "NotifyNtfEventSurvey", [Ntf_EVENT_CALL_FOR_EXAM ] = "NotifyNtfEventExamAnnouncement", /* Files tab */ [Ntf_EVENT_DOCUMENT_FILE ] = "NotifyNtfEventDocumentFile", @@ -201,6 +200,7 @@ static const char *Ntf_ParamNotifMeAboutNotifyEvents[Ntf_NUM_NOTIFY_EVENTS] = [Ntf_EVENT_ENROLMENT_TCH ] = "NotifyNtfEventEnrolmentTeacher", [Ntf_EVENT_ENROLMENT_REQUEST] = "NotifyNtfEventEnrolmentRequest", /* Analytics tab */ + [Ntf_EVENT_SURVEY ] = "NotifyNtfEventSurvey", /* Profile tab */ }; @@ -222,7 +222,6 @@ static const char *Ntf_ParamEmailMeAboutNotifyEvents[Ntf_NUM_NOTIFY_EVENTS] = /* Course tab */ /* Assessment tab */ [Ntf_EVENT_ASSIGNMENT ] = "EmailNtfEventAssignment", - [Ntf_EVENT_SURVEY ] = "EmailNtfEventSurvey", [Ntf_EVENT_CALL_FOR_EXAM ] = "EmailNtfEventExamAnnouncement", /* Files tab */ [Ntf_EVENT_DOCUMENT_FILE ] = "EmailNtfEventDocumentFile", @@ -240,6 +239,7 @@ static const char *Ntf_ParamEmailMeAboutNotifyEvents[Ntf_NUM_NOTIFY_EVENTS] = [Ntf_EVENT_ENROLMENT_TCH ] = "EmailNtfEventEnrolmentTeacher", [Ntf_EVENT_ENROLMENT_REQUEST] = "EmailNtfEventEnrolmentRequest", /* Analytics tab */ + [Ntf_EVENT_SURVEY ] = "EmailNtfEventSurvey", /* Profile tab */ }; @@ -261,7 +261,6 @@ static const char *Ntf_Icons[Ntf_NUM_NOTIFY_EVENTS] = /* Course tab */ /* Assessment tab */ [Ntf_EVENT_ASSIGNMENT ] = "edit.svg", - [Ntf_EVENT_SURVEY ] = "poll.svg", [Ntf_EVENT_CALL_FOR_EXAM ] = "bullhorn.svg", /* Files tab */ [Ntf_EVENT_DOCUMENT_FILE ] = "file.svg", @@ -279,6 +278,7 @@ static const char *Ntf_Icons[Ntf_NUM_NOTIFY_EVENTS] = [Ntf_EVENT_ENROLMENT_TCH ] = "user-tie.svg", [Ntf_EVENT_ENROLMENT_REQUEST] = "hand-point-up.svg", /* Analytics tab */ + [Ntf_EVENT_SURVEY ] = "poll.svg", /* Profile tab */ }; diff --git a/swad_notification.h b/swad_notification.h index 91d8c66a..9ef65eac 100644 --- a/swad_notification.h +++ b/swad_notification.h @@ -51,7 +51,9 @@ // If the numbers assigned to each event type change, // it is necessary to change old numbers to new ones // in database tables ntf_notifications, sta_notifications and usr_data -typedef enum // TODO: Change numbers (also in database)!!!!!!!!!!!!!! + +// TODO: Change numbers (also in database)!!!!!!!!!!!!!! +typedef enum { Ntf_EVENT_UNKNOWN = 0, /* Start tab */ diff --git a/swad_pagination.c b/swad_pagination.c index c2c43e15..4eb7af01 100644 --- a/swad_pagination.c +++ b/swad_pagination.c @@ -69,12 +69,13 @@ static const char *Pag_ParamNumPag[Pag_NUM_WHAT_PAGINATE] = [Pag_PROJECTS ] = "NumPagPrj", [Pag_EXAMS ] = "NumPagExa", [Pag_GAMES ] = "NumPagGam", - [Pag_SURVEYS ] = "NumPagSvy", + [Pag_RUBRICS ] = "NumPagRub", [Pag_ATT_EVENTS ] = "NumPagAtt", [Pag_THREADS_FORUM ] = "NumPagThr", [Pag_POSTS_FORUM ] = "NumPagPst", [Pag_MESSAGES_RECEIVED] = "NumPagRcv", [Pag_MESSAGES_SENT ] = "NumPagSnt", + [Pag_SURVEYS ] = "NumPagSvy", [Pag_MY_AGENDA ] = "NumPagMyAgd", [Pag_ANOTHER_AGENDA ] = "NumPagOthAgd", }; @@ -202,6 +203,10 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate, WhichGroups = Grp_GetParamWhichGroups (); Grp_PutParamWhichGroups (&WhichGroups); break; + case Pag_RUBRICS: + Frm_BeginFormAnchor (ActSeeAllRub,Pagination->Anchor); + Pag_PutHiddenParamPagNum (WhatPaginate,1); + break; case Pag_ATT_EVENTS: Frm_BeginFormAnchor (ActSeeAtt,Pagination->Anchor); Pag_PutHiddenParamPagNum (WhatPaginate,1); @@ -325,6 +330,10 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate, WhichGroups = Grp_GetParamWhichGroups (); Grp_PutParamWhichGroups (&WhichGroups); break; + case Pag_RUBRICS: + Frm_BeginFormAnchor (ActSeeAllRub,Pagination->Anchor); + Pag_PutHiddenParamPagNum (WhatPaginate,1); + break; case Pag_ATT_EVENTS: Frm_BeginFormAnchor (ActSeeAtt,Pagination->Anchor); Pag_PutHiddenParamPagNum (WhatPaginate,1); @@ -441,6 +450,10 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate, WhichGroups = Grp_GetParamWhichGroups (); Grp_PutParamWhichGroups (&WhichGroups); break; + case Pag_RUBRICS: + Frm_BeginFormAnchor (ActSeeAllRub,Pagination->Anchor); + Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->LeftPage); + break; case Pag_ATT_EVENTS: Frm_BeginFormAnchor (ActSeeAtt,Pagination->Anchor); Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->LeftPage); @@ -570,6 +583,10 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate, WhichGroups = Grp_GetParamWhichGroups (); Grp_PutParamWhichGroups (&WhichGroups); break; + case Pag_RUBRICS: + Frm_BeginFormAnchor (ActSeeAllRub,Pagination->Anchor); + Pag_PutHiddenParamPagNum (WhatPaginate,NumPage); + break; case Pag_ATT_EVENTS: Frm_BeginFormAnchor (ActSeeAtt,Pagination->Anchor); Pag_PutHiddenParamPagNum (WhatPaginate,NumPage); @@ -685,6 +702,10 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate, WhichGroups = Grp_GetParamWhichGroups (); Grp_PutParamWhichGroups (&WhichGroups); break; + case Pag_RUBRICS: + Frm_BeginFormAnchor (ActSeeAllRub,Pagination->Anchor); + Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->RightPage); + break; case Pag_ATT_EVENTS: Frm_BeginFormAnchor (ActSeeAtt,Pagination->Anchor); Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->RightPage); @@ -801,6 +822,10 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate, WhichGroups = Grp_GetParamWhichGroups (); Grp_PutParamWhichGroups (&WhichGroups); break; + case Pag_RUBRICS: + Frm_BeginFormAnchor (ActSeeAllRub,Pagination->Anchor); + Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->NumPags); + break; case Pag_ATT_EVENTS: Frm_BeginFormAnchor (ActSeeAtt,Pagination->Anchor); Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->NumPags); diff --git a/swad_pagination.h b/swad_pagination.h index 048d1e00..b071924c 100644 --- a/swad_pagination.h +++ b/swad_pagination.h @@ -39,7 +39,7 @@ /******************************** Public types *******************************/ /*****************************************************************************/ -#define Pag_NUM_WHAT_PAGINATE 13 +#define Pag_NUM_WHAT_PAGINATE 14 typedef enum { Pag_NONE = 0, @@ -47,14 +47,15 @@ typedef enum Pag_PROJECTS = 2, Pag_EXAMS = 3, Pag_GAMES = 4, - Pag_SURVEYS = 5, + Pag_RUBRICS = 5, Pag_ATT_EVENTS = 6, Pag_THREADS_FORUM = 7, Pag_POSTS_FORUM = 8, Pag_MESSAGES_RECEIVED = 9, Pag_MESSAGES_SENT = 10, - Pag_MY_AGENDA = 11, - Pag_ANOTHER_AGENDA = 12, + Pag_SURVEYS = 11, + Pag_MY_AGENDA = 12, + Pag_ANOTHER_AGENDA = 13, } Pag_WhatPaginate_t; struct Pagination // Used for threads and messages pagination diff --git a/swad_survey.c b/swad_survey.c index c63eb6b7..57e8b08a 100644 --- a/swad_survey.c +++ b/swad_survey.c @@ -188,7 +188,7 @@ void Svy_SeeAllSurveys (void) void Svy_ListAllSurveys (struct Svy_Surveys *Surveys) { - extern const char *Hlp_ASSESSMENT_Surveys; + extern const char *Hlp_ANALYTICS_Surveys; extern const char *Txt_Surveys; extern const char *Txt_START_END_TIME_HELP[Dat_NUM_START_END_TIME]; extern const char *Txt_START_END_TIME[Dat_NUM_START_END_TIME]; @@ -216,7 +216,7 @@ void Svy_ListAllSurveys (struct Svy_Surveys *Surveys) /***** Begin box *****/ Box_BoxBegin ("100%",Txt_Surveys, Svy_PutIconsListSurveys,Surveys, - Hlp_ASSESSMENT_Surveys,Box_NOT_CLOSABLE); + Hlp_ANALYTICS_Surveys,Box_NOT_CLOSABLE); /***** Select whether show only my groups or all groups *****/ if (Gbl.Crs.Grps.NumGrps) @@ -423,7 +423,7 @@ void Svy_SeeOneSurvey (void) static void Svy_ShowOneSurvey (struct Svy_Surveys *Surveys, bool ShowOnlyThisSvyComplete) { - extern const char *Hlp_ASSESSMENT_Surveys; + extern const char *Hlp_ANALYTICS_Surveys; extern const char *Txt_Survey; extern const char *Txt_View_survey; extern const char *Txt_Number_of_questions; @@ -450,7 +450,7 @@ static void Svy_ShowOneSurvey (struct Svy_Surveys *Surveys, if (ShowOnlyThisSvyComplete) Box_BoxBegin (NULL,Txt_Survey, Svy_PutIconsOneSvy,Surveys, - Hlp_ASSESSMENT_Surveys,Box_NOT_CLOSABLE); + Hlp_ANALYTICS_Surveys,Box_NOT_CLOSABLE); /***** Set anchor string *****/ Frm_SetAnchorStr (Surveys->Svy.SvyCod,&Anchor); @@ -1666,8 +1666,8 @@ void Svy_UnhideSurvey (void) void Svy_RequestCreatOrEditSvy (void) { - extern const char *Hlp_ASSESSMENT_Surveys_new_survey; - extern const char *Hlp_ASSESSMENT_Surveys_edit_survey; + extern const char *Hlp_ANALYTICS_Surveys_new_survey; + extern const char *Hlp_ANALYTICS_Surveys_edit_survey; extern const char *Txt_New_survey; extern const char *Txt_Scope; extern const char *Txt_Edit_survey; @@ -1741,13 +1741,13 @@ void Svy_RequestCreatOrEditSvy (void) if (ItsANewSurvey) Box_BoxTableBegin (NULL,Txt_New_survey, NULL,NULL, - Hlp_ASSESSMENT_Surveys_new_survey,Box_NOT_CLOSABLE,2); + Hlp_ANALYTICS_Surveys_new_survey,Box_NOT_CLOSABLE,2); else Box_BoxTableBegin (NULL, Surveys.Svy.Title[0] ? Surveys.Svy.Title : Txt_Edit_survey, NULL,NULL, - Hlp_ASSESSMENT_Surveys_edit_survey,Box_NOT_CLOSABLE,2); + Hlp_ANALYTICS_Surveys_edit_survey,Box_NOT_CLOSABLE,2); /***** Scope of the survey *****/ HTM_TR_Begin (NULL); @@ -2318,7 +2318,7 @@ static void Svy_ShowFormEditOneQst (struct Svy_Surveys *Surveys, struct Svy_Question *SvyQst, char Stem[Cns_MAX_BYTES_TEXT + 1]) { - extern const char *Hlp_ASSESSMENT_Surveys_questions; + extern const char *Hlp_ANALYTICS_Surveys_questions; extern const char *Txt_Question; extern const char *Txt_New_question; extern const char *Txt_Wording; @@ -2386,7 +2386,7 @@ static void Svy_ShowFormEditOneQst (struct Svy_Surveys *Surveys, else Box_BoxBegin (NULL,Txt_New_question, NULL,NULL, - Hlp_ASSESSMENT_Surveys_questions,Box_NOT_CLOSABLE); + Hlp_ANALYTICS_Surveys_questions,Box_NOT_CLOSABLE); /***** Begin form *****/ Frm_BeginForm (ActRcvSvyQst); @@ -2755,7 +2755,7 @@ static unsigned Svy_GetNextQuestionIndexInSvy (long SvyCod) static void Svy_ListSvyQuestions (struct Svy_Surveys *Surveys) { - extern const char *Hlp_ASSESSMENT_Surveys_questions; + extern const char *Hlp_ANALYTICS_Surveys_questions; extern const char *Txt_Questions; extern const char *Txt_No_INDEX; extern const char *Txt_Type; @@ -2778,11 +2778,11 @@ static void Svy_ListSvyQuestions (struct Svy_Surveys *Surveys) if (Surveys->Svy.Status.ICanEdit) Box_BoxBegin (NULL,Txt_Questions, Svy_PutIconToAddNewQuestion,Surveys, - Hlp_ASSESSMENT_Surveys_questions,Box_NOT_CLOSABLE); + Hlp_ANALYTICS_Surveys_questions,Box_NOT_CLOSABLE); else Box_BoxBegin (NULL,Txt_Questions, NULL,NULL, - Hlp_ASSESSMENT_Surveys_questions,Box_NOT_CLOSABLE); + Hlp_ANALYTICS_Surveys_questions,Box_NOT_CLOSABLE); /***** Get data of questions from database *****/ if ((NumQsts = Svy_DB_GetSurveyQsts (&mysql_res,Surveys->Svy.SvyCod))) diff --git a/swad_text.c b/swad_text.c index b2de791b..62486a64 100644 --- a/swad_text.c +++ b/swad_text.c @@ -1060,6 +1060,29 @@ const char *Txt_Action = "Eylem"; #endif +const char *Txt_Add_criteria = +#if L==1 // ca + "Afegir criteris"; +#elif L==2 // de + "Fügen Kriterien"; +#elif L==3 // en + "Add criteria"; +#elif L==4 // es + "Añadir criterios"; +#elif L==5 // fr + "Ajouter critères"; +#elif L==6 // gn + "Añadir criterios"; // Okoteve traducción +#elif L==7 // it + "Aggiungere criteri"; +#elif L==8 // pl + "Dodaj kryteria"; +#elif L==9 // pt + "Adicionar critérios"; +#elif L==10 // tr + "Kriter ekle"; +#endif + const char *Txt_Add_questions = #if L==1 // ca "Afegir preguntes"; @@ -2802,7 +2825,7 @@ const char *Txt_average = const char *Txt_Average_number_BR_of_ASSIG_BR_per_course = #if L==1 // ca - "Nombre mitj´
d'activitats
per assignatura"; + "Nombre mitjà
d'activitats
per assignatura"; #elif L==2 // de "Durchschnittliche Anzahl
von Aufgaben
pro Kurs"; #elif L==3 // en @@ -2823,9 +2846,55 @@ const char *Txt_Average_number_BR_of_ASSIG_BR_per_course = "Average number
of assignments
per course"; // Çeviri lazim! #endif +const char *Txt_Average_number_of_courses_to_which_a_user_belongs = +#if L==1 // ca + "Nombre mitjà d'assignatures a las quals pertany cada usuari"; +#elif L==2 // de + "Durchschnittliche Anzahl von Kursen, an denen der Benutzer teilnimmt"; +#elif L==3 // en + "Average number of courses to which a user belongs"; +#elif L==4 // es + "N.º medio de asignaturas a las que pertenece cada usuario"; +#elif L==5 // fr + "Nombre moyen de matières à qui appartient un utilisateur"; +#elif L==6 // gn + "N.º medio de asignaturas a las que pertenece cada usuario"; // Okoteve traducción +#elif L==7 // it + "Numero medio di corsi a cui appartiene un utente"; +#elif L==8 // pl + "Średnia liczba kursów do której nalezy uzytkownik"; +#elif L==9 // pt + "N.º medio de disciplinas em que cada utilizador pertence"; +#elif L==10 // tr + "Average number of courses to which a user belongs"; // Çeviri lazim! +#endif + +const char *Txt_Average_number_BR_of_criteria_BR_per_rubric = +#if L==1 // ca + "Nombre mitjà
de criteris
per rúbrica"; +#elif L==2 // de + "Durchschnittliche Anzahl
von Kriterien
pro Rubrik"; +#elif L==3 // en + "Average number
of criteria
per rubric"; +#elif L==4 // es + "N.º medio
de criterios
por rúbrica"; +#elif L==5 // fr + "Nombre moyen
de critères
par rubrique"; +#elif L==6 // gn + "N.º medio
de criterios
por rúbrica"; // Okoteve traducción +#elif L==7 // it + "Numero medio
di criteri
per rubrica"; +#elif L==8 // pl + "Średnia liczba
kryteriów
na rubrykę"; +#elif L==9 // pt + "N.º medio
de critérios
por rubrica"; +#elif L==10 // tr + "Dereceli puanlama
anahtarı başına
ortalama ölçüt sayısı"; +#endif + const char *Txt_Average_number_BR_of_exams_BR_per_course = #if L==1 // ca - "Nombre mitj´
d'exàmens
per assignatura"; + "Nombre mitjà
d'exàmens
per assignatura"; #elif L==2 // de "Durchschnittliche Anzahl
von Prüfung
pro Kurs"; #elif L==3 // en @@ -2848,7 +2917,7 @@ const char *Txt_Average_number_BR_of_exams_BR_per_course = const char *Txt_Average_number_BR_of_games_BR_per_course = #if L==1 // ca - "Nombre mitj´
de jocs
per assignatura"; + "Nombre mitjà
de jocs
per assignatura"; #elif L==2 // de "Durchschnittliche Anzahl
von Spiele
pro Kurs"; #elif L==3 // en @@ -2871,7 +2940,7 @@ const char *Txt_Average_number_BR_of_games_BR_per_course = const char *Txt_Average_number_BR_of_items_BR_per_course = #if L==1 // ca - "Nombre mitj´
d'items
per assignatura"; + "Nombre mitjà
d'items
per assignatura"; #elif L==2 // de "Durchschnittliche Anzahl
von Programmelemente
pro Kurs"; #elif L==3 // en @@ -2894,7 +2963,7 @@ const char *Txt_Average_number_BR_of_items_BR_per_course = const char *Txt_Average_number_BR_of_projects_BR_per_course = #if L==1 // ca - "Nombre mitj´
de projectes
per assignatura"; + "Nombre mitjà
de projectes
per assignatura"; #elif L==2 // de "Durchschnittliche Anzahl
von Projekte
pro Kurs"; #elif L==3 // en @@ -2917,7 +2986,7 @@ const char *Txt_Average_number_BR_of_projects_BR_per_course = const char *Txt_Average_number_BR_of_questions_BR_per_survey = #if L==1 // ca - "Nombre mitj´
de preguntes
per enquesta"; + "Nombre mitjà
de preguntes
per enquesta"; #elif L==2 // de "Durchschnittliche Anzahl
von Fragen
pro Umfrage"; #elif L==3 // en @@ -2938,9 +3007,55 @@ const char *Txt_Average_number_BR_of_questions_BR_per_survey = "Average number
of questions
per survey"; // Çeviri lazim! #endif +const char *Txt_Average_number_BR_of_rubrics_BR_per_course = +#if L==1 // ca + "Nombre mitjà
de rúbriques
per assignatura"; +#elif L==2 // de + "Durchschnittliche Anzahl
von Rubriken
pro Kurs"; +#elif L==3 // en + "Average number
of rubrics
per course"; +#elif L==4 // es + "N.º medio
de rúbricas
por asignatura"; +#elif L==5 // fr + "Nombre moyen
de rubriques
par matière"; +#elif L==6 // gn + "N.º medio
de rúbricas
por asignatura"; // Okoteve traducción +#elif L==7 // it + "Numero medio
di rubriche
per corso"; +#elif L==8 // pl + "Średnia liczba
badania
na kurs"; +#elif L==9 // pt + "N.º medio
de rubricas
por disciplina"; +#elif L==10 // tr + "Kurs başına
ortalama değerlendirme listesi
sayısı"; +#endif + +const char *Txt_Average_number_BR_of_surveys_BR_per_course = +#if L==1 // ca + "Nombre mitjà
d'enquestes
per assignatura"; +#elif L==2 // de + "Durchschnittliche Anzahl
von Umfragen
pro Kurs"; +#elif L==3 // en + "Average number
of surveys
per course"; +#elif L==4 // es + "N.º medio
de encuestas
por asignatura"; +#elif L==5 // fr + "Nombre moyen
de sondages
par matière"; +#elif L==6 // gn + "N.º medio
de encuestas
por asignatura"; // Okoteve traducción +#elif L==7 // it + "Numero medio
di sondaggi
per corso"; +#elif L==8 // pl + "Średnia liczba
badania
na kurs"; +#elif L==9 // pt + "N.º medio
de inquéritos
por disciplina"; +#elif L==10 // tr + "Kurs başına
ortalama anket
sayısı"; +#endif + const char *Txt_Average_BR_number_BR_of_test_BR_questions_BR_per_course = #if L==1 // ca - "Nombre mitj´
de preguntes
de test per
assignatura"; + "Nombre mitjà
de preguntes
de test per
assignatura"; #elif L==2 // de "Durchschnittliche Anzahl
von Testfragen
pro Kurs"; #elif L==3 // en @@ -2961,52 +3076,6 @@ const char *Txt_Average_BR_number_BR_of_test_BR_questions_BR_per_course = "Average
number
of test
questions
per course"; // Çeviri lazim! #endif -const char *Txt_Average_number_BR_of_surveys_BR_per_course = -#if L==1 // ca - "Nombre mitj´
d'enquestes
per assignatura"; -#elif L==2 // de - "Durchschnittliche Anzahl
von Umfragen
pro Kurs"; -#elif L==3 // en - "Average number
of surveys
per course"; -#elif L==4 // es - "N.º medio
de encuestas
por asignatura"; -#elif L==5 // fr - "Nombre moyen
de sondages
par matière"; -#elif L==6 // gn - "N.º medio
de encuestas
por asignatura"; // Okoteve traducción -#elif L==7 // it - "Numero medio
di sondaggi
per corso"; -#elif L==8 // pl - "Średnia liczba
badania
na kurs"; -#elif L==9 // pt - "N.º medio
de inquéritos
por disciplina"; -#elif L==10 // tr - "Average number
of surveys
per course"; // Çeviri lazim! -#endif - -const char *Txt_Average_number_of_courses_to_which_a_user_belongs = -#if L==1 // ca - "Nombre mitjá d'assignatures a las quals pertany cada usuari"; -#elif L==2 // de - "Durchschnittliche Anzahl von Kursen, an denen der Benutzer teilnimmt"; -#elif L==3 // en - "Average number of courses to which a user belongs"; -#elif L==4 // es - "N.º medio de asignaturas a las que pertenece cada usuario"; -#elif L==5 // fr - "Nombre moyen de matières à qui appartient un utilisateur"; -#elif L==6 // gn - "N.º medio de asignaturas a las que pertenece cada usuario"; // Okoteve traducción -#elif L==7 // it - "Numero medio di corsi a cui appartiene un utente"; -#elif L==8 // pl - "Średnia liczba kursów do której nalezy uzytkownik"; -#elif L==9 // pt - "N.º medio de disciplinas em que cada utilizador pertence"; -#elif L==10 // tr - "Average number of courses to which a user belongs"; // Çeviri lazim! -#endif - const char *Txt_Average_BR_number_of_BR_times_that_BR_a_question_BR_has_been_BR_responded = #if L==1 // ca "Mitjà de
vegades
que s'ha
respost
cada pregunta"; @@ -7190,6 +7259,29 @@ const char *Txt_Create_room = "Create room"; // Çeviri lazim! #endif +const char *Txt_Create_rubric = +#if L==1 // ca + "Crear rúbrica"; +#elif L==2 // de + "Rubrik erstellen"; +#elif L==3 // en + "Create rubric"; +#elif L==4 // es + "Crear rúbrica"; +#elif L==5 // fr + "Créer rubrique"; +#elif L==6 // gn + "Crear rúbrica"; // Okoteve traducción +#elif L==7 // it + "Crea rubrica"; +#elif L==8 // pl + "Utwórz rubrykę"; +#elif L==9 // pt + "Criar rubrica"; +#elif L==10 // tr + "Değerlendirme listesi oluşturun"; +#endif + const char *Txt_Create_set_of_questions = #if L==1 // ca "Crear conjunt de preguntes"; @@ -7972,6 +8064,75 @@ const char *Txt_Creating_database_tables_if_they_do_not_exist = "Creating database tables if they do not exist…"; // Çeviri lazim! #endif +const char *Txt_Criteria = +#if L==1 // ca + "Criteris"; +#elif L==2 // de + "Kriterien"; +#elif L==3 // en + "Criteria"; +#elif L==4 // es + "Criterios"; +#elif L==5 // fr + "Critères"; +#elif L==6 // gn + "Criterios"; // Okoteve traducción +#elif L==7 // it + "Criteri"; +#elif L==8 // pl + "Kryteria"; +#elif L==9 // pt + "Critérios"; +#elif L==10 // tr + "Kriterler"; +#endif + +const char *Txt_Criterion = +#if L==1 // ca + "Criteri"; +#elif L==2 // de + "Kriterium"; +#elif L==3 // en + "Criterion"; +#elif L==4 // es + "Criterio"; +#elif L==5 // fr + "Critère"; +#elif L==6 // gn + "Criterio"; // Okoteve traducción +#elif L==7 // it + "Criterio"; +#elif L==8 // pl + "Kryterium"; +#elif L==9 // pt + "Critério"; +#elif L==10 // tr + "Kriter"; +#endif + +const char *Txt_Criterion_removed = +#if L==1 // ca + "Criteri eliminat."; +#elif L==2 // de + "Kriterium entfernt."; +#elif L==3 // en + "Criterion removed."; +#elif L==4 // es + "Criterio eliminado."; +#elif L==5 // fr + "Critère supprimé."; +#elif L==6 // gn + "Criterio eliminado."; // Okoteve traducción +#elif L==7 // it + "Criterio rimosso."; +#elif L==8 // pl + "Usunięto kryterium."; +#elif L==9 // pt + "Critério removido."; +#elif L==10 // tr + "Kriter kaldırıldı."; +#endif + const char *Txt_Current_email = #if L==1 // ca "Correu actual"; @@ -11544,7 +11705,7 @@ const char *Txt_Edit_game = #elif L==9 // pt "Editar jogo"; #elif L==10 // tr - "Edit game"; // Çeviri lazim! + "Oyunu düzenle"; #endif const char *Txt_Edit_item = @@ -11639,6 +11800,29 @@ const char *Txt_Edit_record_fields = "Edit record fields"; // Çeviri lazim! #endif +const char *Txt_Edit_rubric = +#if L==1 // ca + "Editar rúbrica"; +#elif L==2 // de + "Rubrik bearbeiten"; +#elif L==3 // en + "Edit rubric"; +#elif L==4 // es + "Editar rúbrica"; +#elif L==5 // fr + "Éditer rubrique"; +#elif L==6 // gn + "Editar rúbrica"; // Okoteve traducción +#elif L==7 // it + "Editare rubrica"; +#elif L==8 // pl + "Edycja rubryka"; +#elif L==9 // pt + "Editar rubrica"; +#elif L==10 // tr + "Puan anahtarını düzenle"; +#endif + const char *Txt_Edit_set_of_questions = #if L==1 // ca "Editar conjunt de preguntes"; @@ -24485,7 +24669,7 @@ const char *Txt_My_agenda = #elif L==9 // pt "Minha agenda"; #elif L==10 // tr - "My agenda"; // Çeviri lazim! + "Gündemim"; #endif const char *Txt_My_courses = @@ -24508,7 +24692,7 @@ const char *Txt_My_courses = #elif L==9 // pt "As minha disciplinas"; #elif L==10 // tr - "My courses"; // Çeviri lazim! + "Kurslarım"; #endif const char *Txt_my_documents = @@ -24531,7 +24715,7 @@ const char *Txt_my_documents = #elif L==9 // pt "meus documentos"; #elif L==10 // tr - "my documents"; // Çeviri lazim! + "benim dökümanlarım"; #endif const char *Txt_My_frequent_actions = @@ -24554,7 +24738,7 @@ const char *Txt_My_frequent_actions = #elif L==9 // pt "Minhas ações freqüentes"; #elif L==10 // tr - "My frequent actions"; // Çeviri lazim! + "Sık yaptığım eylemler"; #endif const char *Txt_My_groups = @@ -24577,7 +24761,7 @@ const char *Txt_My_groups = #elif L==9 // pt "Meus grupos"; #elif L==10 // tr - "My groups"; // Çeviri lazim! + "Gruplarım"; #endif const char *Txt_My_public_profile = @@ -24600,7 +24784,7 @@ const char *Txt_My_public_profile = #elif L==9 // pt "Meu perfil público"; #elif L==10 // tr - "My public profile"; // Çeviri lazim! + "Herkese açık profilim"; #endif const char *Txt_My_views = @@ -24623,7 +24807,7 @@ const char *Txt_My_views = #elif L==9 // pt "Meus acessos"; #elif L==10 // tr - "My views"; // Çeviri lazim! + "Görüşlerim"; #endif const char *Txt_Name = @@ -24646,7 +24830,7 @@ const char *Txt_Name = #elif L==9 // pt "Nome"; #elif L==10 // tr - "Name"; // Çeviri lazim! + "İsim"; #endif const char *Txt_New_assignment = @@ -24669,7 +24853,7 @@ const char *Txt_New_assignment = #elif L==9 // pt "Nova atividade"; #elif L==10 // tr - "New assignment"; // Çeviri lazim! + "Yeni görev"; #endif const char *Txt_New_announcement = @@ -24692,7 +24876,7 @@ const char *Txt_New_announcement = #elif L==9 // pt "Novo anúncio"; #elif L==10 // tr - "New announcement"; // Çeviri lazim! + "Yeni duyuru"; #endif const char *Txt_New_call_FOR_EXAM = @@ -24715,7 +24899,7 @@ const char *Txt_New_call_FOR_EXAM = #elif L==9 // pt "Nova chamada"; #elif L==10 // tr - "New call"; // Çeviri lazim! + "Yeni çağrı"; #endif const char *Txt_New_banner = @@ -24738,7 +24922,7 @@ const char *Txt_New_banner = #elif L==9 // pt "Novo banner"; #elif L==10 // tr - "New banner"; // Çeviri lazim! + "Yeni afiş"; #endif const char *Txt_New_building = @@ -24761,30 +24945,40 @@ const char *Txt_New_building = #elif L==9 // pt "Novo edifício"; #elif L==10 // tr - "New building"; // Çeviri lazim! + "Yeni bina"; #endif const char *Txt_New_center = #if L==1 // ca - "Nou center (facultat, escola, institut, divisió, edifici...)"; + "Nou center" + " (facultat, escola, institut, divisió, edifici...)"; #elif L==2 // de - "Neues Lehrinstitut (Fakultät, Schule, Hochschule, Abteilung, Gebäude...)"; + "Neues Lehrinstitut" + " (Fakultät, Schule, Hochschule, Abteilung, Gebäude...)"; #elif L==3 // en - "New center (faculty, school, college, division, building...)"; + "New center" + " (faculty, school, college, division, building...)"; #elif L==4 // es - "Nuevo centro (facultad, escuela, instituto, división, edificio...)"; + "Nuevo centro" + " (facultad, escuela, instituto, división, edificio...)"; #elif L==5 // fr - "Nouveau center (faculté, école, université, division, bâtiment...)"; + "Nouveau center" + " (faculté, école, université, division, bâtiment...)"; #elif L==6 // gn - "Nuevo centro (facultad, escuela, instituto, división, edificio...)"; // Okoteve traducción + "Nuevo centro" + " (facultad, escuela, instituto, división, edificio...)"; // Okoteve traducción #elif L==7 // it - "Nuovo centro (facoltà, scuola, istituto, divisione, costruzione...)"; + "Nuovo centro" + " (facoltà, scuola, istituto, divisione, costruzione...)"; #elif L==8 // pl - "Nowe centrum (wydział, szkoła, uczelnia, podział, budowa...)"; + "Nowe centrum" + " (wydział, szkoła, uczelnia, podział, budowa...)"; #elif L==9 // pt - "Novo centro (faculdade, escola, faculdade, divisão, construção...)"; + "Novo centro" + " (faculdade, escola, faculdade, divisão, construção...)"; #elif L==10 // tr - "New center (faculty, school, college, division, building...)"; // Çeviri lazim! + "Yeni merkez" + " (fakülte, okul, kolej, bölüm, bina...)"; #endif const char *Txt_New_country = @@ -24807,53 +25001,73 @@ const char *Txt_New_country = #elif L==9 // pt "Novo país"; #elif L==10 // tr - "New country"; // Çeviri lazim! + "Yeni ülke"; #endif const char *Txt_New_course = #if L==1 // ca - "Nova assignatura (assignatura, curs, matèria, disciplina...)"; + "Nova assignatura" + " (assignatura, curs, matèria, disciplina...)"; #elif L==2 // de - "Neue Kurs (Kurs, Thema, Disziplin...)"; + "Neue Kurs" + " (Kurs, Thema, Disziplin...)"; #elif L==3 // en - "New course (course, subject, discipline...)"; + "New course" + " (course, subject, discipline...)"; #elif L==4 // es - "Nueva asignatura (asignatura, curso, materia, disciplina...)"; + "Nueva asignatura" + " (asignatura, curso, materia, disciplina...)"; #elif L==5 // fr - "Nouvelle matière (matière, cours, discipline...)"; + "Nouvelle matière" + " (matière, cours, discipline...)"; #elif L==6 // gn - "Nueva asignatura (asignatura, curso, materia, disciplina...)"; // Okoteve traducción + "Nueva asignatura" + " (asignatura, curso, materia, disciplina...)"; // Okoteve traducción #elif L==7 // it - "Nuovo corso (corso, materia...)"; + "Nuovo corso" + " (corso, materia...)"; #elif L==8 // pl - "Nowy kurs"; + "Nowy kurs" + " (kurs, przedmiot, dyscyplina...)"; #elif L==9 // pt - "Nova disciplina (disciplina, curso...)"; + "Nova disciplina" + " (disciplina, curso...)"; #elif L==10 // tr - "New course (course, subject, discipline...)"; // Çeviri lazim! + "Yeni kurs" + " (ders, konu, disiplin...)"; #endif const char *Txt_New_degree = #if L==1 // ca - "Nova titulació (carrera, llicenciatura, diplomatura, grau, postgrau, màster, cicle, nivell...)"; + "Nova titulació" + " (carrera, llicenciatura, diplomatura, grau, postgrau, màster, cicle, nivell...)"; #elif L==2 // de - "Neuer Studiengang (Karriere, Diplom, Grad, Graduierten, Master, Zyklus, Niveau...)"; + "Neuer Studiengang" + " (Karriere, Diplom, Grad, Graduierten, Master, Zyklus, Niveau...)"; #elif L==3 // en - "New degree (career, diploma, degree, postgraduate, master, cycle, level...)"; + "New degree" + " (career, diploma, degree, postgraduate, master, cycle, level...)"; #elif L==4 // es - "Nueva titulación (carrera, licenciatura, diplomatura, grado, posgrado, máster, ciclo, nivel...)"; + "Nueva titulación" + " (carrera, licenciatura, diplomatura, grado, posgrado, máster, ciclo, nivel...)"; #elif L==5 // fr - "Nouvel étude (carrière, grade, diplôme, degré, troisiàme cycle, master, cycle, niveau...)"; + "Nouvel étude" + " (carrière, grade, diplôme, degré, troisiàme cycle, master, cycle, niveau...)"; #elif L==6 // gn - "Nueva titulación (carrera, licenciatura, diplomatura, grado, posgrado, máster, ciclo, nivel...)"; // Okoteve traducción + "Nueva titulación" + " (carrera, licenciatura, diplomatura, grado, posgrado, máster, ciclo, nivel...)"; // Okoteve traducción #elif L==7 // it - "Nuova laurea (carriera, diploma, laurea, post-laurea, master, ciclo, livello...)"; + "Nuova laurea" + " (carriera, diploma, laurea, post-laurea, master, ciclo, livello...)"; #elif L==8 // pl - "Nowy stopień (zawodowe, stopień, dyplom, magisterskie, podyplomowe, magisterskie, cykl, poziom...)"; + "Nowy stopień" + " (zawodowe, stopień, dyplom, magisterskie, podyplomowe, magisterskie, cykl, poziom...)"; #elif L==9 // pt - "Novo grau (carreira, diploma, grau, pós-grau, mestrado, ciclo, nível...)"; + "Novo grau" + " (carreira, diploma, grau, pós-grau, mestrado, ciclo, nível...)"; #elif L==10 // tr - "New degree (career, diploma, degree, postgraduate, master, cycle, level...)"; // Çeviri lazim! + "Yeni derece" + " (kariyer, diploma, derece, lisansüstü, yüksek lisans, döngü, seviye...)"; #endif const char *Txt_New_department = @@ -24876,7 +25090,7 @@ const char *Txt_New_department = #elif L==9 // pt "Novo departamento"; #elif L==10 // tr - "New department"; // Çeviri lazim! + "Yeni departman"; #endif const char *Txt_New_email = @@ -24899,7 +25113,7 @@ const char *Txt_New_email = #elif L==9 // pt "Novo email"; #elif L==10 // tr - "New email"; // Çeviri lazim! + "Yeni e-posta"; #endif const char *Txt_New_email_domain = @@ -24922,7 +25136,7 @@ const char *Txt_New_email_domain = #elif L==9 // pt "Novo domínio de email"; #elif L==10 // tr - "New email domain"; // Çeviri lazim! + "Yeni e-posta alanı"; #endif const char *Txt_New_event = @@ -24945,7 +25159,7 @@ const char *Txt_New_event = #elif L==9 // pt "Novo evento"; #elif L==10 // tr - "New event"; // Çeviri lazim! + "Yeni etkinlik"; #endif const char *Txt_New_exam = @@ -24968,7 +25182,7 @@ const char *Txt_New_exam = #elif L==9 // pt "Novo exame"; #elif L==10 // tr - "New exam"; // Çeviri lazim! + "Yeni sınav"; #endif const char *Txt_New_FILE_OR_FOLDER = @@ -24991,7 +25205,7 @@ const char *Txt_New_FILE_OR_FOLDER = #elif L==9 // pt "Novo"; #elif L==10 // tr - "New"; // Çeviri lazim! + "Yeni"; #endif const char *Txt_New_game = @@ -25014,7 +25228,7 @@ const char *Txt_New_game = #elif L==9 // pt "Novo jogo"; #elif L==10 // tr - "New game"; // Çeviri lazim! + "Yeni oyun"; #endif const char *Txt_New_group = @@ -25037,7 +25251,7 @@ const char *Txt_New_group = #elif L==9 // pt "Novo grupo"; #elif L==10 // tr - "New group"; // Çeviri lazim! + "Yeni grup"; #endif const char *Txt_New_holiday = @@ -25060,30 +25274,40 @@ const char *Txt_New_holiday = #elif L==9 // pt "Nova féria"; #elif L==10 // tr - "New holiday"; // Çeviri lazim! + "Yeni tatil"; #endif const char *Txt_New_institution = #if L==1 // ca - "Nova institución (universitat, institut, escola, acadèmia, organització, empresa...)"; + "Nova institución" + " (universitat, institut, escola, acadèmia, organització, empresa...)"; #elif L==2 // de - "Neue Hochschule (Universität, Hochschule, Schule, Hochschule, Organisation, Unternehmen...)"; + "Neue Hochschule" + " (Universität, Hochschule, Schule, Hochschule, Organisation, Unternehmen...)"; #elif L==3 // en - "New institution (university, college, school, academy, organization, company...)"; + "New institution" + " (university, college, school, academy, organization, company...)"; #elif L==4 // es - "Nueva institución (universidad, instituto, colegio, academia, organización, empresa...)"; + "Nueva institución" + " (universidad, instituto, colegio, academia, organización, empresa...)"; #elif L==5 // fr - "Nouvel établissement (université, collège, école, académie, organisation, entreprise...)"; + "Nouvel établissement" + " (université, collège, école, académie, organisation, entreprise...)"; #elif L==6 // gn - "Nueva institución (universidad, instituto, mbo'ehao, academia, organización, empresa...)"; // Okoteve traducción + "Nueva institución" + " (universidad, instituto, mbo'ehao, academia, organización, empresa...)"; // Okoteve traducción #elif L==7 // it - "Nuova istituzione (università, istituto, scuola, accademia, organizzazione, società...)"; + "Nuova istituzione" + " (università, istituto, scuola, accademia, organizzazione, società...)"; #elif L==8 // pl - "Nowa instytucja (uniwersytet, uczelnia, szkoła, akademia, organizacja, firma...)"; + "Nowa instytucja" + " (uniwersytet, uczelnia, szkoła, akademia, organizacja, firma...)"; #elif L==9 // pt - "Nova institução (universidade, faculdade, escola, academia, organização, empresa...)"; + "Nova institução" + " (universidade, faculdade, escola, academia, organização, empresa...)"; #elif L==10 // tr - "New institution (university, college, school, academy, organization, company...)"; // Çeviri lazim! + "Yeni kurum" + " (üniversite, kolej, okul, akademi, organizasyon, şirket...)"; #endif const char *Txt_New_item = @@ -25106,7 +25330,7 @@ const char *Txt_New_item = #elif L==9 // pt "Novo item"; #elif L==10 // tr - "New item"; // Çeviri lazim! + "Yeni öğe"; #endif const char *Txt_New_link = @@ -25129,7 +25353,7 @@ const char *Txt_New_link = #elif L==9 // pt "Nova ligação"; #elif L==10 // tr - "New link"; // Çeviri lazim! + "Yeni bağlantı"; #endif const char *Txt_New_match = // of a game @@ -25152,7 +25376,7 @@ const char *Txt_New_match = // of a game #elif L==9 // pt "Novo jogo"; #elif L==10 // tr - "New match"; // Çeviri lazim! + "Yeni maç"; #endif const char *Txt_New_message = @@ -25175,7 +25399,7 @@ const char *Txt_New_message = #elif L==9 // pt "Nova mensagem"; #elif L==10 // tr - "New message"; // Çeviri lazim! + "Yeni mesaj"; #endif const char *Txt_New_nickname = @@ -25198,7 +25422,7 @@ const char *Txt_New_nickname = #elif L==9 // pt "Nova alcunha"; #elif L==10 // tr - "New nickname"; // Çeviri lazim! + "Yeni takma ad"; #endif const char *Txt_New_notice = @@ -25221,7 +25445,7 @@ const char *Txt_New_notice = #elif L==9 // pt "Novo aviso"; #elif L==10 // tr - "New notice"; // Çeviri lazim! + "Yeni bildirim"; #endif const char *Txt_New_on_PLATFORM_Sign_up = // Warning: it is very important to include %s in the following sentences @@ -25290,7 +25514,7 @@ const char *Txt_New_place = #elif L==9 // pt "Nova localização"; #elif L==10 // tr - "New place"; // Çeviri lazim! + "Yeni yer"; #endif const char *Txt_New_plugin = @@ -25313,7 +25537,7 @@ const char *Txt_New_plugin = #elif L==9 // pt "Novo plugin"; #elif L==10 // tr - "New plugin"; // Çeviri lazim! + "Yeni eklenti"; #endif const char *Txt_New_post = @@ -25336,7 +25560,7 @@ const char *Txt_New_post = #elif L==9 // pt "Novo post"; #elif L==10 // tr - "New post"; // Çeviri lazim! + "Yeni posta"; #endif const char *Txt_New_project = @@ -25359,7 +25583,7 @@ const char *Txt_New_project = #elif L==9 // pt "Novo projeto"; #elif L==10 // tr - "New project"; // Çeviri lazim! + "Yeni proje"; #endif const char *Txt_New_question = @@ -25382,7 +25606,7 @@ const char *Txt_New_question = #elif L==9 // pt "Nova pergunta"; #elif L==10 // tr - "New question"; // Çeviri lazim! + "Yeni soru"; #endif const char *Txt_New_record_field = @@ -25405,7 +25629,7 @@ const char *Txt_New_record_field = #elif L==9 // pt "Novo campo de cartão"; #elif L==10 // tr - "New record field"; // Çeviri lazim! + "Yeni kayıt alanı"; #endif const char *Txt_New_resource = @@ -25451,7 +25675,30 @@ const char *Txt_New_room = #elif L==9 // pt "Nova sala"; #elif L==10 // tr - "New room"; // Çeviri lazim! + "Yeni oda"; +#endif + +const char *Txt_New_rubric = +#if L==1 // ca + "Nova rúbrica"; +#elif L==2 // de + "Neue Rubrik"; +#elif L==3 // en + "New rubric"; +#elif L==4 // es + "Nueva rúbrica"; +#elif L==5 // fr + "Nouvelle rubrique"; +#elif L==6 // gn + "Nueva rúbrica"; // Okoteve traducción +#elif L==7 // it + "Nuova rubrica"; +#elif L==8 // pl + "Nowa rubryka"; +#elif L==9 // pt + "Nova rubrica"; +#elif L==10 // tr + "Yeni değerlendirme listesi"; #endif const char *Txt_New_session = @@ -25474,7 +25721,7 @@ const char *Txt_New_session = #elif L==9 // pt "Nova sessão"; #elif L==10 // tr - "New session"; // Çeviri lazim! + "Yeni sezon"; #endif const char *Txt_New_set_of_questions = @@ -25497,7 +25744,7 @@ const char *Txt_New_set_of_questions = #elif L==9 // pt "Novo conjunto de perguntas"; #elif L==10 // tr - "New set of questions"; // Çeviri lazim! + "Yeni soru grubu"; #endif const char *Txt_New_TIMELINE_comment = @@ -25520,7 +25767,7 @@ const char *Txt_New_TIMELINE_comment = #elif L==9 // pt "Novo comentário"; #elif L==10 // tr - "New comment"; // Çeviri lazim! + "Yeni yorum"; #endif const char *Txt_New_TIMELINE_post = @@ -25543,7 +25790,7 @@ const char *Txt_New_TIMELINE_post = #elif L==9 // pt "Novo post"; #elif L==10 // tr - "New post"; // Çeviri lazim! + "Yeni posta"; #endif const char *Txt_New_survey = @@ -25566,7 +25813,7 @@ const char *Txt_New_survey = #elif L==9 // pt "Novo inquérito"; #elif L==10 // tr - "New survey"; // Çeviri lazim! + "Yeni anket"; #endif const char *Txt_new_tag = // Tag used in test @@ -25589,7 +25836,7 @@ const char *Txt_new_tag = // Tag used in test #elif L==9 // pt "novo descritor"; #elif L==10 // tr - "new tag"; // Çeviri lazim! + "yeni etiket"; #endif const char *Txt_New_thread = @@ -25612,7 +25859,7 @@ const char *Txt_New_thread = #elif L==9 // pt "Nova discussão"; #elif L==10 // tr - "New thread"; // Çeviri lazim! + "Yeni konu"; #endif const char *Txt_New_type_of_degree = @@ -25635,7 +25882,7 @@ const char *Txt_New_type_of_degree = #elif L==9 // pt "Novo tipo de grau"; #elif L==10 // tr - "New type of degree"; // Çeviri lazim! + "Yeni derece türü"; #endif const char *Txt_New_type_of_group = @@ -25658,7 +25905,7 @@ const char *Txt_New_type_of_group = #elif L==9 // pt "Novo tipo de grupo"; #elif L==10 // tr - "New type of group"; // Çeviri lazim! + "Yeni grup türü"; #endif const char *Txt_NEW_YEAR_GREETING = // Warning: it is very important to include %u in the following sentences @@ -26542,6 +26789,29 @@ const char *Txt_No_results = "No results."; // Çeviri lazim! #endif +const char *Txt_No_rubrics = +#if L==1 // ca + "No hi ha rúbriques."; +#elif L==2 // de + "Keine Rubriken."; +#elif L==3 // en + "No rubrics."; +#elif L==4 // es + "No hay rúbricas."; +#elif L==5 // fr + "Pas de rubriques."; +#elif L==6 // gn + "No hay rúbricas."; // Okoteve traducción +#elif L==7 // it + "Non ci sono rubriche."; +#elif L==8 // pl + "Brak rubryk."; +#elif L==9 // pt + "Não há rubricas."; +#elif L==10 // tr + "Puan anahtarı yok."; +#endif + const char *Txt_no_subject = #if L==1 // ca "sense assumpte"; @@ -27971,29 +28241,6 @@ const char *Txt_NOTIFY_EVENTS_PLURAL[Ntf_NUM_NOTIFY_EVENTS] = "Novas mensagens" #elif L==10 // tr "New messages" // Çeviri lazim! -#endif - , - [Ntf_EVENT_SURVEY] = -#if L==1 // ca - "Noves enquestes" -#elif L==2 // de - "Neue Umfragen" -#elif L==3 // en - "New surveys" -#elif L==4 // es - "Nuevas encuestas" -#elif L==5 // fr - "Nouveaux sondages" -#elif L==6 // gn - "Nuevas encuestas" // Okoteve traducción -#elif L==7 // it - "Nuove sondaggi" -#elif L==8 // pl - "Nowe badania" -#elif L==9 // pt - "Novos inquéritos" -#elif L==10 // tr - "New surveys" // Çeviri lazim! #endif , [Ntf_EVENT_ENROLMENT_NET] = // TODO: Move to users tab (also necessary in database) !!!!!!!!! @@ -28017,6 +28264,29 @@ const char *Txt_NOTIFY_EVENTS_PLURAL[Ntf_NUM_NOTIFY_EVENTS] = "Novas inscrições como professor/a não editor/a" #elif L==10 // tr "New enrolments as a non-editing teacher" // Çeviri lazim! +#endif + , + [Ntf_EVENT_SURVEY] = +#if L==1 // ca + "Noves enquestes" +#elif L==2 // de + "Neue Umfragen" +#elif L==3 // en + "New surveys" +#elif L==4 // es + "Nuevas encuestas" +#elif L==5 // fr + "Nouveaux sondages" +#elif L==6 // gn + "Nuevas encuestas" // Okoteve traducción +#elif L==7 // it + "Nuove sondaggi" +#elif L==8 // pl + "Nowe badania" +#elif L==9 // pt + "Novos inquéritos" +#elif L==10 // tr + "New surveys" // Çeviri lazim! #endif }; @@ -28575,6 +28845,29 @@ const char *Txt_Now_each_student_can_only_belong_to_a_group_of_type_X = // Warni "Now each student can only belong to a group of type %s."; // Çeviri lazim! #endif +const char *Txt_Number_of_criteria = +#if L==1 // ca + "Nombre de criteris"; +#elif L==2 // de + "Anzahl der Kriterien"; +#elif L==3 // en + "Number of criteria"; +#elif L==4 // es + "N.º de criterios"; +#elif L==5 // fr + "Nombre de critères"; +#elif L==6 // gn + "N.º de criterios"; // Okoteve traducción +#elif L==7 // it + "Numero di criteri"; +#elif L==8 // pl + "Liczba kryteriów"; +#elif L==9 // pt + "N.º de critérios"; +#elif L==10 // tr + "Kriter sayısı"; +#endif + const char *Txt_Number_of_files = #if L==1 // ca "Nombre d'arxius"; @@ -29055,7 +29348,7 @@ const char *Txt_Number_of_BR_assignments = #elif L==9 // pt "N.º de
atividades"; #elif L==10 // tr - "Number of
assignments"; // Çeviri lazim! + "Ödev
sayısı"; #endif const char *Txt_Number_of_BR_courses_with_BR_assignments = @@ -29078,7 +29371,7 @@ const char *Txt_Number_of_BR_courses_with_BR_assignments = #elif L==9 // pt "N.º de
disciplinas
com atividades"; #elif L==10 // tr - "Number of
courses with
assignments"; // Çeviri lazim! + "Ödev verilen
ders
sayısı"; #endif const char *Txt_Number_of_BR_courses_with_BR_exams = @@ -29101,7 +29394,7 @@ const char *Txt_Number_of_BR_courses_with_BR_exams = #elif L==9 // pt "N.º de
disciplinas
com exames"; #elif L==10 // tr - "Number of
courses with
exams"; // Çeviri lazim! + "Sınavlı
ders
sayısı"; #endif const char *Txt_Number_of_BR_courses_with_BR_exportable_BR_test_BR_questions = @@ -29124,7 +29417,7 @@ const char *Txt_Number_of_BR_courses_with_BR_exportable_BR_test_BR_questions = #elif L==9 // pt "N.º de
disciplinas
com
perguntas
de test
exportáveis"; #elif L==10 // tr - "Number of
courses with
exportable
test
questions"; // Çeviri lazim! + "Dışa
aktarılabilir
test
sorularına
sahip
kurs"; #endif const char *Txt_Number_of_BR_courses_with_BR_games = @@ -29147,7 +29440,7 @@ const char *Txt_Number_of_BR_courses_with_BR_games = #elif L==9 // pt "N.º de
disciplinas
com jogos"; #elif L==10 // tr - "Number of
courses with
games"; // Çeviri lazim! + "Oyunlu
ders
sayısı"; #endif const char *Txt_Number_of_BR_courses_with_BR_program_items = @@ -29170,7 +29463,7 @@ const char *Txt_Number_of_BR_courses_with_BR_program_items = #elif L==9 // pt "N.º de
disciplinas com
itens de programas"; #elif L==10 // tr - "Number of
courses with
program items"; // Çeviri lazim! + "Program öğelerini içeren
ders
sayısı"; #endif const char *Txt_Number_of_BR_courses_with_BR_projects = @@ -29193,7 +29486,7 @@ const char *Txt_Number_of_BR_courses_with_BR_projects = #elif L==9 // pt "N.º de
disciplinas
com projetos"; #elif L==10 // tr - "Number of
courses with
projects"; // Çeviri lazim! + "Projeli
ders
sayısı"; #endif const char *Txt_Number_of_BR_courses_BR_with_test_BR_questions = @@ -29216,7 +29509,30 @@ const char *Txt_Number_of_BR_courses_BR_with_test_BR_questions = #elif L==9 // pt "N.º de
disciplinas
com
perguntas
de test"; #elif L==10 // tr - "Number of
courses
with test
questions"; // Çeviri lazim! + "Sorulu
ders
sayısı"; +#endif + +const char *Txt_Number_of_BR_courses_with_BR_rubrics = +#if L==1 // ca + "Nombre
d'assignatures
amb rúbriques"; +#elif L==2 // de + "Anzahl der
Kursen
mit Rubriken"; +#elif L==3 // en + "Number of
courses with
rubrics"; +#elif L==4 // es + "N.º de
asignaturas
con rúbricas"; +#elif L==5 // fr + "Nombre de
matières
avec rubriques"; +#elif L==6 // gn + "N.º de
asignaturas
con rúbricas"; // Okoteve traducción +#elif L==7 // it + "Numero di
corsi con
rubriche"; +#elif L==8 // pl + "Liczba
kursów z
rubryk"; +#elif L==9 // pt + "N.º de
disciplinas
com rubricas"; +#elif L==10 // tr + "Rubrikli
ders
sayısı"; #endif const char *Txt_Number_of_BR_courses_with_BR_surveys = @@ -29239,7 +29555,7 @@ const char *Txt_Number_of_BR_courses_with_BR_surveys = #elif L==9 // pt "N.º de
disciplinas
com inquéritos"; #elif L==10 // tr - "Number of
courses with
surveys"; // Çeviri lazim! + "Anketli
ders
sayısı"; #endif const char *Txt_Number_of_events = @@ -29403,6 +29719,29 @@ const char *Txt_Number_of_BR_projects = "Number of
projects"; // Çeviri lazim! #endif +const char *Txt_Number_of_BR_rubrics = +#if L==1 // ca + "Nombre de
rúbriques"; +#elif L==2 // de + "Anzahl der
Rubriken"; +#elif L==3 // en + "Number of
rubrics"; +#elif L==4 // es + "N.º de
rúbricas"; +#elif L==5 // fr + "Nombre de
rubriques"; +#elif L==6 // gn + "N.º de
rúbricas"; // Okoteve traducción +#elif L==7 // it + "Numero di
rubriche"; +#elif L==8 // pl + "Liczba
rubryk"; +#elif L==9 // pt + "N.º de
rubricas"; +#elif L==10 // tr + "Değerlendirme listesi
sayısı"; +#endif + const char *Txt_Number_of_students = #if L==1 // ca "Nombre d'estudiants"; @@ -29423,7 +29762,7 @@ const char *Txt_Number_of_students = #elif L==9 // pt "N.º de estudantes"; #elif L==10 // tr - "Number of students"; // Çeviri lazim! + "Öğrenci sayısı"; #endif const char *Txt_Number_of_BR_surveys = @@ -29446,7 +29785,7 @@ const char *Txt_Number_of_BR_surveys = #elif L==9 // pt "N.º de
inquéritos"; #elif L==10 // tr - "Number of
surveys"; // Çeviri lazim! + "Anket
sayısı"; #endif const char *Txt_Number_BR_of_test_BR_questions = @@ -42197,6 +42536,75 @@ const char *Txt_ROOT_FOLDER_EXTERNAL_NAMES[Brw_NUM_TYPES_FILE_BROWSER] = #endif }; +const char *Txt_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 + +const char *Txt_Rubric_X_removed = // Warning: it is very important to include %s in the following sentences +#if L==1 // ca + "Rúbrica %s eliminada."; +#elif L==2 // de + "Rubrik %s entfernt."; +#elif L==3 // en + "Rubric %s removed."; +#elif L==4 // es + "Rúbrica %s eliminada."; +#elif L==5 // fr + "Rubrique %s supprimée."; +#elif L==6 // gn + "Rúbrica %s eliminada."; // Okoteve traducción +#elif L==7 // it + "Rubrica %s rimossa."; +#elif L==8 // pl + "Rubryki %s usunięte."; +#elif L==9 // pt + "Rubrica %s removida."; +#elif L==10 // tr + "Değerlendirme listesi %s kaldırıldı."; +#endif + +const char *Txt_Rubrics = +#if L==1 // ca + "Rúbriques"; +#elif L==2 // de + "Rubriken"; +#elif L==3 // en + "Rubrics"; +#elif L==4 // es + "Rúbricas"; +#elif L==5 // fr + "Rubriques"; +#elif L==6 // gn + "Rúbricas"; // Okoteve traducción +#elif L==7 // it + "Rubriche"; +#elif L==8 // pl + "Rubryki"; +#elif L==9 // pt + "Rubricas"; +#elif L==10 // tr + "Değerlendirme listesi"; +#endif + const char *Txt_Save_as = #if L==1 // ca "Guardar com"; @@ -45999,6 +46407,29 @@ const char *Txt_FIGURE_TYPES[Fig_NUM_FIGURES] = "Jogos" #elif L==10 // tr "Oyunlar" +#endif + , + [Fig_RUBRICS] = +#if L==1 // ca + "Rúbriques" +#elif L==2 // de + "Rubriken" +#elif L==3 // en + "Rubrics" +#elif L==4 // es + "Rúbricas" +#elif L==5 // fr + "Rubriques" +#elif L==6 // gn + "Rúbricas" // Okoteve traducción +#elif L==7 // it + "Rubriche" +#elif L==8 // pl + "Rubryki" +#elif L==9 // pt + "Rubricas" +#elif L==10 // tr + "Değerlendirme" #endif , [Fig_TIMELINE] = @@ -48295,7 +48726,7 @@ const char *Txt_The_assignment_has_been_modified = #elif L==9 // pt "A atividade foi modificada."; #elif L==10 // tr - "The assignment has been modified."; // Çeviri lazim! + "Ödev değiştirildi."; #endif const char *Txt_The_banner_X_already_exists = // Warning: it is very important to include %s in the following sentences @@ -49655,7 +50086,7 @@ const char *Txt_The_event_has_been_modified = #elif L==9 // pt "O evento foi modificado."; #elif L==10 // tr - "The event has been modified."; // Çeviri lazim! + "Etkinlik değiştirildi."; #endif const char *Txt_The_exam_has_been_modified = @@ -49678,7 +50109,7 @@ const char *Txt_The_exam_has_been_modified = #elif L==9 // pt "O exame foi modificado."; #elif L==10 // tr - "The exam has been modified."; // Çeviri lazim! + "Sınav değiştirildi."; #endif const char *Txt_The_file_could_not_be_processed_successfully = @@ -49997,7 +50428,7 @@ const char *Txt_The_game_has_been_modified = #elif L==9 // pt "O jogo foi modificado."; #elif L==10 // tr - "The game has been modified."; // Çeviri lazim! + "Oyun değiştirildi."; #endif const char *Txt_The_group_X_already_exists = // Warning: it is very important to include %s in the following sentences @@ -51873,7 +52304,7 @@ const char *Txt_The_project_has_been_modified = #elif L==9 // pt "O projeto foi modificado."; #elif L==10 // tr - "The project has been modified."; // Çeviri lazim! + "Proje değiştirildi."; #endif const char *Txt_The_properties_of_file_X_have_been_saved = // Warning: it is very important to include %s in the following sentences @@ -52103,6 +52534,29 @@ const char *Txt_The_room_assigned_to_the_group_X_has_changed = "The room assigned to the group %s has changed."; // Çeviri lazim! #endif +const char *Txt_The_rubric_has_been_modified = +#if L==1 // ca + "La rúbrica ha estat modificada."; +#elif L==2 // de + "Die Rubrik wurde geändert."; +#elif L==3 // en + "The rubric has been modified."; +#elif L==4 // es + "La rúbrica ha sido modificada."; +#elif L==5 // fr + "La rubrique a été modifiée."; +#elif L==6 // gn + "La rúbrica ha sido modificada."; // Okoteve traducción +#elif L==7 // it + "La rubrica è stata modificata."; +#elif L==8 // pl + "Rubryka została zmieniona."; +#elif L==9 // pt + "A rubrica foi modificada."; +#elif L==10 // tr + "Puan anahtarını değiştirildi."; +#endif + const char *Txt_The_X_students_who_belonged_to_the_course_Y_have_been_removed_from_it = // Warning: it is very important to include %u and %s in the following sentences #if L==1 // ca "Els %u estudiants que pertanyien a l'assignatura %s" @@ -52202,7 +52656,7 @@ const char *Txt_The_set_of_questions_has_been_modified = #elif L==9 // pt "O conjunto de perguntas foi modificado."; #elif L==10 // tr - "The set of questions has been modified."; // Çeviri lazim! + "Soru seti değiştirildi."; #endif const char *Txt_The_size_of_the_file_exceeds_the_maximum_allowed_X = // Warning: it is very important to include %s in the following sentences @@ -52350,7 +52804,7 @@ const char *Txt_The_survey_has_been_modified = #elif L==9 // pt "O inquérito foi modificado."; #elif L==10 // tr - "The survey has been modified."; // Çeviri lazim! + "Anket değiştirildi."; #endif const char *Txt_The_tag_X_has_been_renamed_as_Y = // Warning: it is very important to include two %s in the following sentences @@ -58779,6 +59233,29 @@ const char *Txt_View_results = "View results"; // Çeviri lazim! #endif +const char *Txt_View_rubric = +#if L==1 // ca + "Veure rúbrica"; +#elif L==2 // de + "Anzeigen Rubrik"; +#elif L==3 // en + "View rubric"; +#elif L==4 // es + "Ver rúbrica"; +#elif L==5 // fr + "Voir rubrique"; +#elif L==6 // gn + "Ver rúbrica"; // Okoteve traducción +#elif L==7 // it + "Vedi rubrica"; +#elif L==8 // pl + "Zobacz rubrykę"; +#elif L==9 // pt + "Ver rubrica"; +#elif L==10 // tr + "Puan anahtarını görüntüle"; +#endif + const char *Txt_View_survey = #if L==1 // ca "Veure enquesta"; @@ -61489,7 +61966,7 @@ const char *Txt_You_must_select_one_ore_more_users = #elif L==8 // pl "Musisz wybrać jednego lub więcej użytkowników."; #elif L==9 // pt - "Você deve selecionar um ou mais usu´rios."; + "Você deve selecionar um ou mais usuários."; #elif L==10 // tr "You must select one or more users."; // Çeviri lazim! #endif diff --git a/swad_text_action.c b/swad_text_action.c index 37aa84da..d6f8c117 100644 --- a/swad_text_action.c +++ b/swad_text_action.c @@ -13837,6 +13837,167 @@ const char *Txt_Actions[ActLst_NUM_ACTIONS] = "Copy link to game" // Precisa de tradução #elif L==10 // tr "Copy link to game" // Çeviri lazim! +#endif + , + [ActSeeRub] = +#if L==1 // ca + "See rubric" // Necessita traducció +#elif L==2 // de + "See rubric" // Need Übersetzung +#elif L==3 // en + "See rubric" +#elif L==4 // es + "Ver rúbrica" +#elif L==5 // fr + "See rubric" // Besoin de traduction +#elif L==6 // gn + "Ver rúbrica" // Okoteve traducción +#elif L==7 // it + "See rubric" // Bisogno di traduzione +#elif L==8 // pl + "See rubric" // Potrzebujesz tlumaczenie +#elif L==9 // pt + "See rubric" // Precisa de tradução +#elif L==10 // tr + "See rubric" // Çeviri lazim! +#endif + , + [ActFrmNewRub] = +#if L==1 // ca + "Edit new rubric" // Necessita traducció +#elif L==2 // de + "Edit new rubric" // Need Übersetzung +#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 +#elif L==6 // gn + "Editar nueva rúbrica" // Okoteve traducción +#elif L==7 // it + "Edit new rubric" // Bisogno di traduzione +#elif L==8 // pl + "Edit new rubric" // Potrzebujesz tlumaczenie +#elif L==9 // pt + "Edit new rubric" // Precisa de tradução +#elif L==10 // tr + "Edit new rubric" // Çeviri lazim! +#endif + , + [ActEdiOneRub] = +#if L==1 // ca + "Edit rubric" // Necessita traducció +#elif L==2 // de + "Edit rubric" // Need Übersetzung +#elif L==3 // en + "Edit rubric" +#elif L==4 // es + "Editar rúbrica" +#elif L==5 // fr + "Edit rubric" // Besoin de traduction +#elif L==6 // gn + "Editar rúbrica" // Okoteve traducción +#elif L==7 // it + "Edit rubric" // Bisogno di traduzione +#elif L==8 // pl + "Edit rubric" // Potrzebujesz tlumaczenie +#elif L==9 // pt + "Edit rubric" // Precisa de tradução +#elif L==10 // tr + "Edit rubric" // Çeviri lazim! +#endif + , + [ActNewRub] = +#if L==1 // ca + "Create new rubric" // Necessita traducció +#elif L==2 // de + "Create new rubric" // Need Übersetzung +#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 +#elif L==6 // gn + "Crear nueva rúbrica" // Okoteve traducción +#elif L==7 // it + "Create new rubric" // Bisogno di traduzione +#elif L==8 // pl + "Create new rubric" // Potrzebujesz tlumaczenie +#elif L==9 // pt + "Create new rubric" // Precisa de tradução +#elif L==10 // tr + "Create new rubric" // Çeviri lazim! +#endif + , + [ActChgRub] = +#if L==1 // ca + "Change rubric" // Necessita traducció +#elif L==2 // de + "Change rubric" // Need Übersetzung +#elif L==3 // en + "Change rubric" +#elif L==4 // es + "Cambiar rúbrica" +#elif L==5 // fr + "Change rubric" // Besoin de traduction +#elif L==6 // gn + "Cambiar rúbrica" // Okoteve traducción +#elif L==7 // it + "Change rubric" // Bisogno di traduzione +#elif L==8 // pl + "Change rubric" // Potrzebujesz tlumaczenie +#elif L==9 // pt + "Change rubric" // Precisa de tradução +#elif L==10 // tr + "Change rubric" // Çeviri lazim! +#endif + , + [ActReqRemRub] = +#if L==1 // ca + "Request removal of rubric" // Necessita traducció +#elif L==2 // de + "Request removal of rubric" // Need Übersetzung +#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 +#elif L==6 // gn + "Solicitar eliminación de rúbrica" // Okoteve traducción +#elif L==7 // it + "Request removal of rubric" // Bisogno di traduzione +#elif L==8 // pl + "Request removal of rubric" // Potrzebujesz tlumaczenie +#elif L==9 // pt + "Request removal of rubric" // Precisa de tradução +#elif L==10 // tr + "Request removal of rubric" // Çeviri lazim! +#endif + , + [ActRemRub] = +#if L==1 // ca + "Remove rubric" // Necessita traducció +#elif L==2 // de + "Remove rubric" // Need Übersetzung +#elif L==3 // en + "Remove rubric" +#elif L==4 // es + "Eliminar rúbrica" +#elif L==5 // fr + "Remove rubric" // Besoin de traduction +#elif L==6 // gn + "Eliminar rúbrica" // Okoteve traducción +#elif L==7 // it + "Remove rubric" // Bisogno di traduzione +#elif L==8 // pl + "Remove rubric" // Potrzebujesz tlumaczenie +#elif L==9 // pt + "Remove rubric" // Precisa de tradução +#elif L==10 // tr + "Remove rubric" // Çeviri lazim! #endif , [ActSeeAdmDocIns] =