mirror of https://github.com/acanas/swad-core.git
Version 18.27.6
This commit is contained in:
parent
3cb1af22de
commit
263cba3b88
|
@ -1083,23 +1083,24 @@ Users:
|
|||
|
||||
891. ActChgGrp Change my groups
|
||||
892. ActReqEdiGrp Request the edition of groups
|
||||
893. ActNewGrpTyp Request the creation of a type of group of students
|
||||
894. ActReqRemGrpTyp Request the removal of a type of group of students
|
||||
893. ActNewGrpTyp Request the creation of a type of group
|
||||
894. ActReqRemGrpTyp Request the removal of a type of group
|
||||
895. ActRemGrpTyp Remove a type of group of students
|
||||
896. ActRenGrpTyp Request renaming of a type of group of students
|
||||
897. ActChgMdtGrpTyp Request change if it is mandatory to register in groups of a type
|
||||
898. ActChgMulGrpTyp Request change if it is possible to register in multiple groups of a type
|
||||
899. ActChgTimGrpTyp Request change when the groups of a type will be open
|
||||
900. ActNewGrp Request the creation of a group of students
|
||||
901. ActReqRemGrp Request the removal of a group of students
|
||||
902. ActRemGrp Remove a group of students
|
||||
903. ActOpeGrp Abrir a group of students
|
||||
904. ActCloGrp Cerrar a group of students
|
||||
905. ActEnaFilZonGrp Enable zonas of files of a group
|
||||
906. ActDisFilZonGrp Disable zonas of files of a group
|
||||
907. ActChgGrpTyp Request change in the type of group of students
|
||||
908. ActRenGrp Request renaming of a group of students
|
||||
909. ActChgMaxStdGrp Request change in the number máximo of students of a group
|
||||
900. ActNewGrp Request the creation of a group
|
||||
901. ActReqRemGrp Request the removal of a group
|
||||
902. ActRemGrp Remove a group
|
||||
903. ActOpeGrp Open a group
|
||||
904. ActCloGrp Close a group
|
||||
905. ActEnaFilZonGrp Enable filezones of a group
|
||||
906. ActDisFilZonGrp Disable filezones of a group
|
||||
907. ActChgGrpTyp Change the type of group of a group
|
||||
908. ActRenGrp Rename a group
|
||||
NEW. ActChgGrpCla Change the classroom of a group
|
||||
909. ActChgMaxStdGrp Change the maximum number of students in a group
|
||||
|
||||
910. ActLstGst List main data of administrators
|
||||
|
||||
|
@ -2669,6 +2670,7 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
|
|||
/* ActDisFilZonGrp */{ 496,-1,TabUnk,ActReqSelGrp ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Grp_DisableFileZonesGrp ,NULL},
|
||||
/* ActChgGrpTyp */{ 167,-1,TabUnk,ActReqSelGrp ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Grp_ChangeGroupType ,NULL},
|
||||
/* ActRenGrp */{ 121,-1,TabUnk,ActReqSelGrp ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Grp_RenameGroup ,NULL},
|
||||
/* ActChgGrpCla */{1752,-1,TabUnk,ActReqSelGrp ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Grp_ChangeGroupClassroom ,NULL},
|
||||
/* ActChgMaxStdGrp */{ 106,-1,TabUnk,ActReqSelGrp ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Grp_ChangeMaxStdsGrp ,NULL},
|
||||
|
||||
/* ActLstGst */{ 587,-1,TabUnk,ActLstOth ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Usr_SeeGuests ,NULL},
|
||||
|
@ -4958,6 +4960,7 @@ Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD] = // Do not reuse un
|
|||
ActRenClaFul, // #1749
|
||||
ActChgClaMaxStd, // #1750
|
||||
ActRenClaLoc, // #1751
|
||||
ActChgGrpCla, // #1752
|
||||
};
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
283
swad_action.h
283
swad_action.h
|
@ -61,9 +61,9 @@ typedef enum
|
|||
|
||||
typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to indicate obsolete action
|
||||
|
||||
#define Act_NUM_ACTIONS (1 + 9 + 43 + 17 + 47 + 41 + 24 + 115 + 157 + 437 + 165 + 172 + 42 + 14 + 76)
|
||||
#define Act_NUM_ACTIONS (1 + 9 + 43 + 17 + 47 + 41 + 24 + 115 + 157 + 437 + 166 + 172 + 42 + 14 + 76)
|
||||
|
||||
#define Act_MAX_ACTION_COD 1751
|
||||
#define Act_MAX_ACTION_COD 1752
|
||||
|
||||
#define Act_MAX_OPTIONS_IN_MENU_PER_TAB 13
|
||||
|
||||
|
@ -1113,167 +1113,168 @@ typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to
|
|||
#define ActDisFilZonGrp (ActRemOldBrf + 24)
|
||||
#define ActChgGrpTyp (ActRemOldBrf + 25)
|
||||
#define ActRenGrp (ActRemOldBrf + 26)
|
||||
#define ActChgMaxStdGrp (ActRemOldBrf + 27)
|
||||
#define ActChgGrpCla (ActRemOldBrf + 27)
|
||||
#define ActChgMaxStdGrp (ActRemOldBrf + 28)
|
||||
|
||||
#define ActLstGst (ActRemOldBrf + 28)
|
||||
#define ActLstGst (ActRemOldBrf + 29)
|
||||
|
||||
#define ActPrnGstPho (ActRemOldBrf + 29)
|
||||
#define ActPrnStdPho (ActRemOldBrf + 30)
|
||||
#define ActPrnTchPho (ActRemOldBrf + 31)
|
||||
#define ActLstGstAll (ActRemOldBrf + 32)
|
||||
#define ActLstStdAll (ActRemOldBrf + 33)
|
||||
#define ActLstTchAll (ActRemOldBrf + 34)
|
||||
#define ActPrnGstPho (ActRemOldBrf + 30)
|
||||
#define ActPrnStdPho (ActRemOldBrf + 31)
|
||||
#define ActPrnTchPho (ActRemOldBrf + 32)
|
||||
#define ActLstGstAll (ActRemOldBrf + 33)
|
||||
#define ActLstStdAll (ActRemOldBrf + 34)
|
||||
#define ActLstTchAll (ActRemOldBrf + 35)
|
||||
|
||||
#define ActSeeRecOneStd (ActRemOldBrf + 35)
|
||||
#define ActSeeRecOneTch (ActRemOldBrf + 36)
|
||||
#define ActSeeRecSevGst (ActRemOldBrf + 37)
|
||||
#define ActSeeRecSevStd (ActRemOldBrf + 38)
|
||||
#define ActSeeRecSevTch (ActRemOldBrf + 39)
|
||||
#define ActPrnRecSevGst (ActRemOldBrf + 40)
|
||||
#define ActPrnRecSevStd (ActRemOldBrf + 41)
|
||||
#define ActPrnRecSevTch (ActRemOldBrf + 42)
|
||||
#define ActRcvRecOthUsr (ActRemOldBrf + 43)
|
||||
#define ActEdiRecFie (ActRemOldBrf + 44)
|
||||
#define ActNewFie (ActRemOldBrf + 45)
|
||||
#define ActReqRemFie (ActRemOldBrf + 46)
|
||||
#define ActRemFie (ActRemOldBrf + 47)
|
||||
#define ActRenFie (ActRemOldBrf + 48)
|
||||
#define ActChgRowFie (ActRemOldBrf + 49)
|
||||
#define ActChgVisFie (ActRemOldBrf + 50)
|
||||
#define ActRcvRecCrs (ActRemOldBrf + 51)
|
||||
#define ActSeeRecOneStd (ActRemOldBrf + 36)
|
||||
#define ActSeeRecOneTch (ActRemOldBrf + 37)
|
||||
#define ActSeeRecSevGst (ActRemOldBrf + 38)
|
||||
#define ActSeeRecSevStd (ActRemOldBrf + 39)
|
||||
#define ActSeeRecSevTch (ActRemOldBrf + 40)
|
||||
#define ActPrnRecSevGst (ActRemOldBrf + 41)
|
||||
#define ActPrnRecSevStd (ActRemOldBrf + 42)
|
||||
#define ActPrnRecSevTch (ActRemOldBrf + 43)
|
||||
#define ActRcvRecOthUsr (ActRemOldBrf + 44)
|
||||
#define ActEdiRecFie (ActRemOldBrf + 45)
|
||||
#define ActNewFie (ActRemOldBrf + 46)
|
||||
#define ActReqRemFie (ActRemOldBrf + 47)
|
||||
#define ActRemFie (ActRemOldBrf + 48)
|
||||
#define ActRenFie (ActRemOldBrf + 49)
|
||||
#define ActChgRowFie (ActRemOldBrf + 50)
|
||||
#define ActChgVisFie (ActRemOldBrf + 51)
|
||||
#define ActRcvRecCrs (ActRemOldBrf + 52)
|
||||
|
||||
#define ActFrmLogInUsrAgd (ActRemOldBrf + 52)
|
||||
#define ActLogInUsrAgd (ActRemOldBrf + 53)
|
||||
#define ActLogInUsrAgdLan (ActRemOldBrf + 54)
|
||||
#define ActSeeUsrAgd (ActRemOldBrf + 55)
|
||||
#define ActFrmLogInUsrAgd (ActRemOldBrf + 53)
|
||||
#define ActLogInUsrAgd (ActRemOldBrf + 54)
|
||||
#define ActLogInUsrAgdLan (ActRemOldBrf + 55)
|
||||
#define ActSeeUsrAgd (ActRemOldBrf + 56)
|
||||
|
||||
#define ActReqEnrSevStd (ActRemOldBrf + 56)
|
||||
#define ActReqEnrSevNET (ActRemOldBrf + 57)
|
||||
#define ActReqEnrSevTch (ActRemOldBrf + 58)
|
||||
#define ActReqEnrSevStd (ActRemOldBrf + 57)
|
||||
#define ActReqEnrSevNET (ActRemOldBrf + 58)
|
||||
#define ActReqEnrSevTch (ActRemOldBrf + 59)
|
||||
|
||||
#define ActReqLstStdAtt (ActRemOldBrf + 59)
|
||||
#define ActSeeLstMyAtt (ActRemOldBrf + 60)
|
||||
#define ActPrnLstMyAtt (ActRemOldBrf + 61)
|
||||
#define ActSeeLstStdAtt (ActRemOldBrf + 62)
|
||||
#define ActPrnLstStdAtt (ActRemOldBrf + 63)
|
||||
#define ActFrmNewAtt (ActRemOldBrf + 64)
|
||||
#define ActEdiOneAtt (ActRemOldBrf + 65)
|
||||
#define ActNewAtt (ActRemOldBrf + 66)
|
||||
#define ActChgAtt (ActRemOldBrf + 67)
|
||||
#define ActReqRemAtt (ActRemOldBrf + 68)
|
||||
#define ActRemAtt (ActRemOldBrf + 69)
|
||||
#define ActHidAtt (ActRemOldBrf + 70)
|
||||
#define ActShoAtt (ActRemOldBrf + 71)
|
||||
#define ActSeeOneAtt (ActRemOldBrf + 72)
|
||||
#define ActRecAttStd (ActRemOldBrf + 73)
|
||||
#define ActRecAttMe (ActRemOldBrf + 74)
|
||||
#define ActReqLstStdAtt (ActRemOldBrf + 60)
|
||||
#define ActSeeLstMyAtt (ActRemOldBrf + 61)
|
||||
#define ActPrnLstMyAtt (ActRemOldBrf + 62)
|
||||
#define ActSeeLstStdAtt (ActRemOldBrf + 63)
|
||||
#define ActPrnLstStdAtt (ActRemOldBrf + 64)
|
||||
#define ActFrmNewAtt (ActRemOldBrf + 65)
|
||||
#define ActEdiOneAtt (ActRemOldBrf + 66)
|
||||
#define ActNewAtt (ActRemOldBrf + 67)
|
||||
#define ActChgAtt (ActRemOldBrf + 68)
|
||||
#define ActReqRemAtt (ActRemOldBrf + 69)
|
||||
#define ActRemAtt (ActRemOldBrf + 70)
|
||||
#define ActHidAtt (ActRemOldBrf + 71)
|
||||
#define ActShoAtt (ActRemOldBrf + 72)
|
||||
#define ActSeeOneAtt (ActRemOldBrf + 73)
|
||||
#define ActRecAttStd (ActRemOldBrf + 74)
|
||||
#define ActRecAttMe (ActRemOldBrf + 75)
|
||||
|
||||
#define ActSignUp (ActRemOldBrf + 75)
|
||||
#define ActUpdSignUpReq (ActRemOldBrf + 76)
|
||||
#define ActReqRejSignUp (ActRemOldBrf + 77)
|
||||
#define ActRejSignUp (ActRemOldBrf + 78)
|
||||
#define ActSignUp (ActRemOldBrf + 76)
|
||||
#define ActUpdSignUpReq (ActRemOldBrf + 77)
|
||||
#define ActReqRejSignUp (ActRemOldBrf + 78)
|
||||
#define ActRejSignUp (ActRemOldBrf + 79)
|
||||
|
||||
#define ActReqMdfOneOth (ActRemOldBrf + 79)
|
||||
#define ActReqMdfOneStd (ActRemOldBrf + 80)
|
||||
#define ActReqMdfOneTch (ActRemOldBrf + 81)
|
||||
#define ActReqMdfOneOth (ActRemOldBrf + 80)
|
||||
#define ActReqMdfOneStd (ActRemOldBrf + 81)
|
||||
#define ActReqMdfOneTch (ActRemOldBrf + 82)
|
||||
|
||||
#define ActReqMdfOth (ActRemOldBrf + 82)
|
||||
#define ActReqMdfStd (ActRemOldBrf + 83)
|
||||
#define ActReqMdfNET (ActRemOldBrf + 84)
|
||||
#define ActReqMdfTch (ActRemOldBrf + 85)
|
||||
#define ActReqMdfOth (ActRemOldBrf + 83)
|
||||
#define ActReqMdfStd (ActRemOldBrf + 84)
|
||||
#define ActReqMdfNET (ActRemOldBrf + 85)
|
||||
#define ActReqMdfTch (ActRemOldBrf + 86)
|
||||
|
||||
#define ActReqOthPho (ActRemOldBrf + 86)
|
||||
#define ActReqStdPho (ActRemOldBrf + 87)
|
||||
#define ActReqTchPho (ActRemOldBrf + 88)
|
||||
#define ActDetOthPho (ActRemOldBrf + 89)
|
||||
#define ActDetStdPho (ActRemOldBrf + 90)
|
||||
#define ActDetTchPho (ActRemOldBrf + 91)
|
||||
#define ActUpdOthPho (ActRemOldBrf + 92)
|
||||
#define ActUpdStdPho (ActRemOldBrf + 93)
|
||||
#define ActUpdTchPho (ActRemOldBrf + 94)
|
||||
#define ActReqRemOthPho (ActRemOldBrf + 95)
|
||||
#define ActReqRemStdPho (ActRemOldBrf + 96)
|
||||
#define ActReqRemTchPho (ActRemOldBrf + 97)
|
||||
#define ActRemOthPho (ActRemOldBrf + 98)
|
||||
#define ActRemStdPho (ActRemOldBrf + 99)
|
||||
#define ActRemTchPho (ActRemOldBrf + 100)
|
||||
#define ActCreOth (ActRemOldBrf + 101)
|
||||
#define ActCreStd (ActRemOldBrf + 102)
|
||||
#define ActCreNET (ActRemOldBrf + 103)
|
||||
#define ActCreTch (ActRemOldBrf + 104)
|
||||
#define ActUpdOth (ActRemOldBrf + 105)
|
||||
#define ActUpdStd (ActRemOldBrf + 106)
|
||||
#define ActUpdNET (ActRemOldBrf + 107)
|
||||
#define ActUpdTch (ActRemOldBrf + 108)
|
||||
#define ActReqOthPho (ActRemOldBrf + 87)
|
||||
#define ActReqStdPho (ActRemOldBrf + 88)
|
||||
#define ActReqTchPho (ActRemOldBrf + 89)
|
||||
#define ActDetOthPho (ActRemOldBrf + 90)
|
||||
#define ActDetStdPho (ActRemOldBrf + 91)
|
||||
#define ActDetTchPho (ActRemOldBrf + 92)
|
||||
#define ActUpdOthPho (ActRemOldBrf + 93)
|
||||
#define ActUpdStdPho (ActRemOldBrf + 94)
|
||||
#define ActUpdTchPho (ActRemOldBrf + 95)
|
||||
#define ActReqRemOthPho (ActRemOldBrf + 96)
|
||||
#define ActReqRemStdPho (ActRemOldBrf + 97)
|
||||
#define ActReqRemTchPho (ActRemOldBrf + 98)
|
||||
#define ActRemOthPho (ActRemOldBrf + 99)
|
||||
#define ActRemStdPho (ActRemOldBrf + 100)
|
||||
#define ActRemTchPho (ActRemOldBrf + 101)
|
||||
#define ActCreOth (ActRemOldBrf + 102)
|
||||
#define ActCreStd (ActRemOldBrf + 103)
|
||||
#define ActCreNET (ActRemOldBrf + 104)
|
||||
#define ActCreTch (ActRemOldBrf + 105)
|
||||
#define ActUpdOth (ActRemOldBrf + 106)
|
||||
#define ActUpdStd (ActRemOldBrf + 107)
|
||||
#define ActUpdNET (ActRemOldBrf + 108)
|
||||
#define ActUpdTch (ActRemOldBrf + 109)
|
||||
|
||||
#define ActReqAccEnrStd (ActRemOldBrf + 109)
|
||||
#define ActReqAccEnrNET (ActRemOldBrf + 110)
|
||||
#define ActReqAccEnrTch (ActRemOldBrf + 111)
|
||||
#define ActAccEnrStd (ActRemOldBrf + 112)
|
||||
#define ActAccEnrNET (ActRemOldBrf + 113)
|
||||
#define ActAccEnrTch (ActRemOldBrf + 114)
|
||||
#define ActRemMe_Std (ActRemOldBrf + 115)
|
||||
#define ActRemMe_NET (ActRemOldBrf + 116)
|
||||
#define ActRemMe_Tch (ActRemOldBrf + 117)
|
||||
#define ActReqAccEnrStd (ActRemOldBrf + 110)
|
||||
#define ActReqAccEnrNET (ActRemOldBrf + 111)
|
||||
#define ActReqAccEnrTch (ActRemOldBrf + 112)
|
||||
#define ActAccEnrStd (ActRemOldBrf + 113)
|
||||
#define ActAccEnrNET (ActRemOldBrf + 114)
|
||||
#define ActAccEnrTch (ActRemOldBrf + 115)
|
||||
#define ActRemMe_Std (ActRemOldBrf + 116)
|
||||
#define ActRemMe_NET (ActRemOldBrf + 117)
|
||||
#define ActRemMe_Tch (ActRemOldBrf + 118)
|
||||
|
||||
#define ActNewAdmIns (ActRemOldBrf + 118)
|
||||
#define ActRemAdmIns (ActRemOldBrf + 119)
|
||||
#define ActNewAdmCtr (ActRemOldBrf + 120)
|
||||
#define ActRemAdmCtr (ActRemOldBrf + 121)
|
||||
#define ActNewAdmDeg (ActRemOldBrf + 122)
|
||||
#define ActRemAdmDeg (ActRemOldBrf + 123)
|
||||
#define ActNewAdmIns (ActRemOldBrf + 119)
|
||||
#define ActRemAdmIns (ActRemOldBrf + 120)
|
||||
#define ActNewAdmCtr (ActRemOldBrf + 121)
|
||||
#define ActRemAdmCtr (ActRemOldBrf + 122)
|
||||
#define ActNewAdmDeg (ActRemOldBrf + 123)
|
||||
#define ActRemAdmDeg (ActRemOldBrf + 124)
|
||||
|
||||
#define ActRcvFrmEnrSevStd (ActRemOldBrf + 124)
|
||||
#define ActRcvFrmEnrSevNET (ActRemOldBrf + 125)
|
||||
#define ActRcvFrmEnrSevTch (ActRemOldBrf + 126)
|
||||
#define ActRcvFrmEnrSevStd (ActRemOldBrf + 125)
|
||||
#define ActRcvFrmEnrSevNET (ActRemOldBrf + 126)
|
||||
#define ActRcvFrmEnrSevTch (ActRemOldBrf + 127)
|
||||
|
||||
#define ActCnfID_Oth (ActRemOldBrf + 127)
|
||||
#define ActCnfID_Std (ActRemOldBrf + 128)
|
||||
#define ActCnfID_Tch (ActRemOldBrf + 129)
|
||||
#define ActCnfID_Oth (ActRemOldBrf + 128)
|
||||
#define ActCnfID_Std (ActRemOldBrf + 129)
|
||||
#define ActCnfID_Tch (ActRemOldBrf + 130)
|
||||
|
||||
#define ActFrmAccOth (ActRemOldBrf + 130)
|
||||
#define ActFrmAccStd (ActRemOldBrf + 131)
|
||||
#define ActFrmAccTch (ActRemOldBrf + 132)
|
||||
#define ActFrmAccOth (ActRemOldBrf + 131)
|
||||
#define ActFrmAccStd (ActRemOldBrf + 132)
|
||||
#define ActFrmAccTch (ActRemOldBrf + 133)
|
||||
|
||||
#define ActRemOldNicOth (ActRemOldBrf + 133)
|
||||
#define ActRemOldNicStd (ActRemOldBrf + 134)
|
||||
#define ActRemOldNicTch (ActRemOldBrf + 135)
|
||||
#define ActChgNicOth (ActRemOldBrf + 136)
|
||||
#define ActChgNicStd (ActRemOldBrf + 137)
|
||||
#define ActChgNicTch (ActRemOldBrf + 138)
|
||||
#define ActRemOldNicOth (ActRemOldBrf + 134)
|
||||
#define ActRemOldNicStd (ActRemOldBrf + 135)
|
||||
#define ActRemOldNicTch (ActRemOldBrf + 136)
|
||||
#define ActChgNicOth (ActRemOldBrf + 137)
|
||||
#define ActChgNicStd (ActRemOldBrf + 138)
|
||||
#define ActChgNicTch (ActRemOldBrf + 139)
|
||||
|
||||
#define ActRemID_Oth (ActRemOldBrf + 139)
|
||||
#define ActRemID_Std (ActRemOldBrf + 140)
|
||||
#define ActRemID_Tch (ActRemOldBrf + 141)
|
||||
#define ActNewID_Oth (ActRemOldBrf + 142)
|
||||
#define ActNewID_Std (ActRemOldBrf + 143)
|
||||
#define ActNewID_Tch (ActRemOldBrf + 144)
|
||||
#define ActChgPwdOth (ActRemOldBrf + 145)
|
||||
#define ActChgPwdStd (ActRemOldBrf + 146)
|
||||
#define ActChgPwdTch (ActRemOldBrf + 147)
|
||||
#define ActRemMaiOth (ActRemOldBrf + 148)
|
||||
#define ActRemMaiStd (ActRemOldBrf + 149)
|
||||
#define ActRemMaiTch (ActRemOldBrf + 150)
|
||||
#define ActNewMaiOth (ActRemOldBrf + 151)
|
||||
#define ActNewMaiStd (ActRemOldBrf + 152)
|
||||
#define ActNewMaiTch (ActRemOldBrf + 153)
|
||||
#define ActRemID_Oth (ActRemOldBrf + 140)
|
||||
#define ActRemID_Std (ActRemOldBrf + 141)
|
||||
#define ActRemID_Tch (ActRemOldBrf + 142)
|
||||
#define ActNewID_Oth (ActRemOldBrf + 143)
|
||||
#define ActNewID_Std (ActRemOldBrf + 144)
|
||||
#define ActNewID_Tch (ActRemOldBrf + 145)
|
||||
#define ActChgPwdOth (ActRemOldBrf + 146)
|
||||
#define ActChgPwdStd (ActRemOldBrf + 147)
|
||||
#define ActChgPwdTch (ActRemOldBrf + 148)
|
||||
#define ActRemMaiOth (ActRemOldBrf + 149)
|
||||
#define ActRemMaiStd (ActRemOldBrf + 150)
|
||||
#define ActRemMaiTch (ActRemOldBrf + 151)
|
||||
#define ActNewMaiOth (ActRemOldBrf + 152)
|
||||
#define ActNewMaiStd (ActRemOldBrf + 153)
|
||||
#define ActNewMaiTch (ActRemOldBrf + 154)
|
||||
|
||||
#define ActRemStdCrs (ActRemOldBrf + 154)
|
||||
#define ActRemNETCrs (ActRemOldBrf + 155)
|
||||
#define ActRemTchCrs (ActRemOldBrf + 156)
|
||||
#define ActRemUsrGbl (ActRemOldBrf + 157)
|
||||
#define ActRemStdCrs (ActRemOldBrf + 155)
|
||||
#define ActRemNETCrs (ActRemOldBrf + 156)
|
||||
#define ActRemTchCrs (ActRemOldBrf + 157)
|
||||
#define ActRemUsrGbl (ActRemOldBrf + 158)
|
||||
|
||||
#define ActReqRemAllStdCrs (ActRemOldBrf + 158)
|
||||
#define ActRemAllStdCrs (ActRemOldBrf + 159)
|
||||
#define ActReqRemAllStdCrs (ActRemOldBrf + 159)
|
||||
#define ActRemAllStdCrs (ActRemOldBrf + 160)
|
||||
|
||||
#define ActReqRemOldUsr (ActRemOldBrf + 160)
|
||||
#define ActRemOldUsr (ActRemOldBrf + 161)
|
||||
#define ActReqRemOldUsr (ActRemOldBrf + 161)
|
||||
#define ActRemOldUsr (ActRemOldBrf + 162)
|
||||
|
||||
#define ActLstDupUsr (ActRemOldBrf + 162)
|
||||
#define ActLstSimUsr (ActRemOldBrf + 163)
|
||||
#define ActRemDupUsr (ActRemOldBrf + 164)
|
||||
#define ActLstDupUsr (ActRemOldBrf + 163)
|
||||
#define ActLstSimUsr (ActRemOldBrf + 164)
|
||||
#define ActRemDupUsr (ActRemOldBrf + 165)
|
||||
|
||||
#define ActLstClk (ActRemOldBrf + 165)
|
||||
#define ActLstClk (ActRemOldBrf + 166)
|
||||
|
||||
/*****************************************************************************/
|
||||
/******************************** Social tab *********************************/
|
||||
|
|
|
@ -343,7 +343,7 @@ Buenos d
|
|||
|
||||
// TODO: No se puede pulsar sobre la foto de un remitente de un mensaje recibido.
|
||||
|
||||
// TODO: Que un grupo tenga asociado un lugar, como un aula, así al hacer un evento de asistencia, podría tener por defecto el lugar asignado al grupo elegido.
|
||||
// TODO: Al crear un evento de asistencia, podría tener por defecto el aula asignada al grupo elegido.
|
||||
|
||||
/*****************************************************************************/
|
||||
/****************************** Public constants *****************************/
|
||||
|
@ -364,10 +364,11 @@ En OpenSWAD:
|
|||
ps2pdf source.ps destination.pdf
|
||||
*/
|
||||
|
||||
#define Log_PLATFORM_VERSION "SWAD 18.27.5 (2019-01-04)"
|
||||
#define Log_PLATFORM_VERSION "SWAD 18.27.6 (2019-01-04)"
|
||||
#define CSS_FILE "swad18.22.css"
|
||||
#define JS_FILE "swad17.17.1.js"
|
||||
/*
|
||||
Version 18.27.6: Jan 04, 2019 Selection of classroom in form to edit group. (239099 lines)
|
||||
Version 18.27.5: Jan 04, 2019 Selection of classroom in form to create group. (238964 lines)
|
||||
Version 18.27.4: Jan 04, 2019 New field in groups table to select a classroom. (238881 lines)
|
||||
1 change necessary in database:
|
||||
|
|
|
@ -329,6 +329,7 @@ void Gbl_InitializeGlobals (void)
|
|||
Gbl.CurrentCrs.Grps.GrpTyp.OpenTimeUTC = (time_t) 0;
|
||||
Gbl.CurrentCrs.Grps.GrpCod = -1L; // -1L stands for the whole course
|
||||
Gbl.CurrentCrs.Grps.GrpName[0] = '\0';
|
||||
Gbl.CurrentCrs.Grps.ClaCod = -1L; // -1L stands for no classroom assigned
|
||||
Gbl.CurrentCrs.Grps.MaxStudents = Grp_NUM_STUDENTS_NOT_LIMITED;
|
||||
Gbl.CurrentCrs.Grps.Open = false;
|
||||
Gbl.CurrentCrs.Grps.LstGrpsSel.GrpCods = NULL;
|
||||
|
|
144
swad_group.c
144
swad_group.c
|
@ -1499,9 +1499,12 @@ static void Grp_ListGroupsForEdition (void)
|
|||
extern const char *Txt_Group_X_closed_click_to_open_it;
|
||||
extern const char *Txt_File_zones_of_the_group_X_enabled_click_to_disable_them;
|
||||
extern const char *Txt_File_zones_of_the_group_X_disabled_click_to_enable_them;
|
||||
extern const char *Txt_No_assigned_classroom;
|
||||
extern const char *Txt_Another_classroom;
|
||||
unsigned NumGrpTyp;
|
||||
unsigned NumTipGrpAux;
|
||||
unsigned NumGrpThisType;
|
||||
unsigned NumCla;
|
||||
struct GroupType *GrpTyp;
|
||||
struct GroupType *GrpTypAux;
|
||||
struct Group *Grp;
|
||||
|
@ -1523,7 +1526,7 @@ static void Grp_ListGroupsForEdition (void)
|
|||
{
|
||||
Grp = &(GrpTyp->LstGrps[NumGrpThisType]);
|
||||
|
||||
/* Write icon to remove group */
|
||||
/***** Icon to remove group *****/
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
"<td class=\"BM\">");
|
||||
Frm_StartFormAnchor (ActReqRemGrp,Grp_GROUPS_SECTION_ID);
|
||||
|
@ -1532,7 +1535,7 @@ static void Grp_ListGroupsForEdition (void)
|
|||
Frm_EndForm ();
|
||||
fprintf (Gbl.F.Out,"</td>");
|
||||
|
||||
/* Write icon to open/close group */
|
||||
/***** Icon to open/close group *****/
|
||||
fprintf (Gbl.F.Out,"<td class=\"BM\">");
|
||||
Frm_StartFormAnchor (Grp->Open ? ActCloGrp :
|
||||
ActOpeGrp,
|
||||
|
@ -1553,7 +1556,7 @@ static void Grp_ListGroupsForEdition (void)
|
|||
Frm_EndForm ();
|
||||
fprintf (Gbl.F.Out,"</td>");
|
||||
|
||||
/* Write icon to activate file zones for this group */
|
||||
/***** Icon to activate file zones for this group *****/
|
||||
fprintf (Gbl.F.Out,"<td class=\"BM\">");
|
||||
Frm_StartFormAnchor (Grp->FileZones ? ActDisFilZonGrp :
|
||||
ActEnaFilZonGrp,
|
||||
|
@ -1574,13 +1577,16 @@ static void Grp_ListGroupsForEdition (void)
|
|||
Frm_EndForm ();
|
||||
fprintf (Gbl.F.Out,"</td>");
|
||||
|
||||
/* Group type */
|
||||
/***** Group type *****/
|
||||
/* Start selector */
|
||||
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">");
|
||||
Frm_StartFormAnchor (ActChgGrpTyp,Grp_GROUPS_SECTION_ID);
|
||||
Grp_PutParamGrpCod (Grp->GrpCod);
|
||||
fprintf (Gbl.F.Out,"<select name=\"GrpTypCod\" style=\"width:100px;\""
|
||||
" onchange=\"document.getElementById('%s').submit();\">",
|
||||
Gbl.Form.Id);
|
||||
|
||||
/* Options for group types */
|
||||
for (NumTipGrpAux = 0;
|
||||
NumTipGrpAux < Gbl.CurrentCrs.Grps.GrpTypes.Num;
|
||||
NumTipGrpAux++)
|
||||
|
@ -1591,11 +1597,13 @@ static void Grp_ListGroupsForEdition (void)
|
|||
fprintf (Gbl.F.Out," selected=\"selected\"");
|
||||
fprintf (Gbl.F.Out,">%s</option>",GrpTypAux->GrpTypName);
|
||||
}
|
||||
|
||||
/* End selector */
|
||||
fprintf (Gbl.F.Out,"</select>");
|
||||
Frm_EndForm ();
|
||||
fprintf (Gbl.F.Out,"</td>");
|
||||
|
||||
/* Group name */
|
||||
/***** Group name *****/
|
||||
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">");
|
||||
Frm_StartFormAnchor (ActRenGrp,Grp_GROUPS_SECTION_ID);
|
||||
Grp_PutParamGrpCod (Grp->GrpCod);
|
||||
|
@ -1606,7 +1614,48 @@ static void Grp_ListGroupsForEdition (void)
|
|||
Frm_EndForm ();
|
||||
fprintf (Gbl.F.Out,"</td>");
|
||||
|
||||
/* Current number of users in this group */
|
||||
/***** Classroom *****/
|
||||
/* Start selector */
|
||||
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">");
|
||||
Frm_StartFormAnchor (ActChgGrpCla,Grp_GROUPS_SECTION_ID);
|
||||
Grp_PutParamGrpCod (Grp->GrpCod);
|
||||
fprintf (Gbl.F.Out,"<select name=\"ClaCod\" style=\"width:100px;\""
|
||||
" onchange=\"document.getElementById('%s').submit();\">",
|
||||
Gbl.Form.Id);
|
||||
|
||||
/* Option for no assigned classroom */
|
||||
fprintf (Gbl.F.Out,"<option value=\"-1\"");
|
||||
if (Grp->ClaCod < 0)
|
||||
fprintf (Gbl.F.Out," selected=\"selected\"");
|
||||
fprintf (Gbl.F.Out,">%s</option>",
|
||||
Txt_No_assigned_classroom);
|
||||
|
||||
/* Option for another classroom */
|
||||
fprintf (Gbl.F.Out,"<option value=\"0\"");
|
||||
if (Grp->ClaCod == 0)
|
||||
fprintf (Gbl.F.Out," selected=\"selected\"");
|
||||
fprintf (Gbl.F.Out,">%s</option>",
|
||||
Txt_Another_classroom);
|
||||
|
||||
/* Options for classrooms */
|
||||
for (NumCla = 0;
|
||||
NumCla < Gbl.Classrooms.Num;
|
||||
NumCla++)
|
||||
{
|
||||
fprintf (Gbl.F.Out,"<option value=\"%ld\"",
|
||||
Gbl.Classrooms.Lst[NumCla].ClaCod);
|
||||
if (Gbl.Classrooms.Lst[NumCla].ClaCod == Grp->ClaCod)
|
||||
fprintf (Gbl.F.Out," selected=\"selected\"");
|
||||
fprintf (Gbl.F.Out,">%s</option>",
|
||||
Gbl.Classrooms.Lst[NumCla].ShrtName);
|
||||
}
|
||||
|
||||
/* End selector */
|
||||
fprintf (Gbl.F.Out,"</select>");
|
||||
Frm_EndForm ();
|
||||
fprintf (Gbl.F.Out,"</td>");
|
||||
|
||||
/***** Current number of users in this group *****/
|
||||
for (Role = Rol_TCH;
|
||||
Role >= Rol_STD;
|
||||
Role--)
|
||||
|
@ -1615,7 +1664,7 @@ static void Grp_ListGroupsForEdition (void)
|
|||
"</td>",
|
||||
Grp->NumUsrs[Role]);
|
||||
|
||||
/* Maximum number of students of the group (row[3]) */
|
||||
/***** Maximum number of students of the group (row[3]) *****/
|
||||
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">");
|
||||
Frm_StartFormAnchor (ActChgMaxStdGrp,Grp_GROUPS_SECTION_ID);
|
||||
Grp_PutParamGrpCod (Grp->GrpCod);
|
||||
|
@ -2594,6 +2643,7 @@ static void Grp_PutFormToCreateGroup (void)
|
|||
extern const char *Txt_New_group;
|
||||
extern const char *Txt_Group_closed;
|
||||
extern const char *Txt_File_zones_disabled;
|
||||
extern const char *Txt_No_assigned_classroom;
|
||||
extern const char *Txt_Another_classroom;
|
||||
extern const char *Txt_Create_group;
|
||||
unsigned NumGrpTyp;
|
||||
|
@ -2632,19 +2682,25 @@ static void Grp_PutFormToCreateGroup (void)
|
|||
Txt_File_zones_disabled);
|
||||
|
||||
/***** Group type *****/
|
||||
/* Start selector */
|
||||
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
|
||||
"<select name=\"GrpTypCod\" style=\"width:100px;\">");
|
||||
|
||||
/* Options for group types */
|
||||
for (NumGrpTyp = 0;
|
||||
NumGrpTyp < Gbl.CurrentCrs.Grps.GrpTypes.Num;
|
||||
NumGrpTyp++)
|
||||
{
|
||||
fprintf (Gbl.F.Out,"<option value=\"%ld\"",
|
||||
Gbl.CurrentCrs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].GrpTypCod);
|
||||
if (Gbl.CurrentCrs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].GrpTypCod == Gbl.CurrentCrs.Grps.GrpTyp.GrpTypCod)
|
||||
if (Gbl.CurrentCrs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].GrpTypCod ==
|
||||
Gbl.CurrentCrs.Grps.GrpTyp.GrpTypCod)
|
||||
fprintf (Gbl.F.Out," selected=\"selected\"");
|
||||
fprintf (Gbl.F.Out,">%s</option>",
|
||||
Gbl.CurrentCrs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].GrpTypName);
|
||||
}
|
||||
|
||||
/* End selector */
|
||||
fprintf (Gbl.F.Out,"</select>"
|
||||
"</td>");
|
||||
|
||||
|
@ -2657,17 +2713,25 @@ static void Grp_PutFormToCreateGroup (void)
|
|||
Grp_MAX_CHARS_GROUP_NAME,Gbl.CurrentCrs.Grps.GrpName);
|
||||
|
||||
/***** Classroom *****/
|
||||
/* Start selector */
|
||||
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
|
||||
"<select name=\"ClaCod\" style=\"width:100px;\">"
|
||||
"<option value=\"-1\"");
|
||||
"<select name=\"ClaCod\" style=\"width:100px;\">");
|
||||
|
||||
/* Option for no assigned classroom */
|
||||
fprintf (Gbl.F.Out,"<option value=\"-1\"");
|
||||
if (Gbl.CurrentCrs.Grps.ClaCod < 0)
|
||||
fprintf (Gbl.F.Out," selected=\"selected\"");
|
||||
fprintf (Gbl.F.Out," disabled=\"disabled\"></option>"
|
||||
"<option value=\"0\"");
|
||||
fprintf (Gbl.F.Out,">%s</option>",
|
||||
Txt_No_assigned_classroom);
|
||||
|
||||
/* Option for another classroom */
|
||||
fprintf (Gbl.F.Out,"<option value=\"0\"");
|
||||
if (Gbl.CurrentCrs.Grps.ClaCod == 0)
|
||||
fprintf (Gbl.F.Out," selected=\"selected\"");
|
||||
fprintf (Gbl.F.Out,">%s</option>",
|
||||
Txt_Another_classroom);
|
||||
|
||||
/* Options for classrooms */
|
||||
for (NumCla = 0;
|
||||
NumCla < Gbl.Classrooms.Num;
|
||||
NumCla++)
|
||||
|
@ -2675,12 +2739,14 @@ static void Grp_PutFormToCreateGroup (void)
|
|||
fprintf (Gbl.F.Out,"<option value=\"%ld\"",
|
||||
Gbl.Classrooms.Lst[NumCla].ClaCod);
|
||||
if (Gbl.Classrooms.Lst[NumCla].ClaCod == Gbl.CurrentCrs.Grps.ClaCod)
|
||||
fprintf (Gbl.F.Out," selected=\"selected\"");
|
||||
fprintf (Gbl.F.Out," selected=\"selected\"");
|
||||
fprintf (Gbl.F.Out,">%s</option>",
|
||||
Gbl.Classrooms.Lst[NumCla].ShrtName);
|
||||
}
|
||||
|
||||
/* End selector */
|
||||
fprintf (Gbl.F.Out,"</select>"
|
||||
"</td>");
|
||||
"</td>");
|
||||
|
||||
/***** Current number of users in this group *****/
|
||||
for (Role = Rol_TCH;
|
||||
|
@ -3030,8 +3096,8 @@ unsigned long Grp_GetGrpsOfType (long GrpTypCod,MYSQL_RES **mysql_res)
|
|||
return DB_QuerySELECT (mysql_res,"can not get groups of a type",
|
||||
"SELECT GrpCod,"
|
||||
"GrpName,"
|
||||
"MaxStudents,"
|
||||
"ClaCod,"
|
||||
"MaxStudents,"
|
||||
"Open,"
|
||||
"FileZones"
|
||||
" FROM crs_grp"
|
||||
|
@ -3805,6 +3871,9 @@ void Grp_RecFormNewGrp (void)
|
|||
Par_GetParToText ("GrpName",Gbl.CurrentCrs.Grps.GrpName,
|
||||
Grp_MAX_BYTES_GROUP_NAME);
|
||||
|
||||
/* Get classroom */
|
||||
Gbl.CurrentCrs.Grps.ClaCod = Cla_GetParamClaCod ();
|
||||
|
||||
/* Get maximum number of students */
|
||||
Gbl.CurrentCrs.Grps.MaxStudents = (unsigned)
|
||||
Par_GetParToUnsignedLong ("MaxStudents",
|
||||
|
@ -3914,11 +3983,12 @@ static void Grp_CreateGroup (void)
|
|||
/***** Create a new group *****/
|
||||
DB_QueryINSERT ("can not create group",
|
||||
"INSERT INTO crs_grp"
|
||||
" (GrpTypCod,GrpName,MaxStudents,Open,FileZones)"
|
||||
" (GrpTypCod,GrpName,ClaCod,MaxStudents,Open,FileZones)"
|
||||
" VALUES"
|
||||
" (%ld,'%s',%u,'N','N')",
|
||||
" (%ld,'%s',%ld,%u,'N','N')",
|
||||
Gbl.CurrentCrs.Grps.GrpTyp.GrpTypCod,
|
||||
Gbl.CurrentCrs.Grps.GrpName,
|
||||
Gbl.CurrentCrs.Grps.ClaCod,
|
||||
Gbl.CurrentCrs.Grps.MaxStudents);
|
||||
}
|
||||
|
||||
|
@ -4373,6 +4443,46 @@ void Grp_ChangeGroupType (void)
|
|||
AlertType,Gbl.Alert.Txt);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/*********************** Change the classroom of a group *********************/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Grp_ChangeGroupClassroom (void)
|
||||
{
|
||||
extern const char *Txt_The_classroom_assigned_to_the_group_X_has_changed;
|
||||
long NewClaCod;
|
||||
struct GroupData GrpDat;
|
||||
Ale_AlertType_t AlertType;
|
||||
|
||||
/***** Get parameters from form *****/
|
||||
/* Get group code */
|
||||
if ((Gbl.CurrentCrs.Grps.GrpCod = Grp_GetParamGrpCod ()) == -1L)
|
||||
Lay_ShowErrorAndExit ("Code of group is missing.");
|
||||
|
||||
/* Get the new classroom */
|
||||
NewClaCod = Cla_GetParamClaCod ();
|
||||
|
||||
/* Get from the database the name of the group */
|
||||
GrpDat.GrpCod = Gbl.CurrentCrs.Grps.GrpCod;
|
||||
Grp_GetDataOfGroupByCod (&GrpDat);
|
||||
|
||||
/***** Update the table of groups changing old classroom by new classroom *****/
|
||||
DB_QueryUPDATE ("can not update the classroom of a group",
|
||||
"UPDATE crs_grp SET ClaCod=%ld WHERE GrpCod=%ld",
|
||||
NewClaCod,Gbl.CurrentCrs.Grps.GrpCod);
|
||||
|
||||
/* Create message to show the change made */
|
||||
AlertType = Ale_SUCCESS;
|
||||
snprintf (Gbl.Alert.Txt,sizeof (Gbl.Alert.Txt),
|
||||
Txt_The_classroom_assigned_to_the_group_X_has_changed,
|
||||
GrpDat.GrpName);
|
||||
|
||||
/***** Show the form again *****/
|
||||
Gbl.CurrentCrs.Grps.ClaCod = NewClaCod;
|
||||
Grp_ReqEditGroupsInternal (Ale_INFO,NULL,
|
||||
AlertType,Gbl.Alert.Txt);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/************ Change mandatory registration to a group of a type *************/
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -190,7 +190,10 @@ void Grp_OpenGroup (void);
|
|||
void Grp_CloseGroup (void);
|
||||
void Grp_EnableFileZonesGrp (void);
|
||||
void Grp_DisableFileZonesGrp (void);
|
||||
|
||||
void Grp_ChangeGroupType (void);
|
||||
void Grp_ChangeGroupClassroom (void);
|
||||
|
||||
void Grp_ChangeMandatGrpTyp (void);
|
||||
void Grp_ChangeMultiGrpTyp (void);
|
||||
void Grp_ChangeOpenTimeGrpTyp (void);
|
||||
|
|
42
swad_text.c
42
swad_text.c
|
@ -24413,6 +24413,27 @@ const char *Txt_No_announcements_of_exams_of_X = // Warning: it is very importan
|
|||
"Não chamadas para exame de <strong>%s</strong>.";
|
||||
#endif
|
||||
|
||||
const char *Txt_No_assigned_classroom =
|
||||
#if L==1 // ca
|
||||
"Sense aula assignada";
|
||||
#elif L==2 // de
|
||||
"Kein zugewiesenes Klassenzimmer";
|
||||
#elif L==3 // en
|
||||
"No assigned classroom";
|
||||
#elif L==4 // es
|
||||
"Sin aula asignada";
|
||||
#elif L==5 // fr
|
||||
"Aucune classe assignée";
|
||||
#elif L==6 // gn
|
||||
"Sin aula asignada"; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Nessuna aula assegnata";
|
||||
#elif L==8 // pl
|
||||
"Brak przydzielonej sali lekcyjnej";
|
||||
#elif L==9 // pt
|
||||
"Nenhuma sala de aula atribuída";
|
||||
#endif
|
||||
|
||||
const char *Txt_No_assignments =
|
||||
#if L==1 // ca
|
||||
"No hi ha activitats.";
|
||||
|
@ -43818,6 +43839,27 @@ const char *Txt_The_classroom_X_has_been_renamed_as_Y = // Warning: it is very i
|
|||
"A sala de clase <strong>%s</strong> foi renomeada como <strong>%s</strong>.";
|
||||
#endif
|
||||
|
||||
const char *Txt_The_classroom_assigned_to_the_group_X_has_changed =
|
||||
#if L==1 // ca
|
||||
"L'aula assignada al grup <strong>%s</strong> ha canviat.";
|
||||
#elif L==2 // de
|
||||
"Das der Gruppe <strong>%s</strong> zugeordnete Klassenzimmer hat sich geändert.";
|
||||
#elif L==3 // en
|
||||
"The classroom assigned to the group <strong>%s</strong> has changed.";
|
||||
#elif L==4 // es
|
||||
"El aula asignada al grupo <strong>%s</strong> ha cambiado.";
|
||||
#elif L==5 // fr
|
||||
"La salle de classe affectée au groupe <strong>%s</strong> a changé.";
|
||||
#elif L==6 // gn
|
||||
"El aula asignada al grupo <strong>%s</strong> ha cambiado."; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"L'aula assegnata al gruppo <strong>%s</strong> è cambiata.";
|
||||
#elif L==8 // pl
|
||||
"Klasa przypisana do grupy <strong>%s</strong> uległa zmianie.";
|
||||
#elif L==9 // pt
|
||||
"A sala de aula atribuída ao grupo <strong>%s</strong> mudou.";
|
||||
#endif
|
||||
|
||||
const char *Txt_The_comment_no_longer_exists =
|
||||
#if L==1 // ca
|
||||
"El comentari ja no existeix.";
|
||||
|
|
Loading…
Reference in New Issue