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 776. ActRemAdmCtr Remove an administrador of this centre
777. ActNewAdmDeg Register an administrador in this degree 777. ActNewAdmDeg Register an administrador in this degree
778. ActRemAdmDeg Remove an administrador of 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 780. ActFrmIDOthUsr Show form to the change of the IDs of another user
781. ActRemIDOth Remove one 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 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}, /* 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}, /* 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}, /* 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_ReqAdminUsrs ,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}, /* 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}, /* 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}, /* 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}, /* 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}, /* 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}, /* 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 ActGetExtLstStd, // #796
-1, // #797 (obsolete action) -1, // #797 (obsolete action)
-1, // #798 (obsolete action) -1, // #798 (obsolete action)
ActRcvFrmMdfUsrCrs, // #799 -1, // #799 (obsolete action)
-1, // #800 (obsolete action) -1, // #800 (obsolete action)
ActSeeAsg, // #801 ActSeeAsg, // #801
-1, // #802 (obsolete action) -1, // #802 (obsolete action)
@ -4126,6 +4130,8 @@ Act_Action_t Act_FromActCodToAction[1+Act_MAX_ACTION_COD] = // Do not reuse uniq
ActUpdOthAdm, // #1425 ActUpdOthAdm, // #1425
ActReqMdfSevStd, // #1426 ActReqMdfSevStd, // #1426
ActReqMdfSevTch, // #1427 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 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 #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 ActNewAdmDeg (ActChgNumRowFooGrp+ 97)
#define ActRemAdmDeg (ActChgNumRowFooGrp+ 98) #define ActRemAdmDeg (ActChgNumRowFooGrp+ 98)
#define ActRcvFrmMdfUsrCrs (ActChgNumRowFooGrp+ 99) #define ActRcvFrmEnrSevStd (ActChgNumRowFooGrp+ 99)
#define ActFrmIDsOthUsr (ActChgNumRowFooGrp+100) #define ActRcvFrmEnrSevTch (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 ActReqRemAllStdCrs (ActChgNumRowFooGrp+107) #define ActFrmIDsOthUsr (ActChgNumRowFooGrp+101)
#define ActRemAllStdCrs (ActChgNumRowFooGrp+108) #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 ActReqRemAllStdCrs (ActChgNumRowFooGrp+108)
#define ActRemOldUsr (ActChgNumRowFooGrp+110) #define ActRemAllStdCrs (ActChgNumRowFooGrp+109)
#define ActSeePubPrf (ActChgNumRowFooGrp+111) #define ActReqRemOldUsr (ActChgNumRowFooGrp+110)
#define ActCal1stClkTim (ActChgNumRowFooGrp+112) #define ActRemOldUsr (ActChgNumRowFooGrp+111)
#define ActCalNumClk (ActChgNumRowFooGrp+113)
#define ActCalNumFilVie (ActChgNumRowFooGrp+114)
#define ActCalNumForPst (ActChgNumRowFooGrp+115)
#define ActCalNumMsgSnt (ActChgNumRowFooGrp+116)
#define ActFolUsr (ActChgNumRowFooGrp+117) #define ActSeePubPrf (ActChgNumRowFooGrp+112)
#define ActUnfUsr (ActChgNumRowFooGrp+118) #define ActCal1stClkTim (ActChgNumRowFooGrp+113)
#define ActSeeFlg (ActChgNumRowFooGrp+119) #define ActCalNumClk (ActChgNumRowFooGrp+114)
#define ActSeeFlr (ActChgNumRowFooGrp+120) #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 ********************************/ /******************************* Messages tab ********************************/

View File

@ -98,13 +98,19 @@
/****************************** Public constants *****************************/ /****************************** 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: // 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 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) 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'; 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 ('1426','es','N','Administrar varios estudiantes');
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1427','es','N','Administrar varios profesores'); 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 ****************************/ /***************************** Private prototypes ****************************/
/*****************************************************************************/ /*****************************************************************************/
static void Enr_ReqAdminUsrs (Rol_Role_t Role);
static void Enr_ShowFormRegRemSeveralUsrs (Rol_Role_t Role); static void Enr_ShowFormRegRemSeveralUsrs (Rol_Role_t Role);
static void Enr_PutAreaToEnterUsrsIDs (void); static void Enr_PutAreaToEnterUsrsIDs (void);
static void Enr_PutActionsRegRemSeveralUsrs (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, static void Enr_RegisterUsr (struct UsrData *UsrDat,Rol_Role_t RegRemRole,
struct ListCodGrps *LstGrps,unsigned *NumUsrsRegistered); struct ListCodGrps *LstGrps,unsigned *NumUsrsRegistered);
static void Enr_MarkOfficialStdsAsRemovable (long ImpGrpCod,bool RemoveSpecifiedUsrs); 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 ****************/ /************** 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; 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) if (Gbl.CurrentCrs.Crs.CrsCod > 0)
Enr_ShowFormRegRemSeveralUsrs (Role); Enr_ShowFormRegRemSeveralUsrs (Role);
else else
Enr_ReqAnotherUsrIDToRegisterRemove (Rol_TEACHER); // TODO: Change this line to the following Enr_ReqAnotherUsrIDToRegisterRemove (Role);
// Enr_ReqAnotherUsrIDToRegisterRemove (Role);
break; break;
default: default:
Lay_ShowAlert (Lay_ERROR,Txt_You_dont_have_permission_to_perform_this_action); 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_No_groups_have_been_created_in_the_course_X_Therefore_;
extern const char *Txt_Step_5_Confirm_the_enrollment_removing; extern const char *Txt_Step_5_Confirm_the_enrollment_removing;
extern const char *Txt_Confirm; 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'); bool ExternalUsrsServiceAvailable = (Cfg_EXTERNAL_LOGIN_CLIENT_COMMAND[0] != '\0');
/***** Put contextual links *****/ /***** 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 */ /* Put link to remove all the students in the current course */
if (Gbl.CurrentCrs.Crs.CrsCod > 0) // Course selected if (PutFormRemAllStdsThisCrs)
Enr_PutLinkToRemAllStdsThisCrs (); Enr_PutLinkToRemAllStdsThisCrs ();
/* Put link to remove old users */ /* Put link to remove old users */
if (Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM) if (PutFormRemOldUsrs)
Enr_PutLinkToRemOldUsrs (); Enr_PutLinkToRemOldUsrs ();
fprintf (Gbl.F.Out,"</div>"); fprintf (Gbl.F.Out,"</div>");
}
/***** Form to send students to be enrolled / removed *****/ /***** Form to send students to be enrolled / removed *****/
Act_FormStart (ActRcvFrmMdfUsrCrs); Act_FormStart (Role == Rol_STUDENT ? ActRcvFrmEnrSevStd :
ActRcvFrmEnrSevTch);
/***** Start frame *****/ /***** Start frame *****/
Lay_StartRoundFrame (NULL,Txt_Admin_several_users); 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 **********/ /******* 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_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; 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_FilterUsrDat (struct UsrData *UsrDat);
void Enr_UpdateInstitutionCentreDepartment (void); void Enr_UpdateInstitutionCentreDepartment (void);
void Enr_ReqAdminUsrs (void); void Enr_ReqAdminStds (void);
void Enr_ReqAdminTchs (void);
void Enr_AskRemoveOldUsrs (void); void Enr_AskRemoveOldUsrs (void);
void Enr_RemoveOldUsrs (void); void Enr_RemoveOldUsrs (void);
bool Enr_PutActionsRegRemOneUsr (bool ItsMe); bool Enr_PutActionsRegRemOneUsr (bool ItsMe);
void Enr_ReceiveFormUsrsCrs (void); void Enr_ReceiveFormAdminStds (void);
void Enr_ReceiveFormAdminTchs (void);
void Enr_PutLinkToRemAllStdsThisCrs (void); void Enr_PutLinkToRemAllStdsThisCrs (void);
void Enr_PutLinkToRemOldUsrs (void); void Enr_PutLinkToRemOldUsrs (void);
void Enr_PutLinkToAdminSeveralUsrs (Rol_Role_t Role); void Enr_PutLinkToAdminSeveralUsrs (Rol_Role_t Role);