Version 16.220.7

This commit is contained in:
Antonio Cañas Vargas 2017-05-21 21:23:13 +02:00
parent f66b93cf7f
commit 4878eccedc
19 changed files with 151 additions and 98 deletions

View File

@ -313,7 +313,7 @@ static void Acc_WriteRowEmptyAccount (unsigned NumUsr,const char *ID,struct UsrD
Gbl.RowEvenOdd); Gbl.RowEvenOdd);
UsrDat->Sex = Usr_SEX_UNKNOWN; UsrDat->Sex = Usr_SEX_UNKNOWN;
Crs_GetAndWriteCrssOfAUsr (UsrDat,Rol_TCH); Crs_GetAndWriteCrssOfAUsr (UsrDat,Rol_TCH);
Crs_GetAndWriteCrssOfAUsr (UsrDat,Rol_NED_TCH); Crs_GetAndWriteCrssOfAUsr (UsrDat,Rol_NET);
Crs_GetAndWriteCrssOfAUsr (UsrDat,Rol_STD); Crs_GetAndWriteCrssOfAUsr (UsrDat,Rol_STD);
fprintf (Gbl.F.Out,"</td>" fprintf (Gbl.F.Out,"</td>"
"</tr>"); "</tr>");

View File

@ -1080,8 +1080,9 @@ Users:
882. ActNewAdmDeg Register an administrador in this degree 882. ActNewAdmDeg Register an administrador in this degree
883. ActRemAdmDeg Remove an administrador of this degree 883. ActRemAdmDeg Remove an administrador of this degree
884. ActRcvFrmEnrSevStd Receive a form with IDs of users to be registeres/removed to/from current course 884. ActRcvFrmEnrSevStd Receive a form with IDs of students to be registered/removed to/from current course
885. ActRcvFrmEnrSevTch Receive a form with IDs of users to be registeres/removed to/from current course NEW. ActRcvFrmEnrSevNET Receive a form with IDs of non-editing teachers to be registered/removed to/from current course
885. ActRcvFrmEnrSevTch Receive a form with IDs of teachers to be registered/removed to/from current course
889. ActCnfID_Oth Confirm another user's ID 889. ActCnfID_Oth Confirm another user's ID
890. ActCnfID_Std Confirm another user's ID 890. ActCnfID_Std Confirm another user's ID
@ -2476,9 +2477,9 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActLogInUsrAgdLan */{1616,-1,TabUnk,ActLstTch ,0x3F8,0x3C4,0x3C4,0x3C4,0x3C4,0x3C4,0x3C4,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Agd_ShowOtherAgendaAfterLogIn ,NULL}, /* ActLogInUsrAgdLan */{1616,-1,TabUnk,ActLstTch ,0x3F8,0x3C4,0x3C4,0x3C4,0x3C4,0x3C4,0x3C4,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Agd_ShowOtherAgendaAfterLogIn ,NULL},
/* ActSeeUsrAgd */{1611,-1,TabUnk,ActLstTch ,0x3F8,0x3C4,0x3C4,0x3C4,0x3C4,0x3C4,0x3C4,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Agd_ShowUsrAgenda ,NULL}, /* ActSeeUsrAgd */{1611,-1,TabUnk,ActLstTch ,0x3F8,0x3C4,0x3C4,0x3C4,0x3C4,0x3C4,0x3C4,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Agd_ShowUsrAgenda ,NULL},
/* ActReqEnrSevStd */{1426,-1,TabUnk,ActLstStd ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Enr_ReqAdminStds ,NULL}, /* ActReqEnrSevStd */{1426,-1,TabUnk,ActLstStd ,0x3E0,0x3C0, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Enr_ReqAdminStds ,NULL},
/* ActReqEnrSevNEdTch*/{1642,-1,TabUnk,ActLstTch ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Enr_ReqAdminNonEditingTchs ,NULL}, /* ActReqEnrSevNEdTch*/{1642,-1,TabUnk,ActLstTch ,0x3C0,0x3C0, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Enr_ReqAdminNonEditingTchs ,NULL},
/* ActReqEnrSevTch */{1427,-1,TabUnk,ActLstTch ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Enr_ReqAdminTchs ,NULL}, /* ActReqEnrSevTch */{1427,-1,TabUnk,ActLstTch ,0x3C0,0x3C0, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Enr_ReqAdminTchs ,NULL},
/* ActReqLstStdAtt */{1073,-1,TabUnk,ActSeeAtt ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Usr_ReqListStdsAttendanceCrs ,NULL}, /* ActReqLstStdAtt */{1073,-1,TabUnk,ActSeeAtt ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Usr_ReqListStdsAttendanceCrs ,NULL},
/* ActSeeLstMyAtt */{1473,-1,TabUnk,ActSeeAtt ,0x008, 0, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Usr_ListMyAttendanceCrs ,NULL}, /* ActSeeLstMyAtt */{1473,-1,TabUnk,ActSeeAtt ,0x008, 0, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Usr_ListMyAttendanceCrs ,NULL},
@ -2556,8 +2557,9 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActNewAdmDeg */{ 586,-1,TabUnk,ActLstOth ,0x380,0x380,0x380,0x380,0x380,0x380,0x380,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Enr_AddAdmToDeg ,NULL}, /* ActNewAdmDeg */{ 586,-1,TabUnk,ActLstOth ,0x380,0x380,0x380,0x380,0x380,0x380,0x380,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Enr_AddAdmToDeg ,NULL},
/* ActRemAdmDeg */{ 584,-1,TabUnk,ActLstOth ,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Enr_RemAdmDeg ,NULL}, /* ActRemAdmDeg */{ 584,-1,TabUnk,ActLstOth ,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Enr_RemAdmDeg ,NULL},
/* ActRcvFrmEnrSevStd*/{1428,-1,TabUnk,ActLstStd ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Enr_ReceiveFormAdminStds ,NULL}, /* ActRcvFrmEnrSevStd*/{1428,-1,TabUnk,ActLstStd ,0x3E0,0x3C0, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Enr_ReceiveFormAdminStds ,NULL},
/* ActRcvFrmEnrSevTch*/{1429,-1,TabUnk,ActLstTch ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Enr_ReceiveFormAdminTchs ,NULL}, /* ActRcvFrmEnrSevNET*/{1643,-1,TabUnk,ActLstTch ,0x3C0,0x3C0, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Enr_ReceiveFormAdminNonEditTchs,NULL},
/* ActRcvFrmEnrSevTch*/{1429,-1,TabUnk,ActLstTch ,0x3C0,0x3C0, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Enr_ReceiveFormAdminTchs ,NULL},
/* ActCnfID_Oth */{1568,-1,TabUnk,ActLstOth ,0x3E0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,ID_ConfirmOtherUsrID ,NULL}, /* ActCnfID_Oth */{1568,-1,TabUnk,ActLstOth ,0x3E0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,ID_ConfirmOtherUsrID ,NULL},
/* ActCnfID_Std */{1569,-1,TabUnk,ActLstStd ,0x3E0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,ID_ConfirmOtherUsrID ,NULL}, /* ActCnfID_Std */{1569,-1,TabUnk,ActLstStd ,0x3E0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,ID_ConfirmOtherUsrID ,NULL},
@ -4635,6 +4637,7 @@ Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD] = // Do not reuse un
ActAccEnrNEdTch, // #1640 ActAccEnrNEdTch, // #1640
ActRemMe_NEdTch, // #1641 ActRemMe_NEdTch, // #1641
ActReqEnrSevNEdTch, // #1642 ActReqEnrSevNEdTch, // #1642
ActRcvFrmEnrSevNET, // #1643
}; };
/*****************************************************************************/ /*****************************************************************************/
@ -5128,7 +5131,7 @@ void Act_AdjustCurrentAction (void)
case Rol_STD: case Rol_STD:
Gbl.Action.Act = ActReqAccEnrStd; Gbl.Action.Act = ActReqAccEnrStd;
break; break;
case Rol_NED_TCH: case Rol_NET:
Gbl.Action.Act = ActReqAccEnrNEdTch; Gbl.Action.Act = ActReqAccEnrNEdTch;
break; break;
case Rol_TCH: case Rol_TCH:
@ -5195,7 +5198,7 @@ void Act_AdjustCurrentAction (void)
if (Gbl.Action.Act == ActMnu) // Do the following check sometimes, for example when the user changes the current tab if (Gbl.Action.Act == ActMnu) // Do the following check sometimes, for example when the user changes the current tab
Gbl.CurrentCrs.Info.ShowMsgMustBeRead = Inf_GetIfIMustReadAnyCrsInfoInThisCrs (); Gbl.CurrentCrs.Info.ShowMsgMustBeRead = Inf_GetIfIMustReadAnyCrsInfoInThisCrs ();
break; break;
case Rol_NED_TCH: case Rol_NET:
break; break;
case Rol_TCH: case Rol_TCH:
if (Gbl.Action.Act == ActReqTst || if (Gbl.Action.Act == ActReqTst ||

View File

@ -57,9 +57,9 @@ typedef enum
typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to indicate obsolete action 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 + 32 + 24 + 115 + 72 + 416 + 160 + 172 + 42 + 14 + 97) #define Act_NUM_ACTIONS (1 + 9 + 43 + 17 + 47 + 32 + 24 + 115 + 72 + 416 + 161 + 172 + 42 + 14 + 97)
#define Act_MAX_ACTION_COD 1642 #define Act_MAX_ACTION_COD 1643
#define Act_MAX_OPTIONS_IN_MENU_PER_TAB 12 #define Act_MAX_OPTIONS_IN_MENU_PER_TAB 12
@ -1098,52 +1098,53 @@ typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to
#define ActRemAdmDeg (ActChgNumRowFooGrp + 120) #define ActRemAdmDeg (ActChgNumRowFooGrp + 120)
#define ActRcvFrmEnrSevStd (ActChgNumRowFooGrp + 121) #define ActRcvFrmEnrSevStd (ActChgNumRowFooGrp + 121)
#define ActRcvFrmEnrSevTch (ActChgNumRowFooGrp + 122) #define ActRcvFrmEnrSevNET (ActChgNumRowFooGrp + 122)
#define ActRcvFrmEnrSevTch (ActChgNumRowFooGrp + 123)
#define ActCnfID_Oth (ActChgNumRowFooGrp + 123) #define ActCnfID_Oth (ActChgNumRowFooGrp + 124)
#define ActCnfID_Std (ActChgNumRowFooGrp + 124) #define ActCnfID_Std (ActChgNumRowFooGrp + 125)
#define ActCnfID_Tch (ActChgNumRowFooGrp + 125) #define ActCnfID_Tch (ActChgNumRowFooGrp + 126)
#define ActFrmIDsOth (ActChgNumRowFooGrp + 126) #define ActFrmIDsOth (ActChgNumRowFooGrp + 127)
#define ActFrmIDsStd (ActChgNumRowFooGrp + 127) #define ActFrmIDsStd (ActChgNumRowFooGrp + 128)
#define ActFrmIDsTch (ActChgNumRowFooGrp + 128) #define ActFrmIDsTch (ActChgNumRowFooGrp + 129)
#define ActRemID_Oth (ActChgNumRowFooGrp + 129) #define ActRemID_Oth (ActChgNumRowFooGrp + 130)
#define ActRemID_Std (ActChgNumRowFooGrp + 130) #define ActRemID_Std (ActChgNumRowFooGrp + 131)
#define ActRemID_Tch (ActChgNumRowFooGrp + 131) #define ActRemID_Tch (ActChgNumRowFooGrp + 132)
#define ActNewID_Oth (ActChgNumRowFooGrp + 132) #define ActNewID_Oth (ActChgNumRowFooGrp + 133)
#define ActNewID_Std (ActChgNumRowFooGrp + 133) #define ActNewID_Std (ActChgNumRowFooGrp + 134)
#define ActNewID_Tch (ActChgNumRowFooGrp + 134) #define ActNewID_Tch (ActChgNumRowFooGrp + 135)
#define ActFrmPwdOth (ActChgNumRowFooGrp + 135) #define ActFrmPwdOth (ActChgNumRowFooGrp + 136)
#define ActFrmPwdStd (ActChgNumRowFooGrp + 136) #define ActFrmPwdStd (ActChgNumRowFooGrp + 137)
#define ActFrmPwdTch (ActChgNumRowFooGrp + 137) #define ActFrmPwdTch (ActChgNumRowFooGrp + 138)
#define ActChgPwdOth (ActChgNumRowFooGrp + 138) #define ActChgPwdOth (ActChgNumRowFooGrp + 139)
#define ActChgPwdStd (ActChgNumRowFooGrp + 139) #define ActChgPwdStd (ActChgNumRowFooGrp + 140)
#define ActChgPwdTch (ActChgNumRowFooGrp + 140) #define ActChgPwdTch (ActChgNumRowFooGrp + 141)
#define ActFrmMaiOth (ActChgNumRowFooGrp + 141) #define ActFrmMaiOth (ActChgNumRowFooGrp + 142)
#define ActFrmMaiStd (ActChgNumRowFooGrp + 142) #define ActFrmMaiStd (ActChgNumRowFooGrp + 143)
#define ActFrmMaiTch (ActChgNumRowFooGrp + 143) #define ActFrmMaiTch (ActChgNumRowFooGrp + 144)
#define ActRemMaiOth (ActChgNumRowFooGrp + 144) #define ActRemMaiOth (ActChgNumRowFooGrp + 145)
#define ActRemMaiStd (ActChgNumRowFooGrp + 145) #define ActRemMaiStd (ActChgNumRowFooGrp + 146)
#define ActRemMaiTch (ActChgNumRowFooGrp + 146) #define ActRemMaiTch (ActChgNumRowFooGrp + 147)
#define ActNewMaiOth (ActChgNumRowFooGrp + 147) #define ActNewMaiOth (ActChgNumRowFooGrp + 148)
#define ActNewMaiStd (ActChgNumRowFooGrp + 148) #define ActNewMaiStd (ActChgNumRowFooGrp + 149)
#define ActNewMaiTch (ActChgNumRowFooGrp + 149) #define ActNewMaiTch (ActChgNumRowFooGrp + 150)
#define ActRemStdCrs (ActChgNumRowFooGrp + 150) #define ActRemStdCrs (ActChgNumRowFooGrp + 151)
#define ActRemTchCrs (ActChgNumRowFooGrp + 151) #define ActRemTchCrs (ActChgNumRowFooGrp + 152)
#define ActRemUsrGbl (ActChgNumRowFooGrp + 152) #define ActRemUsrGbl (ActChgNumRowFooGrp + 153)
#define ActReqRemAllStdCrs (ActChgNumRowFooGrp + 153) #define ActReqRemAllStdCrs (ActChgNumRowFooGrp + 154)
#define ActRemAllStdCrs (ActChgNumRowFooGrp + 154) #define ActRemAllStdCrs (ActChgNumRowFooGrp + 155)
#define ActReqRemOldUsr (ActChgNumRowFooGrp + 155) #define ActReqRemOldUsr (ActChgNumRowFooGrp + 156)
#define ActRemOldUsr (ActChgNumRowFooGrp + 156) #define ActRemOldUsr (ActChgNumRowFooGrp + 157)
#define ActLstDupUsr (ActChgNumRowFooGrp + 157) #define ActLstDupUsr (ActChgNumRowFooGrp + 158)
#define ActLstSimUsr (ActChgNumRowFooGrp + 158) #define ActLstSimUsr (ActChgNumRowFooGrp + 159)
#define ActRemDupUsr (ActChgNumRowFooGrp + 159) #define ActRemDupUsr (ActChgNumRowFooGrp + 160)
#define ActLstClk (ActChgNumRowFooGrp + 160) #define ActLstClk (ActChgNumRowFooGrp + 161)
/*****************************************************************************/ /*****************************************************************************/
/******************************** Social tab *********************************/ /******************************** Social tab *********************************/

View File

@ -428,12 +428,12 @@ void Ann_ShowFormAnnouncement (void)
Rol_WriteSelectorRoles (1 << Rol_UNK | Rol_WriteSelectorRoles (1 << Rol_UNK |
1 << Rol_GST | 1 << Rol_GST |
1 << Rol_STD | 1 << Rol_STD |
1 << Rol_NED_TCH | 1 << Rol_NET |
1 << Rol_TCH, 1 << Rol_TCH,
1 << Rol_UNK | 1 << Rol_UNK |
1 << Rol_GST | 1 << Rol_GST |
1 << Rol_STD | 1 << Rol_STD |
1 << Rol_NED_TCH | 1 << Rol_NET |
1 << Rol_TCH, 1 << Rol_TCH,
false,false); false,false);
fprintf (Gbl.F.Out,"</td>" fprintf (Gbl.F.Out,"</td>"

View File

@ -589,7 +589,7 @@ static void Asg_PutFormsToRemEditOneAsg (long AsgCod,bool Hidden)
Lay_PutContextualIconToEdit (ActEdiOneAsg,Asg_PutParams); Lay_PutContextualIconToEdit (ActEdiOneAsg,Asg_PutParams);
// no break // no break
case Rol_STD: case Rol_STD:
case Rol_NED_TCH: case Rol_NET:
/***** Put form to print assignment *****/ /***** Put form to print assignment *****/
Lay_PutContextualIconToPrint (ActPrnOneAsg,Asg_PutParams); Lay_PutContextualIconToPrint (ActPrnOneAsg,Asg_PutParams);
break; break;
@ -1717,7 +1717,7 @@ static bool Asg_CheckIfIBelongToCrsOrGrpsThisAssignment (long AsgCod)
switch (Gbl.Usrs.Me.LoggedRole) switch (Gbl.Usrs.Me.LoggedRole)
{ {
case Rol_STD: case Rol_STD:
case Rol_NED_TCH: case Rol_NET:
case Rol_TCH: case Rol_TCH:
// Students and teachers can do assignments depending on groups // Students and teachers can do assignments depending on groups
/***** Get if I can do an assignment from database *****/ /***** Get if I can do an assignment from database *****/

View File

@ -168,7 +168,7 @@ void Att_SeeAttEvents (void)
case Rol_STD: case Rol_STD:
Att_PutFormToListMyAttendance (); Att_PutFormToListMyAttendance ();
break; break;
case Rol_NED_TCH: case Rol_NET:
case Rol_TCH: case Rol_TCH:
case Rol_SYS_ADM: case Rol_SYS_ADM:
Att_PutFormToListStdsAttendance (); Att_PutFormToListStdsAttendance ();
@ -1825,7 +1825,7 @@ void Att_SeeOneAttEvent (void)
case Rol_STD: case Rol_STD:
Att_ListAttOnlyMeAsStudent (&Att); Att_ListAttOnlyMeAsStudent (&Att);
break; break;
case Rol_NED_TCH: case Rol_NET:
case Rol_TCH: case Rol_TCH:
case Rol_SYS_ADM: case Rol_SYS_ADM:
/***** Show list of students *****/ /***** Show list of students *****/

View File

@ -620,7 +620,7 @@ static void Ctr_Configuration (bool PrintView)
/***** Number of users in courses of this centre *****/ /***** Number of users in courses of this centre *****/
Ctr_ShowNumUsrsInCrssOfCtr (Rol_TCH); Ctr_ShowNumUsrsInCrssOfCtr (Rol_TCH);
Ctr_ShowNumUsrsInCrssOfCtr (Rol_NED_TCH); Ctr_ShowNumUsrsInCrssOfCtr (Rol_NET);
Ctr_ShowNumUsrsInCrssOfCtr (Rol_STD); Ctr_ShowNumUsrsInCrssOfCtr (Rol_STD);
Ctr_ShowNumUsrsInCrssOfCtr (Rol_UNK); Ctr_ShowNumUsrsInCrssOfCtr (Rol_UNK);
} }

View File

@ -233,13 +233,17 @@
/****************************** Public constants *****************************/ /****************************** Public constants *****************************/
/*****************************************************************************/ /*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 16.220.6 (2017-05-21)" #define Log_PLATFORM_VERSION "SWAD 16.220.7 (2017-05-21)"
#define CSS_FILE "swad16.209.3.css" #define CSS_FILE "swad16.209.3.css"
#define JS_FILE "swad16.206.3.js" #define JS_FILE "swad16.206.3.js"
// Number of lines (includes comments but not blank lines) has been got with the following command: // 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 // nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*?.h sql/swad*.sql | tail -1
/* /*
Version 16.220.7: May 21, 2017 Changes related with new role. Not finished. (219535 lines)
1 change necessary in database:
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1643','es','N','Inscribir/eliminar varios profesores no editores');
Version 16.220.6: May 21, 2017 Changes related with new role. Not finished. (219485 lines) Version 16.220.6: May 21, 2017 Changes related with new role. Not finished. (219485 lines)
1 change necessary in database: 1 change necessary in database:
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1642','es','N','Administrar varios profesores no editores'); INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1642','es','N','Administrar varios profesores no editores');

View File

@ -166,7 +166,7 @@ void Cht_ShowListOfAvailableChatRooms (void)
ThisRoomFullName,ThisRoomFullName); ThisRoomFullName,ThisRoomFullName);
Cht_WriteLinkToChat2 ("GBL_STD",ThisRoomFullName); Cht_WriteLinkToChat2 ("GBL_STD",ThisRoomFullName);
break; break;
case Rol_NED_TCH: case Rol_NET:
case Rol_TCH: case Rol_TCH:
sprintf (ThisRoomFullName,"%s (%s)", sprintf (ThisRoomFullName,"%s (%s)",
Txt_General,Txt_ROLES_PLURAL_abc[Rol_TCH][Usr_SEX_ALL]); Txt_General,Txt_ROLES_PLURAL_abc[Rol_TCH][Usr_SEX_ALL]);
@ -481,7 +481,7 @@ void Cht_OpenChatWindow (void)
Cht_MAX_BYTES_ROOM_FULL_NAMES); Cht_MAX_BYTES_ROOM_FULL_NAMES);
} }
if (Gbl.Usrs.Me.LoggedRole == Rol_NED_TCH || if (Gbl.Usrs.Me.LoggedRole == Rol_NET ||
Gbl.Usrs.Me.LoggedRole == Rol_TCH) Gbl.Usrs.Me.LoggedRole == Rol_TCH)
if (strcmp (RoomCode,"GBL_TCH")) if (strcmp (RoomCode,"GBL_TCH"))
{ {

View File

@ -436,7 +436,7 @@ void Con_ComputeConnectedUsrsBelongingToCurrentCrs (void)
Con_ComputeConnectedUsrsWithARoleBelongingToCurrentCrs (Rol_TCH); Con_ComputeConnectedUsrsWithARoleBelongingToCurrentCrs (Rol_TCH);
/***** Number of non-editing teachers *****/ /***** Number of non-editing teachers *****/
Con_ComputeConnectedUsrsWithARoleBelongingToCurrentCrs (Rol_NED_TCH); Con_ComputeConnectedUsrsWithARoleBelongingToCurrentCrs (Rol_NET);
/***** Number of students *****/ /***** Number of students *****/
Con_ComputeConnectedUsrsWithARoleBelongingToCurrentCrs (Rol_STD); Con_ComputeConnectedUsrsWithARoleBelongingToCurrentCrs (Rol_STD);
@ -485,7 +485,7 @@ static void Con_ShowConnectedUsrsBelongingToLocation (void)
/***** Number of teachers and students *****/ /***** Number of teachers and students *****/
fprintf (Gbl.F.Out,"<table class=\"CONNECTED_LIST\">"); fprintf (Gbl.F.Out,"<table class=\"CONNECTED_LIST\">");
Con_ShowConnectedUsrsWithARoleBelongingToCurrentLocationOnMainZone (Rol_TCH); Con_ShowConnectedUsrsWithARoleBelongingToCurrentLocationOnMainZone (Rol_TCH);
Con_ShowConnectedUsrsWithARoleBelongingToCurrentLocationOnMainZone (Rol_NED_TCH); Con_ShowConnectedUsrsWithARoleBelongingToCurrentLocationOnMainZone (Rol_NET);
Con_ShowConnectedUsrsWithARoleBelongingToCurrentLocationOnMainZone (Rol_STD); Con_ShowConnectedUsrsWithARoleBelongingToCurrentLocationOnMainZone (Rol_STD);
if (Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM) if (Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM)
Con_ShowConnectedUsrsWithARoleBelongingToCurrentLocationOnMainZone (Rol_GST); Con_ShowConnectedUsrsWithARoleBelongingToCurrentLocationOnMainZone (Rol_GST);
@ -532,7 +532,7 @@ void Con_ShowConnectedUsrsBelongingToCurrentCrs (void)
Gbl.Usrs.Connected.NumUsrs = 0; Gbl.Usrs.Connected.NumUsrs = 0;
Gbl.Usrs.Connected.NumUsrsToList = 0; Gbl.Usrs.Connected.NumUsrsToList = 0;
Con_ShowConnectedUsrsWithARoleBelongingToCurrentCrsOnRightColumn (Rol_TCH); Con_ShowConnectedUsrsWithARoleBelongingToCurrentCrsOnRightColumn (Rol_TCH);
Con_ShowConnectedUsrsWithARoleBelongingToCurrentCrsOnRightColumn (Rol_NED_TCH); Con_ShowConnectedUsrsWithARoleBelongingToCurrentCrsOnRightColumn (Rol_NET);
Con_ShowConnectedUsrsWithARoleBelongingToCurrentCrsOnRightColumn (Rol_STD); Con_ShowConnectedUsrsWithARoleBelongingToCurrentCrsOnRightColumn (Rol_STD);
fprintf (Gbl.F.Out,"</table>"); fprintf (Gbl.F.Out,"</table>");
@ -767,7 +767,7 @@ static void Con_GetNumConnectedUsrsWithARoleBelongingCurrentLocation (Rol_Role_t
" AND connected.UsrCod=usr_data.UsrCod"); " AND connected.UsrCod=usr_data.UsrCod");
break; break;
case Rol_STD: case Rol_STD:
case Rol_NED_TCH: case Rol_NET:
case Rol_TCH: case Rol_TCH:
switch (Gbl.Scope.Current) switch (Gbl.Scope.Current)
{ {
@ -1002,7 +1002,7 @@ static void Con_WriteRowConnectedUsrOnRightColumn (Rol_Role_t Role)
case Rol_STD: case Rol_STD:
Act_FormStartUnique (ActSeeRecOneStd); Act_FormStartUnique (ActSeeRecOneStd);
break; break;
case Rol_NED_TCH: case Rol_NET:
case Rol_TCH: case Rol_TCH:
Act_FormStartUnique (ActSeeRecOneTch); Act_FormStartUnique (ActSeeRecOneTch);
break; break;
@ -1069,7 +1069,7 @@ static void Con_ShowConnectedUsrsCurrentLocationOneByOneOnMainZone (Rol_Role_t R
" ORDER BY Dif"); " ORDER BY Dif");
break; break;
case Rol_STD: case Rol_STD:
case Rol_NED_TCH: case Rol_NET:
case Rol_TCH: case Rol_TCH:
switch (Gbl.Scope.Current) switch (Gbl.Scope.Current)
{ {
@ -1205,7 +1205,7 @@ static void Con_ShowConnectedUsrsCurrentLocationOneByOneOnMainZone (Rol_Role_t R
case Rol_STD: case Rol_STD:
Act_FormStart (ActSeeRecOneStd); Act_FormStart (ActSeeRecOneStd);
break; break;
case Rol_NED_TCH: case Rol_NET:
case Rol_TCH: case Rol_TCH:
Act_FormStart (ActSeeRecOneTch); Act_FormStart (ActSeeRecOneTch);
break; break;

View File

@ -430,7 +430,7 @@ static void Cty_Configuration (bool PrintView)
/***** Number of users in courses of this country *****/ /***** Number of users in courses of this country *****/
Cty_ShowNumUsrsInCrssOfCty (Rol_TCH); Cty_ShowNumUsrsInCrssOfCty (Rol_TCH);
Cty_ShowNumUsrsInCrssOfCty (Rol_NED_TCH); Cty_ShowNumUsrsInCrssOfCty (Rol_NET);
Cty_ShowNumUsrsInCrssOfCty (Rol_STD); Cty_ShowNumUsrsInCrssOfCty (Rol_STD);
Cty_ShowNumUsrsInCrssOfCty (Rol_UNK); Cty_ShowNumUsrsInCrssOfCty (Rol_UNK);
} }

View File

@ -429,7 +429,7 @@ static void Crs_Configuration (bool PrintView)
{ {
/***** Number of users *****/ /***** Number of users *****/
Crs_ShowNumUsrsInCrs (Rol_TCH); Crs_ShowNumUsrsInCrs (Rol_TCH);
Crs_ShowNumUsrsInCrs (Rol_NED_TCH); Crs_ShowNumUsrsInCrs (Rol_NET);
Crs_ShowNumUsrsInCrs (Rol_STD); Crs_ShowNumUsrsInCrs (Rol_STD);
/***** Indicators *****/ /***** Indicators *****/
@ -1287,7 +1287,7 @@ static bool Crs_ListCoursesOfAYearForSeeing (unsigned Year)
"</td>", "</td>",
TxtClassNormal,BgColor, TxtClassNormal,BgColor,
Crs->NumUsrs[Rol_TCH] + Crs->NumUsrs[Rol_TCH] +
Crs->NumUsrs[Rol_NED_TCH]); Crs->NumUsrs[Rol_NET]);
/* Current number of students in this course */ /* Current number of students in this course */
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE %s\">" fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE %s\">"
@ -1513,7 +1513,7 @@ static void Crs_ListCoursesOfAYearForEdition (unsigned Year)
"%u" "%u"
"</td>", "</td>",
Crs->NumUsrs[Rol_TCH] + Crs->NumUsrs[Rol_TCH] +
Crs->NumUsrs[Rol_NED_TCH]); Crs->NumUsrs[Rol_NET]);
/* Current number of students in this course */ /* Current number of students in this course */
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
@ -1993,7 +1993,7 @@ bool Crs_GetDataOfCourseByCod (struct Course *Crs)
Crs->FullName[0] = '\0'; Crs->FullName[0] = '\0';
Crs->NumUsrs[Rol_UNK ] = Crs->NumUsrs[Rol_UNK ] =
Crs->NumUsrs[Rol_STD ] = Crs->NumUsrs[Rol_STD ] =
Crs->NumUsrs[Rol_NED_TCH] = Crs->NumUsrs[Rol_NET] =
Crs->NumUsrs[Rol_TCH ] = 0; Crs->NumUsrs[Rol_TCH ] = 0;
/***** Check if course code is correct *****/ /***** Check if course code is correct *****/
@ -2057,10 +2057,10 @@ static void Crs_GetDataOfCourseFromRow (struct Course *Crs,MYSQL_ROW row)
/***** Get number of users *****/ /***** Get number of users *****/
Crs->NumUsrs[Rol_STD ] = Usr_GetNumUsrsInCrs (Rol_STD ,Crs->CrsCod); Crs->NumUsrs[Rol_STD ] = Usr_GetNumUsrsInCrs (Rol_STD ,Crs->CrsCod);
Crs->NumUsrs[Rol_NED_TCH] = Usr_GetNumUsrsInCrs (Rol_NED_TCH,Crs->CrsCod); Crs->NumUsrs[Rol_NET] = Usr_GetNumUsrsInCrs (Rol_NET,Crs->CrsCod);
Crs->NumUsrs[Rol_TCH ] = Usr_GetNumUsrsInCrs (Rol_TCH ,Crs->CrsCod); Crs->NumUsrs[Rol_TCH ] = Usr_GetNumUsrsInCrs (Rol_TCH ,Crs->CrsCod);
Crs->NumUsrs[Rol_UNK ] = Crs->NumUsrs[Rol_STD ] + Crs->NumUsrs[Rol_UNK ] = Crs->NumUsrs[Rol_STD ] +
Crs->NumUsrs[Rol_NED_TCH] + Crs->NumUsrs[Rol_NET] +
Crs->NumUsrs[Rol_TCH ]; Crs->NumUsrs[Rol_TCH ];
} }
@ -2786,7 +2786,7 @@ void Crs_ContEditAfterChgCrs (void)
false); false);
break; break;
case Rol_STD: case Rol_STD:
case Rol_NED_TCH: case Rol_NET:
case Rol_TCH: case Rol_TCH:
if (Gbl.Degs.EditingCrs.CrsCod != Gbl.CurrentCrs.Crs.CrsCod) if (Gbl.Degs.EditingCrs.CrsCod != Gbl.CurrentCrs.Crs.CrsCod)
PutButtonToRequestRegistration = !Usr_CheckIfUsrBelongsToCrs (Gbl.Usrs.Me.UsrDat.UsrCod, PutButtonToRequestRegistration = !Usr_CheckIfUsrBelongsToCrs (Gbl.Usrs.Me.UsrDat.UsrCod,
@ -3163,7 +3163,7 @@ static void Crs_WriteRowCrsData (unsigned NumCrs,MYSQL_ROW row,bool WriteColumnA
/***** Get number of teachers and students in this course *****/ /***** Get number of teachers and students in this course *****/
NumTchs = Usr_GetNumUsrsInCrs (Rol_TCH ,CrsCod) + NumTchs = Usr_GetNumUsrsInCrs (Rol_TCH ,CrsCod) +
Usr_GetNumUsrsInCrs (Rol_NED_TCH,CrsCod); Usr_GetNumUsrsInCrs (Rol_NET,CrsCod);
NumStds = Usr_GetNumUsrsInCrs (Rol_STD ,CrsCod); NumStds = Usr_GetNumUsrsInCrs (Rol_STD ,CrsCod);
if (NumTchs + NumStds) if (NumTchs + NumStds)
{ {

View File

@ -516,7 +516,7 @@ static void Deg_Configuration (bool PrintView)
/***** Number of users *****/ /***** Number of users *****/
Deg_ShowNumUsrsInCrssOfDeg (Rol_TCH); Deg_ShowNumUsrsInCrssOfDeg (Rol_TCH);
Deg_ShowNumUsrsInCrssOfDeg (Rol_NED_TCH); Deg_ShowNumUsrsInCrssOfDeg (Rol_NET);
Deg_ShowNumUsrsInCrssOfDeg (Rol_STD); Deg_ShowNumUsrsInCrssOfDeg (Rol_STD);
Deg_ShowNumUsrsInCrssOfDeg (Rol_UNK); Deg_ShowNumUsrsInCrssOfDeg (Rol_UNK);
} }

View File

@ -329,7 +329,7 @@ static void Dup_ListSimilarUsrs (void)
/* Write all the courses this user belongs to */ /* Write all the courses this user belongs to */
Crs_GetAndWriteCrssOfAUsr (&UsrDat,Rol_TCH); Crs_GetAndWriteCrssOfAUsr (&UsrDat,Rol_TCH);
Crs_GetAndWriteCrssOfAUsr (&UsrDat,Rol_NED_TCH); Crs_GetAndWriteCrssOfAUsr (&UsrDat,Rol_NET);
Crs_GetAndWriteCrssOfAUsr (&UsrDat,Rol_STD); Crs_GetAndWriteCrssOfAUsr (&UsrDat,Rol_STD);
fprintf (Gbl.F.Out,"</td>" fprintf (Gbl.F.Out,"</td>"

View File

@ -214,7 +214,7 @@ void Enr_ModifyRoleInCurrentCrs (struct UsrData *UsrDat,Rol_Role_t NewRole)
switch (NewRole) switch (NewRole)
{ {
case Rol_STD: case Rol_STD:
case Rol_NED_TCH: case Rol_NET:
case Rol_TCH: case Rol_TCH:
break; break;
default: default:
@ -253,7 +253,7 @@ void Enr_RegisterUsrInCurrentCrs (struct UsrData *UsrDat,Rol_Role_t NewRole,
switch (NewRole) switch (NewRole)
{ {
case Rol_STD: case Rol_STD:
case Rol_NED_TCH: case Rol_NET:
case Rol_TCH: case Rol_TCH:
break; break;
default: default:
@ -306,7 +306,7 @@ static void Enr_NotifyAfterEnrolment (struct UsrData *UsrDat,Rol_Role_t NewRole)
case Rol_STD: case Rol_STD:
NotifyEvent = Ntf_EVENT_ENROLMENT_STD; NotifyEvent = Ntf_EVENT_ENROLMENT_STD;
break; break;
case Rol_NED_TCH: case Rol_NET:
NotifyEvent = Ntf_EVENT_ENROLMENT_NED_TCH; NotifyEvent = Ntf_EVENT_ENROLMENT_NED_TCH;
break; break;
case Rol_TCH: case Rol_TCH:
@ -392,7 +392,7 @@ void Enr_ReqAcceptRegisterInCrs (void)
case Rol_STD: case Rol_STD:
Act_FormStart (ActAccEnrStd); Act_FormStart (ActAccEnrStd);
break; break;
case Rol_NED_TCH: case Rol_NET:
Act_FormStart (ActAccEnrNEdTch); Act_FormStart (ActAccEnrNEdTch);
break; break;
case Rol_TCH: case Rol_TCH:
@ -410,7 +410,7 @@ void Enr_ReqAcceptRegisterInCrs (void)
case Rol_STD: case Rol_STD:
Act_FormStart (ActRemMe_Std); Act_FormStart (ActRemMe_Std);
break; break;
case Rol_NED_TCH: case Rol_NET:
Act_FormStart (ActRemMe_NEdTch); Act_FormStart (ActRemMe_NEdTch);
break; break;
case Rol_TCH: case Rol_TCH:
@ -431,7 +431,7 @@ void Enr_ReqAcceptRegisterInCrs (void)
case Rol_STD: case Rol_STD:
NotifyEvent = Ntf_EVENT_ENROLMENT_STD; NotifyEvent = Ntf_EVENT_ENROLMENT_STD;
break; break;
case Rol_NED_TCH: case Rol_NET:
NotifyEvent = Ntf_EVENT_ENROLMENT_NED_TCH; NotifyEvent = Ntf_EVENT_ENROLMENT_NED_TCH;
break; break;
case Rol_TCH: case Rol_TCH:
@ -585,7 +585,7 @@ void Enr_ReqAdminStds (void)
void Enr_ReqAdminNonEditingTchs (void) void Enr_ReqAdminNonEditingTchs (void)
{ {
Enr_ReqAdminUsrs (Rol_NED_TCH); Enr_ReqAdminUsrs (Rol_NET);
} }
void Enr_ReqAdminTchs (void) void Enr_ReqAdminTchs (void)
@ -600,10 +600,9 @@ static void Enr_ReqAdminUsrs (Rol_Role_t Role)
switch (Gbl.Usrs.Me.LoggedRole) switch (Gbl.Usrs.Me.LoggedRole)
{ {
case Rol_GST: case Rol_GST:
Enr_AskIfRegRemMe (Rol_GST);
break;
case Rol_STD: case Rol_STD:
Enr_AskIfRegRemMe (Rol_STD); case Rol_NET:
Enr_AskIfRegRemMe (Role);
break; break;
case Rol_TCH: case Rol_TCH:
if (Gbl.CurrentCrs.Crs.CrsCod > 0 && if (Gbl.CurrentCrs.Crs.CrsCod > 0 &&
@ -636,6 +635,7 @@ static void Enr_ShowFormRegRemSeveralUsrs (Rol_Role_t Role)
extern const char *Hlp_USERS_Administration_administer_multiple_users; extern const char *Hlp_USERS_Administration_administer_multiple_users;
extern const char *The_ClassTitle[The_NUM_THEMES]; extern const char *The_ClassTitle[The_NUM_THEMES];
extern const char *Txt_Administer_multiple_students; extern const char *Txt_Administer_multiple_students;
extern const char *Txt_Administer_multiple_non_editing_teachers;
extern const char *Txt_Administer_multiple_teachers; extern const char *Txt_Administer_multiple_teachers;
extern const char *Txt_Step_1_Provide_a_list_of_users; extern const char *Txt_Step_1_Provide_a_list_of_users;
extern const char *Txt_Type_or_paste_a_list_of_IDs_nicks_or_emails_; extern const char *Txt_Type_or_paste_a_list_of_IDs_nicks_or_emails_;
@ -645,6 +645,8 @@ static void Enr_ShowFormRegRemSeveralUsrs (Rol_Role_t Role)
extern const char *Txt_No_groups_have_been_created_in_the_course_X_Therefore_; extern const char *Txt_No_groups_have_been_created_in_the_course_X_Therefore_;
extern const char *Txt_Step_4_Confirm_the_enrolment_removing; extern const char *Txt_Step_4_Confirm_the_enrolment_removing;
extern const char *Txt_Confirm; extern const char *Txt_Confirm;
Act_Action_t NextAction;
const char *Title;
/***** Put contextual links *****/ /***** Put contextual links *****/
if (Role == Rol_STD && // Users to admin: students if (Role == Rol_STD && // Users to admin: students
@ -660,14 +662,30 @@ static void Enr_ShowFormRegRemSeveralUsrs (Rol_Role_t Role)
} }
/***** Form to send students to be enroled / removed *****/ /***** Form to send students to be enroled / removed *****/
Act_FormStart (Role == Rol_STD ? ActRcvFrmEnrSevStd : switch (Role)
ActRcvFrmEnrSevTch); {
case Rol_STD:
NextAction = ActRcvFrmEnrSevStd;
Title = Txt_Administer_multiple_students;
break;
case Rol_NET:
NextAction = ActRcvFrmEnrSevNET;
Title = Txt_Administer_multiple_non_editing_teachers;
break;
case Rol_TCH:
NextAction = ActRcvFrmEnrSevTch;
Title = Txt_Administer_multiple_teachers;
break;
default:
NextAction = ActUnk;
Title = NULL;
Lay_ShowErrorAndExit ("Wrong role.");
break;
}
Act_FormStart (NextAction);
/***** Start frame *****/ /***** Start frame *****/
Lay_StartRoundFrame (NULL, Lay_StartRoundFrame (NULL,Title,NULL,
Role == Rol_STD ? Txt_Administer_multiple_students :
Txt_Administer_multiple_teachers,
NULL,
Hlp_USERS_Administration_administer_multiple_users); Hlp_USERS_Administration_administer_multiple_users);
/***** Step 1: List of students to be enroled / removed *****/ /***** Step 1: List of students to be enroled / removed *****/
@ -1310,6 +1328,11 @@ void Enr_ReceiveFormAdminStds (void)
Enr_ReceiveFormUsrsCrs (Rol_STD); Enr_ReceiveFormUsrsCrs (Rol_STD);
} }
void Enr_ReceiveFormAdminNonEditTchs (void)
{
Enr_ReceiveFormUsrsCrs (Rol_NET);
}
void Enr_ReceiveFormAdminTchs (void) void Enr_ReceiveFormAdminTchs (void)
{ {
Enr_ReceiveFormUsrsCrs (Rol_TCH); Enr_ReceiveFormUsrsCrs (Rol_TCH);
@ -2983,7 +3006,7 @@ void Enr_PutLinkToAdminSeveralUsrs (Rol_Role_t Role)
NextAction = ActReqEnrSevStd; NextAction = ActReqEnrSevStd;
TitleText = Txt_Administer_multiple_students; TitleText = Txt_Administer_multiple_students;
break; break;
case Rol_NED_TCH: case Rol_NET:
NextAction = ActReqEnrSevNEdTch; NextAction = ActReqEnrSevNEdTch;
TitleText = Txt_Administer_multiple_teachers; TitleText = Txt_Administer_multiple_teachers;
break; break;

View File

@ -99,6 +99,7 @@ void Enr_RemoveOldUsrs (void);
bool Enr_PutActionsRegRemOneUsr (bool ItsMe); bool Enr_PutActionsRegRemOneUsr (bool ItsMe);
void Enr_ReceiveFormAdminStds (void); void Enr_ReceiveFormAdminStds (void);
void Enr_ReceiveFormAdminNonEditTchs (void);
void Enr_ReceiveFormAdminTchs (void); void Enr_ReceiveFormAdminTchs (void);
void Enr_PutLinkToAdminSeveralUsrs (Rol_Role_t Role); void Enr_PutLinkToAdminSeveralUsrs (Rol_Role_t Role);

View File

@ -49,7 +49,7 @@ typedef enum
// ...but no course selected // ...but no course selected
// ...or not belonging to the current course // ...or not belonging to the current course
Rol_STD = 3, // Student in the current course Rol_STD = 3, // Student in the current course
Rol_NED_TCH = 4, // Non-editing teacher in the current course Rol_NET = 4, // Non-editing teacher in the current course
Rol_TCH = 5, // Old 4 // Teacher in the current course Rol_TCH = 5, // Old 4 // Teacher in the current course
Rol_DEG_ADM = 6, // Old 5 // Degree administrator Rol_DEG_ADM = 6, // Old 5 // Degree administrator
Rol_CTR_ADM = 7, // Old 6 // Centre administrator Rol_CTR_ADM = 7, // Old 6 // Centre administrator

View File

@ -1026,7 +1026,7 @@ static void Svy_SetAllowedAndHiddenScopes (unsigned *ScopesAllowed,
} }
} }
break; break;
case Rol_NED_TCH: // Non-editing teacher in current course ************** case Rol_NET: // Non-editing teacher in current course **************
case Rol_TCH: // Teacher in current course ************************** case Rol_TCH: // Teacher in current course **************************
*ScopesAllowed = 1 << Sco_SCOPE_SYS; *ScopesAllowed = 1 << Sco_SCOPE_SYS;
*HiddenAllowed = 0; *HiddenAllowed = 0;

View File

@ -2058,6 +2058,27 @@ const char *Txt_Administer_multiple_students =
"Gerenciar v&aacute;rios estudantes"; "Gerenciar v&aacute;rios estudantes";
#endif #endif
const char *Txt_Administer_multiple_non_editing_teachers =
#if L==1
"Administrar diversos professors no editors";
#elif L==2
"Verwalten Sie mehrere nicht bearbeiteter Lehrkr&auml;fte";
#elif L==3
"Administer multiple non-editing teachers";
#elif L==4
"Administrar varios profesores no editores";
#elif L==5
"G&eacute;rer plusieurs enseignants non-&eacute;diteurs";
#elif L==6
"Administrar varios profesores no editores"; // Okoteve traducción
#elif L==7
"Gestire pi&ugrave; professori non-editing";
#elif L==8
"Zarz&aogon;dzaj wielu nauczycieli nie edytuj&aogon;cy";
#elif L==9
"Gerenciar v&aacute;rios professores n&atilde;o editores";
#endif
const char *Txt_Administer_multiple_teachers = const char *Txt_Administer_multiple_teachers =
#if L==1 #if L==1
"Administrar diversos professors"; "Administrar diversos professors";