mirror of https://github.com/acanas/swad-core.git
Version 14.72.1
This commit is contained in:
parent
129c8cfdba
commit
29d6c229fa
|
@ -861,6 +861,10 @@ Users:
|
||||||
710. ActReqAccEnrCrs Confirm acceptation / refusion of enrollment in current course
|
710. ActReqAccEnrCrs Confirm acceptation / refusion of enrollment in current course
|
||||||
711. ActAccEnrCrs Accept enrollment in current course
|
711. ActAccEnrCrs Accept enrollment in current course
|
||||||
712. ActRemMeCrs Refuse enrollment in current course
|
712. ActRemMeCrs Refuse enrollment in current course
|
||||||
|
---. ActNewAdmIns Register an administrador in this institution
|
||||||
|
---. ActRemAdmIns Remove an administrador of this institution
|
||||||
|
---. ActNewAdmCtr Register an administrador in this centre
|
||||||
|
---. ActRemAdmCtr Remove an administrador of this centre
|
||||||
713. ActNewAdmDeg Register an administrador in this degree
|
713. ActNewAdmDeg Register an administrador in this degree
|
||||||
714. ActRemAdmDeg Remove an administrador of this degree
|
714. ActRemAdmDeg Remove an administrador of this degree
|
||||||
715. ActRcvFrmMdfUsrCrs Receive a form with IDs of users to be registeres/removed to/from current course
|
715. ActRcvFrmMdfUsrCrs Receive a form with IDs of users to be registeres/removed to/from current course
|
||||||
|
@ -2156,6 +2160,12 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
|
||||||
/* ActAccEnrCrs */{ 558,-1,TabUsr,ActReqMdfSevUsr ,0x1F8,0x000,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AcceptRegisterMeInCrs ,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},
|
/* ActRemMeCrs */{ 559,-1,TabUsr,ActReqMdfSevUsr ,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},
|
||||||
|
|
||||||
|
/* ActNewAdmCtr */{1339,-1,TabUsr,ActReqMdfSevUsr ,0x100,0x100,0x100,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},
|
||||||
|
|
||||||
/* ActNewAdmDeg */{ 586,-1,TabUsr,ActReqMdfSevUsr ,0x100,0x100,0x100,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AddAdmToDeg ,NULL},
|
/* ActNewAdmDeg */{ 586,-1,TabUsr,ActReqMdfSevUsr ,0x100,0x100,0x100,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},
|
/* ActRemAdmDeg */{ 584,-1,TabUsr,ActReqMdfSevUsr ,0x1E0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_RemAdmDeg ,NULL},
|
||||||
|
|
||||||
|
@ -3838,6 +3848,10 @@ Act_Action_t Act_FromActCodToAction[1+Act_MAX_ACTION_COD] = // Do not reuse uniq
|
||||||
ActReqDatAdmDocIns, // #1334
|
ActReqDatAdmDocIns, // #1334
|
||||||
ActChgDatAdmDocIns, // #1335
|
ActChgDatAdmDocIns, // #1335
|
||||||
ActDowAdmDocIns, // #1336
|
ActDowAdmDocIns, // #1336
|
||||||
|
ActNewAdmIns, // #1337
|
||||||
|
ActRemAdmIns, // #1338
|
||||||
|
ActNewAdmCtr, // #1339
|
||||||
|
ActRemAdmCtr, // #1340
|
||||||
};
|
};
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
|
@ -69,9 +69,9 @@ typedef enum
|
||||||
|
|
||||||
typedef int Act_Action_t; // Must be a signed type, because -1 is used to indicate obsolete action
|
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+70+53+48+204+184+94+168+28+75)
|
#define Act_NUM_ACTIONS (7+52+15+70+53+48+204+184+98+168+28+75)
|
||||||
|
|
||||||
#define Act_MAX_ACTION_COD 1336
|
#define Act_MAX_ACTION_COD 1340
|
||||||
|
|
||||||
#define Act_MAX_OPTIONS_IN_MENU_PER_TAB 20
|
#define Act_MAX_OPTIONS_IN_MENU_PER_TAB 20
|
||||||
|
|
||||||
|
@ -893,23 +893,27 @@ typedef int Act_Action_t; // Must be a signed type, because -1 is used to indica
|
||||||
#define ActAccEnrCrs (ActChgNumRowFooGrp+79)
|
#define ActAccEnrCrs (ActChgNumRowFooGrp+79)
|
||||||
#define ActRemMeCrs (ActChgNumRowFooGrp+80)
|
#define ActRemMeCrs (ActChgNumRowFooGrp+80)
|
||||||
|
|
||||||
#define ActNewAdmDeg (ActChgNumRowFooGrp+81)
|
#define ActNewAdmIns (ActChgNumRowFooGrp+81)
|
||||||
#define ActRemAdmDeg (ActChgNumRowFooGrp+82)
|
#define ActRemAdmIns (ActChgNumRowFooGrp+82)
|
||||||
|
#define ActNewAdmCtr (ActChgNumRowFooGrp+83)
|
||||||
|
#define ActRemAdmCtr (ActChgNumRowFooGrp+84)
|
||||||
|
#define ActNewAdmDeg (ActChgNumRowFooGrp+85)
|
||||||
|
#define ActRemAdmDeg (ActChgNumRowFooGrp+86)
|
||||||
|
|
||||||
#define ActRcvFrmMdfUsrCrs (ActChgNumRowFooGrp+83)
|
#define ActRcvFrmMdfUsrCrs (ActChgNumRowFooGrp+87)
|
||||||
#define ActFrmIDsOthUsr (ActChgNumRowFooGrp+84)
|
#define ActFrmIDsOthUsr (ActChgNumRowFooGrp+88)
|
||||||
#define ActRemIDOth (ActChgNumRowFooGrp+85)
|
#define ActRemIDOth (ActChgNumRowFooGrp+89)
|
||||||
#define ActNewIDOth (ActChgNumRowFooGrp+86)
|
#define ActNewIDOth (ActChgNumRowFooGrp+90)
|
||||||
#define ActFrmPwdOthUsr (ActChgNumRowFooGrp+87)
|
#define ActFrmPwdOthUsr (ActChgNumRowFooGrp+91)
|
||||||
#define ActChgPwdOthUsr (ActChgNumRowFooGrp+88)
|
#define ActChgPwdOthUsr (ActChgNumRowFooGrp+92)
|
||||||
#define ActRemUsrCrs (ActChgNumRowFooGrp+89)
|
#define ActRemUsrCrs (ActChgNumRowFooGrp+93)
|
||||||
#define ActRemUsrGbl (ActChgNumRowFooGrp+90)
|
#define ActRemUsrGbl (ActChgNumRowFooGrp+94)
|
||||||
|
|
||||||
#define ActReqRemAllStdCrs (ActChgNumRowFooGrp+91)
|
#define ActReqRemAllStdCrs (ActChgNumRowFooGrp+95)
|
||||||
#define ActRemAllStdCrs (ActChgNumRowFooGrp+92)
|
#define ActRemAllStdCrs (ActChgNumRowFooGrp+96)
|
||||||
|
|
||||||
#define ActReqRemOldUsr (ActChgNumRowFooGrp+93)
|
#define ActReqRemOldUsr (ActChgNumRowFooGrp+97)
|
||||||
#define ActRemOldUsr (ActChgNumRowFooGrp+94)
|
#define ActRemOldUsr (ActChgNumRowFooGrp+98)
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/******************************* Messages tab ********************************/
|
/******************************* Messages tab ********************************/
|
||||||
|
|
|
@ -39,11 +39,20 @@
|
||||||
/****************************** Public constants *****************************/
|
/****************************** Public constants *****************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
#define Log_PLATFORM_VERSION "SWAD 14.72 (2015/01/31)"
|
#define Log_PLATFORM_VERSION "SWAD 14.72.1 (2015/02/01)"
|
||||||
|
|
||||||
// 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 | tail -1
|
// nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*.h | tail -1
|
||||||
/*
|
/*
|
||||||
|
Version 14.72.1: Feb 01, 2015 New options to register and remove institution and centre admins. (177477 lines)
|
||||||
|
6 changes necessary in database:
|
||||||
|
UPDATE actions SET Txt='Añadir administrador de titulación' WHERE ActCod='586' AND Language='es';
|
||||||
|
UPDATE actions SET Txt='Eliminar administrador de titulación' WHERE ActCod='584' AND Language='es';
|
||||||
|
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1337','es','N','Añadir administrador de institución');
|
||||||
|
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1338','es','N','Eliminar administrador de institución');
|
||||||
|
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1339','es','N','Añadir administrador de centro');
|
||||||
|
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1340','es','N','Eliminar administrador de centro');
|
||||||
|
|
||||||
Version 14.72: Jan 31, 2015 New options to register and remove institution and centre admins (not finished). (176934 lines)
|
Version 14.72: Jan 31, 2015 New options to register and remove institution and centre admins (not finished). (176934 lines)
|
||||||
Version 14.71: Jan 29, 2015 New table admin to store system, institution, centre or degree admins. (176255 lines)
|
Version 14.71: Jan 29, 2015 New table admin to store system, institution, centre or degree admins. (176255 lines)
|
||||||
4 changes necessary in database:
|
4 changes necessary in database:
|
||||||
|
|
|
@ -107,6 +107,8 @@ static void Enr_AskIfRegRemUsr (struct ListUsrCods *ListUsrCods);
|
||||||
|
|
||||||
static void Enr_ShowFormToEditOtherUsr (void);
|
static void Enr_ShowFormToEditOtherUsr (void);
|
||||||
|
|
||||||
|
static void Enr_RegisterAdminInCurrentIns (struct UsrData *UsrDat);
|
||||||
|
static void Enr_RegisterAdminInCurrentCtr (struct UsrData *UsrDat);
|
||||||
static void Enr_RegisterAdminInCurrentDeg (struct UsrData *UsrDat);
|
static void Enr_RegisterAdminInCurrentDeg (struct UsrData *UsrDat);
|
||||||
static void Enr_ReqRemOrRemUsrFromCrs (Enr_ReqDelOrDelUsr_t ReqDelOrDelUsr);
|
static void Enr_ReqRemOrRemUsrFromCrs (Enr_ReqDelOrDelUsr_t ReqDelOrDelUsr);
|
||||||
static void Enr_ReqRemAdmOfDeg (void);
|
static void Enr_ReqRemAdmOfDeg (void);
|
||||||
|
@ -1018,7 +1020,7 @@ static bool Enr_PutActionsRegRemOneUsr (bool ItsMe)
|
||||||
sprintf (Gbl.Message,
|
sprintf (Gbl.Message,
|
||||||
ItsMe ? Txt_Remove_me_as_an_administrator_of_the_institution_X :
|
ItsMe ? Txt_Remove_me_as_an_administrator_of_the_institution_X :
|
||||||
Txt_Remove_user_as_an_administrator_of_the_institution_X,
|
Txt_Remove_user_as_an_administrator_of_the_institution_X,
|
||||||
Gbl.CurrentDeg.Deg.ShortName);
|
Gbl.CurrentIns.Ins.ShortName);
|
||||||
fprintf (Gbl.F.Out,"<li>"
|
fprintf (Gbl.F.Out,"<li>"
|
||||||
"<input type=\"radio\" name=\"RegRemAction\" value=\"%u\"",
|
"<input type=\"radio\" name=\"RegRemAction\" value=\"%u\"",
|
||||||
(unsigned) Enr_REMOVE_ONE_INSTITUTION_ADMIN);
|
(unsigned) Enr_REMOVE_ONE_INSTITUTION_ADMIN);
|
||||||
|
@ -2843,6 +2845,66 @@ static void Enr_ShowFormToEditOtherUsr (void)
|
||||||
"</div>");
|
"</div>");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/*************** Add an administrator to current institution *****************/
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
void Enr_AddAdmToIns (void)
|
||||||
|
{
|
||||||
|
extern const char *Txt_User_not_found_or_you_do_not_have_permission_;
|
||||||
|
|
||||||
|
if (Gbl.CurrentIns.Ins.InsCod > 0)
|
||||||
|
{
|
||||||
|
/***** Get plain user's ID of the user to add/modify *****/
|
||||||
|
if (Usr_GetParamOtherUsrCodEncryptedAndGetUsrData ())
|
||||||
|
{
|
||||||
|
/* Check if it's allowed to register this administrator in institution */
|
||||||
|
if (Gbl.Usrs.Me.LoggedRole == Rol_ROLE_SUPERUSER)
|
||||||
|
{
|
||||||
|
/***** Register administrator in current institution in database *****/
|
||||||
|
Enr_RegisterAdminInCurrentIns (&Gbl.Usrs.Other.UsrDat);
|
||||||
|
|
||||||
|
/***** Show user's record *****/
|
||||||
|
Rec_ShowCommonRecordUnmodifiable (&Gbl.Usrs.Other.UsrDat);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
Lay_ShowAlert (Lay_WARNING,Txt_User_not_found_or_you_do_not_have_permission_);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
Lay_ShowAlert (Lay_WARNING,Txt_User_not_found_or_you_do_not_have_permission_);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/******************* Add an administrator to current centre ******************/
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
void Enr_AddAdmToCtr (void)
|
||||||
|
{
|
||||||
|
extern const char *Txt_User_not_found_or_you_do_not_have_permission_;
|
||||||
|
|
||||||
|
if (Gbl.CurrentCtr.Ctr.CtrCod > 0)
|
||||||
|
{
|
||||||
|
/***** Get plain user's ID of the user to add/modify *****/
|
||||||
|
if (Usr_GetParamOtherUsrCodEncryptedAndGetUsrData ())
|
||||||
|
{
|
||||||
|
/* Check if it's allowed to register this administrator in centre */
|
||||||
|
if (Gbl.Usrs.Me.LoggedRole == Rol_ROLE_SUPERUSER)
|
||||||
|
{
|
||||||
|
/***** Register administrator in current centre in database *****/
|
||||||
|
Enr_RegisterAdminInCurrentCtr (&Gbl.Usrs.Other.UsrDat);
|
||||||
|
|
||||||
|
/***** Show user's record *****/
|
||||||
|
Rec_ShowCommonRecordUnmodifiable (&Gbl.Usrs.Other.UsrDat);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
Lay_ShowAlert (Lay_WARNING,Txt_User_not_found_or_you_do_not_have_permission_);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
Lay_ShowAlert (Lay_WARNING,Txt_User_not_found_or_you_do_not_have_permission_);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/******************* Add an administrator to current degree ******************/
|
/******************* Add an administrator to current degree ******************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -2873,6 +2935,62 @@ void Enr_AddAdmToDeg (void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/**************** Register administrator in current institution **************/
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
static void Enr_RegisterAdminInCurrentIns (struct UsrData *UsrDat)
|
||||||
|
{
|
||||||
|
extern const char *Txt_THE_USER_X_is_already_an_administrator_of_the_institution_Y;
|
||||||
|
extern const char *Txt_THE_USER_X_has_been_enrolled_as_administrator_of_the_institution_Y;
|
||||||
|
char Query[512];
|
||||||
|
|
||||||
|
/***** Check if user was and administrator of current institution *****/
|
||||||
|
if (Usr_CheckIfUsrIsAdmOfIns (UsrDat->UsrCod,Gbl.CurrentIns.Ins.InsCod))
|
||||||
|
sprintf (Gbl.Message,Txt_THE_USER_X_is_already_an_administrator_of_the_institution_Y,
|
||||||
|
UsrDat->FullName,Gbl.CurrentIns.Ins.FullName);
|
||||||
|
else // User was not administrator of current institution
|
||||||
|
{
|
||||||
|
/***** Insert or replace administrator in current institution *****/
|
||||||
|
sprintf (Query,"REPLACE INTO admin (UsrCod,Scope,Cod)"
|
||||||
|
" VALUES ('%ld','Ins','%ld')",
|
||||||
|
UsrDat->UsrCod,Gbl.CurrentIns.Ins.InsCod);
|
||||||
|
DB_QueryREPLACE (Query,"can not create administrator of institution");
|
||||||
|
|
||||||
|
sprintf (Gbl.Message,Txt_THE_USER_X_has_been_enrolled_as_administrator_of_the_institution_Y,
|
||||||
|
UsrDat->FullName,Gbl.CurrentIns.Ins.FullName);
|
||||||
|
}
|
||||||
|
Lay_ShowAlert (Lay_SUCCESS,Gbl.Message);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/******************* Register administrator in current centre ****************/
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
static void Enr_RegisterAdminInCurrentCtr (struct UsrData *UsrDat)
|
||||||
|
{
|
||||||
|
extern const char *Txt_THE_USER_X_is_already_an_administrator_of_the_centre_Y;
|
||||||
|
extern const char *Txt_THE_USER_X_has_been_enrolled_as_administrator_of_the_centre_Y;
|
||||||
|
char Query[512];
|
||||||
|
|
||||||
|
/***** Check if user was and administrator of current centre *****/
|
||||||
|
if (Usr_CheckIfUsrIsAdmOfCtr (UsrDat->UsrCod,Gbl.CurrentCtr.Ctr.CtrCod))
|
||||||
|
sprintf (Gbl.Message,Txt_THE_USER_X_is_already_an_administrator_of_the_centre_Y,
|
||||||
|
UsrDat->FullName,Gbl.CurrentCtr.Ctr.FullName);
|
||||||
|
else // User was not administrator of current centre
|
||||||
|
{
|
||||||
|
/***** Insert or replace administrator in current centre *****/
|
||||||
|
sprintf (Query,"REPLACE INTO admin (UsrCod,Scope,Cod)"
|
||||||
|
" VALUES ('%ld','Ctr','%ld')",
|
||||||
|
UsrDat->UsrCod,Gbl.CurrentCtr.Ctr.CtrCod);
|
||||||
|
DB_QueryREPLACE (Query,"can not create administrator of centre");
|
||||||
|
|
||||||
|
sprintf (Gbl.Message,Txt_THE_USER_X_has_been_enrolled_as_administrator_of_the_centre_Y,
|
||||||
|
UsrDat->FullName,Gbl.CurrentCtr.Ctr.FullName);
|
||||||
|
}
|
||||||
|
Lay_ShowAlert (Lay_SUCCESS,Gbl.Message);
|
||||||
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/******************* Register administrator in current degree ****************/
|
/******************* Register administrator in current degree ****************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -2890,8 +3008,8 @@ static void Enr_RegisterAdminInCurrentDeg (struct UsrData *UsrDat)
|
||||||
else // User was not administrator of current degree
|
else // User was not administrator of current degree
|
||||||
{
|
{
|
||||||
/***** Insert or replace administrator in current degree *****/
|
/***** Insert or replace administrator in current degree *****/
|
||||||
sprintf (Query,"REPLACE INTO deg_admin (UsrCod,DegCod)"
|
sprintf (Query,"REPLACE INTO admin (UsrCod,Scope,Cod)"
|
||||||
" VALUES ('%ld','%ld')",
|
" VALUES ('%ld','Deg','%ld')",
|
||||||
UsrDat->UsrCod,Gbl.CurrentDeg.Deg.DegCod);
|
UsrDat->UsrCod,Gbl.CurrentDeg.Deg.DegCod);
|
||||||
DB_QueryREPLACE (Query,"can not create administrator of degree");
|
DB_QueryREPLACE (Query,"can not create administrator of degree");
|
||||||
|
|
||||||
|
@ -3753,7 +3871,7 @@ static void Enr_EffectivelyRemAdmFromIns (struct UsrData *UsrDat)
|
||||||
extern const char *Txt_THE_USER_X_is_not_an_administrator_of_the_institution_Y;
|
extern const char *Txt_THE_USER_X_is_not_an_administrator_of_the_institution_Y;
|
||||||
char Query[1024];
|
char Query[1024];
|
||||||
|
|
||||||
if (Usr_CheckIfUsrIsAdmOfDeg (UsrDat->UsrCod,Gbl.CurrentIns.Ins.InsCod)) // User is administrator of current institution
|
if (Usr_CheckIfUsrIsAdmOfIns (UsrDat->UsrCod,Gbl.CurrentIns.Ins.InsCod)) // User is administrator of current institution
|
||||||
{
|
{
|
||||||
/***** Remove user from the table of admins *****/
|
/***** Remove user from the table of admins *****/
|
||||||
sprintf (Query,"DELETE FROM admin"
|
sprintf (Query,"DELETE FROM admin"
|
||||||
|
@ -3783,7 +3901,7 @@ static void Enr_EffectivelyRemAdmFromCtr (struct UsrData *UsrDat)
|
||||||
extern const char *Txt_THE_USER_X_is_not_an_administrator_of_the_centre_Y;
|
extern const char *Txt_THE_USER_X_is_not_an_administrator_of_the_centre_Y;
|
||||||
char Query[1024];
|
char Query[1024];
|
||||||
|
|
||||||
if (Usr_CheckIfUsrIsAdmOfDeg (UsrDat->UsrCod,Gbl.CurrentCtr.Ctr.CtrCod)) // User is administrator of current centre
|
if (Usr_CheckIfUsrIsAdmOfCtr (UsrDat->UsrCod,Gbl.CurrentCtr.Ctr.CtrCod)) // User is administrator of current centre
|
||||||
{
|
{
|
||||||
/***** Remove user from the table of admins *****/
|
/***** Remove user from the table of admins *****/
|
||||||
sprintf (Query,"DELETE FROM admin"
|
sprintf (Query,"DELETE FROM admin"
|
||||||
|
|
|
@ -105,6 +105,8 @@ void Enr_ShowEnrollmentRequests (void);
|
||||||
|
|
||||||
void Enr_ReqRegRemUsr (void);
|
void Enr_ReqRegRemUsr (void);
|
||||||
void Enr_AskIfRegRemAnotherUsr (void);
|
void Enr_AskIfRegRemAnotherUsr (void);
|
||||||
|
void Enr_AddAdmToIns (void);
|
||||||
|
void Enr_AddAdmToCtr (void);
|
||||||
void Enr_AddAdmToDeg (void);
|
void Enr_AddAdmToDeg (void);
|
||||||
|
|
||||||
void Enr_ReqRemMeFromCrs (void);
|
void Enr_ReqRemMeFromCrs (void);
|
||||||
|
|
483
swad_text.c
483
swad_text.c
|
@ -7980,6 +7980,27 @@ const char *Txt_Do_not_show_again =
|
||||||
"Não mostrar novamente";
|
"Não mostrar novamente";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
const char *Txt_Do_you_really_want_to_be_removed_as_an_administrator_of_the_centre_X = // Warning: it is very important to include %s in the following sentences
|
||||||
|
#if L==0
|
||||||
|
"¿Realmente desea dejar de ser administrador/a del centro <strong>%s</strong>?"; // Necessita traduccio
|
||||||
|
#elif L==1
|
||||||
|
"Do you really want to be removed as an administrator of the centre <strong>%s</strong>?"; // Need Übersetzung
|
||||||
|
#elif L==2
|
||||||
|
"Do you really want to be removed as an administrator of the centre <strong>%s</strong>?";
|
||||||
|
#elif L==3
|
||||||
|
"¿Realmente desea dejar de ser administrador/a del centro <strong>%s</strong>?";
|
||||||
|
#elif L==4
|
||||||
|
"Do you really want to be removed as an administrator of the centre <strong>%s</strong>?"; // Besoin de traduction
|
||||||
|
#elif L==5
|
||||||
|
"¿Realmente desea dejar de ser administrador/a del centro <strong>%s</strong>?"; // Okoteve traducción
|
||||||
|
#elif L==6
|
||||||
|
"Vuole realmente essere rimosso come amministratore del centro <strong>%s</strong>?";
|
||||||
|
#elif L==7
|
||||||
|
"Czy naprawde chcesz byc usuniety jako administrator centrum <strong>%s</strong>?";
|
||||||
|
#elif L==8
|
||||||
|
"Do you really want to be removed as an administrator of the centre <strong>%s</strong>?"; // Necessita de tradução
|
||||||
|
#endif
|
||||||
|
|
||||||
const char *Txt_Do_you_really_want_to_be_removed_as_an_administrator_of_the_degree_X = // Warning: it is very important to include %s in the following sentences
|
const char *Txt_Do_you_really_want_to_be_removed_as_an_administrator_of_the_degree_X = // Warning: it is very important to include %s in the following sentences
|
||||||
#if L==0
|
#if L==0
|
||||||
"¿Realmente desea dejar de ser administrador/a de la titulación <strong>%s</strong>?"; // Necessita traduccio
|
"¿Realmente desea dejar de ser administrador/a de la titulación <strong>%s</strong>?"; // Necessita traduccio
|
||||||
|
@ -8001,6 +8022,27 @@ const char *Txt_Do_you_really_want_to_be_removed_as_an_administrator_of_the_degr
|
||||||
"Do you really want to be removed as an administrator of the degree <strong>%s</strong>?"; // Necessita de tradução
|
"Do you really want to be removed as an administrator of the degree <strong>%s</strong>?"; // Necessita de tradução
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
const char *Txt_Do_you_really_want_to_be_removed_as_an_administrator_of_the_institution_X = // Warning: it is very important to include %s in the following sentences
|
||||||
|
#if L==0
|
||||||
|
"¿Realmente desea dejar de ser administrador/a de la institución <strong>%s</strong>?"; // Necessita traduccio
|
||||||
|
#elif L==1
|
||||||
|
"Do you really want to be removed as an administrator of the institution <strong>%s</strong>?"; // Need Übersetzung
|
||||||
|
#elif L==2
|
||||||
|
"Do you really want to be removed as an administrator of the institution <strong>%s</strong>?";
|
||||||
|
#elif L==3
|
||||||
|
"¿Realmente desea dejar de ser administrador/a de la institución <strong>%s</strong>?";
|
||||||
|
#elif L==4
|
||||||
|
"Do you really want to be removed as an administrator of the institution <strong>%s</strong>?"; // Besoin de traduction
|
||||||
|
#elif L==5
|
||||||
|
"¿Realmente desea dejar de ser administrador/a de la institución <strong>%s</strong>?"; // Okoteve traducción
|
||||||
|
#elif L==6
|
||||||
|
"Vuole realmente essere rimosso come amministratore della istituzione <strong>%s</strong>?";
|
||||||
|
#elif L==7
|
||||||
|
"Czy naprawde chcesz byc usuniety jako administrator instytucji <strong>%s</strong>?";
|
||||||
|
#elif L==8
|
||||||
|
"Do you really want to be removed as an administrator of the institution <strong>%s</strong>?"; // Necessita de tradução
|
||||||
|
#endif
|
||||||
|
|
||||||
const char *Txt_Do_you_really_want_to_be_removed_from_the_course_X = // Warning: it is very important to include %s in the following sentences
|
const char *Txt_Do_you_really_want_to_be_removed_from_the_course_X = // Warning: it is very important to include %s in the following sentences
|
||||||
#if L==0
|
#if L==0
|
||||||
"¿Realmente desea ser eliminado de la asignatura <strong>%s</strong>"
|
"¿Realmente desea ser eliminado de la asignatura <strong>%s</strong>"
|
||||||
|
@ -8238,25 +8280,94 @@ const char *Txt_Do_you_really_want_to_delete_the_unread_messages_received_from_U
|
||||||
" from %s from %s related to <strong>%s</strong>?"; // Necessita de tradução
|
" from %s from %s related to <strong>%s</strong>?"; // Necessita de tradução
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
const char *Txt_Do_you_really_want_to_register_the_following_user_as_an_administrator_of_the_centre_X = // Warning: it is very important to include %s in the following sentences
|
||||||
|
#if L==0
|
||||||
|
"¿Realmente desea inscribir el siguiente usuario"
|
||||||
|
" como administrador del centro <strong>%s</strong>?"; // Necessita traduccio
|
||||||
|
#elif L==1
|
||||||
|
"Do you really want to register the following user"
|
||||||
|
" as an administrator of the centre <strong>%s</strong>?"; // Need Übersetzung
|
||||||
|
#elif L==2
|
||||||
|
"Do you really want to register the following user"
|
||||||
|
" as an administrator of the centre <strong>%s</strong>?";
|
||||||
|
#elif L==3
|
||||||
|
"¿Realmente desea inscribir el siguiente usuario"
|
||||||
|
" como administrador del centro <strong>%s</strong>?";
|
||||||
|
#elif L==4
|
||||||
|
"Do you really want to register the following user"
|
||||||
|
" as an administrator of the centre <strong>%s</strong>?"; // Besoin de traduction
|
||||||
|
#elif L==5
|
||||||
|
"¿Realmente desea inscribir el siguiente usuario"
|
||||||
|
" como administrador del centro <strong>%s</strong>?"; // Okoteve traducción
|
||||||
|
#elif L==6
|
||||||
|
"Vuoi realmente registrare il seguente utente"
|
||||||
|
" come amministratore del centro <strong>%s</strong>?";
|
||||||
|
#elif L==7
|
||||||
|
"Czy na pewno chcesz sie zarejestrowac nastepujace użytkownika"
|
||||||
|
" jako administratora centrum <strong>%s</strong>?";
|
||||||
|
#elif L==8
|
||||||
|
"Do you really want to register the following user"
|
||||||
|
" as an administrator of the centre <strong>%s</strong>?"; // Necessita de tradução
|
||||||
|
#endif
|
||||||
|
|
||||||
const char *Txt_Do_you_really_want_to_register_the_following_user_as_an_administrator_of_the_degree_X = // Warning: it is very important to include %s in the following sentences
|
const char *Txt_Do_you_really_want_to_register_the_following_user_as_an_administrator_of_the_degree_X = // Warning: it is very important to include %s in the following sentences
|
||||||
#if L==0
|
#if L==0
|
||||||
"¿Realmente desea inscribir el siguiente usuario como administrador de la titulación <strong>%s</strong>?"; // Necessita traduccio
|
"¿Realmente desea inscribir el siguiente usuario"
|
||||||
|
" como administrador de la titulación <strong>%s</strong>?"; // Necessita traduccio
|
||||||
#elif L==1
|
#elif L==1
|
||||||
"Do you really want to register the following user as an administrator of the degree <strong>%s</strong>?"; // Need Übersetzung
|
"Do you really want to register the following user"
|
||||||
|
" as an administrator of the degree <strong>%s</strong>?"; // Need Übersetzung
|
||||||
#elif L==2
|
#elif L==2
|
||||||
"Do you really want to register the following user as an administrator of the degree <strong>%s</strong>?";
|
"Do you really want to register the following user"
|
||||||
|
" as an administrator of the degree <strong>%s</strong>?";
|
||||||
#elif L==3
|
#elif L==3
|
||||||
"¿Realmente desea inscribir el siguiente usuario como administrador de la titulación <strong>%s</strong>?";
|
"¿Realmente desea inscribir el siguiente usuario"
|
||||||
|
" como administrador de la titulación <strong>%s</strong>?";
|
||||||
#elif L==4
|
#elif L==4
|
||||||
"Do you really want to register the following user as an administrator of the degree <strong>%s</strong>?"; // Besoin de traduction
|
"Do you really want to register the following user"
|
||||||
|
" as an administrator of the degree <strong>%s</strong>?"; // Besoin de traduction
|
||||||
#elif L==5
|
#elif L==5
|
||||||
"¿Realmente desea inscribir el siguiente usuario como administrador de la titulación <strong>%s</strong>?"; // Okoteve traducción
|
"¿Realmente desea inscribir el siguiente usuario"
|
||||||
|
" como administrador de la titulación <strong>%s</strong>?"; // Okoteve traducción
|
||||||
#elif L==6
|
#elif L==6
|
||||||
"Vuoi realmente registrare il seguente utente come amministratore della laurea <strong>%s</strong>?";
|
"Vuoi realmente registrare il seguente utente"
|
||||||
|
" come amministratore della laurea <strong>%s</strong>?";
|
||||||
#elif L==7
|
#elif L==7
|
||||||
"Czy na pewno chcesz sie zarejestrowac nastepujace użytkownika jako administratora stopnia <strong>%s</strong>?";
|
"Czy na pewno chcesz sie zarejestrowac nastepujace użytkownika"
|
||||||
|
" jako administratora stopnia <strong>%s</strong>?";
|
||||||
#elif L==8
|
#elif L==8
|
||||||
"Do you really want to register the following user as an administrator of the degree <strong>%s</strong>?"; // Necessita de tradução
|
"Do you really want to register the following user"
|
||||||
|
" as an administrator of the degree <strong>%s</strong>?"; // Necessita de tradução
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const char *Txt_Do_you_really_want_to_register_the_following_user_as_an_administrator_of_the_institution_X = // Warning: it is very important to include %s in the following sentences
|
||||||
|
#if L==0
|
||||||
|
"¿Realmente desea inscribir el siguiente usuario"
|
||||||
|
" como administrador de la institución <strong>%s</strong>?"; // Necessita traduccio
|
||||||
|
#elif L==1
|
||||||
|
"Do you really want to register the following user"
|
||||||
|
" as an administrator of the institution <strong>%s</strong>?"; // Need Übersetzung
|
||||||
|
#elif L==2
|
||||||
|
"Do you really want to register the following user"
|
||||||
|
" as an administrator of the institution <strong>%s</strong>?";
|
||||||
|
#elif L==3
|
||||||
|
"¿Realmente desea inscribir el siguiente usuario"
|
||||||
|
" como administrador de la institución <strong>%s</strong>?";
|
||||||
|
#elif L==4
|
||||||
|
"Do you really want to register the following user"
|
||||||
|
" as an administrator of the institution <strong>%s</strong>?"; // Besoin de traduction
|
||||||
|
#elif L==5
|
||||||
|
"¿Realmente desea inscribir el siguiente usuario"
|
||||||
|
" como administrador de la institución <strong>%s</strong>?"; // Okoteve traducción
|
||||||
|
#elif L==6
|
||||||
|
"Vuoi realmente registrare il seguente utente"
|
||||||
|
" come amministratore della istituzione <strong>%s</strong>?";
|
||||||
|
#elif L==7
|
||||||
|
"Czy na pewno chcesz sie zarejestrowac nastepujace użytkownika"
|
||||||
|
" jako administratora instytucji <strong>%s</strong>?";
|
||||||
|
#elif L==8
|
||||||
|
"Do you really want to register the following user"
|
||||||
|
" as an administrator of the institution <strong>%s</strong>?"; // Necessita de tradução
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const char *Txt_Do_you_really_want_to_reject_the_enrollment_request_ = // Warning: it is very important to include three %s in the following sentences
|
const char *Txt_Do_you_really_want_to_reject_the_enrollment_request_ = // Warning: it is very important to include three %s in the following sentences
|
||||||
|
@ -8492,44 +8603,122 @@ const char *Txt_Do_you_really_want_to_remove_FILE_OR_LINK_X = // Warning: it is
|
||||||
|
|
||||||
const char *Txt_Do_you_really_want_to_remove_the_folder_X = // Warning: it is very important to include %s in the following sentences
|
const char *Txt_Do_you_really_want_to_remove_the_folder_X = // Warning: it is very important to include %s in the following sentences
|
||||||
#if L==0
|
#if L==0
|
||||||
"¿Realmente desea eliminar la carpeta <strong>%s</strong> y todo su contenido?"; // Necessita traduccio
|
"¿Realmente desea eliminar"
|
||||||
|
" la carpeta <strong>%s</strong> y todo su contenido?"; // Necessita traduccio
|
||||||
#elif L==1
|
#elif L==1
|
||||||
"Wollen Sie wirklich das Verzeichnis <strong>%s</strong> und alle Inhalte entfernen?";
|
"Wollen Sie wirklich"
|
||||||
|
" das Verzeichnis <strong>%s</strong> und alle Inhalte entfernen?";
|
||||||
#elif L==2
|
#elif L==2
|
||||||
"Do you really want to remove the folder <strong>%s</strong> and all its contents?";
|
"Do you really want to remove"
|
||||||
|
" the folder <strong>%s</strong> and all its contents?";
|
||||||
#elif L==3
|
#elif L==3
|
||||||
"¿Realmente desea eliminar la carpeta <strong>%s</strong> y todo su contenido?";
|
"¿Realmente desea eliminar"
|
||||||
|
" la carpeta <strong>%s</strong> y todo su contenido?";
|
||||||
#elif L==4
|
#elif L==4
|
||||||
"Voulez-vous vraiment supprimer le répertoire <strong>%s</strong> et l'ensemble de son contenu?";
|
"Voulez-vous vraiment supprimer"
|
||||||
|
" le répertoire <strong>%s</strong> et l'ensemble de son contenu?";
|
||||||
#elif L==5
|
#elif L==5
|
||||||
"¿Realmente desea eliminar la carpeta <strong>%s</strong> y todo su contenido?"; // Okoteve traducción
|
"¿Realmente desea eliminar"
|
||||||
|
" la carpeta <strong>%s</strong> y todo su contenido?"; // Okoteve traducción
|
||||||
#elif L==6
|
#elif L==6
|
||||||
"Vuoi realmente rimuovere la cartella <strong>%s</strong> e tutto il suo contenuto?";
|
"Vuoi realmente rimuovere"
|
||||||
|
" la cartella <strong>%s</strong> e tutto il suo contenuto?";
|
||||||
#elif L==7
|
#elif L==7
|
||||||
"Czy na pewno chcesz usunac folder <strong>%s</strong> i wszystkie jego skladniki?";
|
"Czy na pewno chcesz usunac"
|
||||||
|
" folder <strong>%s</strong> i wszystkie jego skladniki?";
|
||||||
#elif L==8
|
#elif L==8
|
||||||
"Você realmente deseja remover o diretório <strong>%s</strong> e todo o seu conteúdo?";
|
"Você realmente deseja remover"
|
||||||
|
" o diretório <strong>%s</strong> e todo o seu conteúdo?";
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const char *Txt_Do_you_really_want_to_remove_the_following_user_as_an_administrator_of_the_centre_X = // Warning: it is very important to include %s in the following sentences
|
||||||
|
#if L==0
|
||||||
|
"¿Realmente desea eliminar el siguiente usuario"
|
||||||
|
" como administrador del centro <strong>%s</strong>?"; // Necessita traduccio
|
||||||
|
#elif L==1
|
||||||
|
"Do you really want to remove the following user"
|
||||||
|
" as an administrator of the centre <strong>%s</strong>?"; // Need Übersetzung
|
||||||
|
#elif L==2
|
||||||
|
"Do you really want to remove the following user"
|
||||||
|
" as an administrator of the centre <strong>%s</strong>?";
|
||||||
|
#elif L==3
|
||||||
|
"¿Realmente desea eliminar el siguiente usuario"
|
||||||
|
" como administrador del centro <strong>%s</strong>?";
|
||||||
|
#elif L==4
|
||||||
|
"Do you really want to remove the following user"
|
||||||
|
" as an administrator of the centre <strong>%s</strong>?"; // Besoin de traduction
|
||||||
|
#elif L==5
|
||||||
|
"¿Realmente desea eliminar el siguiente usuario"
|
||||||
|
" como administrador del centro <strong>%s</strong>?"; // Okoteve traducción
|
||||||
|
#elif L==6
|
||||||
|
"Vuoi realmente rimuovere il seguente utente"
|
||||||
|
" come amministratore del centro <strong>%s</strong>?";
|
||||||
|
#elif L==7
|
||||||
|
"Czy na pewno chcesz usunac nastepujace użytkownika"
|
||||||
|
" jako administratora centrum <strong>%s</strong>?";
|
||||||
|
#elif L==8
|
||||||
|
"Do you really want to remove the following user"
|
||||||
|
" as an administrator of the centre <strong>%s</strong>?"; // Necessita de tradução
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const char *Txt_Do_you_really_want_to_remove_the_following_user_as_an_administrator_of_the_degree_X = // Warning: it is very important to include %s in the following sentences
|
const char *Txt_Do_you_really_want_to_remove_the_following_user_as_an_administrator_of_the_degree_X = // Warning: it is very important to include %s in the following sentences
|
||||||
#if L==0
|
#if L==0
|
||||||
"¿Realmente desea eliminar el siguiente usuario como administrador de la titulación <strong>%s</strong>?"; // Necessita traduccio
|
"¿Realmente desea eliminar el siguiente usuario"
|
||||||
|
" como administrador de la titulación <strong>%s</strong>?"; // Necessita traduccio
|
||||||
#elif L==1
|
#elif L==1
|
||||||
"Do you really want to remove the following user as an administrator of the degree <strong>%s</strong>?"; // Need Übersetzung
|
"Do you really want to remove the following user"
|
||||||
|
" as an administrator of the degree <strong>%s</strong>?"; // Need Übersetzung
|
||||||
#elif L==2
|
#elif L==2
|
||||||
"Do you really want to remove the following user as an administrator of the degree <strong>%s</strong>?";
|
"Do you really want to remove the following user"
|
||||||
|
" as an administrator of the degree <strong>%s</strong>?";
|
||||||
#elif L==3
|
#elif L==3
|
||||||
"¿Realmente desea eliminar el siguiente usuario como administrador de la titulación <strong>%s</strong>?";
|
"¿Realmente desea eliminar el siguiente usuario"
|
||||||
|
" como administrador de la titulación <strong>%s</strong>?";
|
||||||
#elif L==4
|
#elif L==4
|
||||||
"Do you really want to remove the following user as an administrator of the degree <strong>%s</strong>?"; // Besoin de traduction
|
"Do you really want to remove the following user"
|
||||||
|
" as an administrator of the degree <strong>%s</strong>?"; // Besoin de traduction
|
||||||
#elif L==5
|
#elif L==5
|
||||||
"¿Realmente desea eliminar el siguiente usuario como administrador de la titulación <strong>%s</strong>?"; // Okoteve traducción
|
"¿Realmente desea eliminar el siguiente usuario"
|
||||||
|
" como administrador de la titulación <strong>%s</strong>?"; // Okoteve traducción
|
||||||
#elif L==6
|
#elif L==6
|
||||||
"Vuoi realmente rimuovere il seguente utente come amministratore della laurea <strong>%s</strong>?";
|
"Vuoi realmente rimuovere il seguente utente"
|
||||||
|
" come amministratore della laurea <strong>%s</strong>?";
|
||||||
#elif L==7
|
#elif L==7
|
||||||
"Czy na pewno chcesz usunac nastepujace użytkownika jako administratora stopnia <strong>%s</strong>?";
|
"Czy na pewno chcesz usunac nastepujace użytkownika"
|
||||||
|
" jako administratora stopnia <strong>%s</strong>?";
|
||||||
#elif L==8
|
#elif L==8
|
||||||
"Do you really want to remove the following user as an administrator of the degree <strong>%s</strong>?"; // Necessita de tradução
|
"Do you really want to remove the following user"
|
||||||
|
" as an administrator of the degree <strong>%s</strong>?"; // Necessita de tradução
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const char *Txt_Do_you_really_want_to_remove_the_following_user_as_an_administrator_of_the_institution_X = // Warning: it is very important to include %s in the following sentences
|
||||||
|
#if L==0
|
||||||
|
"¿Realmente desea eliminar el siguiente usuario"
|
||||||
|
" como administrador de la institución <strong>%s</strong>?"; // Necessita traduccio
|
||||||
|
#elif L==1
|
||||||
|
"Do you really want to remove the following user"
|
||||||
|
" as an administrator of the institution <strong>%s</strong>?"; // Need Übersetzung
|
||||||
|
#elif L==2
|
||||||
|
"Do you really want to remove the following user"
|
||||||
|
" as an administrator of the institution <strong>%s</strong>?";
|
||||||
|
#elif L==3
|
||||||
|
"¿Realmente desea eliminar el siguiente usuario"
|
||||||
|
" como administrador de la institución <strong>%s</strong>?";
|
||||||
|
#elif L==4
|
||||||
|
"Do you really want to remove the following user"
|
||||||
|
" as an administrator of the degree <strong>%s</strong>?"; // Besoin de traduction
|
||||||
|
#elif L==5
|
||||||
|
"¿Realmente desea eliminar el siguiente usuario"
|
||||||
|
" como administrador de la institución <strong>%s</strong>?"; // Okoteve traducción
|
||||||
|
#elif L==6
|
||||||
|
"Vuoi realmente rimuovere il seguente utente"
|
||||||
|
" come amministratore della istituzione <strong>%s</strong>?";
|
||||||
|
#elif L==7
|
||||||
|
"Czy na pewno chcesz usunac nastepujace użytkownika"
|
||||||
|
" jako administratora instytucji <strong>%s</strong>?";
|
||||||
|
#elif L==8
|
||||||
|
"Do you really want to remove the following user"
|
||||||
|
" as an administrator of the institution <strong>%s</strong>?"; // Necessita de tradução
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const char *Txt_Do_you_really_want_to_remove_the_following_user_from_the_course_X = // Warning: it is very important to include %s in the following sentences
|
const char *Txt_Do_you_really_want_to_remove_the_following_user_from_the_course_X = // Warning: it is very important to include %s in the following sentences
|
||||||
|
@ -41686,6 +41875,36 @@ const char *Txt_THE_USER_X_already_exists_in_Y_but_is_not_yet_enrolled_in_the_co
|
||||||
" in the course <strong>%s</strong>."; // Necessita de tradução
|
" in the course <strong>%s</strong>."; // Necessita de tradução
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
const char *Txt_THE_USER_X_has_been_enrolled_as_administrator_of_the_centre_Y = // Warning: it is very important to include two %s in the following sentences
|
||||||
|
#if L==0
|
||||||
|
"<strong>%s</strong> ha sido añadido/a como administrador/a"
|
||||||
|
" del centro <strong>%s</strong>."; // Necessita traduccio
|
||||||
|
#elif L==1
|
||||||
|
"<strong>%s</strong> has been enrolled as administrator"
|
||||||
|
" of the centre <strong>%s</strong>."; // Übersetzung notwendig
|
||||||
|
#elif L==2
|
||||||
|
"<strong>%s</strong> has been enrolled as administrator"
|
||||||
|
" of the centre <strong>%s</strong>.";
|
||||||
|
#elif L==3
|
||||||
|
"<strong>%s</strong> ha sido añadido/a como administrador/a"
|
||||||
|
" del centro <strong>%s</strong>.";
|
||||||
|
#elif L==4
|
||||||
|
"<strong>%s</strong> has been enrolled as administrator"
|
||||||
|
" of the centre <strong>%s</strong>."; // Besoin de traduction
|
||||||
|
#elif L==5
|
||||||
|
"<strong>%s</strong> ha sido añadido/a como administrador/a"
|
||||||
|
" del centro <strong>%s</strong>."; // Okoteve traducción
|
||||||
|
#elif L==6
|
||||||
|
"<strong>%s</strong> è stato registrato come amministratore"
|
||||||
|
" del centro <strong>%s</strong>.";
|
||||||
|
#elif L==7
|
||||||
|
"<strong>%s</strong> has been enrolled as administrator"
|
||||||
|
" of the centre <strong>%s</strong>."; // Potrzebujesz tlumaczenie
|
||||||
|
#elif L==8
|
||||||
|
"<strong>%s</strong> has been enrolled as administrator"
|
||||||
|
" of the centre <strong>%s</strong>."; // Necessita de tradução
|
||||||
|
#endif
|
||||||
|
|
||||||
const char *Txt_THE_USER_X_has_been_enrolled_as_administrator_of_the_degree_Y = // Warning: it is very important to include two %s in the following sentences
|
const char *Txt_THE_USER_X_has_been_enrolled_as_administrator_of_the_degree_Y = // Warning: it is very important to include two %s in the following sentences
|
||||||
#if L==0
|
#if L==0
|
||||||
"<strong>%s</strong> ha sido añadido/a como administrador/a"
|
"<strong>%s</strong> ha sido añadido/a como administrador/a"
|
||||||
|
@ -41716,6 +41935,36 @@ const char *Txt_THE_USER_X_has_been_enrolled_as_administrator_of_the_degree_Y =
|
||||||
" of the degree <strong>%s</strong>."; // Necessita de tradução
|
" of the degree <strong>%s</strong>."; // Necessita de tradução
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
const char *Txt_THE_USER_X_has_been_enrolled_as_administrator_of_the_institution_Y = // Warning: it is very important to include two %s in the following sentences
|
||||||
|
#if L==0
|
||||||
|
"<strong>%s</strong> ha sido añadido/a como administrador/a"
|
||||||
|
" de la institución <strong>%s</strong>."; // Necessita traduccio
|
||||||
|
#elif L==1
|
||||||
|
"<strong>%s</strong> has been enrolled as administrator"
|
||||||
|
" of the institution <strong>%s</strong>."; // Übersetzung notwendig
|
||||||
|
#elif L==2
|
||||||
|
"<strong>%s</strong> has been enrolled as administrator"
|
||||||
|
" of the institution <strong>%s</strong>.";
|
||||||
|
#elif L==3
|
||||||
|
"<strong>%s</strong> ha sido añadido/a como administrador/a"
|
||||||
|
" de la institución <strong>%s</strong>.";
|
||||||
|
#elif L==4
|
||||||
|
"<strong>%s</strong> has been enrolled as administrator"
|
||||||
|
" of the institution <strong>%s</strong>."; // Besoin de traduction
|
||||||
|
#elif L==5
|
||||||
|
"<strong>%s</strong> ha sido añadido/a como administrador/a"
|
||||||
|
" de la institución <strong>%s</strong>."; // Okoteve traducción
|
||||||
|
#elif L==6
|
||||||
|
"<strong>%s</strong> è stato registrato come amministratore"
|
||||||
|
" della istituzione <strong>%s</strong>.";
|
||||||
|
#elif L==7
|
||||||
|
"<strong>%s</strong> has been enrolled as administrator"
|
||||||
|
" of the institution <strong>%s</strong>."; // Potrzebujesz tlumaczenie
|
||||||
|
#elif L==8
|
||||||
|
"<strong>%s</strong> has been enrolled as administrator"
|
||||||
|
" of the institution <strong>%s</strong>."; // Necessita de tradução
|
||||||
|
#endif
|
||||||
|
|
||||||
const char *Txt_THE_USER_X_has_been_enrolled_in_the_course_Y = // Warning: it is very important to include two %s in the following sentences
|
const char *Txt_THE_USER_X_has_been_enrolled_in_the_course_Y = // Warning: it is very important to include two %s in the following sentences
|
||||||
#if L==0
|
#if L==0
|
||||||
"<strong>%s</strong> ha estat afegit/da"
|
"<strong>%s</strong> ha estat afegit/da"
|
||||||
|
@ -41950,6 +42199,36 @@ const char *Txt_THE_USER_X_has_been_removed_from_the_course_Y = // Warning: it i
|
||||||
" from the course <strong>%s</strong>."; // Necessita de tradução
|
" from the course <strong>%s</strong>."; // Necessita de tradução
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
const char *Txt_THE_USER_X_has_been_removed_as_administrator_of_the_centre_Y = // Warning: it is very important to include two %s in the following sentences
|
||||||
|
#if L==0
|
||||||
|
"<strong>%s</strong> ha sido eliminado/a como administrador"
|
||||||
|
" del centro <strong>%s</strong>."; // Necessita traduccio
|
||||||
|
#elif L==1
|
||||||
|
"<strong>%s</strong> has been removed as administrator"
|
||||||
|
" of the centre <strong>%s</strong>."; // Übersetzung notwendig
|
||||||
|
#elif L==2
|
||||||
|
"<strong>%s</strong> has been removed as administrator"
|
||||||
|
" of the centre <strong>%s</strong>.";
|
||||||
|
#elif L==3
|
||||||
|
"<strong>%s</strong> ha sido eliminado/a como administrador"
|
||||||
|
" del centro <strong>%s</strong>.";
|
||||||
|
#elif L==4
|
||||||
|
"<strong>%s</strong> has been removed as administrator"
|
||||||
|
" of the centre <strong>%s</strong>."; // Besoin de traduction
|
||||||
|
#elif L==5
|
||||||
|
"<strong>%s</strong> ha sido eliminado/a como administrador"
|
||||||
|
" del centro <strong>%s</strong>."; // Okoteve traducción
|
||||||
|
#elif L==6
|
||||||
|
"<strong>%s</strong> è stato rimosso come amministratore"
|
||||||
|
" del centro <strong>%s</strong>.";
|
||||||
|
#elif L==7
|
||||||
|
"<strong>%s</strong> has been removed as administrator"
|
||||||
|
" of the centre <strong>%s</strong>."; // Potrzebujesz tlumaczenie
|
||||||
|
#elif L==8
|
||||||
|
"<strong>%s</strong> has been removed as administrator"
|
||||||
|
" of the centre <strong>%s</strong>."; // Necessita de tradução
|
||||||
|
#endif
|
||||||
|
|
||||||
const char *Txt_THE_USER_X_has_been_removed_as_administrator_of_the_degree_Y = // Warning: it is very important to include two %s in the following sentences
|
const char *Txt_THE_USER_X_has_been_removed_as_administrator_of_the_degree_Y = // Warning: it is very important to include two %s in the following sentences
|
||||||
#if L==0
|
#if L==0
|
||||||
"<strong>%s</strong> ha sido eliminado/a como administrador"
|
"<strong>%s</strong> ha sido eliminado/a como administrador"
|
||||||
|
@ -41980,6 +42259,36 @@ const char *Txt_THE_USER_X_has_been_removed_as_administrator_of_the_degree_Y = /
|
||||||
" of the degree <strong>%s</strong>."; // Necessita de tradução
|
" of the degree <strong>%s</strong>."; // Necessita de tradução
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
const char *Txt_THE_USER_X_has_been_removed_as_administrator_of_the_institution_Y = // Warning: it is very important to include two %s in the following sentences
|
||||||
|
#if L==0
|
||||||
|
"<strong>%s</strong> ha sido eliminado/a como administrador"
|
||||||
|
" de la institución <strong>%s</strong>."; // Necessita traduccio
|
||||||
|
#elif L==1
|
||||||
|
"<strong>%s</strong> has been removed as administrator"
|
||||||
|
" of the institution <strong>%s</strong>."; // Übersetzung notwendig
|
||||||
|
#elif L==2
|
||||||
|
"<strong>%s</strong> has been removed as administrator"
|
||||||
|
" of the institution <strong>%s</strong>.";
|
||||||
|
#elif L==3
|
||||||
|
"<strong>%s</strong> ha sido eliminado/a como administrador"
|
||||||
|
" de la institución <strong>%s</strong>.";
|
||||||
|
#elif L==4
|
||||||
|
"<strong>%s</strong> has been removed as administrator"
|
||||||
|
" of the institution <strong>%s</strong>."; // Besoin de traduction
|
||||||
|
#elif L==5
|
||||||
|
"<strong>%s</strong> ha sido eliminado/a como administrador"
|
||||||
|
" de la institución <strong>%s</strong>."; // Okoteve traducción
|
||||||
|
#elif L==6
|
||||||
|
"<strong>%s</strong> è stato rimosso come amministratore"
|
||||||
|
" della istituzione <strong>%s</strong>.";
|
||||||
|
#elif L==7
|
||||||
|
"<strong>%s</strong> has been removed as administrator"
|
||||||
|
" of the institution <strong>%s</strong>."; // Potrzebujesz tlumaczenie
|
||||||
|
#elif L==8
|
||||||
|
"<strong>%s</strong> has been removed as administrator"
|
||||||
|
" of the institution <strong>%s</strong>."; // Necessita de tradução
|
||||||
|
#endif
|
||||||
|
|
||||||
const char *Txt_THE_USER_X_has_been_removed_from_the_group_of_type_Y_to_which_it_belonged = // Warning: it is very important to include two %s in the following sentences
|
const char *Txt_THE_USER_X_has_been_removed_from_the_group_of_type_Y_to_which_it_belonged = // Warning: it is very important to include two %s in the following sentences
|
||||||
#if L==0
|
#if L==0
|
||||||
"<strong>%s</strong> ha sido eliminado/a"
|
"<strong>%s</strong> ha sido eliminado/a"
|
||||||
|
@ -42040,6 +42349,36 @@ const char *Txt_THE_USER_X_has_not_been_removed_from_any_group = // Warning: it
|
||||||
" from any group."; // Necessita de tradução
|
" from any group."; // Necessita de tradução
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
const char *Txt_THE_USER_X_is_already_an_administrator_of_the_centre_Y = // Warning: it is very important to include two %s in the following sentences
|
||||||
|
#if L==0
|
||||||
|
"<strong>%s</strong> ya es administrador/a"
|
||||||
|
" del centro <strong>%s</strong>."; // Necessita traduccio
|
||||||
|
#elif L==1
|
||||||
|
"<strong>%s</strong> is already an administrator"
|
||||||
|
" of the centre <strong>%s</strong>."; // Übersetzung notwendig
|
||||||
|
#elif L==2
|
||||||
|
"<strong>%s</strong> is already an administrator"
|
||||||
|
" of the centre <strong>%s</strong>.";
|
||||||
|
#elif L==3
|
||||||
|
"<strong>%s</strong> ya es administrador/a"
|
||||||
|
" de la titulación <strong>%s</strong>.";
|
||||||
|
#elif L==4
|
||||||
|
"<strong>%s</strong> is already an administrator"
|
||||||
|
" of the centre <strong>%s</strong>."; // Besoin de traduction
|
||||||
|
#elif L==5
|
||||||
|
"<strong>%s</strong> ya es administrador/a"
|
||||||
|
" del centro <strong>%s</strong>."; // Okoteve traducción
|
||||||
|
#elif L==6
|
||||||
|
"<strong>%s</strong> è già un amministratore"
|
||||||
|
" del centro <strong>%s</strong>.";
|
||||||
|
#elif L==7
|
||||||
|
"<strong>%s</strong> is already an administrator"
|
||||||
|
" of the centre <strong>%s</strong>."; // Potrzebujesz tlumaczenie
|
||||||
|
#elif L==8
|
||||||
|
"<strong>%s</strong> is already an administrator"
|
||||||
|
" of the centre <strong>%s</strong>."; // Necessita de tradução
|
||||||
|
#endif
|
||||||
|
|
||||||
const char *Txt_THE_USER_X_is_already_an_administrator_of_the_degree_Y = // Warning: it is very important to include two %s in the following sentences
|
const char *Txt_THE_USER_X_is_already_an_administrator_of_the_degree_Y = // Warning: it is very important to include two %s in the following sentences
|
||||||
#if L==0
|
#if L==0
|
||||||
"<strong>%s</strong> ya es administrador/a"
|
"<strong>%s</strong> ya es administrador/a"
|
||||||
|
@ -42070,6 +42409,36 @@ const char *Txt_THE_USER_X_is_already_an_administrator_of_the_degree_Y = // Warn
|
||||||
" of the degree <strong>%s</strong>."; // Necessita de tradução
|
" of the degree <strong>%s</strong>."; // Necessita de tradução
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
const char *Txt_THE_USER_X_is_already_an_administrator_of_the_institution_Y = // Warning: it is very important to include two %s in the following sentences
|
||||||
|
#if L==0
|
||||||
|
"<strong>%s</strong> ya es administrador/a"
|
||||||
|
" de la institución <strong>%s</strong>."; // Necessita traduccio
|
||||||
|
#elif L==1
|
||||||
|
"<strong>%s</strong> is already an administrator"
|
||||||
|
" of the institution <strong>%s</strong>."; // Übersetzung notwendig
|
||||||
|
#elif L==2
|
||||||
|
"<strong>%s</strong> is already an administrator"
|
||||||
|
" of the institution <strong>%s</strong>.";
|
||||||
|
#elif L==3
|
||||||
|
"<strong>%s</strong> ya es administrador/a"
|
||||||
|
" de la institución <strong>%s</strong>.";
|
||||||
|
#elif L==4
|
||||||
|
"<strong>%s</strong> is already an administrator"
|
||||||
|
" of the institution <strong>%s</strong>."; // Besoin de traduction
|
||||||
|
#elif L==5
|
||||||
|
"<strong>%s</strong> ya es administrador/a"
|
||||||
|
" de la institución <strong>%s</strong>."; // Okoteve traducción
|
||||||
|
#elif L==6
|
||||||
|
"<strong>%s</strong> è già un amministratore"
|
||||||
|
" della istituzione <strong>%s</strong>.";
|
||||||
|
#elif L==7
|
||||||
|
"<strong>%s</strong> is already an administrator"
|
||||||
|
" of the institution <strong>%s</strong>."; // Potrzebujesz tlumaczenie
|
||||||
|
#elif L==8
|
||||||
|
"<strong>%s</strong> is already an administrator"
|
||||||
|
" of the institution <strong>%s</strong>."; // Necessita de tradução
|
||||||
|
#endif
|
||||||
|
|
||||||
const char *Txt_THE_USER_X_is_already_in_the_course_Y_but_has_not_yet_accepted_the_enrollment = // Warning: it is very important to include %s in the following sentences
|
const char *Txt_THE_USER_X_is_already_in_the_course_Y_but_has_not_yet_accepted_the_enrollment = // Warning: it is very important to include %s in the following sentences
|
||||||
#if L==0
|
#if L==0
|
||||||
"<strong>%s</strong> ya está"
|
"<strong>%s</strong> ya está"
|
||||||
|
@ -42160,6 +42529,36 @@ const char *Txt_The_user_is_new_does_not_exists_yet_in_X = // Warning: it is ver
|
||||||
"The user is new, does not exist yet in %s."; // Necessita de tradução
|
"The user is new, does not exist yet in %s."; // Necessita de tradução
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
const char *Txt_THE_USER_X_is_not_an_administrator_of_the_centre_Y = // Warning: it is very important to include two %s in the following sentences
|
||||||
|
#if L==0
|
||||||
|
"<strong>%s</strong> no es administrador/a"
|
||||||
|
" del centro <strong>%s</strong>."; // Necessita traduccio
|
||||||
|
#elif L==1
|
||||||
|
"<strong>%s</strong> is not an administrator"
|
||||||
|
" of the centre <strong>%s</strong>."; // Übersetzung notwendig
|
||||||
|
#elif L==2
|
||||||
|
"<strong>%s</strong> is not an administrator"
|
||||||
|
" of the centre <strong>%s</strong>.";
|
||||||
|
#elif L==3
|
||||||
|
"<strong>%s</strong> no es administrador/a"
|
||||||
|
" del centro <strong>%s</strong>.";
|
||||||
|
#elif L==4
|
||||||
|
"<strong>%s</strong> is not an administrator"
|
||||||
|
" of the centre <strong>%s</strong>."; // Besoin de traduction
|
||||||
|
#elif L==5
|
||||||
|
"<strong>%s</strong> no es administrador/a"
|
||||||
|
" del centro <strong>%s</strong>."; // Okoteve traducción
|
||||||
|
#elif L==6
|
||||||
|
"<strong>%s</strong> non è un amministratore"
|
||||||
|
" del centro <strong>%s</strong>.";
|
||||||
|
#elif L==7
|
||||||
|
"<strong>%s</strong> is not an administrator"
|
||||||
|
" of the centre <strong>%s</strong>."; // Potrzebujesz tlumaczenie
|
||||||
|
#elif L==8
|
||||||
|
"<strong>%s</strong> is not an administrator"
|
||||||
|
" of the centre <strong>%s</strong>."; // Necessita de tradução
|
||||||
|
#endif
|
||||||
|
|
||||||
const char *Txt_THE_USER_X_is_not_an_administrator_of_the_degree_Y = // Warning: it is very important to include two %s in the following sentences
|
const char *Txt_THE_USER_X_is_not_an_administrator_of_the_degree_Y = // Warning: it is very important to include two %s in the following sentences
|
||||||
#if L==0
|
#if L==0
|
||||||
"<strong>%s</strong> no es administrador/a"
|
"<strong>%s</strong> no es administrador/a"
|
||||||
|
@ -42190,6 +42589,36 @@ const char *Txt_THE_USER_X_is_not_an_administrator_of_the_degree_Y = // Warning:
|
||||||
" of the degree <strong>%s</strong>."; // Necessita de tradução
|
" of the degree <strong>%s</strong>."; // Necessita de tradução
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
const char *Txt_THE_USER_X_is_not_an_administrator_of_the_institution_Y = // Warning: it is very important to include two %s in the following sentences
|
||||||
|
#if L==0
|
||||||
|
"<strong>%s</strong> no es administrador/a"
|
||||||
|
" de la institución <strong>%s</strong>."; // Necessita traduccio
|
||||||
|
#elif L==1
|
||||||
|
"<strong>%s</strong> is not an administrator"
|
||||||
|
" of the institution <strong>%s</strong>."; // Übersetzung notwendig
|
||||||
|
#elif L==2
|
||||||
|
"<strong>%s</strong> is not an administrator"
|
||||||
|
" of the institution <strong>%s</strong>.";
|
||||||
|
#elif L==3
|
||||||
|
"<strong>%s</strong> no es administrador/a"
|
||||||
|
" de la institución <strong>%s</strong>.";
|
||||||
|
#elif L==4
|
||||||
|
"<strong>%s</strong> is not an administrator"
|
||||||
|
" of the institution <strong>%s</strong>."; // Besoin de traduction
|
||||||
|
#elif L==5
|
||||||
|
"<strong>%s</strong> no es administrador/a"
|
||||||
|
" de la institución <strong>%s</strong>."; // Okoteve traducción
|
||||||
|
#elif L==6
|
||||||
|
"<strong>%s</strong> non è un amministratore"
|
||||||
|
" della istituzione <strong>%s</strong>.";
|
||||||
|
#elif L==7
|
||||||
|
"<strong>%s</strong> is not an administrator"
|
||||||
|
" of the institution <strong>%s</strong>."; // Potrzebujesz tlumaczenie
|
||||||
|
#elif L==8
|
||||||
|
"<strong>%s</strong> is not an administrator"
|
||||||
|
" of the institution <strong>%s</strong>."; // Necessita de tradução
|
||||||
|
#endif
|
||||||
|
|
||||||
const char *Txt_THE_USER_X_is_not_found_in_the_file_of_marks = // Warning: it is very important to include %s in the following sentences
|
const char *Txt_THE_USER_X_is_not_found_in_the_file_of_marks = // Warning: it is very important to include %s in the following sentences
|
||||||
#if L==0
|
#if L==0
|
||||||
"No se ha encontrado a <strong>%s</strong> en el archivo de calificaciones."; // Necessita traduccio
|
"No se ha encontrado a <strong>%s</strong> en el archivo de calificaciones."; // Necessita traduccio
|
||||||
|
|
Loading…
Reference in New Issue