Version 22.65: Mar 01, 2023 New module swad_rubric for rubrics. Not finished.

This commit is contained in:
acanas 2023-03-01 18:16:00 +01:00
parent 9985dbcf90
commit 2f7bbefe59
18 changed files with 1650 additions and 766 deletions

View File

@ -84,7 +84,7 @@ OBJS = swad_account.o swad_account_database.o swad_action.o swad_action_list.o \
swad_QR.o \ swad_QR.o \
swad_record.o swad_record_database.o swad_report.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_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_scope.o swad_search.o swad_session.o swad_session_database.o \
swad_setting.o swad_setting_database.o swad_statistic.o \ swad_setting.o swad_setting_database.o swad_statistic.o \
swad_statistic_database.o swad_string.o swad_survey.o \ swad_statistic_database.o swad_string.o swad_survey.o \

View File

@ -99,6 +99,7 @@
#include "swad_QR.h" #include "swad_QR.h"
#include "swad_report.h" #include "swad_report.h"
#include "swad_role.h" #include "swad_role.h"
#include "swad_rubric.h"
#include "swad_search.h" #include "swad_search.h"
#include "swad_session.h" #include "swad_session.h"
#include "swad_setting.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" }, [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" }, [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" }, [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: // 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}, [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}, [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}, [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 ****************************************************************** // TabFil ******************************************************************
// Actions in menu: // 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" }, [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 ActSeeOnePrj, // #1949
ActChgPrjRev, // #1950 ActChgPrjRev, // #1950
ActSeeAllRub, // #1951 ActSeeAllRub, // #1951
ActSeeRub, // #1952
ActFrmNewRub, // #1953
ActEdiOneRub, // #1954
ActNewRub, // #1955
ActChgRub, // #1956
ActReqRemRub, // #1957
ActRemRub, // #1958
}; };

View File

@ -759,479 +759,487 @@
#define ActDwnGamQst (ActChgCrsTT1stDay + 218) #define ActDwnGamQst (ActChgCrsTT1stDay + 218)
#define ActReqLnkGam (ActChgCrsTT1stDay + 219) #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 **********************************/ /******************************** Files tab **********************************/
/*****************************************************************************/ /*****************************************************************************/
// Actions in menu // Actions in menu
#define ActSeeAdmDocIns (ActReqLnkGam + 1) #define ActSeeAdmDocIns (ActRemRub + 1)
#define ActAdmShaIns (ActReqLnkGam + 2) #define ActAdmShaIns (ActRemRub + 2)
#define ActSeeAdmDocCtr (ActReqLnkGam + 3) #define ActSeeAdmDocCtr (ActRemRub + 3)
#define ActAdmShaCtr (ActReqLnkGam + 4) #define ActAdmShaCtr (ActRemRub + 4)
#define ActSeeAdmDocDeg (ActReqLnkGam + 5) #define ActSeeAdmDocDeg (ActRemRub + 5)
#define ActAdmShaDeg (ActReqLnkGam + 6) #define ActAdmShaDeg (ActRemRub + 6)
#define ActSeeAdmDocCrsGrp (ActReqLnkGam + 7) #define ActSeeAdmDocCrsGrp (ActRemRub + 7)
#define ActAdmTchCrsGrp (ActReqLnkGam + 8) #define ActAdmTchCrsGrp (ActRemRub + 8)
#define ActAdmShaCrsGrp (ActReqLnkGam + 9) #define ActAdmShaCrsGrp (ActRemRub + 9)
#define ActAdmAsgWrkUsr (ActReqLnkGam + 10) #define ActAdmAsgWrkUsr (ActRemRub + 10)
#define ActReqAsgWrkCrs (ActReqLnkGam + 11) #define ActReqAsgWrkCrs (ActRemRub + 11)
#define ActSeeAdmMrk (ActReqLnkGam + 12) #define ActSeeAdmMrk (ActRemRub + 12)
#define ActAdmBrf (ActReqLnkGam + 13) #define ActAdmBrf (ActRemRub + 13)
// Secondary actions // Secondary actions
#define ActChgToSeeDocIns (ActReqLnkGam + 14) #define ActChgToSeeDocIns (ActRemRub + 14)
#define ActSeeDocIns (ActReqLnkGam + 15) #define ActSeeDocIns (ActRemRub + 15)
#define ActExpSeeDocIns (ActReqLnkGam + 16) #define ActExpSeeDocIns (ActRemRub + 16)
#define ActConSeeDocIns (ActReqLnkGam + 17) #define ActConSeeDocIns (ActRemRub + 17)
#define ActZIPSeeDocIns (ActReqLnkGam + 18) #define ActZIPSeeDocIns (ActRemRub + 18)
#define ActReqDatSeeDocIns (ActReqLnkGam + 19) #define ActReqDatSeeDocIns (ActRemRub + 19)
#define ActDowSeeDocIns (ActReqLnkGam + 20) #define ActDowSeeDocIns (ActRemRub + 20)
#define ActChgToAdmDocIns (ActReqLnkGam + 21) #define ActChgToAdmDocIns (ActRemRub + 21)
#define ActAdmDocIns (ActReqLnkGam + 22) #define ActAdmDocIns (ActRemRub + 22)
#define ActReqRemFilDocIns (ActReqLnkGam + 23) #define ActReqRemFilDocIns (ActRemRub + 23)
#define ActRemFilDocIns (ActReqLnkGam + 24) #define ActRemFilDocIns (ActRemRub + 24)
#define ActRemFolDocIns (ActReqLnkGam + 25) #define ActRemFolDocIns (ActRemRub + 25)
#define ActCopDocIns (ActReqLnkGam + 26) #define ActCopDocIns (ActRemRub + 26)
#define ActPasDocIns (ActReqLnkGam + 27) #define ActPasDocIns (ActRemRub + 27)
#define ActRemTreDocIns (ActReqLnkGam + 28) #define ActRemTreDocIns (ActRemRub + 28)
#define ActFrmCreDocIns (ActReqLnkGam + 29) #define ActFrmCreDocIns (ActRemRub + 29)
#define ActCreFolDocIns (ActReqLnkGam + 30) #define ActCreFolDocIns (ActRemRub + 30)
#define ActCreLnkDocIns (ActReqLnkGam + 31) #define ActCreLnkDocIns (ActRemRub + 31)
#define ActRenFolDocIns (ActReqLnkGam + 32) #define ActRenFolDocIns (ActRemRub + 32)
#define ActRcvFilDocInsDZ (ActReqLnkGam + 33) #define ActRcvFilDocInsDZ (ActRemRub + 33)
#define ActRcvFilDocInsCla (ActReqLnkGam + 34) #define ActRcvFilDocInsCla (ActRemRub + 34)
#define ActExpAdmDocIns (ActReqLnkGam + 35) #define ActExpAdmDocIns (ActRemRub + 35)
#define ActConAdmDocIns (ActReqLnkGam + 36) #define ActConAdmDocIns (ActRemRub + 36)
#define ActZIPAdmDocIns (ActReqLnkGam + 37) #define ActZIPAdmDocIns (ActRemRub + 37)
#define ActUnhDocIns (ActReqLnkGam + 38) #define ActUnhDocIns (ActRemRub + 38)
#define ActHidDocIns (ActReqLnkGam + 39) #define ActHidDocIns (ActRemRub + 39)
#define ActReqDatAdmDocIns (ActReqLnkGam + 40) #define ActReqDatAdmDocIns (ActRemRub + 40)
#define ActChgDatAdmDocIns (ActReqLnkGam + 41) #define ActChgDatAdmDocIns (ActRemRub + 41)
#define ActDowAdmDocIns (ActReqLnkGam + 42) #define ActDowAdmDocIns (ActRemRub + 42)
#define ActReqRemFilShaIns (ActReqLnkGam + 43) #define ActReqRemFilShaIns (ActRemRub + 43)
#define ActRemFilShaIns (ActReqLnkGam + 44) #define ActRemFilShaIns (ActRemRub + 44)
#define ActRemFolShaIns (ActReqLnkGam + 45) #define ActRemFolShaIns (ActRemRub + 45)
#define ActCopShaIns (ActReqLnkGam + 46) #define ActCopShaIns (ActRemRub + 46)
#define ActPasShaIns (ActReqLnkGam + 47) #define ActPasShaIns (ActRemRub + 47)
#define ActRemTreShaIns (ActReqLnkGam + 48) #define ActRemTreShaIns (ActRemRub + 48)
#define ActFrmCreShaIns (ActReqLnkGam + 49) #define ActFrmCreShaIns (ActRemRub + 49)
#define ActCreFolShaIns (ActReqLnkGam + 50) #define ActCreFolShaIns (ActRemRub + 50)
#define ActCreLnkShaIns (ActReqLnkGam + 51) #define ActCreLnkShaIns (ActRemRub + 51)
#define ActRenFolShaIns (ActReqLnkGam + 52) #define ActRenFolShaIns (ActRemRub + 52)
#define ActRcvFilShaInsDZ (ActReqLnkGam + 53) #define ActRcvFilShaInsDZ (ActRemRub + 53)
#define ActRcvFilShaInsCla (ActReqLnkGam + 54) #define ActRcvFilShaInsCla (ActRemRub + 54)
#define ActExpShaIns (ActReqLnkGam + 55) #define ActExpShaIns (ActRemRub + 55)
#define ActConShaIns (ActReqLnkGam + 56) #define ActConShaIns (ActRemRub + 56)
#define ActZIPShaIns (ActReqLnkGam + 57) #define ActZIPShaIns (ActRemRub + 57)
#define ActReqDatShaIns (ActReqLnkGam + 58) #define ActReqDatShaIns (ActRemRub + 58)
#define ActChgDatShaIns (ActReqLnkGam + 59) #define ActChgDatShaIns (ActRemRub + 59)
#define ActDowShaIns (ActReqLnkGam + 60) #define ActDowShaIns (ActRemRub + 60)
#define ActChgToSeeDocCtr (ActReqLnkGam + 61) #define ActChgToSeeDocCtr (ActRemRub + 61)
#define ActSeeDocCtr (ActReqLnkGam + 62) #define ActSeeDocCtr (ActRemRub + 62)
#define ActExpSeeDocCtr (ActReqLnkGam + 63) #define ActExpSeeDocCtr (ActRemRub + 63)
#define ActConSeeDocCtr (ActReqLnkGam + 64) #define ActConSeeDocCtr (ActRemRub + 64)
#define ActZIPSeeDocCtr (ActReqLnkGam + 65) #define ActZIPSeeDocCtr (ActRemRub + 65)
#define ActReqDatSeeDocCtr (ActReqLnkGam + 66) #define ActReqDatSeeDocCtr (ActRemRub + 66)
#define ActDowSeeDocCtr (ActReqLnkGam + 67) #define ActDowSeeDocCtr (ActRemRub + 67)
#define ActChgToAdmDocCtr (ActReqLnkGam + 68) #define ActChgToAdmDocCtr (ActRemRub + 68)
#define ActAdmDocCtr (ActReqLnkGam + 69) #define ActAdmDocCtr (ActRemRub + 69)
#define ActReqRemFilDocCtr (ActReqLnkGam + 70) #define ActReqRemFilDocCtr (ActRemRub + 70)
#define ActRemFilDocCtr (ActReqLnkGam + 71) #define ActRemFilDocCtr (ActRemRub + 71)
#define ActRemFolDocCtr (ActReqLnkGam + 72) #define ActRemFolDocCtr (ActRemRub + 72)
#define ActCopDocCtr (ActReqLnkGam + 73) #define ActCopDocCtr (ActRemRub + 73)
#define ActPasDocCtr (ActReqLnkGam + 74) #define ActPasDocCtr (ActRemRub + 74)
#define ActRemTreDocCtr (ActReqLnkGam + 75) #define ActRemTreDocCtr (ActRemRub + 75)
#define ActFrmCreDocCtr (ActReqLnkGam + 76) #define ActFrmCreDocCtr (ActRemRub + 76)
#define ActCreFolDocCtr (ActReqLnkGam + 77) #define ActCreFolDocCtr (ActRemRub + 77)
#define ActCreLnkDocCtr (ActReqLnkGam + 78) #define ActCreLnkDocCtr (ActRemRub + 78)
#define ActRenFolDocCtr (ActReqLnkGam + 79) #define ActRenFolDocCtr (ActRemRub + 79)
#define ActRcvFilDocCtrDZ (ActReqLnkGam + 80) #define ActRcvFilDocCtrDZ (ActRemRub + 80)
#define ActRcvFilDocCtrCla (ActReqLnkGam + 81) #define ActRcvFilDocCtrCla (ActRemRub + 81)
#define ActExpAdmDocCtr (ActReqLnkGam + 82) #define ActExpAdmDocCtr (ActRemRub + 82)
#define ActConAdmDocCtr (ActReqLnkGam + 83) #define ActConAdmDocCtr (ActRemRub + 83)
#define ActZIPAdmDocCtr (ActReqLnkGam + 84) #define ActZIPAdmDocCtr (ActRemRub + 84)
#define ActUnhDocCtr (ActReqLnkGam + 85) #define ActUnhDocCtr (ActRemRub + 85)
#define ActHidDocCtr (ActReqLnkGam + 86) #define ActHidDocCtr (ActRemRub + 86)
#define ActReqDatAdmDocCtr (ActReqLnkGam + 87) #define ActReqDatAdmDocCtr (ActRemRub + 87)
#define ActChgDatAdmDocCtr (ActReqLnkGam + 88) #define ActChgDatAdmDocCtr (ActRemRub + 88)
#define ActDowAdmDocCtr (ActReqLnkGam + 89) #define ActDowAdmDocCtr (ActRemRub + 89)
#define ActReqRemFilShaCtr (ActReqLnkGam + 90) #define ActReqRemFilShaCtr (ActRemRub + 90)
#define ActRemFilShaCtr (ActReqLnkGam + 91) #define ActRemFilShaCtr (ActRemRub + 91)
#define ActRemFolShaCtr (ActReqLnkGam + 92) #define ActRemFolShaCtr (ActRemRub + 92)
#define ActCopShaCtr (ActReqLnkGam + 93) #define ActCopShaCtr (ActRemRub + 93)
#define ActPasShaCtr (ActReqLnkGam + 94) #define ActPasShaCtr (ActRemRub + 94)
#define ActRemTreShaCtr (ActReqLnkGam + 95) #define ActRemTreShaCtr (ActRemRub + 95)
#define ActFrmCreShaCtr (ActReqLnkGam + 96) #define ActFrmCreShaCtr (ActRemRub + 96)
#define ActCreFolShaCtr (ActReqLnkGam + 97) #define ActCreFolShaCtr (ActRemRub + 97)
#define ActCreLnkShaCtr (ActReqLnkGam + 98) #define ActCreLnkShaCtr (ActRemRub + 98)
#define ActRenFolShaCtr (ActReqLnkGam + 99) #define ActRenFolShaCtr (ActRemRub + 99)
#define ActRcvFilShaCtrDZ (ActReqLnkGam + 100) #define ActRcvFilShaCtrDZ (ActRemRub + 100)
#define ActRcvFilShaCtrCla (ActReqLnkGam + 101) #define ActRcvFilShaCtrCla (ActRemRub + 101)
#define ActExpShaCtr (ActReqLnkGam + 102) #define ActExpShaCtr (ActRemRub + 102)
#define ActConShaCtr (ActReqLnkGam + 103) #define ActConShaCtr (ActRemRub + 103)
#define ActZIPShaCtr (ActReqLnkGam + 104) #define ActZIPShaCtr (ActRemRub + 104)
#define ActReqDatShaCtr (ActReqLnkGam + 105) #define ActReqDatShaCtr (ActRemRub + 105)
#define ActChgDatShaCtr (ActReqLnkGam + 106) #define ActChgDatShaCtr (ActRemRub + 106)
#define ActDowShaCtr (ActReqLnkGam + 107) #define ActDowShaCtr (ActRemRub + 107)
#define ActChgToSeeDocDeg (ActReqLnkGam + 108) #define ActChgToSeeDocDeg (ActRemRub + 108)
#define ActSeeDocDeg (ActReqLnkGam + 109) #define ActSeeDocDeg (ActRemRub + 109)
#define ActExpSeeDocDeg (ActReqLnkGam + 110) #define ActExpSeeDocDeg (ActRemRub + 110)
#define ActConSeeDocDeg (ActReqLnkGam + 111) #define ActConSeeDocDeg (ActRemRub + 111)
#define ActZIPSeeDocDeg (ActReqLnkGam + 112) #define ActZIPSeeDocDeg (ActRemRub + 112)
#define ActReqDatSeeDocDeg (ActReqLnkGam + 113) #define ActReqDatSeeDocDeg (ActRemRub + 113)
#define ActDowSeeDocDeg (ActReqLnkGam + 114) #define ActDowSeeDocDeg (ActRemRub + 114)
#define ActChgToAdmDocDeg (ActReqLnkGam + 115) #define ActChgToAdmDocDeg (ActRemRub + 115)
#define ActAdmDocDeg (ActReqLnkGam + 116) #define ActAdmDocDeg (ActRemRub + 116)
#define ActReqRemFilDocDeg (ActReqLnkGam + 117) #define ActReqRemFilDocDeg (ActRemRub + 117)
#define ActRemFilDocDeg (ActReqLnkGam + 118) #define ActRemFilDocDeg (ActRemRub + 118)
#define ActRemFolDocDeg (ActReqLnkGam + 119) #define ActRemFolDocDeg (ActRemRub + 119)
#define ActCopDocDeg (ActReqLnkGam + 120) #define ActCopDocDeg (ActRemRub + 120)
#define ActPasDocDeg (ActReqLnkGam + 121) #define ActPasDocDeg (ActRemRub + 121)
#define ActRemTreDocDeg (ActReqLnkGam + 122) #define ActRemTreDocDeg (ActRemRub + 122)
#define ActFrmCreDocDeg (ActReqLnkGam + 123) #define ActFrmCreDocDeg (ActRemRub + 123)
#define ActCreFolDocDeg (ActReqLnkGam + 124) #define ActCreFolDocDeg (ActRemRub + 124)
#define ActCreLnkDocDeg (ActReqLnkGam + 125) #define ActCreLnkDocDeg (ActRemRub + 125)
#define ActRenFolDocDeg (ActReqLnkGam + 126) #define ActRenFolDocDeg (ActRemRub + 126)
#define ActRcvFilDocDegDZ (ActReqLnkGam + 127) #define ActRcvFilDocDegDZ (ActRemRub + 127)
#define ActRcvFilDocDegCla (ActReqLnkGam + 128) #define ActRcvFilDocDegCla (ActRemRub + 128)
#define ActExpAdmDocDeg (ActReqLnkGam + 129) #define ActExpAdmDocDeg (ActRemRub + 129)
#define ActConAdmDocDeg (ActReqLnkGam + 130) #define ActConAdmDocDeg (ActRemRub + 130)
#define ActZIPAdmDocDeg (ActReqLnkGam + 131) #define ActZIPAdmDocDeg (ActRemRub + 131)
#define ActUnhDocDeg (ActReqLnkGam + 132) #define ActUnhDocDeg (ActRemRub + 132)
#define ActHidDocDeg (ActReqLnkGam + 133) #define ActHidDocDeg (ActRemRub + 133)
#define ActReqDatAdmDocDeg (ActReqLnkGam + 134) #define ActReqDatAdmDocDeg (ActRemRub + 134)
#define ActChgDatAdmDocDeg (ActReqLnkGam + 135) #define ActChgDatAdmDocDeg (ActRemRub + 135)
#define ActDowAdmDocDeg (ActReqLnkGam + 136) #define ActDowAdmDocDeg (ActRemRub + 136)
#define ActReqRemFilShaDeg (ActReqLnkGam + 137) #define ActReqRemFilShaDeg (ActRemRub + 137)
#define ActRemFilShaDeg (ActReqLnkGam + 138) #define ActRemFilShaDeg (ActRemRub + 138)
#define ActRemFolShaDeg (ActReqLnkGam + 139) #define ActRemFolShaDeg (ActRemRub + 139)
#define ActCopShaDeg (ActReqLnkGam + 140) #define ActCopShaDeg (ActRemRub + 140)
#define ActPasShaDeg (ActReqLnkGam + 141) #define ActPasShaDeg (ActRemRub + 141)
#define ActRemTreShaDeg (ActReqLnkGam + 142) #define ActRemTreShaDeg (ActRemRub + 142)
#define ActFrmCreShaDeg (ActReqLnkGam + 143) #define ActFrmCreShaDeg (ActRemRub + 143)
#define ActCreFolShaDeg (ActReqLnkGam + 144) #define ActCreFolShaDeg (ActRemRub + 144)
#define ActCreLnkShaDeg (ActReqLnkGam + 145) #define ActCreLnkShaDeg (ActRemRub + 145)
#define ActRenFolShaDeg (ActReqLnkGam + 146) #define ActRenFolShaDeg (ActRemRub + 146)
#define ActRcvFilShaDegDZ (ActReqLnkGam + 147) #define ActRcvFilShaDegDZ (ActRemRub + 147)
#define ActRcvFilShaDegCla (ActReqLnkGam + 148) #define ActRcvFilShaDegCla (ActRemRub + 148)
#define ActExpShaDeg (ActReqLnkGam + 149) #define ActExpShaDeg (ActRemRub + 149)
#define ActConShaDeg (ActReqLnkGam + 150) #define ActConShaDeg (ActRemRub + 150)
#define ActZIPShaDeg (ActReqLnkGam + 151) #define ActZIPShaDeg (ActRemRub + 151)
#define ActReqDatShaDeg (ActReqLnkGam + 152) #define ActReqDatShaDeg (ActRemRub + 152)
#define ActChgDatShaDeg (ActReqLnkGam + 153) #define ActChgDatShaDeg (ActRemRub + 153)
#define ActDowShaDeg (ActReqLnkGam + 154) #define ActDowShaDeg (ActRemRub + 154)
#define ActChgToSeeDocCrs (ActReqLnkGam + 155) #define ActChgToSeeDocCrs (ActRemRub + 155)
#define ActSeeDocCrs (ActReqLnkGam + 156) #define ActSeeDocCrs (ActRemRub + 156)
#define ActExpSeeDocCrs (ActReqLnkGam + 157) #define ActExpSeeDocCrs (ActRemRub + 157)
#define ActConSeeDocCrs (ActReqLnkGam + 158) #define ActConSeeDocCrs (ActRemRub + 158)
#define ActZIPSeeDocCrs (ActReqLnkGam + 159) #define ActZIPSeeDocCrs (ActRemRub + 159)
#define ActReqDatSeeDocCrs (ActReqLnkGam + 160) #define ActReqDatSeeDocCrs (ActRemRub + 160)
#define ActReqLnkSeeDocCrs (ActReqLnkGam + 161) #define ActReqLnkSeeDocCrs (ActRemRub + 161)
#define ActDowSeeDocCrs (ActReqLnkGam + 162) #define ActDowSeeDocCrs (ActRemRub + 162)
#define ActSeeDocGrp (ActReqLnkGam + 163) #define ActSeeDocGrp (ActRemRub + 163)
#define ActExpSeeDocGrp (ActReqLnkGam + 164) #define ActExpSeeDocGrp (ActRemRub + 164)
#define ActConSeeDocGrp (ActReqLnkGam + 165) #define ActConSeeDocGrp (ActRemRub + 165)
#define ActZIPSeeDocGrp (ActReqLnkGam + 166) #define ActZIPSeeDocGrp (ActRemRub + 166)
#define ActReqDatSeeDocGrp (ActReqLnkGam + 167) #define ActReqDatSeeDocGrp (ActRemRub + 167)
#define ActDowSeeDocGrp (ActReqLnkGam + 168) #define ActDowSeeDocGrp (ActRemRub + 168)
#define ActChgToAdmDocCrs (ActReqLnkGam + 169) #define ActChgToAdmDocCrs (ActRemRub + 169)
#define ActAdmDocCrs (ActReqLnkGam + 170) #define ActAdmDocCrs (ActRemRub + 170)
#define ActReqRemFilDocCrs (ActReqLnkGam + 171) #define ActReqRemFilDocCrs (ActRemRub + 171)
#define ActRemFilDocCrs (ActReqLnkGam + 172) #define ActRemFilDocCrs (ActRemRub + 172)
#define ActRemFolDocCrs (ActReqLnkGam + 173) #define ActRemFolDocCrs (ActRemRub + 173)
#define ActCopDocCrs (ActReqLnkGam + 174) #define ActCopDocCrs (ActRemRub + 174)
#define ActPasDocCrs (ActReqLnkGam + 175) #define ActPasDocCrs (ActRemRub + 175)
#define ActRemTreDocCrs (ActReqLnkGam + 176) #define ActRemTreDocCrs (ActRemRub + 176)
#define ActFrmCreDocCrs (ActReqLnkGam + 177) #define ActFrmCreDocCrs (ActRemRub + 177)
#define ActCreFolDocCrs (ActReqLnkGam + 178) #define ActCreFolDocCrs (ActRemRub + 178)
#define ActCreLnkDocCrs (ActReqLnkGam + 179) #define ActCreLnkDocCrs (ActRemRub + 179)
#define ActRenFolDocCrs (ActReqLnkGam + 180) #define ActRenFolDocCrs (ActRemRub + 180)
#define ActRcvFilDocCrsDZ (ActReqLnkGam + 181) #define ActRcvFilDocCrsDZ (ActRemRub + 181)
#define ActRcvFilDocCrsCla (ActReqLnkGam + 182) #define ActRcvFilDocCrsCla (ActRemRub + 182)
#define ActExpAdmDocCrs (ActReqLnkGam + 183) #define ActExpAdmDocCrs (ActRemRub + 183)
#define ActConAdmDocCrs (ActReqLnkGam + 184) #define ActConAdmDocCrs (ActRemRub + 184)
#define ActZIPAdmDocCrs (ActReqLnkGam + 185) #define ActZIPAdmDocCrs (ActRemRub + 185)
#define ActUnhDocCrs (ActReqLnkGam + 186) #define ActUnhDocCrs (ActRemRub + 186)
#define ActHidDocCrs (ActReqLnkGam + 187) #define ActHidDocCrs (ActRemRub + 187)
#define ActReqDatAdmDocCrs (ActReqLnkGam + 188) #define ActReqDatAdmDocCrs (ActRemRub + 188)
#define ActChgDatAdmDocCrs (ActReqLnkGam + 189) #define ActChgDatAdmDocCrs (ActRemRub + 189)
#define ActReqLnkAdmDocCrs (ActReqLnkGam + 190) #define ActReqLnkAdmDocCrs (ActRemRub + 190)
#define ActDowAdmDocCrs (ActReqLnkGam + 191) #define ActDowAdmDocCrs (ActRemRub + 191)
#define ActAdmDocGrp (ActReqLnkGam + 192) #define ActAdmDocGrp (ActRemRub + 192)
#define ActReqRemFilDocGrp (ActReqLnkGam + 193) #define ActReqRemFilDocGrp (ActRemRub + 193)
#define ActRemFilDocGrp (ActReqLnkGam + 194) #define ActRemFilDocGrp (ActRemRub + 194)
#define ActRemFolDocGrp (ActReqLnkGam + 195) #define ActRemFolDocGrp (ActRemRub + 195)
#define ActCopDocGrp (ActReqLnkGam + 196) #define ActCopDocGrp (ActRemRub + 196)
#define ActPasDocGrp (ActReqLnkGam + 197) #define ActPasDocGrp (ActRemRub + 197)
#define ActRemTreDocGrp (ActReqLnkGam + 198) #define ActRemTreDocGrp (ActRemRub + 198)
#define ActFrmCreDocGrp (ActReqLnkGam + 199) #define ActFrmCreDocGrp (ActRemRub + 199)
#define ActCreFolDocGrp (ActReqLnkGam + 200) #define ActCreFolDocGrp (ActRemRub + 200)
#define ActCreLnkDocGrp (ActReqLnkGam + 201) #define ActCreLnkDocGrp (ActRemRub + 201)
#define ActRenFolDocGrp (ActReqLnkGam + 202) #define ActRenFolDocGrp (ActRemRub + 202)
#define ActRcvFilDocGrpDZ (ActReqLnkGam + 203) #define ActRcvFilDocGrpDZ (ActRemRub + 203)
#define ActRcvFilDocGrpCla (ActReqLnkGam + 204) #define ActRcvFilDocGrpCla (ActRemRub + 204)
#define ActExpAdmDocGrp (ActReqLnkGam + 205) #define ActExpAdmDocGrp (ActRemRub + 205)
#define ActConAdmDocGrp (ActReqLnkGam + 206) #define ActConAdmDocGrp (ActRemRub + 206)
#define ActZIPAdmDocGrp (ActReqLnkGam + 207) #define ActZIPAdmDocGrp (ActRemRub + 207)
#define ActUnhDocGrp (ActReqLnkGam + 208) #define ActUnhDocGrp (ActRemRub + 208)
#define ActHidDocGrp (ActReqLnkGam + 209) #define ActHidDocGrp (ActRemRub + 209)
#define ActReqDatAdmDocGrp (ActReqLnkGam + 210) #define ActReqDatAdmDocGrp (ActRemRub + 210)
#define ActChgDatAdmDocGrp (ActReqLnkGam + 211) #define ActChgDatAdmDocGrp (ActRemRub + 211)
#define ActDowAdmDocGrp (ActReqLnkGam + 212) #define ActDowAdmDocGrp (ActRemRub + 212)
#define ActChgToAdmTch (ActReqLnkGam + 213) #define ActChgToAdmTch (ActRemRub + 213)
#define ActAdmTchCrs (ActReqLnkGam + 214) #define ActAdmTchCrs (ActRemRub + 214)
#define ActReqRemFilTchCrs (ActReqLnkGam + 215) #define ActReqRemFilTchCrs (ActRemRub + 215)
#define ActRemFilTchCrs (ActReqLnkGam + 216) #define ActRemFilTchCrs (ActRemRub + 216)
#define ActRemFolTchCrs (ActReqLnkGam + 217) #define ActRemFolTchCrs (ActRemRub + 217)
#define ActCopTchCrs (ActReqLnkGam + 218) #define ActCopTchCrs (ActRemRub + 218)
#define ActPasTchCrs (ActReqLnkGam + 219) #define ActPasTchCrs (ActRemRub + 219)
#define ActRemTreTchCrs (ActReqLnkGam + 220) #define ActRemTreTchCrs (ActRemRub + 220)
#define ActFrmCreTchCrs (ActReqLnkGam + 221) #define ActFrmCreTchCrs (ActRemRub + 221)
#define ActCreFolTchCrs (ActReqLnkGam + 222) #define ActCreFolTchCrs (ActRemRub + 222)
#define ActCreLnkTchCrs (ActReqLnkGam + 223) #define ActCreLnkTchCrs (ActRemRub + 223)
#define ActRenFolTchCrs (ActReqLnkGam + 224) #define ActRenFolTchCrs (ActRemRub + 224)
#define ActRcvFilTchCrsDZ (ActReqLnkGam + 225) #define ActRcvFilTchCrsDZ (ActRemRub + 225)
#define ActRcvFilTchCrsCla (ActReqLnkGam + 226) #define ActRcvFilTchCrsCla (ActRemRub + 226)
#define ActExpTchCrs (ActReqLnkGam + 227) #define ActExpTchCrs (ActRemRub + 227)
#define ActConTchCrs (ActReqLnkGam + 228) #define ActConTchCrs (ActRemRub + 228)
#define ActZIPTchCrs (ActReqLnkGam + 229) #define ActZIPTchCrs (ActRemRub + 229)
#define ActReqDatTchCrs (ActReqLnkGam + 230) #define ActReqDatTchCrs (ActRemRub + 230)
#define ActChgDatTchCrs (ActReqLnkGam + 231) #define ActChgDatTchCrs (ActRemRub + 231)
#define ActDowTchCrs (ActReqLnkGam + 232) #define ActDowTchCrs (ActRemRub + 232)
#define ActAdmTchGrp (ActReqLnkGam + 233) #define ActAdmTchGrp (ActRemRub + 233)
#define ActReqRemFilTchGrp (ActReqLnkGam + 234) #define ActReqRemFilTchGrp (ActRemRub + 234)
#define ActRemFilTchGrp (ActReqLnkGam + 235) #define ActRemFilTchGrp (ActRemRub + 235)
#define ActRemFolTchGrp (ActReqLnkGam + 236) #define ActRemFolTchGrp (ActRemRub + 236)
#define ActCopTchGrp (ActReqLnkGam + 237) #define ActCopTchGrp (ActRemRub + 237)
#define ActPasTchGrp (ActReqLnkGam + 238) #define ActPasTchGrp (ActRemRub + 238)
#define ActRemTreTchGrp (ActReqLnkGam + 239) #define ActRemTreTchGrp (ActRemRub + 239)
#define ActFrmCreTchGrp (ActReqLnkGam + 240) #define ActFrmCreTchGrp (ActRemRub + 240)
#define ActCreFolTchGrp (ActReqLnkGam + 241) #define ActCreFolTchGrp (ActRemRub + 241)
#define ActCreLnkTchGrp (ActReqLnkGam + 242) #define ActCreLnkTchGrp (ActRemRub + 242)
#define ActRenFolTchGrp (ActReqLnkGam + 243) #define ActRenFolTchGrp (ActRemRub + 243)
#define ActRcvFilTchGrpDZ (ActReqLnkGam + 244) #define ActRcvFilTchGrpDZ (ActRemRub + 244)
#define ActRcvFilTchGrpCla (ActReqLnkGam + 245) #define ActRcvFilTchGrpCla (ActRemRub + 245)
#define ActExpTchGrp (ActReqLnkGam + 246) #define ActExpTchGrp (ActRemRub + 246)
#define ActConTchGrp (ActReqLnkGam + 247) #define ActConTchGrp (ActRemRub + 247)
#define ActZIPTchGrp (ActReqLnkGam + 248) #define ActZIPTchGrp (ActRemRub + 248)
#define ActReqDatTchGrp (ActReqLnkGam + 249) #define ActReqDatTchGrp (ActRemRub + 249)
#define ActChgDatTchGrp (ActReqLnkGam + 250) #define ActChgDatTchGrp (ActRemRub + 250)
#define ActDowTchGrp (ActReqLnkGam + 251) #define ActDowTchGrp (ActRemRub + 251)
#define ActChgToAdmSha (ActReqLnkGam + 252) #define ActChgToAdmSha (ActRemRub + 252)
#define ActAdmShaCrs (ActReqLnkGam + 253) #define ActAdmShaCrs (ActRemRub + 253)
#define ActReqRemFilShaCrs (ActReqLnkGam + 254) #define ActReqRemFilShaCrs (ActRemRub + 254)
#define ActRemFilShaCrs (ActReqLnkGam + 255) #define ActRemFilShaCrs (ActRemRub + 255)
#define ActRemFolShaCrs (ActReqLnkGam + 256) #define ActRemFolShaCrs (ActRemRub + 256)
#define ActCopShaCrs (ActReqLnkGam + 257) #define ActCopShaCrs (ActRemRub + 257)
#define ActPasShaCrs (ActReqLnkGam + 258) #define ActPasShaCrs (ActRemRub + 258)
#define ActRemTreShaCrs (ActReqLnkGam + 259) #define ActRemTreShaCrs (ActRemRub + 259)
#define ActFrmCreShaCrs (ActReqLnkGam + 260) #define ActFrmCreShaCrs (ActRemRub + 260)
#define ActCreFolShaCrs (ActReqLnkGam + 261) #define ActCreFolShaCrs (ActRemRub + 261)
#define ActCreLnkShaCrs (ActReqLnkGam + 262) #define ActCreLnkShaCrs (ActRemRub + 262)
#define ActRenFolShaCrs (ActReqLnkGam + 263) #define ActRenFolShaCrs (ActRemRub + 263)
#define ActRcvFilShaCrsDZ (ActReqLnkGam + 264) #define ActRcvFilShaCrsDZ (ActRemRub + 264)
#define ActRcvFilShaCrsCla (ActReqLnkGam + 265) #define ActRcvFilShaCrsCla (ActRemRub + 265)
#define ActExpShaCrs (ActReqLnkGam + 266) #define ActExpShaCrs (ActRemRub + 266)
#define ActConShaCrs (ActReqLnkGam + 267) #define ActConShaCrs (ActRemRub + 267)
#define ActZIPShaCrs (ActReqLnkGam + 268) #define ActZIPShaCrs (ActRemRub + 268)
#define ActReqDatShaCrs (ActReqLnkGam + 269) #define ActReqDatShaCrs (ActRemRub + 269)
#define ActChgDatShaCrs (ActReqLnkGam + 270) #define ActChgDatShaCrs (ActRemRub + 270)
#define ActDowShaCrs (ActReqLnkGam + 271) #define ActDowShaCrs (ActRemRub + 271)
#define ActAdmShaGrp (ActReqLnkGam + 272) #define ActAdmShaGrp (ActRemRub + 272)
#define ActReqRemFilShaGrp (ActReqLnkGam + 273) #define ActReqRemFilShaGrp (ActRemRub + 273)
#define ActRemFilShaGrp (ActReqLnkGam + 274) #define ActRemFilShaGrp (ActRemRub + 274)
#define ActRemFolShaGrp (ActReqLnkGam + 275) #define ActRemFolShaGrp (ActRemRub + 275)
#define ActCopShaGrp (ActReqLnkGam + 276) #define ActCopShaGrp (ActRemRub + 276)
#define ActPasShaGrp (ActReqLnkGam + 277) #define ActPasShaGrp (ActRemRub + 277)
#define ActRemTreShaGrp (ActReqLnkGam + 278) #define ActRemTreShaGrp (ActRemRub + 278)
#define ActFrmCreShaGrp (ActReqLnkGam + 279) #define ActFrmCreShaGrp (ActRemRub + 279)
#define ActCreFolShaGrp (ActReqLnkGam + 280) #define ActCreFolShaGrp (ActRemRub + 280)
#define ActCreLnkShaGrp (ActReqLnkGam + 281) #define ActCreLnkShaGrp (ActRemRub + 281)
#define ActRenFolShaGrp (ActReqLnkGam + 282) #define ActRenFolShaGrp (ActRemRub + 282)
#define ActRcvFilShaGrpDZ (ActReqLnkGam + 283) #define ActRcvFilShaGrpDZ (ActRemRub + 283)
#define ActRcvFilShaGrpCla (ActReqLnkGam + 284) #define ActRcvFilShaGrpCla (ActRemRub + 284)
#define ActExpShaGrp (ActReqLnkGam + 285) #define ActExpShaGrp (ActRemRub + 285)
#define ActConShaGrp (ActReqLnkGam + 286) #define ActConShaGrp (ActRemRub + 286)
#define ActZIPShaGrp (ActReqLnkGam + 287) #define ActZIPShaGrp (ActRemRub + 287)
#define ActReqDatShaGrp (ActReqLnkGam + 288) #define ActReqDatShaGrp (ActRemRub + 288)
#define ActChgDatShaGrp (ActReqLnkGam + 289) #define ActChgDatShaGrp (ActRemRub + 289)
#define ActDowShaGrp (ActReqLnkGam + 290) #define ActDowShaGrp (ActRemRub + 290)
#define ActAdmAsgWrkCrs (ActReqLnkGam + 291) #define ActAdmAsgWrkCrs (ActRemRub + 291)
#define ActReqRemFilAsgUsr (ActReqLnkGam + 292) #define ActReqRemFilAsgUsr (ActRemRub + 292)
#define ActRemFilAsgUsr (ActReqLnkGam + 293) #define ActRemFilAsgUsr (ActRemRub + 293)
#define ActRemFolAsgUsr (ActReqLnkGam + 294) #define ActRemFolAsgUsr (ActRemRub + 294)
#define ActCopAsgUsr (ActReqLnkGam + 295) #define ActCopAsgUsr (ActRemRub + 295)
#define ActPasAsgUsr (ActReqLnkGam + 296) #define ActPasAsgUsr (ActRemRub + 296)
#define ActRemTreAsgUsr (ActReqLnkGam + 297) #define ActRemTreAsgUsr (ActRemRub + 297)
#define ActFrmCreAsgUsr (ActReqLnkGam + 298) #define ActFrmCreAsgUsr (ActRemRub + 298)
#define ActCreFolAsgUsr (ActReqLnkGam + 299) #define ActCreFolAsgUsr (ActRemRub + 299)
#define ActCreLnkAsgUsr (ActReqLnkGam + 300) #define ActCreLnkAsgUsr (ActRemRub + 300)
#define ActRenFolAsgUsr (ActReqLnkGam + 301) #define ActRenFolAsgUsr (ActRemRub + 301)
#define ActRcvFilAsgUsrDZ (ActReqLnkGam + 302) #define ActRcvFilAsgUsrDZ (ActRemRub + 302)
#define ActRcvFilAsgUsrCla (ActReqLnkGam + 303) #define ActRcvFilAsgUsrCla (ActRemRub + 303)
#define ActExpAsgUsr (ActReqLnkGam + 304) #define ActExpAsgUsr (ActRemRub + 304)
#define ActConAsgUsr (ActReqLnkGam + 305) #define ActConAsgUsr (ActRemRub + 305)
#define ActZIPAsgUsr (ActReqLnkGam + 306) #define ActZIPAsgUsr (ActRemRub + 306)
#define ActReqDatAsgUsr (ActReqLnkGam + 307) #define ActReqDatAsgUsr (ActRemRub + 307)
#define ActChgDatAsgUsr (ActReqLnkGam + 308) #define ActChgDatAsgUsr (ActRemRub + 308)
#define ActDowAsgUsr (ActReqLnkGam + 309) #define ActDowAsgUsr (ActRemRub + 309)
#define ActReqRemFilWrkUsr (ActReqLnkGam + 310) #define ActReqRemFilWrkUsr (ActRemRub + 310)
#define ActRemFilWrkUsr (ActReqLnkGam + 311) #define ActRemFilWrkUsr (ActRemRub + 311)
#define ActRemFolWrkUsr (ActReqLnkGam + 312) #define ActRemFolWrkUsr (ActRemRub + 312)
#define ActCopWrkUsr (ActReqLnkGam + 313) #define ActCopWrkUsr (ActRemRub + 313)
#define ActPasWrkUsr (ActReqLnkGam + 314) #define ActPasWrkUsr (ActRemRub + 314)
#define ActRemTreWrkUsr (ActReqLnkGam + 315) #define ActRemTreWrkUsr (ActRemRub + 315)
#define ActFrmCreWrkUsr (ActReqLnkGam + 316) #define ActFrmCreWrkUsr (ActRemRub + 316)
#define ActCreFolWrkUsr (ActReqLnkGam + 317) #define ActCreFolWrkUsr (ActRemRub + 317)
#define ActCreLnkWrkUsr (ActReqLnkGam + 318) #define ActCreLnkWrkUsr (ActRemRub + 318)
#define ActRenFolWrkUsr (ActReqLnkGam + 319) #define ActRenFolWrkUsr (ActRemRub + 319)
#define ActRcvFilWrkUsrDZ (ActReqLnkGam + 320) #define ActRcvFilWrkUsrDZ (ActRemRub + 320)
#define ActRcvFilWrkUsrCla (ActReqLnkGam + 321) #define ActRcvFilWrkUsrCla (ActRemRub + 321)
#define ActExpWrkUsr (ActReqLnkGam + 322) #define ActExpWrkUsr (ActRemRub + 322)
#define ActConWrkUsr (ActReqLnkGam + 323) #define ActConWrkUsr (ActRemRub + 323)
#define ActZIPWrkUsr (ActReqLnkGam + 324) #define ActZIPWrkUsr (ActRemRub + 324)
#define ActReqDatWrkUsr (ActReqLnkGam + 325) #define ActReqDatWrkUsr (ActRemRub + 325)
#define ActChgDatWrkUsr (ActReqLnkGam + 326) #define ActChgDatWrkUsr (ActRemRub + 326)
#define ActDowWrkUsr (ActReqLnkGam + 327) #define ActDowWrkUsr (ActRemRub + 327)
#define ActReqRemFilAsgCrs (ActReqLnkGam + 328) #define ActReqRemFilAsgCrs (ActRemRub + 328)
#define ActRemFilAsgCrs (ActReqLnkGam + 329) #define ActRemFilAsgCrs (ActRemRub + 329)
#define ActRemFolAsgCrs (ActReqLnkGam + 330) #define ActRemFolAsgCrs (ActRemRub + 330)
#define ActCopAsgCrs (ActReqLnkGam + 331) #define ActCopAsgCrs (ActRemRub + 331)
#define ActPasAsgCrs (ActReqLnkGam + 332) #define ActPasAsgCrs (ActRemRub + 332)
#define ActRemTreAsgCrs (ActReqLnkGam + 333) #define ActRemTreAsgCrs (ActRemRub + 333)
#define ActFrmCreAsgCrs (ActReqLnkGam + 334) #define ActFrmCreAsgCrs (ActRemRub + 334)
#define ActCreFolAsgCrs (ActReqLnkGam + 335) #define ActCreFolAsgCrs (ActRemRub + 335)
#define ActCreLnkAsgCrs (ActReqLnkGam + 336) #define ActCreLnkAsgCrs (ActRemRub + 336)
#define ActRenFolAsgCrs (ActReqLnkGam + 337) #define ActRenFolAsgCrs (ActRemRub + 337)
#define ActRcvFilAsgCrsDZ (ActReqLnkGam + 338) #define ActRcvFilAsgCrsDZ (ActRemRub + 338)
#define ActRcvFilAsgCrsCla (ActReqLnkGam + 339) #define ActRcvFilAsgCrsCla (ActRemRub + 339)
#define ActExpAsgCrs (ActReqLnkGam + 340) #define ActExpAsgCrs (ActRemRub + 340)
#define ActConAsgCrs (ActReqLnkGam + 341) #define ActConAsgCrs (ActRemRub + 341)
#define ActZIPAsgCrs (ActReqLnkGam + 342) #define ActZIPAsgCrs (ActRemRub + 342)
#define ActReqDatAsgCrs (ActReqLnkGam + 343) #define ActReqDatAsgCrs (ActRemRub + 343)
#define ActChgDatAsgCrs (ActReqLnkGam + 344) #define ActChgDatAsgCrs (ActRemRub + 344)
#define ActDowAsgCrs (ActReqLnkGam + 345) #define ActDowAsgCrs (ActRemRub + 345)
#define ActReqRemFilWrkCrs (ActReqLnkGam + 346) #define ActReqRemFilWrkCrs (ActRemRub + 346)
#define ActRemFilWrkCrs (ActReqLnkGam + 347) #define ActRemFilWrkCrs (ActRemRub + 347)
#define ActRemFolWrkCrs (ActReqLnkGam + 348) #define ActRemFolWrkCrs (ActRemRub + 348)
#define ActCopWrkCrs (ActReqLnkGam + 349) #define ActCopWrkCrs (ActRemRub + 349)
#define ActPasWrkCrs (ActReqLnkGam + 350) #define ActPasWrkCrs (ActRemRub + 350)
#define ActRemTreWrkCrs (ActReqLnkGam + 351) #define ActRemTreWrkCrs (ActRemRub + 351)
#define ActFrmCreWrkCrs (ActReqLnkGam + 352) #define ActFrmCreWrkCrs (ActRemRub + 352)
#define ActCreFolWrkCrs (ActReqLnkGam + 353) #define ActCreFolWrkCrs (ActRemRub + 353)
#define ActCreLnkWrkCrs (ActReqLnkGam + 354) #define ActCreLnkWrkCrs (ActRemRub + 354)
#define ActRenFolWrkCrs (ActReqLnkGam + 355) #define ActRenFolWrkCrs (ActRemRub + 355)
#define ActRcvFilWrkCrsDZ (ActReqLnkGam + 356) #define ActRcvFilWrkCrsDZ (ActRemRub + 356)
#define ActRcvFilWrkCrsCla (ActReqLnkGam + 357) #define ActRcvFilWrkCrsCla (ActRemRub + 357)
#define ActExpWrkCrs (ActReqLnkGam + 358) #define ActExpWrkCrs (ActRemRub + 358)
#define ActConWrkCrs (ActReqLnkGam + 359) #define ActConWrkCrs (ActRemRub + 359)
#define ActZIPWrkCrs (ActReqLnkGam + 360) #define ActZIPWrkCrs (ActRemRub + 360)
#define ActReqDatWrkCrs (ActReqLnkGam + 361) #define ActReqDatWrkCrs (ActRemRub + 361)
#define ActChgDatWrkCrs (ActReqLnkGam + 362) #define ActChgDatWrkCrs (ActRemRub + 362)
#define ActDowWrkCrs (ActReqLnkGam + 363) #define ActDowWrkCrs (ActRemRub + 363)
#define ActChgToSeeMrk (ActReqLnkGam + 364) #define ActChgToSeeMrk (ActRemRub + 364)
#define ActSeeMrkCrs (ActReqLnkGam + 365) #define ActSeeMrkCrs (ActRemRub + 365)
#define ActExpSeeMrkCrs (ActReqLnkGam + 366) #define ActExpSeeMrkCrs (ActRemRub + 366)
#define ActConSeeMrkCrs (ActReqLnkGam + 367) #define ActConSeeMrkCrs (ActRemRub + 367)
#define ActReqDatSeeMrkCrs (ActReqLnkGam + 368) #define ActReqDatSeeMrkCrs (ActRemRub + 368)
#define ActReqLnkSeeMrkCrs (ActReqLnkGam + 369) #define ActReqLnkSeeMrkCrs (ActRemRub + 369)
#define ActSeeMyMrkCrs (ActReqLnkGam + 370) #define ActSeeMyMrkCrs (ActRemRub + 370)
#define ActSeeMrkGrp (ActReqLnkGam + 371) #define ActSeeMrkGrp (ActRemRub + 371)
#define ActExpSeeMrkGrp (ActReqLnkGam + 372) #define ActExpSeeMrkGrp (ActRemRub + 372)
#define ActConSeeMrkGrp (ActReqLnkGam + 373) #define ActConSeeMrkGrp (ActRemRub + 373)
#define ActReqDatSeeMrkGrp (ActReqLnkGam + 374) #define ActReqDatSeeMrkGrp (ActRemRub + 374)
#define ActSeeMyMrkGrp (ActReqLnkGam + 375) #define ActSeeMyMrkGrp (ActRemRub + 375)
#define ActChgToAdmMrk (ActReqLnkGam + 376) #define ActChgToAdmMrk (ActRemRub + 376)
#define ActAdmMrkCrs (ActReqLnkGam + 377) #define ActAdmMrkCrs (ActRemRub + 377)
#define ActReqRemFilMrkCrs (ActReqLnkGam + 378) #define ActReqRemFilMrkCrs (ActRemRub + 378)
#define ActRemFilMrkCrs (ActReqLnkGam + 379) #define ActRemFilMrkCrs (ActRemRub + 379)
#define ActRemFolMrkCrs (ActReqLnkGam + 380) #define ActRemFolMrkCrs (ActRemRub + 380)
#define ActCopMrkCrs (ActReqLnkGam + 381) #define ActCopMrkCrs (ActRemRub + 381)
#define ActPasMrkCrs (ActReqLnkGam + 382) #define ActPasMrkCrs (ActRemRub + 382)
#define ActRemTreMrkCrs (ActReqLnkGam + 383) #define ActRemTreMrkCrs (ActRemRub + 383)
#define ActFrmCreMrkCrs (ActReqLnkGam + 384) #define ActFrmCreMrkCrs (ActRemRub + 384)
#define ActCreFolMrkCrs (ActReqLnkGam + 385) #define ActCreFolMrkCrs (ActRemRub + 385)
#define ActRenFolMrkCrs (ActReqLnkGam + 386) #define ActRenFolMrkCrs (ActRemRub + 386)
#define ActRcvFilMrkCrsDZ (ActReqLnkGam + 387) #define ActRcvFilMrkCrsDZ (ActRemRub + 387)
#define ActRcvFilMrkCrsCla (ActReqLnkGam + 388) #define ActRcvFilMrkCrsCla (ActRemRub + 388)
#define ActExpAdmMrkCrs (ActReqLnkGam + 389) #define ActExpAdmMrkCrs (ActRemRub + 389)
#define ActConAdmMrkCrs (ActReqLnkGam + 390) #define ActConAdmMrkCrs (ActRemRub + 390)
#define ActZIPAdmMrkCrs (ActReqLnkGam + 391) #define ActZIPAdmMrkCrs (ActRemRub + 391)
#define ActUnhMrkCrs (ActReqLnkGam + 392) #define ActUnhMrkCrs (ActRemRub + 392)
#define ActHidMrkCrs (ActReqLnkGam + 393) #define ActHidMrkCrs (ActRemRub + 393)
#define ActReqDatAdmMrkCrs (ActReqLnkGam + 394) #define ActReqDatAdmMrkCrs (ActRemRub + 394)
#define ActChgDatAdmMrkCrs (ActReqLnkGam + 395) #define ActChgDatAdmMrkCrs (ActRemRub + 395)
#define ActReqLnkAdmMrkCrs (ActReqLnkGam + 396) #define ActReqLnkAdmMrkCrs (ActRemRub + 396)
#define ActDowAdmMrkCrs (ActReqLnkGam + 397) #define ActDowAdmMrkCrs (ActRemRub + 397)
#define ActChgNumRowHeaCrs (ActReqLnkGam + 398) #define ActChgNumRowHeaCrs (ActRemRub + 398)
#define ActChgNumRowFooCrs (ActReqLnkGam + 399) #define ActChgNumRowFooCrs (ActRemRub + 399)
#define ActAdmMrkGrp (ActReqLnkGam + 400) #define ActAdmMrkGrp (ActRemRub + 400)
#define ActReqRemFilMrkGrp (ActReqLnkGam + 401) #define ActReqRemFilMrkGrp (ActRemRub + 401)
#define ActRemFilMrkGrp (ActReqLnkGam + 402) #define ActRemFilMrkGrp (ActRemRub + 402)
#define ActRemFolMrkGrp (ActReqLnkGam + 403) #define ActRemFolMrkGrp (ActRemRub + 403)
#define ActCopMrkGrp (ActReqLnkGam + 404) #define ActCopMrkGrp (ActRemRub + 404)
#define ActPasMrkGrp (ActReqLnkGam + 405) #define ActPasMrkGrp (ActRemRub + 405)
#define ActRemTreMrkGrp (ActReqLnkGam + 406) #define ActRemTreMrkGrp (ActRemRub + 406)
#define ActFrmCreMrkGrp (ActReqLnkGam + 407) #define ActFrmCreMrkGrp (ActRemRub + 407)
#define ActCreFolMrkGrp (ActReqLnkGam + 408) #define ActCreFolMrkGrp (ActRemRub + 408)
#define ActRenFolMrkGrp (ActReqLnkGam + 409) #define ActRenFolMrkGrp (ActRemRub + 409)
#define ActRcvFilMrkGrpDZ (ActReqLnkGam + 410) #define ActRcvFilMrkGrpDZ (ActRemRub + 410)
#define ActRcvFilMrkGrpCla (ActReqLnkGam + 411) #define ActRcvFilMrkGrpCla (ActRemRub + 411)
#define ActExpAdmMrkGrp (ActReqLnkGam + 412) #define ActExpAdmMrkGrp (ActRemRub + 412)
#define ActConAdmMrkGrp (ActReqLnkGam + 413) #define ActConAdmMrkGrp (ActRemRub + 413)
#define ActZIPAdmMrkGrp (ActReqLnkGam + 414) #define ActZIPAdmMrkGrp (ActRemRub + 414)
#define ActUnhMrkGrp (ActReqLnkGam + 415) #define ActUnhMrkGrp (ActRemRub + 415)
#define ActHidMrkGrp (ActReqLnkGam + 416) #define ActHidMrkGrp (ActRemRub + 416)
#define ActReqDatAdmMrkGrp (ActReqLnkGam + 417) #define ActReqDatAdmMrkGrp (ActRemRub + 417)
#define ActChgDatAdmMrkGrp (ActReqLnkGam + 418) #define ActChgDatAdmMrkGrp (ActRemRub + 418)
#define ActDowAdmMrkGrp (ActReqLnkGam + 419) #define ActDowAdmMrkGrp (ActRemRub + 419)
#define ActChgNumRowHeaGrp (ActReqLnkGam + 420) #define ActChgNumRowHeaGrp (ActRemRub + 420)
#define ActChgNumRowFooGrp (ActReqLnkGam + 421) #define ActChgNumRowFooGrp (ActRemRub + 421)
#define ActReqRemFilBrf (ActReqLnkGam + 422) #define ActReqRemFilBrf (ActRemRub + 422)
#define ActRemFilBrf (ActReqLnkGam + 423) #define ActRemFilBrf (ActRemRub + 423)
#define ActRemFolBrf (ActReqLnkGam + 424) #define ActRemFolBrf (ActRemRub + 424)
#define ActCopBrf (ActReqLnkGam + 425) #define ActCopBrf (ActRemRub + 425)
#define ActPasBrf (ActReqLnkGam + 426) #define ActPasBrf (ActRemRub + 426)
#define ActRemTreBrf (ActReqLnkGam + 427) #define ActRemTreBrf (ActRemRub + 427)
#define ActFrmCreBrf (ActReqLnkGam + 428) #define ActFrmCreBrf (ActRemRub + 428)
#define ActCreFolBrf (ActReqLnkGam + 429) #define ActCreFolBrf (ActRemRub + 429)
#define ActCreLnkBrf (ActReqLnkGam + 430) #define ActCreLnkBrf (ActRemRub + 430)
#define ActRenFolBrf (ActReqLnkGam + 431) #define ActRenFolBrf (ActRemRub + 431)
#define ActRcvFilBrfDZ (ActReqLnkGam + 432) #define ActRcvFilBrfDZ (ActRemRub + 432)
#define ActRcvFilBrfCla (ActReqLnkGam + 433) #define ActRcvFilBrfCla (ActRemRub + 433)
#define ActExpBrf (ActReqLnkGam + 434) #define ActExpBrf (ActRemRub + 434)
#define ActConBrf (ActReqLnkGam + 435) #define ActConBrf (ActRemRub + 435)
#define ActZIPBrf (ActReqLnkGam + 436) #define ActZIPBrf (ActRemRub + 436)
#define ActReqDatBrf (ActReqLnkGam + 437) #define ActReqDatBrf (ActRemRub + 437)
#define ActChgDatBrf (ActReqLnkGam + 438) #define ActChgDatBrf (ActRemRub + 438)
#define ActDowBrf (ActReqLnkGam + 439) #define ActDowBrf (ActRemRub + 439)
#define ActReqRemOldBrf (ActReqLnkGam + 440) #define ActReqRemOldBrf (ActRemRub + 440)
#define ActRemOldBrf (ActReqLnkGam + 441) #define ActRemOldBrf (ActRemRub + 441)
/*****************************************************************************/ /*****************************************************************************/
/******************************* Users tab ***********************************/ /******************************* Users tab ***********************************/
@ -1750,7 +1758,7 @@
#define ActLst_NUM_ACTIONS (ActChgMyTT1stDay + 1) #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 #define ActLst_DEFAULT_ACTION_AFTER_LOGIN ActSeeGblTL

View File

@ -875,8 +875,8 @@ static void Cfe_ShowCallForExam (struct Cfe_CallsForExams *CallsForExams,
Cfe_TypeViewCallForExam_t TypeViewCallForExam, Cfe_TypeViewCallForExam_t TypeViewCallForExam,
bool HighLight) bool HighLight)
{ {
extern const char *Hlp_ASSESSMENT_Calls_for_exam_new_call; extern const char *Hlp_ASSESSMENT_Calls_for_exams_new_call;
extern const char *Hlp_ASSESSMENT_Announcements_edit_announcement; 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_YEAR_OF_DEGREE[1 + Deg_MAX_YEARS_PER_DEGREE];
extern const char *Txt_Call_for_exam; extern const char *Txt_Call_for_exam;
extern const char *Txt_CALL_FOR_EXAM_Course; 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 CallsForExams->ExaCod = ExaCod; // Used to put contextual icons
FunctionToDrawContextualIcons = TypeViewCallForExam == Cfe_NORMAL_VIEW ? Cfe_PutIconsCallForExam : FunctionToDrawContextualIcons = TypeViewCallForExam == Cfe_NORMAL_VIEW ? Cfe_PutIconsCallForExam :
NULL; NULL;
HelpLink = TypeViewCallForExam == Cfe_FORM_VIEW ? ((ExaCod > 0) ? Hlp_ASSESSMENT_Announcements_edit_announcement : HelpLink = TypeViewCallForExam == Cfe_FORM_VIEW ? ((ExaCod > 0) ? Hlp_ASSESSMENT_Calls_for_exams_edit_call :
Hlp_ASSESSMENT_Calls_for_exam_new_call) : Hlp_ASSESSMENT_Calls_for_exams_new_call) :
NULL; NULL;
if (HighLight) if (HighLight)
{ {

View File

@ -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: 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. 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.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.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) Version 22.62.2: Feb 22, 2023 Changed icon for question bank. (334165 lines)

View File

@ -2796,6 +2796,48 @@ mysql> DESCRIBE roo_check_in;
"INDEX(UsrCod,CheckInTime)," "INDEX(UsrCod,CheckInTime),"
"INDEX(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 *****/ /***** Table ses_params *****/
/* /*
mysql> DESCRIBE ses_params; mysql> DESCRIBE ses_params;

View File

@ -432,6 +432,29 @@ void Err_WrongMatchExit (void)
Err_ShowErrorAndExit ("Wrong match."); 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 ***************/ /************** Write error message and exit when wrong survey ***************/
/*****************************************************************************/ /*****************************************************************************/

View File

@ -77,6 +77,9 @@ void Err_WrongAnswerTypeExit (void);
void Err_WrongExamSessionExit (void); void Err_WrongExamSessionExit (void);
void Err_WrongGameExit (void); void Err_WrongGameExit (void);
void Err_WrongMatchExit (void); void Err_WrongMatchExit (void);
void Err_WrongRubricExit (void);
void Err_WrongCriterionExit (void);
void Err_WrongCriterionIndexExit (void);
void Err_WrongSurveyExit (void); void Err_WrongSurveyExit (void);
void Err_WrongWhoExit (void); void Err_WrongWhoExit (void);
void Err_WrongEventExit (void); void Err_WrongEventExit (void);

View File

@ -47,6 +47,7 @@
#include "swad_privacy.h" #include "swad_privacy.h"
#include "swad_program.h" #include "swad_program.h"
#include "swad_project.h" #include "swad_project.h"
#include "swad_rubric.h"
#include "swad_survey.h" #include "swad_survey.h"
#include "swad_test.h" #include "swad_test.h"
#include "swad_theme.h" #include "swad_theme.h"
@ -208,6 +209,7 @@ void Fig_ShowFigures (void)
[Fig_TESTS ] = Tst_GetAndShowTestsStats, [Fig_TESTS ] = Tst_GetAndShowTestsStats,
[Fig_EXAMS ] = Exa_GetAndShowExamsStats, [Fig_EXAMS ] = Exa_GetAndShowExamsStats,
[Fig_GAMES ] = Gam_GetAndShowGamesStats, [Fig_GAMES ] = Gam_GetAndShowGamesStats,
[Fig_RUBRICS ] = Rub_GetAndShowRubricsStats,
[Fig_TIMELINE ] = Tml_GetAndShowTimelineActivityStats, [Fig_TIMELINE ] = Tml_GetAndShowTimelineActivityStats,
[Fig_FOLLOW ] = Fol_GetAndShowFollowStats, [Fig_FOLLOW ] = Fol_GetAndShowFollowStats,
[Fig_FORUMS ] = For_GetAndShowForumStats, [Fig_FORUMS ] = For_GetAndShowForumStats,

View File

@ -33,7 +33,7 @@
/************************** Public types and constants ***********************/ /************************** Public types and constants ***********************/
/*****************************************************************************/ /*****************************************************************************/
#define Fig_NUM_FIGURES 32 #define Fig_NUM_FIGURES 33
typedef enum typedef enum
{ {
Fig_USERS, // Number of users Fig_USERS, // Number of users
@ -49,6 +49,7 @@ typedef enum
Fig_TESTS, // Number of test questions Fig_TESTS, // Number of test questions
Fig_EXAMS, // Number of exams Fig_EXAMS, // Number of exams
Fig_GAMES, // Number of games Fig_GAMES, // Number of games
Fig_RUBRICS, // Number of rubrics
Fig_TIMELINE, // Number of timeline notes Fig_TIMELINE, // Number of timeline notes
Fig_FOLLOW, // Number of following and followers Fig_FOLLOW, // Number of following and followers
Fig_FORUMS, // Number of forums, threads and posts Fig_FORUMS, // Number of forums, threads and posts

View File

@ -1495,6 +1495,75 @@ const char *Hlp_ASSESSMENT_Projects_add_user =
"ASSESSMENT.Projects.en#add-user"; "ASSESSMENT.Projects.en#add-user";
#endif #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 = const char *Hlp_ASSESSMENT_Questions =
#if L==1 #if L==1
"ASSESSMENT.Questions.es"; "ASSESSMENT.Questions.es";
@ -1955,165 +2024,96 @@ const char *Hlp_ASSESSMENT_Games_results =
"ASSESSMENT.Games.en#results"; "ASSESSMENT.Games.en#results";
#endif #endif
const char *Hlp_ASSESSMENT_Surveys = const char *Hlp_ASSESSMENT_Rubrics =
#if L==1 #if L==1
"ASSESSMENT.Surveys.es"; "ASSESSMENT.Rubrics.es";
#elif L==2 #elif L==2
"ASSESSMENT.Surveys.en"; "ASSESSMENT.Rubrics.en";
#elif L==3 #elif L==3
"ASSESSMENT.Surveys.en"; "ASSESSMENT.Rubrics.en";
#elif L==4 #elif L==4
"ASSESSMENT.Surveys.es"; "ASSESSMENT.Rubrics.es";
#elif L==5 #elif L==5
"ASSESSMENT.Surveys.en"; "ASSESSMENT.Rubrics.en";
#elif L==6 #elif L==6
"ASSESSMENT.Surveys.es"; "ASSESSMENT.Rubrics.es";
#elif L==7 #elif L==7
"ASSESSMENT.Surveys.en"; "ASSESSMENT.Rubrics.en";
#elif L==8 #elif L==8
"ASSESSMENT.Surveys.en"; "ASSESSMENT.Rubrics.en";
#elif L==9 #elif L==9
"ASSESSMENT.Surveys.en"; "ASSESSMENT.Rubrics.en";
#elif L==10 // tr #elif L==10 // tr
"ASSESSMENT.Surveys.en"; "ASSESSMENT.Rubrics.en";
#endif #endif
const char *Hlp_ASSESSMENT_Surveys_new_survey = const char *Hlp_ASSESSMENT_Rubrics_edit_rubric =
#if L==1 #if L==1
"ASSESSMENT.Surveys.es#nueva-encuesta"; "ASSESSMENT.Rubrics.es#editar-juego";
#elif L==2 #elif L==2
"ASSESSMENT.Surveys.en#new-survey"; "ASSESSMENT.Rubrics.en#edit-rubric";
#elif L==3 #elif L==3
"ASSESSMENT.Surveys.en#new-survey"; "ASSESSMENT.Rubrics.en#edit-rubric";
#elif L==4 #elif L==4
"ASSESSMENT.Surveys.es#nueva-encuesta"; "ASSESSMENT.Rubrics.es#editar-rubrica";
#elif L==5 #elif L==5
"ASSESSMENT.Surveys.en#new-survey"; "ASSESSMENT.Rubrics.en#edit-rubric";
#elif L==6 #elif L==6
"ASSESSMENT.Surveys.es#nueva-encuesta"; "ASSESSMENT.Rubrics.es#editar-rubrica";
#elif L==7 #elif L==7
"ASSESSMENT.Surveys.en#new-survey"; "ASSESSMENT.Rubrics.en#edit-rubric";
#elif L==8 #elif L==8
"ASSESSMENT.Surveys.en#new-survey"; "ASSESSMENT.Rubrics.en#edit-rubric";
#elif L==9 #elif L==9
"ASSESSMENT.Surveys.en#new-survey"; "ASSESSMENT.Rubrics.en#edit-rubric";
#elif L==10 // tr #elif L==10 // tr
"ASSESSMENT.Surveys.en#new-survey"; "ASSESSMENT.Rubrics.en#edit-rubric";
#endif #endif
const char *Hlp_ASSESSMENT_Surveys_edit_survey = const char *Hlp_ASSESSMENT_Rubrics_new_rubric =
#if L==1 #if L==1
"ASSESSMENT.Surveys.es#editar-encuesta"; "ASSESSMENT.Rubrics.es#nuevo-juego";
#elif L==2 #elif L==2
"ASSESSMENT.Surveys.en#edit-survey"; "ASSESSMENT.Rubrics.en#new-rubric";
#elif L==3 #elif L==3
"ASSESSMENT.Surveys.en#edit-survey"; "ASSESSMENT.Rubrics.en#new-rubric";
#elif L==4 #elif L==4
"ASSESSMENT.Surveys.es#editar-encuesta"; "ASSESSMENT.Rubrics.es#nueva-rubrica";
#elif L==5 #elif L==5
"ASSESSMENT.Surveys.en#edit-survey"; "ASSESSMENT.Rubrics.en#new-rubric";
#elif L==6 #elif L==6
"ASSESSMENT.Surveys.es#editar-encuesta"; "ASSESSMENT.Rubrics.es#nueva-rubrica";
#elif L==7 #elif L==7
"ASSESSMENT.Surveys.en#edit-survey"; "ASSESSMENT.Rubrics.en#new-rubric";
#elif L==8 #elif L==8
"ASSESSMENT.Surveys.en#edit-survey"; "ASSESSMENT.Rubrics.en#new-rubric";
#elif L==9 #elif L==9
"ASSESSMENT.Surveys.en#edit-survey"; "ASSESSMENT.Rubrics.en#new-rubric";
#elif L==10 // tr #elif L==10 // tr
"ASSESSMENT.Surveys.en#edit-survey"; "ASSESSMENT.Rubrics.en#new-rubric";
#endif #endif
const char *Hlp_ASSESSMENT_Surveys_questions = const char *Hlp_ASSESSMENT_Rubrics_criteria =
#if L==1 #if L==1
"ASSESSMENT.Surveys.es#preguntas"; "ASSESSMENT.Rubrics.es#criteria";
#elif L==2 #elif L==2
"ASSESSMENT.Surveys.en#questions"; "ASSESSMENT.Rubrics.en#criteria";
#elif L==3 #elif L==3
"ASSESSMENT.Surveys.en#questions"; "ASSESSMENT.Rubrics.en#criteria";
#elif L==4 #elif L==4
"ASSESSMENT.Surveys.es#preguntas"; "ASSESSMENT.Rubrics.es#criterios";
#elif L==5 #elif L==5
"ASSESSMENT.Surveys.en#questions"; "ASSESSMENT.Rubrics.en#criteria";
#elif L==6 #elif L==6
"ASSESSMENT.Surveys.es#preguntas"; "ASSESSMENT.Rubrics.es#criterios";
#elif L==7 #elif L==7
"ASSESSMENT.Surveys.en#questions"; "ASSESSMENT.Rubrics.en#criteria";
#elif L==8 #elif L==8
"ASSESSMENT.Surveys.en#questions"; "ASSESSMENT.Rubrics.en#criteria";
#elif L==9 #elif L==9
"ASSESSMENT.Surveys.en#questions"; "ASSESSMENT.Rubrics.en#criteria";
#elif L==10 // tr #elif L==10 // tr
"ASSESSMENT.Surveys.en#questions"; "ASSESSMENT.Rubrics.en#criteria";
#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";
#endif #endif
/***** FILES tab *****/ /***** FILES tab *****/
@ -3435,6 +3435,29 @@ const char *Hlp_ANALYTICS_Figures_games =
"ANALYTICS.Figures.en#games"; "ANALYTICS.Figures.en#games";
#endif #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 = const char *Hlp_ANALYTICS_Figures_surveys =
#if L==1 #if L==1
"ANALYTICS.Figures.es#encuestas"; "ANALYTICS.Figures.es#encuestas";
@ -3964,6 +3987,98 @@ const char *Hlp_ANALYTICS_Visits_visits_to_course =
"ANALYTICS.Visits.en#visits-to-course"; "ANALYTICS.Visits.en#visits-to-course";
#endif #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 = const char *Hlp_ANALYTICS_Report =
#if L==1 #if L==1
"ANALYTICS.Report.es"; "ANALYTICS.Report.es";

View File

@ -102,7 +102,6 @@ const char *Ntf_WSNotifyEvents[Ntf_NUM_NOTIFY_EVENTS] =
/* Course tab */ /* Course tab */
/* Assessment tab */ /* Assessment tab */
[Ntf_EVENT_ASSIGNMENT ] = "assignment", [Ntf_EVENT_ASSIGNMENT ] = "assignment",
[Ntf_EVENT_SURVEY ] = "survey",
[Ntf_EVENT_CALL_FOR_EXAM ] = "examAnnouncement", [Ntf_EVENT_CALL_FOR_EXAM ] = "examAnnouncement",
/* Files tab */ /* Files tab */
[Ntf_EVENT_DOCUMENT_FILE ] = "documentFile", [Ntf_EVENT_DOCUMENT_FILE ] = "documentFile",
@ -120,6 +119,7 @@ const char *Ntf_WSNotifyEvents[Ntf_NUM_NOTIFY_EVENTS] =
[Ntf_EVENT_FORUM_REPLY ] = "forumReply", [Ntf_EVENT_FORUM_REPLY ] = "forumReply",
[Ntf_EVENT_MESSAGE ] = "message", [Ntf_EVENT_MESSAGE ] = "message",
/* Analytics tab */ /* Analytics tab */
[Ntf_EVENT_SURVEY ] = "survey",
/* Profile tab */ /* Profile tab */
}; };
@ -183,7 +183,6 @@ static const char *Ntf_ParamNotifMeAboutNotifyEvents[Ntf_NUM_NOTIFY_EVENTS] =
/* Course tab */ /* Course tab */
/* Assessment tab */ /* Assessment tab */
[Ntf_EVENT_ASSIGNMENT ] = "NotifyNtfEventAssignment", [Ntf_EVENT_ASSIGNMENT ] = "NotifyNtfEventAssignment",
[Ntf_EVENT_SURVEY ] = "NotifyNtfEventSurvey",
[Ntf_EVENT_CALL_FOR_EXAM ] = "NotifyNtfEventExamAnnouncement", [Ntf_EVENT_CALL_FOR_EXAM ] = "NotifyNtfEventExamAnnouncement",
/* Files tab */ /* Files tab */
[Ntf_EVENT_DOCUMENT_FILE ] = "NotifyNtfEventDocumentFile", [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_TCH ] = "NotifyNtfEventEnrolmentTeacher",
[Ntf_EVENT_ENROLMENT_REQUEST] = "NotifyNtfEventEnrolmentRequest", [Ntf_EVENT_ENROLMENT_REQUEST] = "NotifyNtfEventEnrolmentRequest",
/* Analytics tab */ /* Analytics tab */
[Ntf_EVENT_SURVEY ] = "NotifyNtfEventSurvey",
/* Profile tab */ /* Profile tab */
}; };
@ -222,7 +222,6 @@ static const char *Ntf_ParamEmailMeAboutNotifyEvents[Ntf_NUM_NOTIFY_EVENTS] =
/* Course tab */ /* Course tab */
/* Assessment tab */ /* Assessment tab */
[Ntf_EVENT_ASSIGNMENT ] = "EmailNtfEventAssignment", [Ntf_EVENT_ASSIGNMENT ] = "EmailNtfEventAssignment",
[Ntf_EVENT_SURVEY ] = "EmailNtfEventSurvey",
[Ntf_EVENT_CALL_FOR_EXAM ] = "EmailNtfEventExamAnnouncement", [Ntf_EVENT_CALL_FOR_EXAM ] = "EmailNtfEventExamAnnouncement",
/* Files tab */ /* Files tab */
[Ntf_EVENT_DOCUMENT_FILE ] = "EmailNtfEventDocumentFile", [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_TCH ] = "EmailNtfEventEnrolmentTeacher",
[Ntf_EVENT_ENROLMENT_REQUEST] = "EmailNtfEventEnrolmentRequest", [Ntf_EVENT_ENROLMENT_REQUEST] = "EmailNtfEventEnrolmentRequest",
/* Analytics tab */ /* Analytics tab */
[Ntf_EVENT_SURVEY ] = "EmailNtfEventSurvey",
/* Profile tab */ /* Profile tab */
}; };
@ -261,7 +261,6 @@ static const char *Ntf_Icons[Ntf_NUM_NOTIFY_EVENTS] =
/* Course tab */ /* Course tab */
/* Assessment tab */ /* Assessment tab */
[Ntf_EVENT_ASSIGNMENT ] = "edit.svg", [Ntf_EVENT_ASSIGNMENT ] = "edit.svg",
[Ntf_EVENT_SURVEY ] = "poll.svg",
[Ntf_EVENT_CALL_FOR_EXAM ] = "bullhorn.svg", [Ntf_EVENT_CALL_FOR_EXAM ] = "bullhorn.svg",
/* Files tab */ /* Files tab */
[Ntf_EVENT_DOCUMENT_FILE ] = "file.svg", [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_TCH ] = "user-tie.svg",
[Ntf_EVENT_ENROLMENT_REQUEST] = "hand-point-up.svg", [Ntf_EVENT_ENROLMENT_REQUEST] = "hand-point-up.svg",
/* Analytics tab */ /* Analytics tab */
[Ntf_EVENT_SURVEY ] = "poll.svg",
/* Profile tab */ /* Profile tab */
}; };

View File

@ -51,7 +51,9 @@
// If the numbers assigned to each event type change, // If the numbers assigned to each event type change,
// it is necessary to change old numbers to new ones // it is necessary to change old numbers to new ones
// in database tables ntf_notifications, sta_notifications and usr_data // 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, Ntf_EVENT_UNKNOWN = 0,
/* Start tab */ /* Start tab */

View File

@ -69,12 +69,13 @@ static const char *Pag_ParamNumPag[Pag_NUM_WHAT_PAGINATE] =
[Pag_PROJECTS ] = "NumPagPrj", [Pag_PROJECTS ] = "NumPagPrj",
[Pag_EXAMS ] = "NumPagExa", [Pag_EXAMS ] = "NumPagExa",
[Pag_GAMES ] = "NumPagGam", [Pag_GAMES ] = "NumPagGam",
[Pag_SURVEYS ] = "NumPagSvy", [Pag_RUBRICS ] = "NumPagRub",
[Pag_ATT_EVENTS ] = "NumPagAtt", [Pag_ATT_EVENTS ] = "NumPagAtt",
[Pag_THREADS_FORUM ] = "NumPagThr", [Pag_THREADS_FORUM ] = "NumPagThr",
[Pag_POSTS_FORUM ] = "NumPagPst", [Pag_POSTS_FORUM ] = "NumPagPst",
[Pag_MESSAGES_RECEIVED] = "NumPagRcv", [Pag_MESSAGES_RECEIVED] = "NumPagRcv",
[Pag_MESSAGES_SENT ] = "NumPagSnt", [Pag_MESSAGES_SENT ] = "NumPagSnt",
[Pag_SURVEYS ] = "NumPagSvy",
[Pag_MY_AGENDA ] = "NumPagMyAgd", [Pag_MY_AGENDA ] = "NumPagMyAgd",
[Pag_ANOTHER_AGENDA ] = "NumPagOthAgd", [Pag_ANOTHER_AGENDA ] = "NumPagOthAgd",
}; };
@ -202,6 +203,10 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
WhichGroups = Grp_GetParamWhichGroups (); WhichGroups = Grp_GetParamWhichGroups ();
Grp_PutParamWhichGroups (&WhichGroups); Grp_PutParamWhichGroups (&WhichGroups);
break; break;
case Pag_RUBRICS:
Frm_BeginFormAnchor (ActSeeAllRub,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,1);
break;
case Pag_ATT_EVENTS: case Pag_ATT_EVENTS:
Frm_BeginFormAnchor (ActSeeAtt,Pagination->Anchor); Frm_BeginFormAnchor (ActSeeAtt,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,1); Pag_PutHiddenParamPagNum (WhatPaginate,1);
@ -325,6 +330,10 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
WhichGroups = Grp_GetParamWhichGroups (); WhichGroups = Grp_GetParamWhichGroups ();
Grp_PutParamWhichGroups (&WhichGroups); Grp_PutParamWhichGroups (&WhichGroups);
break; break;
case Pag_RUBRICS:
Frm_BeginFormAnchor (ActSeeAllRub,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,1);
break;
case Pag_ATT_EVENTS: case Pag_ATT_EVENTS:
Frm_BeginFormAnchor (ActSeeAtt,Pagination->Anchor); Frm_BeginFormAnchor (ActSeeAtt,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,1); Pag_PutHiddenParamPagNum (WhatPaginate,1);
@ -441,6 +450,10 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
WhichGroups = Grp_GetParamWhichGroups (); WhichGroups = Grp_GetParamWhichGroups ();
Grp_PutParamWhichGroups (&WhichGroups); Grp_PutParamWhichGroups (&WhichGroups);
break; break;
case Pag_RUBRICS:
Frm_BeginFormAnchor (ActSeeAllRub,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->LeftPage);
break;
case Pag_ATT_EVENTS: case Pag_ATT_EVENTS:
Frm_BeginFormAnchor (ActSeeAtt,Pagination->Anchor); Frm_BeginFormAnchor (ActSeeAtt,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->LeftPage); Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->LeftPage);
@ -570,6 +583,10 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
WhichGroups = Grp_GetParamWhichGroups (); WhichGroups = Grp_GetParamWhichGroups ();
Grp_PutParamWhichGroups (&WhichGroups); Grp_PutParamWhichGroups (&WhichGroups);
break; break;
case Pag_RUBRICS:
Frm_BeginFormAnchor (ActSeeAllRub,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,NumPage);
break;
case Pag_ATT_EVENTS: case Pag_ATT_EVENTS:
Frm_BeginFormAnchor (ActSeeAtt,Pagination->Anchor); Frm_BeginFormAnchor (ActSeeAtt,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,NumPage); Pag_PutHiddenParamPagNum (WhatPaginate,NumPage);
@ -685,6 +702,10 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
WhichGroups = Grp_GetParamWhichGroups (); WhichGroups = Grp_GetParamWhichGroups ();
Grp_PutParamWhichGroups (&WhichGroups); Grp_PutParamWhichGroups (&WhichGroups);
break; break;
case Pag_RUBRICS:
Frm_BeginFormAnchor (ActSeeAllRub,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->RightPage);
break;
case Pag_ATT_EVENTS: case Pag_ATT_EVENTS:
Frm_BeginFormAnchor (ActSeeAtt,Pagination->Anchor); Frm_BeginFormAnchor (ActSeeAtt,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->RightPage); Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->RightPage);
@ -801,6 +822,10 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
WhichGroups = Grp_GetParamWhichGroups (); WhichGroups = Grp_GetParamWhichGroups ();
Grp_PutParamWhichGroups (&WhichGroups); Grp_PutParamWhichGroups (&WhichGroups);
break; break;
case Pag_RUBRICS:
Frm_BeginFormAnchor (ActSeeAllRub,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->NumPags);
break;
case Pag_ATT_EVENTS: case Pag_ATT_EVENTS:
Frm_BeginFormAnchor (ActSeeAtt,Pagination->Anchor); Frm_BeginFormAnchor (ActSeeAtt,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->NumPags); Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->NumPags);

View File

@ -39,7 +39,7 @@
/******************************** Public types *******************************/ /******************************** Public types *******************************/
/*****************************************************************************/ /*****************************************************************************/
#define Pag_NUM_WHAT_PAGINATE 13 #define Pag_NUM_WHAT_PAGINATE 14
typedef enum typedef enum
{ {
Pag_NONE = 0, Pag_NONE = 0,
@ -47,14 +47,15 @@ typedef enum
Pag_PROJECTS = 2, Pag_PROJECTS = 2,
Pag_EXAMS = 3, Pag_EXAMS = 3,
Pag_GAMES = 4, Pag_GAMES = 4,
Pag_SURVEYS = 5, Pag_RUBRICS = 5,
Pag_ATT_EVENTS = 6, Pag_ATT_EVENTS = 6,
Pag_THREADS_FORUM = 7, Pag_THREADS_FORUM = 7,
Pag_POSTS_FORUM = 8, Pag_POSTS_FORUM = 8,
Pag_MESSAGES_RECEIVED = 9, Pag_MESSAGES_RECEIVED = 9,
Pag_MESSAGES_SENT = 10, Pag_MESSAGES_SENT = 10,
Pag_MY_AGENDA = 11, Pag_SURVEYS = 11,
Pag_ANOTHER_AGENDA = 12, Pag_MY_AGENDA = 12,
Pag_ANOTHER_AGENDA = 13,
} Pag_WhatPaginate_t; } Pag_WhatPaginate_t;
struct Pagination // Used for threads and messages pagination struct Pagination // Used for threads and messages pagination

View File

@ -188,7 +188,7 @@ void Svy_SeeAllSurveys (void)
void Svy_ListAllSurveys (struct Svy_Surveys *Surveys) 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_Surveys;
extern const char *Txt_START_END_TIME_HELP[Dat_NUM_START_END_TIME]; 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]; 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 *****/ /***** Begin box *****/
Box_BoxBegin ("100%",Txt_Surveys, Box_BoxBegin ("100%",Txt_Surveys,
Svy_PutIconsListSurveys,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 *****/ /***** Select whether show only my groups or all groups *****/
if (Gbl.Crs.Grps.NumGrps) if (Gbl.Crs.Grps.NumGrps)
@ -423,7 +423,7 @@ void Svy_SeeOneSurvey (void)
static void Svy_ShowOneSurvey (struct Svy_Surveys *Surveys, static void Svy_ShowOneSurvey (struct Svy_Surveys *Surveys,
bool ShowOnlyThisSvyComplete) bool ShowOnlyThisSvyComplete)
{ {
extern const char *Hlp_ASSESSMENT_Surveys; extern const char *Hlp_ANALYTICS_Surveys;
extern const char *Txt_Survey; extern const char *Txt_Survey;
extern const char *Txt_View_survey; extern const char *Txt_View_survey;
extern const char *Txt_Number_of_questions; extern const char *Txt_Number_of_questions;
@ -450,7 +450,7 @@ static void Svy_ShowOneSurvey (struct Svy_Surveys *Surveys,
if (ShowOnlyThisSvyComplete) if (ShowOnlyThisSvyComplete)
Box_BoxBegin (NULL,Txt_Survey, Box_BoxBegin (NULL,Txt_Survey,
Svy_PutIconsOneSvy,Surveys, Svy_PutIconsOneSvy,Surveys,
Hlp_ASSESSMENT_Surveys,Box_NOT_CLOSABLE); Hlp_ANALYTICS_Surveys,Box_NOT_CLOSABLE);
/***** Set anchor string *****/ /***** Set anchor string *****/
Frm_SetAnchorStr (Surveys->Svy.SvyCod,&Anchor); Frm_SetAnchorStr (Surveys->Svy.SvyCod,&Anchor);
@ -1666,8 +1666,8 @@ void Svy_UnhideSurvey (void)
void Svy_RequestCreatOrEditSvy (void) void Svy_RequestCreatOrEditSvy (void)
{ {
extern const char *Hlp_ASSESSMENT_Surveys_new_survey; extern const char *Hlp_ANALYTICS_Surveys_new_survey;
extern const char *Hlp_ASSESSMENT_Surveys_edit_survey; extern const char *Hlp_ANALYTICS_Surveys_edit_survey;
extern const char *Txt_New_survey; extern const char *Txt_New_survey;
extern const char *Txt_Scope; extern const char *Txt_Scope;
extern const char *Txt_Edit_survey; extern const char *Txt_Edit_survey;
@ -1741,13 +1741,13 @@ void Svy_RequestCreatOrEditSvy (void)
if (ItsANewSurvey) if (ItsANewSurvey)
Box_BoxTableBegin (NULL,Txt_New_survey, Box_BoxTableBegin (NULL,Txt_New_survey,
NULL,NULL, NULL,NULL,
Hlp_ASSESSMENT_Surveys_new_survey,Box_NOT_CLOSABLE,2); Hlp_ANALYTICS_Surveys_new_survey,Box_NOT_CLOSABLE,2);
else else
Box_BoxTableBegin (NULL, Box_BoxTableBegin (NULL,
Surveys.Svy.Title[0] ? Surveys.Svy.Title : Surveys.Svy.Title[0] ? Surveys.Svy.Title :
Txt_Edit_survey, Txt_Edit_survey,
NULL,NULL, NULL,NULL,
Hlp_ASSESSMENT_Surveys_edit_survey,Box_NOT_CLOSABLE,2); Hlp_ANALYTICS_Surveys_edit_survey,Box_NOT_CLOSABLE,2);
/***** Scope of the survey *****/ /***** Scope of the survey *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
@ -2318,7 +2318,7 @@ static void Svy_ShowFormEditOneQst (struct Svy_Surveys *Surveys,
struct Svy_Question *SvyQst, struct Svy_Question *SvyQst,
char Stem[Cns_MAX_BYTES_TEXT + 1]) 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_Question;
extern const char *Txt_New_question; extern const char *Txt_New_question;
extern const char *Txt_Wording; extern const char *Txt_Wording;
@ -2386,7 +2386,7 @@ static void Svy_ShowFormEditOneQst (struct Svy_Surveys *Surveys,
else else
Box_BoxBegin (NULL,Txt_New_question, Box_BoxBegin (NULL,Txt_New_question,
NULL,NULL, NULL,NULL,
Hlp_ASSESSMENT_Surveys_questions,Box_NOT_CLOSABLE); Hlp_ANALYTICS_Surveys_questions,Box_NOT_CLOSABLE);
/***** Begin form *****/ /***** Begin form *****/
Frm_BeginForm (ActRcvSvyQst); Frm_BeginForm (ActRcvSvyQst);
@ -2755,7 +2755,7 @@ static unsigned Svy_GetNextQuestionIndexInSvy (long SvyCod)
static void Svy_ListSvyQuestions (struct Svy_Surveys *Surveys) 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_Questions;
extern const char *Txt_No_INDEX; extern const char *Txt_No_INDEX;
extern const char *Txt_Type; extern const char *Txt_Type;
@ -2778,11 +2778,11 @@ static void Svy_ListSvyQuestions (struct Svy_Surveys *Surveys)
if (Surveys->Svy.Status.ICanEdit) if (Surveys->Svy.Status.ICanEdit)
Box_BoxBegin (NULL,Txt_Questions, Box_BoxBegin (NULL,Txt_Questions,
Svy_PutIconToAddNewQuestion,Surveys, Svy_PutIconToAddNewQuestion,Surveys,
Hlp_ASSESSMENT_Surveys_questions,Box_NOT_CLOSABLE); Hlp_ANALYTICS_Surveys_questions,Box_NOT_CLOSABLE);
else else
Box_BoxBegin (NULL,Txt_Questions, Box_BoxBegin (NULL,Txt_Questions,
NULL,NULL, NULL,NULL,
Hlp_ASSESSMENT_Surveys_questions,Box_NOT_CLOSABLE); Hlp_ANALYTICS_Surveys_questions,Box_NOT_CLOSABLE);
/***** Get data of questions from database *****/ /***** Get data of questions from database *****/
if ((NumQsts = Svy_DB_GetSurveyQsts (&mysql_res,Surveys->Svy.SvyCod))) if ((NumQsts = Svy_DB_GetSurveyQsts (&mysql_res,Surveys->Svy.SvyCod)))

File diff suppressed because it is too large Load Diff

View File

@ -13837,6 +13837,167 @@ const char *Txt_Actions[ActLst_NUM_ACTIONS] =
"Copy link to game" // Precisa de tradução "Copy link to game" // Precisa de tradução
#elif L==10 // tr #elif L==10 // tr
"Copy link to game" // Çeviri lazim! "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 #endif
, ,
[ActSeeAdmDocIns] = [ActSeeAdmDocIns] =