Version 14.130

This commit is contained in:
Antonio Cañas Vargas 2015-09-14 09:32:27 +02:00
parent ce6a5e2d9b
commit 8f362b2c84
7 changed files with 179 additions and 208 deletions

View File

@ -848,7 +848,6 @@ Users:
696. ActLstAdm List main data of degree administrators
697. ActReqSignUp Apply for my enrollment
698. ActSeeSignUpReq Show pending requests for inscription in the current course
699. ActReqMdfSevUsr Request the enrollment/removing of several students to / from current course
700. ActLstCon List connected users
701. ActReqPubPrf Request @nickname to show a public user's profile
@ -897,6 +896,9 @@ Users:
743. ActChgVisFie Request change in visibility of a record field
744. ActRcvRecCrs Receive and update fields of my record in this course
699b. ActReqMdfSevStd Request the enrollment/removing of several users to / from current course
699c. ActReqMdfSevTch Request the enrollment/removing of several users to / from current course
745. ActReqLstAttStd Request listing of attendance of several students to several events
746. ActSeeLstAttStd List attendance of several students to several events
747. ActPrnLstAttStd Print attendance of several students to several events
@ -1359,8 +1361,8 @@ const struct Act_Menu Act_Menu[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
{ActLstAdm ,true },
{ActReqSignUp ,false},
{ActSeeSignUpReq ,false},
{ActReqMdfSevUsr ,true },
{ActSeeSignUpReq ,true },
// {ActReqMdfSevUsr ,true },
{ActLstCon ,false},
{ActReqPubPrf ,true },
@ -2229,9 +2231,8 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActLstAdm */{ 587, 5,TabUsr,ActLstAdm ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Usr_ListDataAdms ,"adm" },
/* ActReqSignUp */{1054, 6,TabUsr,ActReqSignUp ,0x000,0x006,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReqSignUpInCrs ,"enrollmentrequest" },
/* ActSeeSignUpReq */{1057, 7,TabUsr,ActSeeSignUpReq ,0x1F0,0x1F0,0x1F0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ShowEnrollmentRequests ,"enrollmentrequest" },
/* ActReqMdfSevUsr */{ 797, 8,TabUsr,ActReqMdfSevUsr ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReqAdminUsrs ,"configs" },
/* ActLstCon */{ 995, 9,TabUsr,ActLstCon ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Con_ShowConnectedUsrs ,"userplugged" },
/* ActReqPubPrf */{1401,10,TabUsr,ActReqPubPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Prf_RequestUserProfile ,"prf" },
/* ActLstCon */{ 995, 8,TabUsr,ActLstCon ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Con_ShowConnectedUsrs ,"userplugged" },
/* ActReqPubPrf */{1401, 9,TabUsr,ActReqPubPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Prf_RequestUserProfile ,"prf" },
// Actions not in menu:
/* ActChgGrp */{ 118,-1,TabUsr,ActReqSelGrp ,0x118,0x100,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Grp_ChangeMyGrpsAndShowChanges ,NULL},
@ -2284,6 +2285,9 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActChgVisFie */{ 297,-1,TabUsr,ActLstStd ,0x110,0x100,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Rec_ChangeVisibilityField ,NULL},
/* ActRcvRecCrs */{ 301,-1,TabUsr,ActLstStd ,0x108,0x100,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Rec_UpdateAndShowMyCrsRecord ,NULL},
/* ActReqMdfSevStd */{1426,-1,TabUsr,ActLstStd ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReqAdminUsrs ,NULL},
/* ActReqMdfSevTch */{1427,-1,TabUsr,ActLstTch ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReqAdminUsrs ,NULL},
/* ActReqLstAttStd */{1073,-1,TabUsr,ActSeeAtt ,0x110,0x100,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Usr_ReqListAttendanceStdsCrs ,NULL},
/* ActSeeLstAttStd */{1074,-1,TabUsr,ActSeeAtt ,0x110,0x100,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Usr_ListAttendanceStdsCrs ,NULL},
/* ActPrnLstAttStd */{1075,-1,TabUsr,ActSeeAtt ,0x110,0x100,0x000,Act_CONTENT_NORM,Act_NEW_WINDOW ,NULL ,Usr_ListAttendanceStdsCrs ,NULL},
@ -2313,46 +2317,46 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActReqMdfUsr */{1420,-1,TabUsr,ActLstTch ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AskIfRegRemAnotherTch ,NULL},
/* ActReqMdfUsr */{1421,-1,TabUsr,ActLstAdm ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AskIfRegRemAnotherAdm ,NULL},
/* ActReqUsrPho */{ 375,-1,TabUsr,ActReqMdfSevUsr ,0x1F0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Pho_SendPhotoUsr ,NULL},
/* ActDetUsrPho */{ 695,-1,TabUsr,ActReqMdfSevUsr ,0x1F0,0x1E0,0x1E0,Act_CONTENT_DATA,Act_MAIN_WINDOW,NULL ,Pho_RecUsrPhotoDetFaces ,NULL},
/* ActUpdUsrPho */{ 374,-1,TabUsr,ActReqMdfSevUsr ,0x1F0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,Pho_UpdateUsrPhoto1 ,Pho_UpdateUsrPhoto2 ,NULL},
/* ActRemUsrPho */{ 429,-1,TabUsr,ActReqMdfSevUsr ,0x1F0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Pho_RemoveUsrPhoto ,NULL},
/* ActReqUsrPho */{ 375,-1,TabUsr,ActLstStd ,0x1F0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Pho_SendPhotoUsr ,NULL},
/* ActDetUsrPho */{ 695,-1,TabUsr,ActLstStd ,0x1F0,0x1E0,0x1E0,Act_CONTENT_DATA,Act_MAIN_WINDOW,NULL ,Pho_RecUsrPhotoDetFaces ,NULL},
/* ActUpdUsrPho */{ 374,-1,TabUsr,ActLstStd ,0x1F0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,Pho_UpdateUsrPhoto1 ,Pho_UpdateUsrPhoto2 ,NULL},
/* ActRemUsrPho */{ 429,-1,TabUsr,ActLstStd ,0x1F0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Pho_RemoveUsrPhoto ,NULL},
/* ActCreOthUsrDat */{ 440,-1,TabUsr,ActReqMdfSevUsr ,0x1F0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_CreateNewUsr ,NULL},
/* ActCreOthUsrDat */{ 440,-1,TabUsr,ActLstStd ,0x1F0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_CreateNewUsr ,NULL},
/* ActUpdOthGst */{1422,-1,TabUsr,ActLstInv ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ModifyUsr ,NULL},
/* ActUpdOthStd */{1423,-1,TabUsr,ActLstStd ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ModifyUsr ,NULL},
/* ActUpdOthTch */{1424,-1,TabUsr,ActLstTch ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ModifyUsr ,NULL},
/* ActUpdOthAdm */{1425,-1,TabUsr,ActLstAdm ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ModifyUsr ,NULL},
/* ActReqAccEnrCrs */{ 592,-1,TabUsr,ActReqMdfSevUsr ,0x1F8,0x000,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReqAcceptRegisterInCrs ,NULL},
/* ActAccEnrCrs */{ 558,-1,TabUsr,ActReqMdfSevUsr ,0x1F8,0x000,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AcceptRegisterMeInCrs ,NULL},
/* ActRemMeCrs */{ 559,-1,TabUsr,ActReqMdfSevUsr ,0x1F8,0x000,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReqRemMeFromCrs ,NULL},
/* ActReqAccEnrCrs */{ 592,-1,TabUsr,ActLstStd ,0x1F8,0x000,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReqAcceptRegisterInCrs ,NULL},
/* ActAccEnrCrs */{ 558,-1,TabUsr,ActLstStd ,0x1F8,0x000,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AcceptRegisterMeInCrs ,NULL},
/* ActRemMeCrs */{ 559,-1,TabUsr,ActLstStd ,0x1F8,0x000,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReqRemMeFromCrs ,NULL},
/* ActNewAdmIns */{1337,-1,TabUsr,ActReqMdfSevUsr ,0x100,0x100,0x100,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AddAdmToIns ,NULL},
/* ActRemAdmIns */{1338,-1,TabUsr,ActReqMdfSevUsr ,0x180,0x180,0x180,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_RemAdmIns ,NULL},
/* ActNewAdmIns */{1337,-1,TabUsr,ActLstAdm ,0x100,0x100,0x100,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AddAdmToIns ,NULL},
/* ActRemAdmIns */{1338,-1,TabUsr,ActLstAdm ,0x180,0x180,0x180,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_RemAdmIns ,NULL},
/* ActNewAdmCtr */{1339,-1,TabUsr,ActReqMdfSevUsr ,0x180,0x180,0x180,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AddAdmToCtr ,NULL},
/* ActRemAdmCtr */{1340,-1,TabUsr,ActReqMdfSevUsr ,0x1C0,0x1C0,0x1C0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_RemAdmCtr ,NULL},
/* ActNewAdmCtr */{1339,-1,TabUsr,ActLstAdm ,0x180,0x180,0x180,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AddAdmToCtr ,NULL},
/* ActRemAdmCtr */{1340,-1,TabUsr,ActLstAdm ,0x1C0,0x1C0,0x1C0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_RemAdmCtr ,NULL},
/* ActNewAdmDeg */{ 586,-1,TabUsr,ActReqMdfSevUsr ,0x1C0,0x1C0,0x1C0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AddAdmToDeg ,NULL},
/* ActRemAdmDeg */{ 584,-1,TabUsr,ActReqMdfSevUsr ,0x1E0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_RemAdmDeg ,NULL},
/* ActNewAdmDeg */{ 586,-1,TabUsr,ActLstAdm ,0x1C0,0x1C0,0x1C0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AddAdmToDeg ,NULL},
/* ActRemAdmDeg */{ 584,-1,TabUsr,ActLstAdm ,0x1E0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_RemAdmDeg ,NULL},
/* ActRcvFrmMdfUsrCrs*/{ 799,-1,TabUsr,ActReqMdfSevUsr ,0x1F0,0x1E0,0x100,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReceiveFormUsrsCrs ,NULL},
/* ActRcvFrmMdfUsrCrs*/{ 799,-1,TabUsr,ActLstStd ,0x1F0,0x1E0,0x100,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReceiveFormUsrsCrs ,NULL},
/* ActFrmIDsOthUsr */{1239,-1,TabUsr,ActReqMdfSevUsr ,0x1E0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,ID_ShowFormOthIDs ,NULL},
/* ActRemIDOth */{1240,-1,TabUsr,ActReqMdfSevUsr ,0x1E0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,ID_RemoveOtherUsrID ,NULL},
/* ActNewIDOth */{1241,-1,TabUsr,ActReqMdfSevUsr ,0x1E0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,ID_NewOtherUsrID ,NULL},
/* ActFrmPwdOthUsr */{ 598,-1,TabUsr,ActReqMdfSevUsr ,0x1E0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Pwd_ShowFormOthPwd ,NULL},
/* ActChgPwdOthUsr */{ 82,-1,TabUsr,ActReqMdfSevUsr ,0x1E0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,Pwd_UpdateOtherPwd1 ,Pwd_UpdateOtherPwd2 ,NULL},
/* ActFrmIDsOthUsr */{1239,-1,TabUsr,ActLstStd ,0x1E0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,ID_ShowFormOthIDs ,NULL},
/* ActRemIDOth */{1240,-1,TabUsr,ActLstStd ,0x1E0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,ID_RemoveOtherUsrID ,NULL},
/* ActNewIDOth */{1241,-1,TabUsr,ActLstStd ,0x1E0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,ID_NewOtherUsrID ,NULL},
/* ActFrmPwdOthUsr */{ 598,-1,TabUsr,ActLstStd ,0x1E0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Pwd_ShowFormOthPwd ,NULL},
/* ActChgPwdOthUsr */{ 82,-1,TabUsr,ActLstStd ,0x1E0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,Pwd_UpdateOtherPwd1 ,Pwd_UpdateOtherPwd2 ,NULL},
/* ActRemUsrCrs */{ 58,-1,TabUsr,ActReqMdfSevUsr ,0x1F8,0x1E0,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_RemUsrFromCrs ,NULL},
/* ActRemUsrGbl */{ 62,-1,TabUsr,ActReqMdfSevUsr ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Acc_RemUsrGbl ,NULL},
/* ActRemUsrCrs */{ 58,-1,TabUsr,ActLstStd ,0x1F8,0x1E0,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_RemUsrFromCrs ,NULL},
/* ActRemUsrGbl */{ 62,-1,TabUsr,ActLstStd ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Acc_RemUsrGbl ,NULL},
/* ActReqRemAllStdCrs*/{ 88,-1,TabUsr,ActReqMdfSevUsr ,0x110,0x100,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AskRemAllStdsThisCrs ,NULL},
/* ActRemAllStdCrs */{ 87,-1,TabUsr,ActReqMdfSevUsr ,0x110,0x100,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_RemAllStdsThisCrs ,NULL},
/* ActReqRemAllStdCrs*/{ 88,-1,TabUsr,ActLstStd ,0x110,0x100,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AskRemAllStdsThisCrs ,NULL},
/* ActRemAllStdCrs */{ 87,-1,TabUsr,ActLstStd ,0x110,0x100,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_RemAllStdsThisCrs ,NULL},
/* ActReqRemOldUsr */{ 590,-1,TabUsr,ActReqMdfSevUsr ,0x100,0x100,0x100,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AskRemoveOldUsrs ,NULL},
/* ActRemOldUsr */{ 773,-1,TabUsr,ActReqMdfSevUsr ,0x100,0x100,0x100,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_RemoveOldUsrs ,NULL},
/* ActReqRemOldUsr */{ 590,-1,TabUsr,ActLstStd ,0x100,0x100,0x100,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AskRemoveOldUsrs ,NULL},
/* ActRemOldUsr */{ 773,-1,TabUsr,ActLstStd ,0x100,0x100,0x100,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_RemoveOldUsrs ,NULL},
/* ActSeePubPrf */{1402,-1,TabUsr,ActReqPubPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Prf_GetUsrCodAndShowUserProfile,NULL},
/* ActCal1stClkTim */{1405,-1,TabUsr,ActReqPubPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Prf_CalculateFirstClickTime ,NULL},
@ -3488,7 +3492,7 @@ Act_Action_t Act_FromActCodToAction[1+Act_MAX_ACTION_COD] = // Do not reuse uniq
ActAutUsrExt, // #794
-1, // #795 (obsolete action)
ActGetExtLstStd, // #796
ActReqMdfSevUsr, // #797
-1, // #797 (obsolete action)
-1, // #798 (obsolete action)
ActRcvFrmMdfUsrCrs, // #799
-1, // #800 (obsolete action)
@ -4120,6 +4124,8 @@ Act_Action_t Act_FromActCodToAction[1+Act_MAX_ACTION_COD] = // Do not reuse uniq
ActUpdOthStd, // #1423
ActUpdOthTch, // #1424
ActUpdOthAdm, // #1425
ActReqMdfSevStd, // #1426
ActReqMdfSevTch, // #1427
};
/*****************************************************************************/

View File

@ -69,9 +69,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 (7+52+15+90+73+68+204+182+119+168+28+77)
#define Act_NUM_ACTIONS (7+52+15+90+73+68+204+182+120+168+28+77)
#define Act_MAX_ACTION_COD 1425
#define Act_MAX_ACTION_COD 1427
#define Act_MAX_OPTIONS_IN_MENU_PER_TAB 20
@ -873,132 +873,134 @@ typedef int Act_Action_t; // Must be a signed type, because -1 is used to indica
#define ActLstAdm (ActChgNumRowFooGrp+ 6)
#define ActReqSignUp (ActChgNumRowFooGrp+ 7)
#define ActSeeSignUpReq (ActChgNumRowFooGrp+ 8)
#define ActReqMdfSevUsr (ActChgNumRowFooGrp+ 9)
#define ActLstCon (ActChgNumRowFooGrp+ 10)
#define ActReqPubPrf (ActChgNumRowFooGrp+ 11)
#define ActLstCon (ActChgNumRowFooGrp+ 9)
#define ActReqPubPrf (ActChgNumRowFooGrp+ 10)
// Secondary actions
#define ActChgGrp (ActChgNumRowFooGrp+ 12)
#define ActReqEdiGrp (ActChgNumRowFooGrp+ 13)
#define ActNewGrpTyp (ActChgNumRowFooGrp+ 14)
#define ActReqRemGrpTyp (ActChgNumRowFooGrp+ 15)
#define ActRemGrpTyp (ActChgNumRowFooGrp+ 16)
#define ActRenGrpTyp (ActChgNumRowFooGrp+ 17)
#define ActChgMdtGrpTyp (ActChgNumRowFooGrp+ 18)
#define ActChgMulGrpTyp (ActChgNumRowFooGrp+ 19)
#define ActChgTimGrpTyp (ActChgNumRowFooGrp+ 20)
#define ActNewGrp (ActChgNumRowFooGrp+ 21)
#define ActReqRemGrp (ActChgNumRowFooGrp+ 22)
#define ActRemGrp (ActChgNumRowFooGrp+ 23)
#define ActOpeGrp (ActChgNumRowFooGrp+ 24)
#define ActCloGrp (ActChgNumRowFooGrp+ 25)
#define ActEnaFilZonGrp (ActChgNumRowFooGrp+ 26)
#define ActDisFilZonGrp (ActChgNumRowFooGrp+ 27)
#define ActChgGrpTyp (ActChgNumRowFooGrp+ 28)
#define ActRenGrp (ActChgNumRowFooGrp+ 29)
#define ActChgMaxStdGrp (ActChgNumRowFooGrp+ 30)
#define ActChgGrp (ActChgNumRowFooGrp+ 11)
#define ActReqEdiGrp (ActChgNumRowFooGrp+ 12)
#define ActNewGrpTyp (ActChgNumRowFooGrp+ 13)
#define ActReqRemGrpTyp (ActChgNumRowFooGrp+ 14)
#define ActRemGrpTyp (ActChgNumRowFooGrp+ 15)
#define ActRenGrpTyp (ActChgNumRowFooGrp+ 16)
#define ActChgMdtGrpTyp (ActChgNumRowFooGrp+ 17)
#define ActChgMulGrpTyp (ActChgNumRowFooGrp+ 18)
#define ActChgTimGrpTyp (ActChgNumRowFooGrp+ 19)
#define ActNewGrp (ActChgNumRowFooGrp+ 20)
#define ActReqRemGrp (ActChgNumRowFooGrp+ 21)
#define ActRemGrp (ActChgNumRowFooGrp+ 22)
#define ActOpeGrp (ActChgNumRowFooGrp+ 23)
#define ActCloGrp (ActChgNumRowFooGrp+ 24)
#define ActEnaFilZonGrp (ActChgNumRowFooGrp+ 25)
#define ActDisFilZonGrp (ActChgNumRowFooGrp+ 26)
#define ActChgGrpTyp (ActChgNumRowFooGrp+ 27)
#define ActRenGrp (ActChgNumRowFooGrp+ 28)
#define ActChgMaxStdGrp (ActChgNumRowFooGrp+ 29)
#define ActGetExtLstStd (ActChgNumRowFooGrp+ 31)
#define ActPrnInvPho (ActChgNumRowFooGrp+ 32)
#define ActPrnStdPho (ActChgNumRowFooGrp+ 33)
#define ActPrnTchPho (ActChgNumRowFooGrp+ 34)
#define ActLstInvAll (ActChgNumRowFooGrp+ 35)
#define ActLstStdAll (ActChgNumRowFooGrp+ 36)
#define ActLstTchAll (ActChgNumRowFooGrp+ 37)
#define ActSeeRecOneStd (ActChgNumRowFooGrp+ 38)
#define ActSeeRecOneTch (ActChgNumRowFooGrp+ 39)
#define ActSeeRecSevInv (ActChgNumRowFooGrp+ 40)
#define ActSeeRecSevStd (ActChgNumRowFooGrp+ 41)
#define ActSeeRecSevTch (ActChgNumRowFooGrp+ 42)
#define ActPrnRecSevInv (ActChgNumRowFooGrp+ 43)
#define ActPrnRecSevStd (ActChgNumRowFooGrp+ 44)
#define ActPrnRecSevTch (ActChgNumRowFooGrp+ 45)
#define ActRcvRecOthUsr (ActChgNumRowFooGrp+ 46)
#define ActEdiRecFie (ActChgNumRowFooGrp+ 47)
#define ActNewFie (ActChgNumRowFooGrp+ 48)
#define ActReqRemFie (ActChgNumRowFooGrp+ 49)
#define ActRemFie (ActChgNumRowFooGrp+ 50)
#define ActRenFie (ActChgNumRowFooGrp+ 51)
#define ActChgRowFie (ActChgNumRowFooGrp+ 52)
#define ActChgVisFie (ActChgNumRowFooGrp+ 53)
#define ActRcvRecCrs (ActChgNumRowFooGrp+ 54)
#define ActGetExtLstStd (ActChgNumRowFooGrp+ 30)
#define ActPrnInvPho (ActChgNumRowFooGrp+ 31)
#define ActPrnStdPho (ActChgNumRowFooGrp+ 32)
#define ActPrnTchPho (ActChgNumRowFooGrp+ 33)
#define ActLstInvAll (ActChgNumRowFooGrp+ 34)
#define ActLstStdAll (ActChgNumRowFooGrp+ 35)
#define ActLstTchAll (ActChgNumRowFooGrp+ 36)
#define ActSeeRecOneStd (ActChgNumRowFooGrp+ 37)
#define ActSeeRecOneTch (ActChgNumRowFooGrp+ 38)
#define ActSeeRecSevInv (ActChgNumRowFooGrp+ 39)
#define ActSeeRecSevStd (ActChgNumRowFooGrp+ 40)
#define ActSeeRecSevTch (ActChgNumRowFooGrp+ 41)
#define ActPrnRecSevInv (ActChgNumRowFooGrp+ 42)
#define ActPrnRecSevStd (ActChgNumRowFooGrp+ 43)
#define ActPrnRecSevTch (ActChgNumRowFooGrp+ 44)
#define ActRcvRecOthUsr (ActChgNumRowFooGrp+ 45)
#define ActEdiRecFie (ActChgNumRowFooGrp+ 46)
#define ActNewFie (ActChgNumRowFooGrp+ 47)
#define ActReqRemFie (ActChgNumRowFooGrp+ 48)
#define ActRemFie (ActChgNumRowFooGrp+ 49)
#define ActRenFie (ActChgNumRowFooGrp+ 50)
#define ActChgRowFie (ActChgNumRowFooGrp+ 51)
#define ActChgVisFie (ActChgNumRowFooGrp+ 52)
#define ActRcvRecCrs (ActChgNumRowFooGrp+ 53)
#define ActReqLstAttStd (ActChgNumRowFooGrp+ 55)
#define ActSeeLstAttStd (ActChgNumRowFooGrp+ 56)
#define ActPrnLstAttStd (ActChgNumRowFooGrp+ 57)
#define ActFrmNewAtt (ActChgNumRowFooGrp+ 58)
#define ActEdiOneAtt (ActChgNumRowFooGrp+ 59)
#define ActNewAtt (ActChgNumRowFooGrp+ 60)
#define ActChgAtt (ActChgNumRowFooGrp+ 61)
#define ActReqRemAtt (ActChgNumRowFooGrp+ 62)
#define ActRemAtt (ActChgNumRowFooGrp+ 63)
#define ActHidAtt (ActChgNumRowFooGrp+ 64)
#define ActShoAtt (ActChgNumRowFooGrp+ 65)
#define ActSeeOneAtt (ActChgNumRowFooGrp+ 66)
#define ActRecAttStd (ActChgNumRowFooGrp+ 67)
#define ActRecAttMe (ActChgNumRowFooGrp+ 68)
#define ActReqMdfSevStd (ActChgNumRowFooGrp+ 54)
#define ActReqMdfSevTch (ActChgNumRowFooGrp+ 55)
#define ActSignUp (ActChgNumRowFooGrp+ 69)
#define ActReqRejSignUp (ActChgNumRowFooGrp+ 70)
#define ActRejSignUp (ActChgNumRowFooGrp+ 71)
#define ActReqLstAttStd (ActChgNumRowFooGrp+ 56)
#define ActSeeLstAttStd (ActChgNumRowFooGrp+ 57)
#define ActPrnLstAttStd (ActChgNumRowFooGrp+ 58)
#define ActFrmNewAtt (ActChgNumRowFooGrp+ 59)
#define ActEdiOneAtt (ActChgNumRowFooGrp+ 60)
#define ActNewAtt (ActChgNumRowFooGrp+ 61)
#define ActChgAtt (ActChgNumRowFooGrp+ 62)
#define ActReqRemAtt (ActChgNumRowFooGrp+ 63)
#define ActRemAtt (ActChgNumRowFooGrp+ 64)
#define ActHidAtt (ActChgNumRowFooGrp+ 65)
#define ActShoAtt (ActChgNumRowFooGrp+ 66)
#define ActSeeOneAtt (ActChgNumRowFooGrp+ 67)
#define ActRecAttStd (ActChgNumRowFooGrp+ 68)
#define ActRecAttMe (ActChgNumRowFooGrp+ 69)
#define ActReqMdfOneGst (ActChgNumRowFooGrp+ 72)
#define ActReqMdfOneStd (ActChgNumRowFooGrp+ 73)
#define ActReqMdfOneTch (ActChgNumRowFooGrp+ 74)
#define ActReqMdfOneAdm (ActChgNumRowFooGrp+ 75)
#define ActSignUp (ActChgNumRowFooGrp+ 70)
#define ActReqRejSignUp (ActChgNumRowFooGrp+ 71)
#define ActRejSignUp (ActChgNumRowFooGrp+ 72)
#define ActReqMdfGst (ActChgNumRowFooGrp+ 76)
#define ActReqMdfStd (ActChgNumRowFooGrp+ 77)
#define ActReqMdfTch (ActChgNumRowFooGrp+ 78)
#define ActReqMdfAdm (ActChgNumRowFooGrp+ 79)
#define ActReqMdfOneGst (ActChgNumRowFooGrp+ 73)
#define ActReqMdfOneStd (ActChgNumRowFooGrp+ 74)
#define ActReqMdfOneTch (ActChgNumRowFooGrp+ 75)
#define ActReqMdfOneAdm (ActChgNumRowFooGrp+ 76)
#define ActReqUsrPho (ActChgNumRowFooGrp+ 80)
#define ActDetUsrPho (ActChgNumRowFooGrp+ 81)
#define ActUpdUsrPho (ActChgNumRowFooGrp+ 82)
#define ActRemUsrPho (ActChgNumRowFooGrp+ 83)
#define ActCreOthUsrDat (ActChgNumRowFooGrp+ 84)
#define ActUpdOthGst (ActChgNumRowFooGrp+ 85)
#define ActUpdOthStd (ActChgNumRowFooGrp+ 86)
#define ActUpdOthTch (ActChgNumRowFooGrp+ 87)
#define ActUpdOthAdm (ActChgNumRowFooGrp+ 88)
#define ActReqMdfGst (ActChgNumRowFooGrp+ 77)
#define ActReqMdfStd (ActChgNumRowFooGrp+ 78)
#define ActReqMdfTch (ActChgNumRowFooGrp+ 79)
#define ActReqMdfAdm (ActChgNumRowFooGrp+ 80)
#define ActReqAccEnrCrs (ActChgNumRowFooGrp+ 89)
#define ActAccEnrCrs (ActChgNumRowFooGrp+ 90)
#define ActRemMeCrs (ActChgNumRowFooGrp+ 91)
#define ActReqUsrPho (ActChgNumRowFooGrp+ 81)
#define ActDetUsrPho (ActChgNumRowFooGrp+ 82)
#define ActUpdUsrPho (ActChgNumRowFooGrp+ 83)
#define ActRemUsrPho (ActChgNumRowFooGrp+ 84)
#define ActCreOthUsrDat (ActChgNumRowFooGrp+ 85)
#define ActUpdOthGst (ActChgNumRowFooGrp+ 86)
#define ActUpdOthStd (ActChgNumRowFooGrp+ 87)
#define ActUpdOthTch (ActChgNumRowFooGrp+ 88)
#define ActUpdOthAdm (ActChgNumRowFooGrp+ 89)
#define ActNewAdmIns (ActChgNumRowFooGrp+ 92)
#define ActRemAdmIns (ActChgNumRowFooGrp+ 93)
#define ActNewAdmCtr (ActChgNumRowFooGrp+ 94)
#define ActRemAdmCtr (ActChgNumRowFooGrp+ 95)
#define ActNewAdmDeg (ActChgNumRowFooGrp+ 96)
#define ActRemAdmDeg (ActChgNumRowFooGrp+ 97)
#define ActReqAccEnrCrs (ActChgNumRowFooGrp+ 90)
#define ActAccEnrCrs (ActChgNumRowFooGrp+ 91)
#define ActRemMeCrs (ActChgNumRowFooGrp+ 92)
#define ActRcvFrmMdfUsrCrs (ActChgNumRowFooGrp+ 98)
#define ActFrmIDsOthUsr (ActChgNumRowFooGrp+ 99)
#define ActRemIDOth (ActChgNumRowFooGrp+100)
#define ActNewIDOth (ActChgNumRowFooGrp+101)
#define ActFrmPwdOthUsr (ActChgNumRowFooGrp+102)
#define ActChgPwdOthUsr (ActChgNumRowFooGrp+103)
#define ActRemUsrCrs (ActChgNumRowFooGrp+104)
#define ActRemUsrGbl (ActChgNumRowFooGrp+105)
#define ActNewAdmIns (ActChgNumRowFooGrp+ 93)
#define ActRemAdmIns (ActChgNumRowFooGrp+ 94)
#define ActNewAdmCtr (ActChgNumRowFooGrp+ 95)
#define ActRemAdmCtr (ActChgNumRowFooGrp+ 96)
#define ActNewAdmDeg (ActChgNumRowFooGrp+ 97)
#define ActRemAdmDeg (ActChgNumRowFooGrp+ 98)
#define ActReqRemAllStdCrs (ActChgNumRowFooGrp+106)
#define ActRemAllStdCrs (ActChgNumRowFooGrp+107)
#define ActRcvFrmMdfUsrCrs (ActChgNumRowFooGrp+ 99)
#define ActFrmIDsOthUsr (ActChgNumRowFooGrp+100)
#define ActRemIDOth (ActChgNumRowFooGrp+101)
#define ActNewIDOth (ActChgNumRowFooGrp+102)
#define ActFrmPwdOthUsr (ActChgNumRowFooGrp+103)
#define ActChgPwdOthUsr (ActChgNumRowFooGrp+104)
#define ActRemUsrCrs (ActChgNumRowFooGrp+105)
#define ActRemUsrGbl (ActChgNumRowFooGrp+106)
#define ActReqRemOldUsr (ActChgNumRowFooGrp+108)
#define ActRemOldUsr (ActChgNumRowFooGrp+109)
#define ActReqRemAllStdCrs (ActChgNumRowFooGrp+107)
#define ActRemAllStdCrs (ActChgNumRowFooGrp+108)
#define ActSeePubPrf (ActChgNumRowFooGrp+110)
#define ActCal1stClkTim (ActChgNumRowFooGrp+111)
#define ActCalNumClk (ActChgNumRowFooGrp+112)
#define ActCalNumFilVie (ActChgNumRowFooGrp+113)
#define ActCalNumForPst (ActChgNumRowFooGrp+114)
#define ActCalNumMsgSnt (ActChgNumRowFooGrp+115)
#define ActReqRemOldUsr (ActChgNumRowFooGrp+109)
#define ActRemOldUsr (ActChgNumRowFooGrp+110)
#define ActFolUsr (ActChgNumRowFooGrp+116)
#define ActUnfUsr (ActChgNumRowFooGrp+117)
#define ActSeeFlg (ActChgNumRowFooGrp+118)
#define ActSeeFlr (ActChgNumRowFooGrp+119)
#define ActSeePubPrf (ActChgNumRowFooGrp+111)
#define ActCal1stClkTim (ActChgNumRowFooGrp+112)
#define ActCalNumClk (ActChgNumRowFooGrp+113)
#define ActCalNumFilVie (ActChgNumRowFooGrp+114)
#define ActCalNumForPst (ActChgNumRowFooGrp+115)
#define ActCalNumMsgSnt (ActChgNumRowFooGrp+116)
#define ActFolUsr (ActChgNumRowFooGrp+117)
#define ActUnfUsr (ActChgNumRowFooGrp+118)
#define ActSeeFlg (ActChgNumRowFooGrp+119)
#define ActSeeFlr (ActChgNumRowFooGrp+120)
/*****************************************************************************/
/******************************* Messages tab ********************************/

View File

@ -93,24 +93,26 @@
----------------Examen Tema 2
----------Otros
....Etc.....
==========================================================
7 @@ INSTALACIÓN DE EDITOR DE TEXTO ENRIQUECIDO
==========================================================
# Completar el proyecto que empezó el antiguo alumno.
*/
/*****************************************************************************/
/****************************** Public constants *****************************/
/*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 14.129 (2015/09/11)"
#define Log_PLATFORM_VERSION "SWAD 14.130 (2015/09/13)"
// 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 14.129: Sep 11, 2015 New links to admin a user in list of students.
Version 14.130: Sep 13, 2015 Changes in user enrollment. (184379 lines)
15 changes necessary in database:
UPDATE actions SET Obsolete='Y' WHERE ActCod='797';
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1426','es','N','Administrar varios estudiantes');
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1427','es','N','Administrar varios profesores');
Version 14.129: Sep 12, 2015 New links to admin a user in list of students.
Changes in user enrollment.
Fixed bug in user enrollment. (184411 lines)
15 changes necessary in database:
UPDATE actions SET Obsolete='Y' WHERE ActCod='177';
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1414','es','N','Solicitar ID modif. invitado');
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1415','es','N','Solicitar ID modif. estudiante');

View File

@ -86,7 +86,7 @@ extern struct Globals Gbl;
/***************************** Private prototypes ****************************/
/*****************************************************************************/
static void Enr_ShowFormRegRemSeveralUsrs (void);
static void Enr_ShowFormRegRemSeveralUsrs (Rol_Role_t Role);
static void Enr_PutAreaToEnterUsrsIDs (void);
static void Enr_PutActionsRegRemSeveralUsrs (void);
@ -452,7 +452,7 @@ void Enr_ReqAdminUsrs (void)
break;
case Rol_TEACHER:
if (Gbl.CurrentCrs.Crs.CrsCod > 0)
Enr_ShowFormRegRemSeveralUsrs ();
Enr_ShowFormRegRemSeveralUsrs (Role);
else
Enr_AskIfRegRemMe (Rol_TEACHER);
break;
@ -463,7 +463,7 @@ void Enr_ReqAdminUsrs (void)
break;
case Rol_SYS_ADM:
if (Gbl.CurrentCrs.Crs.CrsCod > 0)
Enr_ShowFormRegRemSeveralUsrs ();
Enr_ShowFormRegRemSeveralUsrs (Role);
else
Enr_ReqAnotherUsrIDToRegisterRemove (Rol_TEACHER); // TODO: Change this line to the following
// Enr_ReqAnotherUsrIDToRegisterRemove (Role);
@ -478,7 +478,7 @@ void Enr_ReqAdminUsrs (void)
/***** Register/remove users (taken from a list) in/from current course ******/
/*****************************************************************************/
static void Enr_ShowFormRegRemSeveralUsrs (void)
static void Enr_ShowFormRegRemSeveralUsrs (Rol_Role_t Role)
{
extern const char *The_ClassTitle[The_NUM_THEMES];
extern const char *Txt_Admin_several_users;
@ -1081,7 +1081,7 @@ static void Enr_PutActionsRegRemSeveralUsrs (void)
/******* Receive the list of users of the course to register/remove **********/
/*****************************************************************************/
void Enr_ReceiveFormUsrsCrs (void)
void Enr_ReceiveFormUsrsCrs (Rol_Role_t Role)
{
extern const char *Txt_You_must_specify_in_step_3_the_action_to_perform;
extern const char *Txt_In_a_type_of_group_with_single_enrollment_students_can_not_be_registered_in_more_than_one_group;
@ -1208,7 +1208,7 @@ void Enr_ReceiveFormUsrsCrs (void)
Lay_ShowAlert (Lay_WARNING,Txt_You_must_specify_in_step_3_the_action_to_perform);
/* Show form again */
Enr_ShowFormRegRemSeveralUsrs ();
Enr_ShowFormRegRemSeveralUsrs (Role);
ErrorInForm = true;
}
@ -2551,12 +2551,13 @@ void Enr_PutLinkToAdminOneUsr (Act_Action_t NextAction)
/******************* Write a form to admin several users *********************/
/*****************************************************************************/
void Enr_PutLinkToAdminSeveralUsrs (void)
void Enr_PutLinkToAdminSeveralUsrs (Rol_Role_t Role)
{
extern const char *Txt_Admin_several_users;
Act_PutContextualLink (ActReqMdfSevUsr,NULL,
"configtest",Txt_Admin_several_users);
Act_PutContextualLink (Role == Rol_STUDENT ? ActReqMdfSevStd :
ActReqMdfSevTch,
NULL,"configtest",Txt_Admin_several_users);
}
/*****************************************************************************/
@ -2644,7 +2645,7 @@ static void Enr_ReqAnotherUsrIDToRegisterRemove (Rol_Role_t Role)
if (Gbl.CurrentCrs.Crs.CrsCod > 0)
/* Put link to go to admin several users */
Enr_PutLinkToAdminSeveralUsrs ();
Enr_PutLinkToAdminSeveralUsrs (Role);
else if (Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM)
/* Put link to remove old users */
Enr_PutLinkToRemOldUsrs ();

View File

@ -96,7 +96,7 @@ bool Enr_PutActionsRegRemOneUsr (bool ItsMe);
void Enr_ReceiveFormUsrsCrs (void);
void Enr_PutLinkToRemAllStdsThisCrs (void);
void Enr_PutLinkToRemOldUsrs (void);
void Enr_PutLinkToAdminSeveralUsrs (void);
void Enr_PutLinkToAdminSeveralUsrs (Rol_Role_t Role);
void Enr_AskRemAllStdsThisCrs (void);
void Enr_RemAllStdsThisCrs (void);
unsigned Enr_RemAllStdsInCrs (struct Course *Crs);

View File

@ -17676,27 +17676,6 @@ const char *Txt_MENU_TITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
"Upraszanie"
#elif L==8
"Solicitações"
#endif
,
// ActReqMdfSevUsr
#if L==0
"Administrar"
#elif L==1
"Verwalten"
#elif L==2
"Administer"
#elif L==3
"Administrar"
#elif L==4
"Gérer"
#elif L==5
"Administrar" // Okoteve traducción
#elif L==6
"Gestire"
#elif L==7
"Zarządzaj"
#elif L==8
"Gerenciar"
#endif
,
// ActLstCon
@ -17750,6 +17729,7 @@ const char *Txt_MENU_TITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
NULL,
NULL,
NULL,
NULL,
},
{
// TabMsg *****************************************************
@ -19655,27 +19635,6 @@ const char *Txt_MENU_SUBTITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
"Żądania rejestrowania"
#elif L==8
"Solicitações de inscrição"
#endif
,
// ActReqMdfSevUsr
#if L==0
"Inscripció / eliminación de usuaris"
#elif L==1
"Anmeldung / Entfernen von Benutzern"
#elif L==2
"Enrollment / removing of users"
#elif L==3
"Inscripción / eliminación de usuarios"
#elif L==4
"Inscription / suppression de utilisateurs"
#elif L==5
"Inscripción / eliminación de usuario"// Okoteve traducción
#elif L==6
"Iscrizione / rimozione di utenti"
#elif L==7
"Rekrutacja / usunięcie użytkowników"
#elif L==8
"Inscrição / remoção de utilizadores"
#endif
,
// ActLstCon
@ -19729,6 +19688,7 @@ const char *Txt_MENU_SUBTITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
NULL,
NULL,
NULL,
NULL,
},
{
// TabMsg *****************************************************

View File

@ -6434,7 +6434,7 @@ void Usr_SeeStudents (void)
Enr_PutLinkToAdminOneUsr (ActReqMdfOneStd);
/* Put link to go to admin several users */
Enr_PutLinkToAdminSeveralUsrs ();
Enr_PutLinkToAdminSeveralUsrs (Rol_STUDENT);
/* Put link to list official students */
Usr_PutLinkToListOfficialStudents ();
@ -6613,7 +6613,7 @@ void Usr_SeeTeachers (void)
Enr_PutLinkToAdminOneUsr (ActReqMdfOneTch);
/* Put link to go to admin several users */
Enr_PutLinkToAdminSeveralUsrs ();
Enr_PutLinkToAdminSeveralUsrs (Rol_TEACHER);
fprintf (Gbl.F.Out,"</div>");
}