Version 14.130.1

This commit is contained in:
Antonio Cañas Vargas 2015-09-14 09:50:55 +02:00
parent 8f362b2c84
commit e218554d6d
5 changed files with 93 additions and 46 deletions

View File

@ -944,7 +944,10 @@ Users:
776. ActRemAdmCtr Remove an administrador of this centre
777. ActNewAdmDeg Register an administrador in this degree
778. ActRemAdmDeg Remove an administrador of this degree
779. ActRcvFrmMdfUsrCrs Receive a form with IDs of users to be registeres/removed to/from current course
779b. ActRcvFrmEnrSevStd Receive a form with IDs of users to be registeres/removed to/from current course
779c. ActRcvFrmEnrSevTch Receive a form with IDs of users to be registeres/removed to/from current course
780. ActFrmIDOthUsr Show form to the change of the IDs of another user
781. ActRemIDOth Remove one of the IDs of another user
782. ActNewIDOth Create a new user's ID for another user
@ -2285,8 +2288,8 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActChgVisFie */{ 297,-1,TabUsr,ActLstStd ,0x110,0x100,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Rec_ChangeVisibilityField ,NULL},
/* ActRcvRecCrs */{ 301,-1,TabUsr,ActLstStd ,0x108,0x100,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Rec_UpdateAndShowMyCrsRecord ,NULL},
/* ActReqMdfSevStd */{1426,-1,TabUsr,ActLstStd ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReqAdminUsrs ,NULL},
/* ActReqMdfSevTch */{1427,-1,TabUsr,ActLstTch ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReqAdminUsrs ,NULL},
/* ActReqMdfSevStd */{1426,-1,TabUsr,ActLstStd ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReqAdminStds ,NULL},
/* ActReqMdfSevTch */{1427,-1,TabUsr,ActLstTch ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReqAdminTchs ,NULL},
/* ActReqLstAttStd */{1073,-1,TabUsr,ActSeeAtt ,0x110,0x100,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Usr_ReqListAttendanceStdsCrs ,NULL},
/* ActSeeLstAttStd */{1074,-1,TabUsr,ActSeeAtt ,0x110,0x100,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Usr_ListAttendanceStdsCrs ,NULL},
@ -2341,7 +2344,8 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActNewAdmDeg */{ 586,-1,TabUsr,ActLstAdm ,0x1C0,0x1C0,0x1C0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AddAdmToDeg ,NULL},
/* ActRemAdmDeg */{ 584,-1,TabUsr,ActLstAdm ,0x1E0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_RemAdmDeg ,NULL},
/* ActRcvFrmMdfUsrCrs*/{ 799,-1,TabUsr,ActLstStd ,0x1F0,0x1E0,0x100,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReceiveFormUsrsCrs ,NULL},
/* ActRcvFrmEnrSevStd*/{1427,-1,TabUsr,ActLstStd ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReceiveFormAdminStds ,NULL},
/* ActRcvFrmEnrSevTch*/{1428,-1,TabUsr,ActLstTch ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReceiveFormAdminTchs ,NULL},
/* ActFrmIDsOthUsr */{1239,-1,TabUsr,ActLstStd ,0x1E0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,ID_ShowFormOthIDs ,NULL},
/* ActRemIDOth */{1240,-1,TabUsr,ActLstStd ,0x1E0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,ID_RemoveOtherUsrID ,NULL},
@ -3494,7 +3498,7 @@ Act_Action_t Act_FromActCodToAction[1+Act_MAX_ACTION_COD] = // Do not reuse uniq
ActGetExtLstStd, // #796
-1, // #797 (obsolete action)
-1, // #798 (obsolete action)
ActRcvFrmMdfUsrCrs, // #799
-1, // #799 (obsolete action)
-1, // #800 (obsolete action)
ActSeeAsg, // #801
-1, // #802 (obsolete action)
@ -4126,6 +4130,8 @@ Act_Action_t Act_FromActCodToAction[1+Act_MAX_ACTION_COD] = // Do not reuse uniq
ActUpdOthAdm, // #1425
ActReqMdfSevStd, // #1426
ActReqMdfSevTch, // #1427
ActRcvFrmEnrSevStd, // #1428
ActRcvFrmEnrSevTch, // #1429
};
/*****************************************************************************/

View File

@ -69,9 +69,9 @@ typedef enum
typedef int Act_Action_t; // Must be a signed type, because -1 is used to indicate obsolete action
#define Act_NUM_ACTIONS (7+52+15+90+73+68+204+182+120+168+28+77)
#define Act_NUM_ACTIONS (7+52+15+90+73+68+204+182+121+168+28+77)
#define Act_MAX_ACTION_COD 1427
#define Act_MAX_ACTION_COD 1429
#define Act_MAX_OPTIONS_IN_MENU_PER_TAB 20
@ -975,32 +975,34 @@ typedef int Act_Action_t; // Must be a signed type, because -1 is used to indica
#define ActNewAdmDeg (ActChgNumRowFooGrp+ 97)
#define ActRemAdmDeg (ActChgNumRowFooGrp+ 98)
#define ActRcvFrmMdfUsrCrs (ActChgNumRowFooGrp+ 99)
#define ActFrmIDsOthUsr (ActChgNumRowFooGrp+100)
#define ActRemIDOth (ActChgNumRowFooGrp+101)
#define ActNewIDOth (ActChgNumRowFooGrp+102)
#define ActFrmPwdOthUsr (ActChgNumRowFooGrp+103)
#define ActChgPwdOthUsr (ActChgNumRowFooGrp+104)
#define ActRemUsrCrs (ActChgNumRowFooGrp+105)
#define ActRemUsrGbl (ActChgNumRowFooGrp+106)
#define ActRcvFrmEnrSevStd (ActChgNumRowFooGrp+ 99)
#define ActRcvFrmEnrSevTch (ActChgNumRowFooGrp+100)
#define ActReqRemAllStdCrs (ActChgNumRowFooGrp+107)
#define ActRemAllStdCrs (ActChgNumRowFooGrp+108)
#define ActFrmIDsOthUsr (ActChgNumRowFooGrp+101)
#define ActRemIDOth (ActChgNumRowFooGrp+102)
#define ActNewIDOth (ActChgNumRowFooGrp+103)
#define ActFrmPwdOthUsr (ActChgNumRowFooGrp+104)
#define ActChgPwdOthUsr (ActChgNumRowFooGrp+105)
#define ActRemUsrCrs (ActChgNumRowFooGrp+106)
#define ActRemUsrGbl (ActChgNumRowFooGrp+107)
#define ActReqRemOldUsr (ActChgNumRowFooGrp+109)
#define ActRemOldUsr (ActChgNumRowFooGrp+110)
#define ActReqRemAllStdCrs (ActChgNumRowFooGrp+108)
#define ActRemAllStdCrs (ActChgNumRowFooGrp+109)
#define ActSeePubPrf (ActChgNumRowFooGrp+111)
#define ActCal1stClkTim (ActChgNumRowFooGrp+112)
#define ActCalNumClk (ActChgNumRowFooGrp+113)
#define ActCalNumFilVie (ActChgNumRowFooGrp+114)
#define ActCalNumForPst (ActChgNumRowFooGrp+115)
#define ActCalNumMsgSnt (ActChgNumRowFooGrp+116)
#define ActReqRemOldUsr (ActChgNumRowFooGrp+110)
#define ActRemOldUsr (ActChgNumRowFooGrp+111)
#define ActFolUsr (ActChgNumRowFooGrp+117)
#define ActUnfUsr (ActChgNumRowFooGrp+118)
#define ActSeeFlg (ActChgNumRowFooGrp+119)
#define ActSeeFlr (ActChgNumRowFooGrp+120)
#define ActSeePubPrf (ActChgNumRowFooGrp+112)
#define ActCal1stClkTim (ActChgNumRowFooGrp+113)
#define ActCalNumClk (ActChgNumRowFooGrp+114)
#define ActCalNumFilVie (ActChgNumRowFooGrp+115)
#define ActCalNumForPst (ActChgNumRowFooGrp+116)
#define ActCalNumMsgSnt (ActChgNumRowFooGrp+117)
#define ActFolUsr (ActChgNumRowFooGrp+118)
#define ActUnfUsr (ActChgNumRowFooGrp+119)
#define ActSeeFlg (ActChgNumRowFooGrp+120)
#define ActSeeFlr (ActChgNumRowFooGrp+121)
/*****************************************************************************/
/******************************* Messages tab ********************************/

View File

@ -98,13 +98,19 @@
/****************************** Public constants *****************************/
/*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 14.130 (2015/09/13)"
#define Log_PLATFORM_VERSION "SWAD 14.130.1 (2015/09/14)"
// Number of lines (includes comments but not blank lines) has been got with the following command:
// nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*.h sql/swad*.sql | tail -1
/*
Version 14.130.1: Sep 14, 2015 Changes and bug fixing in user enrollment. (184416 lines)
3 changes necessary in database:
UPDATE actions SET Obsolete='Y' WHERE ActCod='799';
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1428','es','N','Inscribir/eliminar varios estudiantes');
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1429','es','N','Inscribir/eliminar varios profesores');
Version 14.130: Sep 13, 2015 Changes in user enrollment. (184379 lines)
15 changes necessary in database:
3 changes necessary in database:
UPDATE actions SET Obsolete='Y' WHERE ActCod='797';
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1426','es','N','Administrar varios estudiantes');
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1427','es','N','Administrar varios profesores');

View File

@ -86,11 +86,14 @@ extern struct Globals Gbl;
/***************************** Private prototypes ****************************/
/*****************************************************************************/
static void Enr_ReqAdminUsrs (Rol_Role_t Role);
static void Enr_ShowFormRegRemSeveralUsrs (Rol_Role_t Role);
static void Enr_PutAreaToEnterUsrsIDs (void);
static void Enr_PutActionsRegRemSeveralUsrs (void);
static void Enr_ReceiveFormUsrsCrs (Rol_Role_t Role);
static void Enr_RegisterUsr (struct UsrData *UsrDat,Rol_Role_t RegRemRole,
struct ListCodGrps *LstGrps,unsigned *NumUsrsRegistered);
static void Enr_MarkOfficialStdsAsRemovable (long ImpGrpCod,bool RemoveSpecifiedUsrs);
@ -438,7 +441,17 @@ void Enr_UpdateInstitutionCentreDepartment (void)
/************** Form to request the user's ID of another user ****************/
/*****************************************************************************/
void Enr_ReqAdminUsrs (void)
void Enr_ReqAdminStds (void)
{
Enr_ReqAdminUsrs (Rol_STUDENT);
}
void Enr_ReqAdminTchs (void)
{
Enr_ReqAdminUsrs (Rol_TEACHER);
}
static void Enr_ReqAdminUsrs (Rol_Role_t Role)
{
extern const char *Txt_You_dont_have_permission_to_perform_this_action;
@ -465,8 +478,7 @@ void Enr_ReqAdminUsrs (void)
if (Gbl.CurrentCrs.Crs.CrsCod > 0)
Enr_ShowFormRegRemSeveralUsrs (Role);
else
Enr_ReqAnotherUsrIDToRegisterRemove (Rol_TEACHER); // TODO: Change this line to the following
// Enr_ReqAnotherUsrIDToRegisterRemove (Role);
Enr_ReqAnotherUsrIDToRegisterRemove (Role);
break;
default:
Lay_ShowAlert (Lay_ERROR,Txt_You_dont_have_permission_to_perform_this_action);
@ -494,23 +506,31 @@ 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_Step_5_Confirm_the_enrollment_removing;
extern const char *Txt_Confirm;
bool PutFormRemAllStdsThisCrs = (Role == Rol_STUDENT &&
Gbl.CurrentCrs.Crs.CrsCod > 0); // Course selected
bool PutFormRemOldUsrs = (Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM);
bool ExternalUsrsServiceAvailable = (Cfg_EXTERNAL_LOGIN_CLIENT_COMMAND[0] != '\0');
/***** Put contextual links *****/
fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">");
if (PutFormRemAllStdsThisCrs ||
PutFormRemOldUsrs)
{
fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">");
/* Put link to remove all the students in the current course */
if (Gbl.CurrentCrs.Crs.CrsCod > 0) // Course selected
Enr_PutLinkToRemAllStdsThisCrs ();
/* Put link to remove all the students in the current course */
if (PutFormRemAllStdsThisCrs)
Enr_PutLinkToRemAllStdsThisCrs ();
/* Put link to remove old users */
if (Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM)
Enr_PutLinkToRemOldUsrs ();
/* Put link to remove old users */
if (PutFormRemOldUsrs)
Enr_PutLinkToRemOldUsrs ();
fprintf (Gbl.F.Out,"</div>");
fprintf (Gbl.F.Out,"</div>");
}
/***** Form to send students to be enrolled / removed *****/
Act_FormStart (ActRcvFrmMdfUsrCrs);
Act_FormStart (Role == Rol_STUDENT ? ActRcvFrmEnrSevStd :
ActRcvFrmEnrSevTch);
/***** Start frame *****/
Lay_StartRoundFrame (NULL,Txt_Admin_several_users);
@ -1081,7 +1101,17 @@ static void Enr_PutActionsRegRemSeveralUsrs (void)
/******* Receive the list of users of the course to register/remove **********/
/*****************************************************************************/
void Enr_ReceiveFormUsrsCrs (Rol_Role_t Role)
void Enr_ReceiveFormAdminStds (void)
{
Enr_ReceiveFormUsrsCrs (Rol_STUDENT);
}
void Enr_ReceiveFormAdminTchs (void)
{
Enr_ReceiveFormUsrsCrs (Rol_TEACHER);
}
static void Enr_ReceiveFormUsrsCrs (Rol_Role_t Role)
{
extern const char *Txt_You_must_specify_in_step_3_the_action_to_perform;
extern const char *Txt_In_a_type_of_group_with_single_enrollment_students_can_not_be_registered_in_more_than_one_group;

View File

@ -86,14 +86,17 @@ void Enr_UpdateUsrData (struct UsrData *UsrDat);
void Enr_FilterUsrDat (struct UsrData *UsrDat);
void Enr_UpdateInstitutionCentreDepartment (void);
void Enr_ReqAdminUsrs (void);
void Enr_ReqAdminStds (void);
void Enr_ReqAdminTchs (void);
void Enr_AskRemoveOldUsrs (void);
void Enr_RemoveOldUsrs (void);
bool Enr_PutActionsRegRemOneUsr (bool ItsMe);
void Enr_ReceiveFormUsrsCrs (void);
void Enr_ReceiveFormAdminStds (void);
void Enr_ReceiveFormAdminTchs (void);
void Enr_PutLinkToRemAllStdsThisCrs (void);
void Enr_PutLinkToRemOldUsrs (void);
void Enr_PutLinkToAdminSeveralUsrs (Rol_Role_t Role);