mirror of https://github.com/acanas/swad-core.git
Version 15.223
This commit is contained in:
parent
47159b00fa
commit
3989031fce
1777
swad_action.c
1777
swad_action.c
File diff suppressed because it is too large
Load Diff
469
swad_action.h
469
swad_action.h
|
@ -72,9 +72,9 @@ typedef enum
|
|||
|
||||
typedef int Act_Action_t; // Must be a signed type, because -1 is used to indicate obsolete action
|
||||
|
||||
#define Act_NUM_ACTIONS (1+9+51+15+90+70+67+245+186+150+172+36+28+83)
|
||||
#define Act_NUM_ACTIONS (1+9+51+15+90+70+67+246+186+150+172+36+28+83)
|
||||
|
||||
#define Act_MAX_ACTION_COD 1572
|
||||
#define Act_MAX_ACTION_COD 1573
|
||||
|
||||
#define Act_MAX_OPTIONS_IN_MENU_PER_TAB 20
|
||||
|
||||
|
@ -461,252 +461,253 @@ typedef int Act_Action_t; // Must be a signed type, because -1 is used to indica
|
|||
// Secondary actions
|
||||
#define ActCrsSch (ActDowShaDeg+ 12)
|
||||
#define ActPrnCrsInf (ActDowShaDeg+ 13)
|
||||
#define ActChgCrsLog (ActDowShaDeg+ 14)
|
||||
#define ActEdiCrsInf (ActDowShaDeg+ 15)
|
||||
#define ActEdiTchGui (ActDowShaDeg+ 16)
|
||||
#define ActPrnCrsTT (ActDowShaDeg+ 17)
|
||||
#define ActEdiCrsTT (ActDowShaDeg+ 18)
|
||||
#define ActChgCrsTT (ActDowShaDeg+ 19)
|
||||
#define ActChgCrsTT1stDay (ActDowShaDeg+ 20)
|
||||
#define ActSeeSylLec (ActDowShaDeg+ 21)
|
||||
#define ActSeeSylPra (ActDowShaDeg+ 22)
|
||||
#define ActEdiSylLec (ActDowShaDeg+ 23)
|
||||
#define ActEdiSylPra (ActDowShaDeg+ 24)
|
||||
#define ActDelItmSylLec (ActDowShaDeg+ 25)
|
||||
#define ActDelItmSylPra (ActDowShaDeg+ 26)
|
||||
#define ActUp_IteSylLec (ActDowShaDeg+ 27)
|
||||
#define ActUp_IteSylPra (ActDowShaDeg+ 28)
|
||||
#define ActDwnIteSylLec (ActDowShaDeg+ 29)
|
||||
#define ActDwnIteSylPra (ActDowShaDeg+ 30)
|
||||
#define ActRgtIteSylLec (ActDowShaDeg+ 31)
|
||||
#define ActRgtIteSylPra (ActDowShaDeg+ 32)
|
||||
#define ActLftIteSylLec (ActDowShaDeg+ 33)
|
||||
#define ActLftIteSylPra (ActDowShaDeg+ 34)
|
||||
#define ActInsIteSylLec (ActDowShaDeg+ 35)
|
||||
#define ActInsIteSylPra (ActDowShaDeg+ 36)
|
||||
#define ActModIteSylLec (ActDowShaDeg+ 37)
|
||||
#define ActModIteSylPra (ActDowShaDeg+ 38)
|
||||
#define ActChgInsCrsCodCfg (ActDowShaDeg+ 14)
|
||||
#define ActChgCrsYeaCfg (ActDowShaDeg+ 15)
|
||||
#define ActEdiCrsInf (ActDowShaDeg+ 16)
|
||||
#define ActEdiTchGui (ActDowShaDeg+ 17)
|
||||
#define ActPrnCrsTT (ActDowShaDeg+ 18)
|
||||
#define ActEdiCrsTT (ActDowShaDeg+ 19)
|
||||
#define ActChgCrsTT (ActDowShaDeg+ 20)
|
||||
#define ActChgCrsTT1stDay (ActDowShaDeg+ 21)
|
||||
#define ActSeeSylLec (ActDowShaDeg+ 22)
|
||||
#define ActSeeSylPra (ActDowShaDeg+ 23)
|
||||
#define ActEdiSylLec (ActDowShaDeg+ 24)
|
||||
#define ActEdiSylPra (ActDowShaDeg+ 25)
|
||||
#define ActDelItmSylLec (ActDowShaDeg+ 26)
|
||||
#define ActDelItmSylPra (ActDowShaDeg+ 27)
|
||||
#define ActUp_IteSylLec (ActDowShaDeg+ 28)
|
||||
#define ActUp_IteSylPra (ActDowShaDeg+ 29)
|
||||
#define ActDwnIteSylLec (ActDowShaDeg+ 30)
|
||||
#define ActDwnIteSylPra (ActDowShaDeg+ 31)
|
||||
#define ActRgtIteSylLec (ActDowShaDeg+ 32)
|
||||
#define ActRgtIteSylPra (ActDowShaDeg+ 33)
|
||||
#define ActLftIteSylLec (ActDowShaDeg+ 34)
|
||||
#define ActLftIteSylPra (ActDowShaDeg+ 35)
|
||||
#define ActInsIteSylLec (ActDowShaDeg+ 36)
|
||||
#define ActInsIteSylPra (ActDowShaDeg+ 37)
|
||||
#define ActModIteSylLec (ActDowShaDeg+ 38)
|
||||
#define ActModIteSylPra (ActDowShaDeg+ 39)
|
||||
|
||||
#define ActChgToSeeDocCrs (ActDowShaDeg+ 39)
|
||||
#define ActSeeDocCrs (ActDowShaDeg+ 40)
|
||||
#define ActExpSeeDocCrs (ActDowShaDeg+ 41)
|
||||
#define ActConSeeDocCrs (ActDowShaDeg+ 42)
|
||||
#define ActZIPSeeDocCrs (ActDowShaDeg+ 43)
|
||||
#define ActReqDatSeeDocCrs (ActDowShaDeg+ 44)
|
||||
#define ActDowSeeDocCrs (ActDowShaDeg+ 45)
|
||||
#define ActChgToSeeDocCrs (ActDowShaDeg+ 40)
|
||||
#define ActSeeDocCrs (ActDowShaDeg+ 41)
|
||||
#define ActExpSeeDocCrs (ActDowShaDeg+ 42)
|
||||
#define ActConSeeDocCrs (ActDowShaDeg+ 43)
|
||||
#define ActZIPSeeDocCrs (ActDowShaDeg+ 44)
|
||||
#define ActReqDatSeeDocCrs (ActDowShaDeg+ 45)
|
||||
#define ActDowSeeDocCrs (ActDowShaDeg+ 46)
|
||||
|
||||
#define ActSeeDocGrp (ActDowShaDeg+ 46)
|
||||
#define ActExpSeeDocGrp (ActDowShaDeg+ 47)
|
||||
#define ActConSeeDocGrp (ActDowShaDeg+ 48)
|
||||
#define ActZIPSeeDocGrp (ActDowShaDeg+ 49)
|
||||
#define ActReqDatSeeDocGrp (ActDowShaDeg+ 50)
|
||||
#define ActDowSeeDocGrp (ActDowShaDeg+ 51)
|
||||
#define ActSeeDocGrp (ActDowShaDeg+ 47)
|
||||
#define ActExpSeeDocGrp (ActDowShaDeg+ 48)
|
||||
#define ActConSeeDocGrp (ActDowShaDeg+ 49)
|
||||
#define ActZIPSeeDocGrp (ActDowShaDeg+ 50)
|
||||
#define ActReqDatSeeDocGrp (ActDowShaDeg+ 51)
|
||||
#define ActDowSeeDocGrp (ActDowShaDeg+ 52)
|
||||
|
||||
#define ActChgToAdmDocCrs (ActDowShaDeg+ 52)
|
||||
#define ActAdmDocCrs (ActDowShaDeg+ 53)
|
||||
#define ActReqRemFilDocCrs (ActDowShaDeg+ 54)
|
||||
#define ActRemFilDocCrs (ActDowShaDeg+ 55)
|
||||
#define ActRemFolDocCrs (ActDowShaDeg+ 56)
|
||||
#define ActCopDocCrs (ActDowShaDeg+ 57)
|
||||
#define ActPasDocCrs (ActDowShaDeg+ 58)
|
||||
#define ActRemTreDocCrs (ActDowShaDeg+ 59)
|
||||
#define ActFrmCreDocCrs (ActDowShaDeg+ 60)
|
||||
#define ActCreFolDocCrs (ActDowShaDeg+ 61)
|
||||
#define ActCreLnkDocCrs (ActDowShaDeg+ 62)
|
||||
#define ActRenFolDocCrs (ActDowShaDeg+ 63)
|
||||
#define ActRcvFilDocCrsDZ (ActDowShaDeg+ 64)
|
||||
#define ActRcvFilDocCrsCla (ActDowShaDeg+ 65)
|
||||
#define ActExpAdmDocCrs (ActDowShaDeg+ 66)
|
||||
#define ActConAdmDocCrs (ActDowShaDeg+ 67)
|
||||
#define ActZIPAdmDocCrs (ActDowShaDeg+ 68)
|
||||
#define ActShoDocCrs (ActDowShaDeg+ 69)
|
||||
#define ActHidDocCrs (ActDowShaDeg+ 70)
|
||||
#define ActReqDatAdmDocCrs (ActDowShaDeg+ 71)
|
||||
#define ActChgDatAdmDocCrs (ActDowShaDeg+ 72)
|
||||
#define ActDowAdmDocCrs (ActDowShaDeg+ 73)
|
||||
#define ActChgToAdmDocCrs (ActDowShaDeg+ 53)
|
||||
#define ActAdmDocCrs (ActDowShaDeg+ 54)
|
||||
#define ActReqRemFilDocCrs (ActDowShaDeg+ 55)
|
||||
#define ActRemFilDocCrs (ActDowShaDeg+ 56)
|
||||
#define ActRemFolDocCrs (ActDowShaDeg+ 57)
|
||||
#define ActCopDocCrs (ActDowShaDeg+ 58)
|
||||
#define ActPasDocCrs (ActDowShaDeg+ 59)
|
||||
#define ActRemTreDocCrs (ActDowShaDeg+ 60)
|
||||
#define ActFrmCreDocCrs (ActDowShaDeg+ 61)
|
||||
#define ActCreFolDocCrs (ActDowShaDeg+ 62)
|
||||
#define ActCreLnkDocCrs (ActDowShaDeg+ 63)
|
||||
#define ActRenFolDocCrs (ActDowShaDeg+ 64)
|
||||
#define ActRcvFilDocCrsDZ (ActDowShaDeg+ 65)
|
||||
#define ActRcvFilDocCrsCla (ActDowShaDeg+ 66)
|
||||
#define ActExpAdmDocCrs (ActDowShaDeg+ 67)
|
||||
#define ActConAdmDocCrs (ActDowShaDeg+ 68)
|
||||
#define ActZIPAdmDocCrs (ActDowShaDeg+ 69)
|
||||
#define ActShoDocCrs (ActDowShaDeg+ 70)
|
||||
#define ActHidDocCrs (ActDowShaDeg+ 71)
|
||||
#define ActReqDatAdmDocCrs (ActDowShaDeg+ 72)
|
||||
#define ActChgDatAdmDocCrs (ActDowShaDeg+ 73)
|
||||
#define ActDowAdmDocCrs (ActDowShaDeg+ 74)
|
||||
|
||||
#define ActAdmDocGrp (ActDowShaDeg+ 74)
|
||||
#define ActReqRemFilDocGrp (ActDowShaDeg+ 75)
|
||||
#define ActRemFilDocGrp (ActDowShaDeg+ 76)
|
||||
#define ActRemFolDocGrp (ActDowShaDeg+ 77)
|
||||
#define ActCopDocGrp (ActDowShaDeg+ 78)
|
||||
#define ActPasDocGrp (ActDowShaDeg+ 79)
|
||||
#define ActRemTreDocGrp (ActDowShaDeg+ 80)
|
||||
#define ActFrmCreDocGrp (ActDowShaDeg+ 81)
|
||||
#define ActCreFolDocGrp (ActDowShaDeg+ 82)
|
||||
#define ActCreLnkDocGrp (ActDowShaDeg+ 83)
|
||||
#define ActRenFolDocGrp (ActDowShaDeg+ 84)
|
||||
#define ActRcvFilDocGrpDZ (ActDowShaDeg+ 85)
|
||||
#define ActRcvFilDocGrpCla (ActDowShaDeg+ 86)
|
||||
#define ActExpAdmDocGrp (ActDowShaDeg+ 87)
|
||||
#define ActConAdmDocGrp (ActDowShaDeg+ 88)
|
||||
#define ActZIPAdmDocGrp (ActDowShaDeg+ 89)
|
||||
#define ActShoDocGrp (ActDowShaDeg+ 90)
|
||||
#define ActHidDocGrp (ActDowShaDeg+ 91)
|
||||
#define ActReqDatAdmDocGrp (ActDowShaDeg+ 92)
|
||||
#define ActChgDatAdmDocGrp (ActDowShaDeg+ 93)
|
||||
#define ActDowAdmDocGrp (ActDowShaDeg+ 94)
|
||||
#define ActAdmDocGrp (ActDowShaDeg+ 75)
|
||||
#define ActReqRemFilDocGrp (ActDowShaDeg+ 76)
|
||||
#define ActRemFilDocGrp (ActDowShaDeg+ 77)
|
||||
#define ActRemFolDocGrp (ActDowShaDeg+ 78)
|
||||
#define ActCopDocGrp (ActDowShaDeg+ 79)
|
||||
#define ActPasDocGrp (ActDowShaDeg+ 80)
|
||||
#define ActRemTreDocGrp (ActDowShaDeg+ 81)
|
||||
#define ActFrmCreDocGrp (ActDowShaDeg+ 82)
|
||||
#define ActCreFolDocGrp (ActDowShaDeg+ 83)
|
||||
#define ActCreLnkDocGrp (ActDowShaDeg+ 84)
|
||||
#define ActRenFolDocGrp (ActDowShaDeg+ 85)
|
||||
#define ActRcvFilDocGrpDZ (ActDowShaDeg+ 86)
|
||||
#define ActRcvFilDocGrpCla (ActDowShaDeg+ 87)
|
||||
#define ActExpAdmDocGrp (ActDowShaDeg+ 88)
|
||||
#define ActConAdmDocGrp (ActDowShaDeg+ 89)
|
||||
#define ActZIPAdmDocGrp (ActDowShaDeg+ 90)
|
||||
#define ActShoDocGrp (ActDowShaDeg+ 91)
|
||||
#define ActHidDocGrp (ActDowShaDeg+ 92)
|
||||
#define ActReqDatAdmDocGrp (ActDowShaDeg+ 93)
|
||||
#define ActChgDatAdmDocGrp (ActDowShaDeg+ 94)
|
||||
#define ActDowAdmDocGrp (ActDowShaDeg+ 95)
|
||||
|
||||
#define ActChgToAdmTch (ActDowShaDeg+ 95)
|
||||
#define ActChgToAdmTch (ActDowShaDeg+ 96)
|
||||
|
||||
#define ActAdmTchCrs (ActDowShaDeg+ 96)
|
||||
#define ActReqRemFilTchCrs (ActDowShaDeg+ 97)
|
||||
#define ActRemFilTchCrs (ActDowShaDeg+ 98)
|
||||
#define ActRemFolTchCrs (ActDowShaDeg+ 99)
|
||||
#define ActCopTchCrs (ActDowShaDeg+100)
|
||||
#define ActPasTchCrs (ActDowShaDeg+101)
|
||||
#define ActRemTreTchCrs (ActDowShaDeg+102)
|
||||
#define ActFrmCreTchCrs (ActDowShaDeg+103)
|
||||
#define ActCreFolTchCrs (ActDowShaDeg+104)
|
||||
#define ActCreLnkTchCrs (ActDowShaDeg+105)
|
||||
#define ActRenFolTchCrs (ActDowShaDeg+106)
|
||||
#define ActRcvFilTchCrsDZ (ActDowShaDeg+107)
|
||||
#define ActRcvFilTchCrsCla (ActDowShaDeg+108)
|
||||
#define ActExpTchCrs (ActDowShaDeg+109)
|
||||
#define ActConTchCrs (ActDowShaDeg+110)
|
||||
#define ActZIPTchCrs (ActDowShaDeg+111)
|
||||
#define ActReqDatTchCrs (ActDowShaDeg+112)
|
||||
#define ActChgDatTchCrs (ActDowShaDeg+113)
|
||||
#define ActDowTchCrs (ActDowShaDeg+114)
|
||||
#define ActAdmTchCrs (ActDowShaDeg+ 97)
|
||||
#define ActReqRemFilTchCrs (ActDowShaDeg+ 98)
|
||||
#define ActRemFilTchCrs (ActDowShaDeg+ 99)
|
||||
#define ActRemFolTchCrs (ActDowShaDeg+100)
|
||||
#define ActCopTchCrs (ActDowShaDeg+101)
|
||||
#define ActPasTchCrs (ActDowShaDeg+102)
|
||||
#define ActRemTreTchCrs (ActDowShaDeg+103)
|
||||
#define ActFrmCreTchCrs (ActDowShaDeg+104)
|
||||
#define ActCreFolTchCrs (ActDowShaDeg+105)
|
||||
#define ActCreLnkTchCrs (ActDowShaDeg+106)
|
||||
#define ActRenFolTchCrs (ActDowShaDeg+107)
|
||||
#define ActRcvFilTchCrsDZ (ActDowShaDeg+108)
|
||||
#define ActRcvFilTchCrsCla (ActDowShaDeg+109)
|
||||
#define ActExpTchCrs (ActDowShaDeg+110)
|
||||
#define ActConTchCrs (ActDowShaDeg+111)
|
||||
#define ActZIPTchCrs (ActDowShaDeg+112)
|
||||
#define ActReqDatTchCrs (ActDowShaDeg+113)
|
||||
#define ActChgDatTchCrs (ActDowShaDeg+114)
|
||||
#define ActDowTchCrs (ActDowShaDeg+115)
|
||||
|
||||
#define ActAdmTchGrp (ActDowShaDeg+115)
|
||||
#define ActReqRemFilTchGrp (ActDowShaDeg+116)
|
||||
#define ActRemFilTchGrp (ActDowShaDeg+117)
|
||||
#define ActRemFolTchGrp (ActDowShaDeg+118)
|
||||
#define ActCopTchGrp (ActDowShaDeg+119)
|
||||
#define ActPasTchGrp (ActDowShaDeg+120)
|
||||
#define ActRemTreTchGrp (ActDowShaDeg+121)
|
||||
#define ActFrmCreTchGrp (ActDowShaDeg+122)
|
||||
#define ActCreFolTchGrp (ActDowShaDeg+123)
|
||||
#define ActCreLnkTchGrp (ActDowShaDeg+124)
|
||||
#define ActRenFolTchGrp (ActDowShaDeg+125)
|
||||
#define ActRcvFilTchGrpDZ (ActDowShaDeg+126)
|
||||
#define ActRcvFilTchGrpCla (ActDowShaDeg+127)
|
||||
#define ActExpTchGrp (ActDowShaDeg+128)
|
||||
#define ActConTchGrp (ActDowShaDeg+129)
|
||||
#define ActZIPTchGrp (ActDowShaDeg+130)
|
||||
#define ActReqDatTchGrp (ActDowShaDeg+131)
|
||||
#define ActChgDatTchGrp (ActDowShaDeg+132)
|
||||
#define ActDowTchGrp (ActDowShaDeg+133)
|
||||
#define ActAdmTchGrp (ActDowShaDeg+116)
|
||||
#define ActReqRemFilTchGrp (ActDowShaDeg+117)
|
||||
#define ActRemFilTchGrp (ActDowShaDeg+118)
|
||||
#define ActRemFolTchGrp (ActDowShaDeg+119)
|
||||
#define ActCopTchGrp (ActDowShaDeg+120)
|
||||
#define ActPasTchGrp (ActDowShaDeg+121)
|
||||
#define ActRemTreTchGrp (ActDowShaDeg+122)
|
||||
#define ActFrmCreTchGrp (ActDowShaDeg+123)
|
||||
#define ActCreFolTchGrp (ActDowShaDeg+124)
|
||||
#define ActCreLnkTchGrp (ActDowShaDeg+125)
|
||||
#define ActRenFolTchGrp (ActDowShaDeg+126)
|
||||
#define ActRcvFilTchGrpDZ (ActDowShaDeg+127)
|
||||
#define ActRcvFilTchGrpCla (ActDowShaDeg+128)
|
||||
#define ActExpTchGrp (ActDowShaDeg+129)
|
||||
#define ActConTchGrp (ActDowShaDeg+130)
|
||||
#define ActZIPTchGrp (ActDowShaDeg+131)
|
||||
#define ActReqDatTchGrp (ActDowShaDeg+132)
|
||||
#define ActChgDatTchGrp (ActDowShaDeg+133)
|
||||
#define ActDowTchGrp (ActDowShaDeg+134)
|
||||
|
||||
#define ActChgToAdmSha (ActDowShaDeg+134)
|
||||
#define ActChgToAdmSha (ActDowShaDeg+135)
|
||||
|
||||
#define ActAdmShaCrs (ActDowShaDeg+135)
|
||||
#define ActReqRemFilShaCrs (ActDowShaDeg+136)
|
||||
#define ActRemFilShaCrs (ActDowShaDeg+137)
|
||||
#define ActRemFolShaCrs (ActDowShaDeg+138)
|
||||
#define ActCopShaCrs (ActDowShaDeg+139)
|
||||
#define ActPasShaCrs (ActDowShaDeg+140)
|
||||
#define ActRemTreShaCrs (ActDowShaDeg+141)
|
||||
#define ActFrmCreShaCrs (ActDowShaDeg+142)
|
||||
#define ActCreFolShaCrs (ActDowShaDeg+143)
|
||||
#define ActCreLnkShaCrs (ActDowShaDeg+144)
|
||||
#define ActRenFolShaCrs (ActDowShaDeg+145)
|
||||
#define ActRcvFilShaCrsDZ (ActDowShaDeg+146)
|
||||
#define ActRcvFilShaCrsCla (ActDowShaDeg+147)
|
||||
#define ActExpShaCrs (ActDowShaDeg+148)
|
||||
#define ActConShaCrs (ActDowShaDeg+149)
|
||||
#define ActZIPShaCrs (ActDowShaDeg+150)
|
||||
#define ActReqDatShaCrs (ActDowShaDeg+151)
|
||||
#define ActChgDatShaCrs (ActDowShaDeg+152)
|
||||
#define ActDowShaCrs (ActDowShaDeg+153)
|
||||
#define ActAdmShaCrs (ActDowShaDeg+136)
|
||||
#define ActReqRemFilShaCrs (ActDowShaDeg+137)
|
||||
#define ActRemFilShaCrs (ActDowShaDeg+138)
|
||||
#define ActRemFolShaCrs (ActDowShaDeg+139)
|
||||
#define ActCopShaCrs (ActDowShaDeg+140)
|
||||
#define ActPasShaCrs (ActDowShaDeg+141)
|
||||
#define ActRemTreShaCrs (ActDowShaDeg+142)
|
||||
#define ActFrmCreShaCrs (ActDowShaDeg+143)
|
||||
#define ActCreFolShaCrs (ActDowShaDeg+144)
|
||||
#define ActCreLnkShaCrs (ActDowShaDeg+145)
|
||||
#define ActRenFolShaCrs (ActDowShaDeg+146)
|
||||
#define ActRcvFilShaCrsDZ (ActDowShaDeg+147)
|
||||
#define ActRcvFilShaCrsCla (ActDowShaDeg+148)
|
||||
#define ActExpShaCrs (ActDowShaDeg+149)
|
||||
#define ActConShaCrs (ActDowShaDeg+150)
|
||||
#define ActZIPShaCrs (ActDowShaDeg+151)
|
||||
#define ActReqDatShaCrs (ActDowShaDeg+152)
|
||||
#define ActChgDatShaCrs (ActDowShaDeg+153)
|
||||
#define ActDowShaCrs (ActDowShaDeg+154)
|
||||
|
||||
#define ActAdmShaGrp (ActDowShaDeg+154)
|
||||
#define ActReqRemFilShaGrp (ActDowShaDeg+155)
|
||||
#define ActRemFilShaGrp (ActDowShaDeg+156)
|
||||
#define ActRemFolShaGrp (ActDowShaDeg+157)
|
||||
#define ActCopShaGrp (ActDowShaDeg+158)
|
||||
#define ActPasShaGrp (ActDowShaDeg+159)
|
||||
#define ActRemTreShaGrp (ActDowShaDeg+160)
|
||||
#define ActFrmCreShaGrp (ActDowShaDeg+161)
|
||||
#define ActCreFolShaGrp (ActDowShaDeg+162)
|
||||
#define ActCreLnkShaGrp (ActDowShaDeg+163)
|
||||
#define ActRenFolShaGrp (ActDowShaDeg+164)
|
||||
#define ActRcvFilShaGrpDZ (ActDowShaDeg+165)
|
||||
#define ActRcvFilShaGrpCla (ActDowShaDeg+166)
|
||||
#define ActExpShaGrp (ActDowShaDeg+167)
|
||||
#define ActConShaGrp (ActDowShaDeg+168)
|
||||
#define ActZIPShaGrp (ActDowShaDeg+169)
|
||||
#define ActReqDatShaGrp (ActDowShaDeg+170)
|
||||
#define ActChgDatShaGrp (ActDowShaDeg+171)
|
||||
#define ActDowShaGrp (ActDowShaDeg+172)
|
||||
#define ActAdmShaGrp (ActDowShaDeg+155)
|
||||
#define ActReqRemFilShaGrp (ActDowShaDeg+156)
|
||||
#define ActRemFilShaGrp (ActDowShaDeg+157)
|
||||
#define ActRemFolShaGrp (ActDowShaDeg+158)
|
||||
#define ActCopShaGrp (ActDowShaDeg+159)
|
||||
#define ActPasShaGrp (ActDowShaDeg+160)
|
||||
#define ActRemTreShaGrp (ActDowShaDeg+161)
|
||||
#define ActFrmCreShaGrp (ActDowShaDeg+162)
|
||||
#define ActCreFolShaGrp (ActDowShaDeg+163)
|
||||
#define ActCreLnkShaGrp (ActDowShaDeg+164)
|
||||
#define ActRenFolShaGrp (ActDowShaDeg+165)
|
||||
#define ActRcvFilShaGrpDZ (ActDowShaDeg+166)
|
||||
#define ActRcvFilShaGrpCla (ActDowShaDeg+167)
|
||||
#define ActExpShaGrp (ActDowShaDeg+168)
|
||||
#define ActConShaGrp (ActDowShaDeg+169)
|
||||
#define ActZIPShaGrp (ActDowShaDeg+170)
|
||||
#define ActReqDatShaGrp (ActDowShaDeg+171)
|
||||
#define ActChgDatShaGrp (ActDowShaDeg+172)
|
||||
#define ActDowShaGrp (ActDowShaDeg+173)
|
||||
|
||||
#define ActEdiBib (ActDowShaDeg+173)
|
||||
#define ActEdiFAQ (ActDowShaDeg+174)
|
||||
#define ActEdiCrsLnk (ActDowShaDeg+175)
|
||||
#define ActEdiBib (ActDowShaDeg+174)
|
||||
#define ActEdiFAQ (ActDowShaDeg+175)
|
||||
#define ActEdiCrsLnk (ActDowShaDeg+176)
|
||||
|
||||
#define ActChgFrcReaCrsInf (ActDowShaDeg+176)
|
||||
#define ActChgFrcReaTchGui (ActDowShaDeg+177)
|
||||
#define ActChgFrcReaSylLec (ActDowShaDeg+178)
|
||||
#define ActChgFrcReaSylPra (ActDowShaDeg+179)
|
||||
#define ActChgFrcReaBib (ActDowShaDeg+180)
|
||||
#define ActChgFrcReaFAQ (ActDowShaDeg+181)
|
||||
#define ActChgFrcReaCrsLnk (ActDowShaDeg+182)
|
||||
#define ActChgFrcReaCrsInf (ActDowShaDeg+177)
|
||||
#define ActChgFrcReaTchGui (ActDowShaDeg+178)
|
||||
#define ActChgFrcReaSylLec (ActDowShaDeg+179)
|
||||
#define ActChgFrcReaSylPra (ActDowShaDeg+180)
|
||||
#define ActChgFrcReaBib (ActDowShaDeg+181)
|
||||
#define ActChgFrcReaFAQ (ActDowShaDeg+182)
|
||||
#define ActChgFrcReaCrsLnk (ActDowShaDeg+183)
|
||||
|
||||
#define ActChgHavReaCrsInf (ActDowShaDeg+183)
|
||||
#define ActChgHavReaTchGui (ActDowShaDeg+184)
|
||||
#define ActChgHavReaSylLec (ActDowShaDeg+185)
|
||||
#define ActChgHavReaSylPra (ActDowShaDeg+186)
|
||||
#define ActChgHavReaBib (ActDowShaDeg+187)
|
||||
#define ActChgHavReaFAQ (ActDowShaDeg+188)
|
||||
#define ActChgHavReaCrsLnk (ActDowShaDeg+189)
|
||||
#define ActChgHavReaCrsInf (ActDowShaDeg+184)
|
||||
#define ActChgHavReaTchGui (ActDowShaDeg+185)
|
||||
#define ActChgHavReaSylLec (ActDowShaDeg+186)
|
||||
#define ActChgHavReaSylPra (ActDowShaDeg+187)
|
||||
#define ActChgHavReaBib (ActDowShaDeg+188)
|
||||
#define ActChgHavReaFAQ (ActDowShaDeg+189)
|
||||
#define ActChgHavReaCrsLnk (ActDowShaDeg+190)
|
||||
|
||||
#define ActSelInfSrcCrsInf (ActDowShaDeg+190)
|
||||
#define ActSelInfSrcTchGui (ActDowShaDeg+191)
|
||||
#define ActSelInfSrcSylLec (ActDowShaDeg+192)
|
||||
#define ActSelInfSrcSylPra (ActDowShaDeg+193)
|
||||
#define ActSelInfSrcBib (ActDowShaDeg+194)
|
||||
#define ActSelInfSrcFAQ (ActDowShaDeg+195)
|
||||
#define ActSelInfSrcCrsLnk (ActDowShaDeg+196)
|
||||
#define ActRcvURLCrsInf (ActDowShaDeg+197)
|
||||
#define ActRcvURLTchGui (ActDowShaDeg+198)
|
||||
#define ActRcvURLSylLec (ActDowShaDeg+199)
|
||||
#define ActRcvURLSylPra (ActDowShaDeg+200)
|
||||
#define ActRcvURLBib (ActDowShaDeg+201)
|
||||
#define ActRcvURLFAQ (ActDowShaDeg+202)
|
||||
#define ActRcvURLCrsLnk (ActDowShaDeg+203)
|
||||
#define ActRcvPagCrsInf (ActDowShaDeg+204)
|
||||
#define ActRcvPagTchGui (ActDowShaDeg+205)
|
||||
#define ActRcvPagSylLec (ActDowShaDeg+206)
|
||||
#define ActRcvPagSylPra (ActDowShaDeg+207)
|
||||
#define ActRcvPagBib (ActDowShaDeg+208)
|
||||
#define ActRcvPagFAQ (ActDowShaDeg+209)
|
||||
#define ActRcvPagCrsLnk (ActDowShaDeg+210)
|
||||
#define ActEditorCrsInf (ActDowShaDeg+211)
|
||||
#define ActEditorTchGui (ActDowShaDeg+212)
|
||||
#define ActEditorSylLec (ActDowShaDeg+213)
|
||||
#define ActEditorSylPra (ActDowShaDeg+214)
|
||||
#define ActEditorBib (ActDowShaDeg+215)
|
||||
#define ActEditorFAQ (ActDowShaDeg+216)
|
||||
#define ActEditorCrsLnk (ActDowShaDeg+217)
|
||||
#define ActPlaTxtEdiCrsInf (ActDowShaDeg+218)
|
||||
#define ActPlaTxtEdiTchGui (ActDowShaDeg+219)
|
||||
#define ActPlaTxtEdiSylLec (ActDowShaDeg+220)
|
||||
#define ActPlaTxtEdiSylPra (ActDowShaDeg+221)
|
||||
#define ActPlaTxtEdiBib (ActDowShaDeg+222)
|
||||
#define ActPlaTxtEdiFAQ (ActDowShaDeg+223)
|
||||
#define ActPlaTxtEdiCrsLnk (ActDowShaDeg+224)
|
||||
#define ActRchTxtEdiCrsInf (ActDowShaDeg+225)
|
||||
#define ActRchTxtEdiTchGui (ActDowShaDeg+226)
|
||||
#define ActRchTxtEdiSylLec (ActDowShaDeg+227)
|
||||
#define ActRchTxtEdiSylPra (ActDowShaDeg+228)
|
||||
#define ActRchTxtEdiBib (ActDowShaDeg+229)
|
||||
#define ActRchTxtEdiFAQ (ActDowShaDeg+230)
|
||||
#define ActRchTxtEdiCrsLnk (ActDowShaDeg+231)
|
||||
#define ActRcvPlaTxtCrsInf (ActDowShaDeg+232)
|
||||
#define ActRcvPlaTxtTchGui (ActDowShaDeg+233)
|
||||
#define ActRcvPlaTxtSylLec (ActDowShaDeg+234)
|
||||
#define ActRcvPlaTxtSylPra (ActDowShaDeg+235)
|
||||
#define ActRcvPlaTxtBib (ActDowShaDeg+236)
|
||||
#define ActRcvPlaTxtFAQ (ActDowShaDeg+237)
|
||||
#define ActRcvPlaTxtCrsLnk (ActDowShaDeg+238)
|
||||
#define ActRcvRchTxtCrsInf (ActDowShaDeg+239)
|
||||
#define ActRcvRchTxtTchGui (ActDowShaDeg+240)
|
||||
#define ActRcvRchTxtSylLec (ActDowShaDeg+241)
|
||||
#define ActRcvRchTxtSylPra (ActDowShaDeg+242)
|
||||
#define ActRcvRchTxtBib (ActDowShaDeg+243)
|
||||
#define ActRcvRchTxtFAQ (ActDowShaDeg+244)
|
||||
#define ActRcvRchTxtCrsLnk (ActDowShaDeg+245)
|
||||
#define ActSelInfSrcCrsInf (ActDowShaDeg+191)
|
||||
#define ActSelInfSrcTchGui (ActDowShaDeg+192)
|
||||
#define ActSelInfSrcSylLec (ActDowShaDeg+193)
|
||||
#define ActSelInfSrcSylPra (ActDowShaDeg+194)
|
||||
#define ActSelInfSrcBib (ActDowShaDeg+195)
|
||||
#define ActSelInfSrcFAQ (ActDowShaDeg+196)
|
||||
#define ActSelInfSrcCrsLnk (ActDowShaDeg+197)
|
||||
#define ActRcvURLCrsInf (ActDowShaDeg+198)
|
||||
#define ActRcvURLTchGui (ActDowShaDeg+199)
|
||||
#define ActRcvURLSylLec (ActDowShaDeg+200)
|
||||
#define ActRcvURLSylPra (ActDowShaDeg+201)
|
||||
#define ActRcvURLBib (ActDowShaDeg+202)
|
||||
#define ActRcvURLFAQ (ActDowShaDeg+203)
|
||||
#define ActRcvURLCrsLnk (ActDowShaDeg+204)
|
||||
#define ActRcvPagCrsInf (ActDowShaDeg+205)
|
||||
#define ActRcvPagTchGui (ActDowShaDeg+206)
|
||||
#define ActRcvPagSylLec (ActDowShaDeg+207)
|
||||
#define ActRcvPagSylPra (ActDowShaDeg+208)
|
||||
#define ActRcvPagBib (ActDowShaDeg+209)
|
||||
#define ActRcvPagFAQ (ActDowShaDeg+210)
|
||||
#define ActRcvPagCrsLnk (ActDowShaDeg+211)
|
||||
#define ActEditorCrsInf (ActDowShaDeg+212)
|
||||
#define ActEditorTchGui (ActDowShaDeg+213)
|
||||
#define ActEditorSylLec (ActDowShaDeg+214)
|
||||
#define ActEditorSylPra (ActDowShaDeg+215)
|
||||
#define ActEditorBib (ActDowShaDeg+216)
|
||||
#define ActEditorFAQ (ActDowShaDeg+217)
|
||||
#define ActEditorCrsLnk (ActDowShaDeg+218)
|
||||
#define ActPlaTxtEdiCrsInf (ActDowShaDeg+219)
|
||||
#define ActPlaTxtEdiTchGui (ActDowShaDeg+220)
|
||||
#define ActPlaTxtEdiSylLec (ActDowShaDeg+221)
|
||||
#define ActPlaTxtEdiSylPra (ActDowShaDeg+222)
|
||||
#define ActPlaTxtEdiBib (ActDowShaDeg+223)
|
||||
#define ActPlaTxtEdiFAQ (ActDowShaDeg+224)
|
||||
#define ActPlaTxtEdiCrsLnk (ActDowShaDeg+225)
|
||||
#define ActRchTxtEdiCrsInf (ActDowShaDeg+226)
|
||||
#define ActRchTxtEdiTchGui (ActDowShaDeg+227)
|
||||
#define ActRchTxtEdiSylLec (ActDowShaDeg+228)
|
||||
#define ActRchTxtEdiSylPra (ActDowShaDeg+229)
|
||||
#define ActRchTxtEdiBib (ActDowShaDeg+230)
|
||||
#define ActRchTxtEdiFAQ (ActDowShaDeg+231)
|
||||
#define ActRchTxtEdiCrsLnk (ActDowShaDeg+232)
|
||||
#define ActRcvPlaTxtCrsInf (ActDowShaDeg+233)
|
||||
#define ActRcvPlaTxtTchGui (ActDowShaDeg+234)
|
||||
#define ActRcvPlaTxtSylLec (ActDowShaDeg+235)
|
||||
#define ActRcvPlaTxtSylPra (ActDowShaDeg+236)
|
||||
#define ActRcvPlaTxtBib (ActDowShaDeg+237)
|
||||
#define ActRcvPlaTxtFAQ (ActDowShaDeg+238)
|
||||
#define ActRcvPlaTxtCrsLnk (ActDowShaDeg+239)
|
||||
#define ActRcvRchTxtCrsInf (ActDowShaDeg+240)
|
||||
#define ActRcvRchTxtTchGui (ActDowShaDeg+241)
|
||||
#define ActRcvRchTxtSylLec (ActDowShaDeg+242)
|
||||
#define ActRcvRchTxtSylPra (ActDowShaDeg+243)
|
||||
#define ActRcvRchTxtBib (ActDowShaDeg+244)
|
||||
#define ActRcvRchTxtFAQ (ActDowShaDeg+245)
|
||||
#define ActRcvRchTxtCrsLnk (ActDowShaDeg+246)
|
||||
|
||||
/*****************************************************************************/
|
||||
/***************************** Assessment tab ********************************/
|
||||
|
|
|
@ -135,13 +135,20 @@
|
|||
/****************************** Public constants *****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
#define Log_PLATFORM_VERSION "SWAD 15.222.6 (2016-06-11)"
|
||||
#define Log_PLATFORM_VERSION "SWAD 15.223 (2016-06-12)"
|
||||
#define CSS_FILE "swad15.218.css"
|
||||
#define JS_FILE "swad15.216.js"
|
||||
|
||||
// Number of lines (includes comments but not blank lines) has been got with the following command:
|
||||
// nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*.h sql/swad*.sql | tail -1
|
||||
/*
|
||||
Version 15.223: Jun 12, 2016 New forms to change course configuration. (202268 lines)
|
||||
4 changes necessary in database:
|
||||
UPDATE actions SET Txt='Cambiar cód. institucional asignatura' WHERE ActCod='1024' AND Language='es';
|
||||
UPDATE actions SET Txt='Cambiar cód. institucional asignatura' WHERE ActCod='1025' AND Language='es';
|
||||
UPDATE actions SET Txt='Cambiar año/semestre asignatura' WHERE ActCod='561' AND Language='es';
|
||||
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1573','es','N','Cambiar año/semestre asignatura');
|
||||
|
||||
Version 15.222.6: Jun 11, 2016 Fixed layout in students column in result of search of teachers. (202214 lines)
|
||||
Version 15.222.5: Jun 10, 2016 Indicators of a course are always calculated and stored in course configuration. (202214 lines)
|
||||
Version 15.222.4: Jun 09, 2016 Code refactoring in indicators. (202208 lines)
|
||||
|
|
211
swad_course.c
211
swad_course.c
|
@ -95,6 +95,9 @@ static void Crs_GetParamsNewCourse (struct Course *Crs);
|
|||
static bool Crs_CheckIfCourseNameExistsInCourses (long DegCod,unsigned Year,const char *FieldName,const char *Name,long CrsCod);
|
||||
static void Crs_CreateCourse (struct Course *Crs,unsigned Status);
|
||||
static void Crs_GetDataOfCourseFromRow (struct Course *Crs,MYSQL_ROW row);
|
||||
|
||||
static void Crs_UpdateCrsYear (struct Course *Crs,unsigned NewYear);
|
||||
|
||||
static void Crs_EmptyCourseCompletely (long CrsCod);
|
||||
static bool Crs_RenameCourse (struct Course *Crs,Cns_ShortOrFullName_t ShortOrFullName);
|
||||
static void Crs_PutButtonToGoToCrs (struct Course *Crs);
|
||||
|
@ -141,7 +144,7 @@ void Crs_PrintConfiguration (void)
|
|||
|
||||
static void Crs_Configuration (bool PrintView)
|
||||
{
|
||||
extern struct Act_Actions Act_Actions[Act_NUM_ACTIONS];
|
||||
// extern struct Act_Actions Act_Actions[Act_NUM_ACTIONS];
|
||||
extern const char *The_ClassForm[The_NUM_THEMES];
|
||||
extern const char *Txt_Course;
|
||||
extern const char *Txt_Short_name;
|
||||
|
@ -156,7 +159,6 @@ static void Crs_Configuration (bool PrintView)
|
|||
extern const char *Txt_ROLES_PLURAL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
|
||||
extern const char *Txt_Indicators;
|
||||
extern const char *Txt_of_PART_OF_A_TOTAL;
|
||||
extern const char *Txt_Save;
|
||||
unsigned Year;
|
||||
int NumIndicatorsFromDB;
|
||||
struct Ind_IndicatorsCrs Indicators;
|
||||
|
@ -195,10 +197,6 @@ static void Crs_Configuration (bool PrintView)
|
|||
"</div>",
|
||||
Gbl.CurrentCrs.Crs.FullName);
|
||||
|
||||
/***** Start form *****/
|
||||
if (IsForm)
|
||||
Act_FormStart (ActChgCrsLog);
|
||||
|
||||
/***** Start table *****/
|
||||
fprintf (Gbl.F.Out,"<table class=\"FRAME_TABLE CELLS_PAD_2\">");
|
||||
|
||||
|
@ -238,7 +236,10 @@ static void Crs_Configuration (bool PrintView)
|
|||
Txt_Year_OF_A_DEGREE);
|
||||
if (IsForm)
|
||||
{
|
||||
fprintf (Gbl.F.Out,"<select name=\"OthCrsYear\">");
|
||||
Act_FormStart (ActChgCrsYeaCfg);
|
||||
fprintf (Gbl.F.Out,"<select name=\"OthCrsYear\""
|
||||
" onchange=\"document.getElementById('%s').submit();\">",
|
||||
Gbl.Form.Id);
|
||||
for (Year = 0;
|
||||
Year <= Deg_MAX_YEARS_PER_DEGREE;
|
||||
Year++)
|
||||
|
@ -248,6 +249,7 @@ static void Crs_Configuration (bool PrintView)
|
|||
"",
|
||||
Txt_YEAR_OF_DEGREE[Year]);
|
||||
fprintf (Gbl.F.Out,"</select>");
|
||||
Act_FormEnd ();
|
||||
}
|
||||
else
|
||||
fprintf (Gbl.F.Out,"%s",
|
||||
|
@ -267,11 +269,17 @@ static void Crs_Configuration (bool PrintView)
|
|||
The_ClassForm[Gbl.Prefs.Theme],
|
||||
Txt_Institutional_code);
|
||||
if (IsForm)
|
||||
{
|
||||
Act_FormStart (ActChgInsCrsCodCfg);
|
||||
fprintf (Gbl.F.Out,"<input type=\"text\" name=\"InsCrsCod\""
|
||||
" size=\"%u\" maxlength=\"%u\" value=\"%s\" />",
|
||||
" size=\"%u\" maxlength=\"%u\" value=\"%s\""
|
||||
" onchange=\"document.getElementById('%s').submit();\" />",
|
||||
Crs_LENGTH_INSTITUTIONAL_CRS_COD,
|
||||
Crs_LENGTH_INSTITUTIONAL_CRS_COD,
|
||||
Gbl.CurrentCrs.Crs.InstitutionalCrsCod);
|
||||
Gbl.CurrentCrs.Crs.InstitutionalCrsCod,
|
||||
Gbl.Form.Id);
|
||||
Act_FormEnd ();
|
||||
}
|
||||
else
|
||||
fprintf (Gbl.F.Out,"%s",Gbl.CurrentCrs.Crs.InstitutionalCrsCod);
|
||||
fprintf (Gbl.F.Out,"</td>"
|
||||
|
@ -358,36 +366,29 @@ static void Crs_Configuration (bool PrintView)
|
|||
"<td class=\"%s RIGHT_MIDDLE\">"
|
||||
"%s:"
|
||||
"</td>"
|
||||
"<td class=\"DAT LEFT_MIDDLE\">"
|
||||
"<a href=\"%s/?crs=%ld&act=%ld\" target=\"_blank\" class=\"DAT\">"
|
||||
"%u %s %u "
|
||||
"<img src=\"%s/%s16x16.gif\""
|
||||
" alt=\"%u %s %u\" title=\"%u %s %u\""
|
||||
" class=\"ICON20x20\" />"
|
||||
"</a>"
|
||||
"</td>"
|
||||
"</tr>",
|
||||
"<td class=\"LEFT_MIDDLE\">",
|
||||
The_ClassForm[Gbl.Prefs.Theme],
|
||||
Txt_Indicators,
|
||||
Cfg_HTTPS_URL_SWAD_CGI,Gbl.CurrentCrs.Crs.CrsCod,Act_Actions[ActReqStaCrs].ActCod,
|
||||
Indicators.NumIndicators,Txt_of_PART_OF_A_TOTAL,Ind_NUM_INDICATORS,
|
||||
Txt_Indicators);
|
||||
Act_FormStart (ActReqStaCrs);
|
||||
sprintf (Gbl.Title,"%u %s %u",
|
||||
Indicators.NumIndicators,Txt_of_PART_OF_A_TOTAL,Ind_NUM_INDICATORS);
|
||||
Act_LinkFormSubmit (Gbl.Title,"DAT");
|
||||
fprintf (Gbl.F.Out,"%s "
|
||||
"<img src=\"%s/%s16x16.gif\" alt=\"%s\""
|
||||
" class=\"ICON20x20\" />",
|
||||
Gbl.Title,
|
||||
Gbl.Prefs.IconsURL,
|
||||
(Indicators.NumIndicators == Ind_NUM_INDICATORS) ? "ok_green" :
|
||||
"warning",
|
||||
Indicators.NumIndicators,Txt_of_PART_OF_A_TOTAL,Ind_NUM_INDICATORS,
|
||||
Indicators.NumIndicators,Txt_of_PART_OF_A_TOTAL,Ind_NUM_INDICATORS);
|
||||
Gbl.Title);
|
||||
Act_FormEnd ();
|
||||
fprintf (Gbl.F.Out,"</td>"
|
||||
"</tr>");
|
||||
}
|
||||
|
||||
/***** End table *****/
|
||||
fprintf (Gbl.F.Out,"</table>");
|
||||
|
||||
/***** Send button and end form *****/
|
||||
if (IsForm)
|
||||
{
|
||||
Lay_PutConfirmButton (Txt_Save);
|
||||
Act_FormEnd ();
|
||||
}
|
||||
|
||||
/***** End frame *****/
|
||||
Lay_EndRoundFrame ();
|
||||
}
|
||||
|
@ -403,41 +404,6 @@ static void Crs_PutIconToPrint (void)
|
|||
Lay_PutContextualLink (ActPrnCrsInf,NULL,"print64x64.png",Txt_Print,NULL);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/******************** Change the configuration of a course *******************/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Crs_ChangeCourseConfig (void)
|
||||
{
|
||||
extern const char *Txt_The_configuration_of_the_course_X_has_been_updated;
|
||||
char Query[512];
|
||||
char YearStr[2+1];
|
||||
|
||||
/***** Get parameters from form *****/
|
||||
/* Get institutional code */
|
||||
Par_GetParToText ("InsCrsCod",Gbl.CurrentCrs.Crs.InstitutionalCrsCod,Crs_LENGTH_INSTITUTIONAL_CRS_COD);
|
||||
|
||||
/* Get year */
|
||||
Par_GetParToText ("OthCrsYear",YearStr,2);
|
||||
Gbl.CurrentCrs.Crs.Year = Deg_ConvStrToYear (YearStr);
|
||||
|
||||
/***** Update table of degree types *****/
|
||||
sprintf (Query,"UPDATE courses SET InsCrsCod='%s',Year='%u'"
|
||||
" WHERE CrsCod='%ld'",
|
||||
Gbl.CurrentCrs.Crs.InstitutionalCrsCod,
|
||||
Gbl.CurrentCrs.Crs.Year,
|
||||
Gbl.CurrentCrs.Crs.CrsCod);
|
||||
DB_QueryUPDATE (Query,"can not update the configuration of a course");
|
||||
|
||||
/***** Write message to show the change made *****/
|
||||
sprintf (Gbl.Message,Txt_The_configuration_of_the_course_X_has_been_updated,
|
||||
Gbl.CurrentCrs.Crs.ShortName);
|
||||
Lay_ShowAlert (Lay_SUCCESS,Gbl.Message);
|
||||
|
||||
/***** Show the form again *****/
|
||||
Crs_ShowIntroduction ();
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/************************ Write menu with my courses *************************/
|
||||
/*****************************************************************************/
|
||||
|
@ -738,6 +704,21 @@ static void Crs_WriteListMyCoursesToSelectOne (void)
|
|||
Lay_EndRoundFrame ();
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/** Show message of success after changing a course in course configuration **/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Crs_ContEditAfterChgCrsInConfig (void)
|
||||
{
|
||||
/***** Write error/success message *****/
|
||||
Lay_ShowAlert (Gbl.Error ? Lay_WARNING :
|
||||
Lay_SUCCESS,
|
||||
Gbl.Message);
|
||||
|
||||
/***** Show the form again *****/
|
||||
Crs_ShowIntroduction ();
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/*********************** Get total number of courses *************************/
|
||||
/*****************************************************************************/
|
||||
|
@ -2291,6 +2272,33 @@ static void Crs_EmptyCourseCompletely (long CrsCod)
|
|||
Brw_RemoveTree (PathRelCrs);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/***** Change the institutional code of a course in course configuration *****/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Crs_ChangeInsCrsCodInConfig (void)
|
||||
{
|
||||
extern const char *Txt_The_institutional_code_of_the_course_X_has_changed_to_Y;
|
||||
extern const char *Txt_The_institutional_code_of_the_course_X_has_not_changed;
|
||||
extern const char *Txt_You_dont_have_permission_to_edit_this_course;
|
||||
char NewInstitutionalCrsCod[Crs_LENGTH_INSTITUTIONAL_CRS_COD+1];
|
||||
|
||||
/***** Get institutional code from form *****/
|
||||
Par_GetParToText ("InsCrsCod",NewInstitutionalCrsCod,Crs_LENGTH_INSTITUTIONAL_CRS_COD);
|
||||
|
||||
/***** Change the institutional course code *****/
|
||||
if (strcmp (NewInstitutionalCrsCod,Gbl.CurrentCrs.Crs.InstitutionalCrsCod))
|
||||
{
|
||||
Crs_UpdateInstitutionalCrsCod (&Gbl.CurrentCrs.Crs,NewInstitutionalCrsCod);
|
||||
|
||||
sprintf (Gbl.Message,Txt_The_institutional_code_of_the_course_X_has_changed_to_Y,
|
||||
Gbl.CurrentCrs.Crs.ShortName,NewInstitutionalCrsCod);
|
||||
}
|
||||
else // The same institutional code
|
||||
sprintf (Gbl.Message,Txt_The_institutional_code_of_the_course_X_has_not_changed,
|
||||
Gbl.CurrentCrs.Crs.ShortName);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/************** Change the institutional code of a course ********************/
|
||||
/*****************************************************************************/
|
||||
|
@ -2423,6 +2431,55 @@ void Crs_ChangeCrsDegree (void)
|
|||
}
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/*********** Change the year of a course in course configuration *************/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Crs_ChangeCrsYearInConfig (void)
|
||||
{
|
||||
extern const char *Txt_The_course_X_already_exists_in_year_Y;
|
||||
extern const char *Txt_YEAR_OF_DEGREE[1+Deg_MAX_YEARS_PER_DEGREE];
|
||||
extern const char *Txt_The_year_of_the_course_X_has_changed;
|
||||
extern const char *Txt_The_year_X_is_not_allowed;
|
||||
char YearStr[2+1];
|
||||
unsigned NewYear;
|
||||
|
||||
/***** Get parameter with year/semester *****/
|
||||
Par_GetParToText ("OthCrsYear",YearStr,2);
|
||||
NewYear = Deg_ConvStrToYear (YearStr);
|
||||
|
||||
if (NewYear <= Deg_MAX_YEARS_PER_DEGREE) // If year is valid
|
||||
{
|
||||
/***** If name of course was in database in the new year... *****/
|
||||
if (Crs_CheckIfCourseNameExistsInCourses (Gbl.CurrentCrs.Crs.DegCod,NewYear,"ShortName",Gbl.CurrentCrs.Crs.ShortName,-1L))
|
||||
{
|
||||
sprintf (Gbl.Message,Txt_The_course_X_already_exists_in_year_Y,
|
||||
Gbl.CurrentCrs.Crs.ShortName,Txt_YEAR_OF_DEGREE[NewYear]);
|
||||
Gbl.Error = true;
|
||||
}
|
||||
else if (Crs_CheckIfCourseNameExistsInCourses (Gbl.CurrentCrs.Crs.DegCod,NewYear,"FullName",Gbl.CurrentCrs.Crs.FullName,-1L))
|
||||
{
|
||||
sprintf (Gbl.Message,Txt_The_course_X_already_exists_in_year_Y,
|
||||
Gbl.CurrentCrs.Crs.FullName,Txt_YEAR_OF_DEGREE[NewYear]);
|
||||
Gbl.Error = true;
|
||||
}
|
||||
else // Update year in database
|
||||
{
|
||||
/***** Update year in table of courses *****/
|
||||
Crs_UpdateCrsYear (&Gbl.CurrentCrs.Crs,NewYear);
|
||||
|
||||
/***** Create message to show the change made *****/
|
||||
sprintf (Gbl.Message,Txt_The_year_of_the_course_X_has_changed,
|
||||
Gbl.CurrentCrs.Crs.ShortName);
|
||||
}
|
||||
}
|
||||
else // Year not valid
|
||||
{
|
||||
sprintf (Gbl.Message,Txt_The_year_X_is_not_allowed,NewYear);
|
||||
Gbl.Error = true;
|
||||
}
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/************************ Change the year of a course ************************/
|
||||
/*****************************************************************************/
|
||||
|
@ -2436,7 +2493,6 @@ void Crs_ChangeCrsYear (void)
|
|||
extern const char *Txt_You_dont_have_permission_to_edit_this_course;
|
||||
struct Course *Crs;
|
||||
struct Degree Deg;
|
||||
char Query[512];
|
||||
char YearStr[2+1];
|
||||
unsigned NewYear;
|
||||
|
||||
|
@ -2476,11 +2532,7 @@ void Crs_ChangeCrsYear (void)
|
|||
else // Update year in database
|
||||
{
|
||||
/***** Update year in table of courses *****/
|
||||
sprintf (Query,"UPDATE courses SET Year='%u' WHERE CrsCod='%ld'",
|
||||
NewYear,Crs->CrsCod);
|
||||
DB_QueryUPDATE (Query,"can not update the year of a course");
|
||||
|
||||
Crs->Year = NewYear;
|
||||
Crs_UpdateCrsYear (Crs,NewYear);
|
||||
|
||||
/***** Create message to show the change made *****/
|
||||
sprintf (Gbl.Message,Txt_The_year_of_the_course_X_has_changed,
|
||||
|
@ -2500,6 +2552,23 @@ void Crs_ChangeCrsYear (void)
|
|||
}
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/****************** Change the year/semester of a course *********************/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Crs_UpdateCrsYear (struct Course *Crs,unsigned NewYear)
|
||||
{
|
||||
char Query[128];
|
||||
|
||||
/***** Update year/semester in table of courses *****/
|
||||
sprintf (Query,"UPDATE courses SET Year='%u' WHERE CrsCod='%ld'",
|
||||
NewYear,Gbl.CurrentCrs.Crs.CrsCod);
|
||||
DB_QueryUPDATE (Query,"can not update the year of a course");
|
||||
|
||||
/***** Copy couese year/semester *****/
|
||||
Crs->Year = NewYear;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/************* Change the institutional course code of a course **************/
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -93,7 +93,7 @@ struct Course
|
|||
|
||||
void Crs_ShowIntroduction (void);
|
||||
void Crs_PrintConfiguration (void);
|
||||
void Crs_ChangeCourseConfig (void);
|
||||
void Crs_ContEditAfterChgCrsInConfig (void);
|
||||
|
||||
unsigned Crs_GetNumCrssTotal (void);
|
||||
unsigned Crs_GetNumCrssInCty (long CtyCod);
|
||||
|
@ -116,8 +116,10 @@ void Crs_RemoveCourse (void);
|
|||
bool Crs_GetDataOfCourseByCod (struct Course *Crs);
|
||||
void Crs_GetShortNamesByCod (long CrsCod,char *CrsShortName,char *DegShortName);
|
||||
void Crs_RemoveCourseCompletely (long CrsCod);
|
||||
void Crs_ChangeInsCrsCodInConfig (void);
|
||||
void Crs_ChangeInsCrsCod (void);
|
||||
void Crs_ChangeCrsDegree (void);
|
||||
void Crs_ChangeCrsYearInConfig (void);
|
||||
void Crs_ChangeCrsYear (void);
|
||||
void Crs_UpdateInstitutionalCrsCod (struct Course *Crs,const char *NewInstitutionalCrsCod);
|
||||
void Crs_RenameCourseShort (void);
|
||||
|
|
21
swad_text.c
21
swad_text.c
|
@ -41199,27 +41199,6 @@ const char *Txt_The_centre_X_has_been_renamed_as_Y = // Warning: it is very impo
|
|||
"The centre <strong>%s</strong> has been renamed as <strong>%s</strong>."; // Necessita de tradução
|
||||
#endif
|
||||
|
||||
const char *Txt_The_configuration_of_the_course_X_has_been_updated = // Warning: it is very important to include %s in the following sentences
|
||||
#if L==1
|
||||
"La configuración de la asignatura <strong>%s</strong> se ha actualizado."; // Necessita traduccio
|
||||
#elif L==2
|
||||
"The configuration of the course <strong>%s</strong> has been updated."; // Need Übersetzung
|
||||
#elif L==3
|
||||
"The configuration of the course <strong>%s</strong> has been updated.";
|
||||
#elif L==4
|
||||
"La configuración de la asignatura <strong>%s</strong> se ha actualizado.";
|
||||
#elif L==5
|
||||
"The configuration of the course <strong>%s</strong> has been updated."; // Besoin de traduction
|
||||
#elif L==6
|
||||
"La configuración de la asignatura <strong>%s</strong> se ha actualizado."; // Okoteve traducción
|
||||
#elif L==7
|
||||
"La configurazione del corso <strong>%s</strong> è stata aggiornata.";
|
||||
#elif L==8
|
||||
"The configuration of the course <strong>%s</strong> has been updated."; // Potrzebujesz tlumaczenie
|
||||
#elif L==9
|
||||
"The configuration of the course <strong>%s</strong> has been updated."; // Necessita de tradução
|
||||
#endif
|
||||
|
||||
const char *Txt_The_contents_of_the_folder_are_too_big =
|
||||
#if L==1
|
||||
"El contingut de la carpeta és massa gran.";
|
||||
|
|
Loading…
Reference in New Issue