mirror of https://github.com/acanas/swad-core.git
Version 16.247.3
This commit is contained in:
parent
4499b07d3b
commit
b8beeeb1c5
|
@ -1935,7 +1935,7 @@ static void Att_ListAttStudents (struct AttendanceEvent *Att)
|
|||
Hlp_USERS_Attendance,Box_NOT_CLOSABLE);
|
||||
|
||||
/***** Form to select groups *****/
|
||||
Grp_ShowFormToSelectSeveralGroups (ActSeeOneAtt,false);
|
||||
Grp_ShowFormToSelectSeveralGroups (ActSeeOneAtt,Grp_ONLY_MY_GROUPS);
|
||||
|
||||
/***** Start section with user list *****/
|
||||
Lay_StartSection (Usr_USER_LIST_SECTION_ID);
|
||||
|
@ -2672,7 +2672,7 @@ void Usr_ReqListStdsAttendanceCrs (void)
|
|||
Hlp_USERS_Attendance_attendance_list,Box_NOT_CLOSABLE);
|
||||
|
||||
/***** Form to select groups *****/
|
||||
Grp_ShowFormToSelectSeveralGroups (ActReqLstStdAtt,false);
|
||||
Grp_ShowFormToSelectSeveralGroups (ActReqLstStdAtt,Grp_ONLY_MY_GROUPS);
|
||||
|
||||
/***** Start section with user list *****/
|
||||
Lay_StartSection (Usr_USER_LIST_SECTION_ID);
|
||||
|
|
|
@ -232,18 +232,24 @@
|
|||
|
||||
// TODO: Cuando sólo se cambian los grupos y no el rol de un profesor ya existente, no sale ningún mensaje. se haga lo que se haga en la edición debería salir un mensaje del tipo "Cambios realizados"
|
||||
|
||||
// TODO: Al buscar asignaturas, Estudiantes y Profesores están al revés
|
||||
|
||||
// !!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
// BUG!!!! Al ver resultados de una encuesta: "Space allocated to string is full."
|
||||
|
||||
/*****************************************************************************/
|
||||
/****************************** Public constants *****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
#define Log_PLATFORM_VERSION "SWAD 16.247.2 (2017-06-23)"
|
||||
#define Log_PLATFORM_VERSION "SWAD 16.247.3 (2017-07-02)"
|
||||
#define CSS_FILE "swad16.235.1.css"
|
||||
#define JS_FILE "swad16.206.3.js"
|
||||
|
||||
// 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 16.247.2: Jun 23, 2017 Non-editing teachers can not view records of users who do not share groups with them.
|
||||
Version 16.247.3: Jul 02, 2017 Students can not view records of some users who do not share groups with them. (222132 lines)
|
||||
Version 16.247.2: Jun 23, 2017 Non-editing teachers can not view records of some users who do not share groups with them.
|
||||
Code refactoring related with roles. (222094 lines)
|
||||
Version 16.247.1: Jun 23, 2017 Non-editing teachers can select all groups when writing a message. (222068 lines)
|
||||
Version 16.247: Jun 20, 2017 Fixed bug when removing a user from a course.
|
||||
|
|
|
@ -3124,7 +3124,7 @@ void Brw_AskEditWorksCrs (void)
|
|||
Hlp_FILES_Homework_for_teachers,Box_NOT_CLOSABLE);
|
||||
|
||||
/***** Show form to select the groups *****/
|
||||
Grp_ShowFormToSelectSeveralGroups (ActReqAsgWrkCrs,false);
|
||||
Grp_ShowFormToSelectSeveralGroups (ActReqAsgWrkCrs,Grp_ONLY_MY_GROUPS);
|
||||
|
||||
/***** Start section with user list *****/
|
||||
Lay_StartSection (Usr_USER_LIST_SECTION_ID);
|
||||
|
|
34
swad_group.c
34
swad_group.c
|
@ -90,7 +90,7 @@ static void Grp_EditGroups (void);
|
|||
static void Grp_PutIconsEditingGroups (void);
|
||||
static void Grp_PutIconToCreateNewGroup (void);
|
||||
|
||||
static void Grp_PutCheckboxAllGrps (bool AllGroupsSelectable);
|
||||
static void Grp_PutCheckboxAllGrps (Grp_WhichGroups_t GroupsSelectableByStdsOrNETs);
|
||||
|
||||
static void Grp_ConstructorListGrpAlreadySelec (struct ListGrpsAlreadySelec **AlreadyExistsGroupOfType);
|
||||
static void Grp_DestructorListGrpAlreadySelec (struct ListGrpsAlreadySelec **AlreadyExistsGroupOfType);
|
||||
|
@ -112,7 +112,7 @@ static bool Grp_ListGrpsForChangeMySelection (struct GroupType *GrpTyp,
|
|||
unsigned *NumGrpsThisTypeIBelong);
|
||||
static void Grp_ListGrpsToAddOrRemUsrs (struct GroupType *GrpTyp,long UsrCod);
|
||||
static void Grp_ListGrpsForMultipleSelection (struct GroupType *GrpTyp,
|
||||
bool AllGroupsSelectable);
|
||||
Grp_WhichGroups_t GroupsSelectableByStdsOrNETs);
|
||||
static void Grp_WriteGrpHead (struct GroupType *GrpTyp);
|
||||
static void Grp_WriteRowGrp (struct Group *Grp,bool Highlight);
|
||||
static void Grp_PutFormToCreateGroupType (void);
|
||||
|
@ -347,7 +347,8 @@ static void Grp_PutIconToCreateNewGroup (void)
|
|||
/*************** Show form to select one or several groups *******************/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Grp_ShowFormToSelectSeveralGroups (Act_Action_t NextAction,bool AllGroupsSelectable)
|
||||
void Grp_ShowFormToSelectSeveralGroups (Act_Action_t NextAction,
|
||||
Grp_WhichGroups_t GroupsSelectableByStdsOrNETs)
|
||||
{
|
||||
extern const char *Hlp_USERS_Groups;
|
||||
extern const char *The_ClassFormBold[The_NUM_THEMES];
|
||||
|
@ -377,7 +378,7 @@ void Grp_ShowFormToSelectSeveralGroups (Act_Action_t NextAction,bool AllGroupsSe
|
|||
Usr_PutExtraParamsUsrList (NextAction);
|
||||
|
||||
/***** Select all groups *****/
|
||||
Grp_PutCheckboxAllGrps (AllGroupsSelectable);
|
||||
Grp_PutCheckboxAllGrps (GroupsSelectableByStdsOrNETs);
|
||||
|
||||
/***** Get list of groups types and groups in this course *****/
|
||||
Grp_GetListGrpTypesAndGrpsInThisCrs (Grp_ONLY_GROUP_TYPES_WITH_GROUPS);
|
||||
|
@ -389,7 +390,7 @@ void Grp_ShowFormToSelectSeveralGroups (Act_Action_t NextAction,bool AllGroupsSe
|
|||
NumGrpTyp++)
|
||||
if (Gbl.CurrentCrs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].NumGrps)
|
||||
Grp_ListGrpsForMultipleSelection (&Gbl.CurrentCrs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp],
|
||||
AllGroupsSelectable);
|
||||
GroupsSelectableByStdsOrNETs);
|
||||
Tbl_EndTable ();
|
||||
|
||||
/***** Free list of groups types and groups in this course *****/
|
||||
|
@ -417,7 +418,7 @@ void Grp_ShowFormToSelectSeveralGroups (Act_Action_t NextAction,bool AllGroupsSe
|
|||
/******************* Put checkbox to select all groups ***********************/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Grp_PutCheckboxAllGrps (bool AllGroupsSelectable)
|
||||
static void Grp_PutCheckboxAllGrps (Grp_WhichGroups_t GroupsSelectableByStdsOrNETs)
|
||||
{
|
||||
extern const char *The_ClassForm[The_NUM_THEMES];
|
||||
extern const char *Txt_All_groups;
|
||||
|
@ -425,10 +426,10 @@ static void Grp_PutCheckboxAllGrps (bool AllGroupsSelectable)
|
|||
|
||||
switch (Gbl.Usrs.Me.Role.Logged)
|
||||
{
|
||||
case Rol_NET:
|
||||
ICanSelUnselGroup = AllGroupsSelectable;
|
||||
break;
|
||||
case Rol_STD:
|
||||
case Rol_NET:
|
||||
ICanSelUnselGroup = (GroupsSelectableByStdsOrNETs == Grp_ALL_GROUPS);
|
||||
break;
|
||||
case Rol_TCH:
|
||||
case Rol_DEG_ADM:
|
||||
case Rol_CTR_ADM:
|
||||
|
@ -976,8 +977,8 @@ bool Grp_CheckIfSelectionGrpsSingleEnrolmentIsValid (Rol_Role_t Role,struct List
|
|||
/***** Create and initialize list of groups already selected *****/
|
||||
Grp_ConstructorListGrpAlreadySelec (&AlreadyExistsGroupOfType);
|
||||
|
||||
/***** Go across the list of groups selected checking if a group of the same type
|
||||
is already selected *****/
|
||||
/***** Go across the list of groups selected
|
||||
checking if a group of the same type is already selected *****/
|
||||
SelectionValid = true;
|
||||
for (NumCodGrp = 0;
|
||||
SelectionValid && NumCodGrp < LstGrps->NumGrps;
|
||||
|
@ -1003,7 +1004,6 @@ bool Grp_CheckIfSelectionGrpsSingleEnrolmentIsValid (Rol_Role_t Role,struct List
|
|||
/***** Free memory of the list of booleanos that indicates
|
||||
if a group of each type has been selected *****/
|
||||
Grp_DestructorListGrpAlreadySelec (&AlreadyExistsGroupOfType);
|
||||
|
||||
return SelectionValid; // Return true if the selection of groups is correct
|
||||
case Rol_NET:
|
||||
case Rol_TCH:
|
||||
|
@ -2131,7 +2131,7 @@ static void Grp_ListGrpsToAddOrRemUsrs (struct GroupType *GrpTyp,long UsrCod)
|
|||
/*****************************************************************************/
|
||||
|
||||
static void Grp_ListGrpsForMultipleSelection (struct GroupType *GrpTyp,
|
||||
bool AllGroupsSelectable)
|
||||
Grp_WhichGroups_t GroupsSelectableByStdsOrNETs)
|
||||
{
|
||||
extern const char *Txt_users_with_no_group;
|
||||
unsigned NumGrpThisType;
|
||||
|
@ -2166,20 +2166,20 @@ static void Grp_ListGrpsForMultipleSelection (struct GroupType *GrpTyp,
|
|||
else
|
||||
switch (Gbl.Usrs.Me.Role.Logged)
|
||||
{
|
||||
case Rol_STD:
|
||||
case Rol_NET:
|
||||
ICanSelUnselGroup = AllGroupsSelectable ||
|
||||
ICanSelUnselGroup = (GroupsSelectableByStdsOrNETs == Grp_ALL_GROUPS) ||
|
||||
IBelongToThisGroup;
|
||||
break;
|
||||
case Rol_STD:
|
||||
case Rol_TCH:
|
||||
case Rol_DEG_ADM:
|
||||
case Rol_CTR_ADM:
|
||||
case Rol_INS_ADM:
|
||||
case Rol_SYS_ADM:
|
||||
ICanSelUnselGroup = true;
|
||||
ICanSelUnselGroup = true; // GroupsSelectable is ignored
|
||||
break;
|
||||
default:
|
||||
ICanSelUnselGroup = false;
|
||||
ICanSelUnselGroup = false; // GroupsSelectable is ignored
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -135,7 +135,8 @@ typedef enum
|
|||
void Grp_WriteNamesOfSelectedGrps (void);
|
||||
void Grp_ReqEditGroups (void);
|
||||
|
||||
void Grp_ShowFormToSelectSeveralGroups (Act_Action_t NextAction,bool AllGroupsSelectable);
|
||||
void Grp_ShowFormToSelectSeveralGroups (Act_Action_t NextAction,
|
||||
Grp_WhichGroups_t GroupsSelectable);
|
||||
void Grp_PutParamsCodGrps (void);
|
||||
void Grp_GetParCodsSeveralGrpsToShowUsrs (void);
|
||||
void Grp_GetParCodsSeveralGrps (void);
|
||||
|
|
|
@ -892,7 +892,7 @@ void Mai_ListEmails (void)
|
|||
Hlp_MESSAGES_Email,Box_NOT_CLOSABLE);
|
||||
|
||||
/***** Form to select groups *****/
|
||||
Grp_ShowFormToSelectSeveralGroups (ActMaiStd,false);
|
||||
Grp_ShowFormToSelectSeveralGroups (ActMaiStd,Grp_ONLY_MY_GROUPS);
|
||||
|
||||
/***** Start section with user list *****/
|
||||
Lay_StartSection (Usr_USER_LIST_SECTION_ID);
|
||||
|
|
|
@ -238,7 +238,8 @@ static void Msg_PutFormMsgUsrs (char Content[Cns_MAX_BYTES_LONG_TEXT + 1])
|
|||
if (GetUsrsInCrs)
|
||||
{
|
||||
/***** Form to select groups *****/
|
||||
Grp_ShowFormToSelectSeveralGroups (ActReqMsgUsr,true);
|
||||
Grp_ShowFormToSelectSeveralGroups (ActReqMsgUsr,
|
||||
Grp_ALL_GROUPS); // All groups are selectable to send a message
|
||||
|
||||
/***** Start section with user list *****/
|
||||
Lay_StartSection (Usr_USER_LIST_SECTION_ID);
|
||||
|
|
|
@ -480,7 +480,7 @@ void Sta_AskShowCrsHits (void)
|
|||
Hlp_STATS_Visits_visits_to_course,Box_NOT_CLOSABLE);
|
||||
|
||||
/***** Show form to select the groups *****/
|
||||
Grp_ShowFormToSelectSeveralGroups (ActReqAccCrs,false);
|
||||
Grp_ShowFormToSelectSeveralGroups (ActReqAccCrs,Grp_ONLY_MY_GROUPS);
|
||||
|
||||
/***** Start section with user list *****/
|
||||
Lay_StartSection (Usr_USER_LIST_SECTION_ID);
|
||||
|
|
|
@ -6986,7 +6986,7 @@ void Tst_SelUsrsToSeeUsrsTestResults (void)
|
|||
Hlp_ASSESSMENT_Tests_test_results,Box_NOT_CLOSABLE);
|
||||
|
||||
/***** Show form to select the groups *****/
|
||||
Grp_ShowFormToSelectSeveralGroups (ActReqSeeUsrTstRes,false);
|
||||
Grp_ShowFormToSelectSeveralGroups (ActReqSeeUsrTstRes,Grp_ONLY_MY_GROUPS);
|
||||
|
||||
/***** Start section with user list *****/
|
||||
Lay_StartSection (Usr_USER_LIST_SECTION_ID);
|
||||
|
|
10
swad_text.c
10
swad_text.c
|
@ -30700,23 +30700,23 @@ const char *Txt_Register_teacher =
|
|||
|
||||
const char *Txt_Register_user_IN_A_COURSE_OR_DEGREE =
|
||||
#if L==1
|
||||
"Inscriure usuari";
|
||||
"Inscriure usuari/a";
|
||||
#elif L==2
|
||||
"Anmeldung Benutzer";
|
||||
#elif L==3
|
||||
"Register user";
|
||||
#elif L==4
|
||||
"Inscribir usuario";
|
||||
"Inscribir usuario/a";
|
||||
#elif L==5
|
||||
"Inscrire utilisateur";
|
||||
"Inscrire utilisateur/se";
|
||||
#elif L==6
|
||||
"Inscribir usuario"; // Okoteve traducción
|
||||
"Inscribir usuario/a"; // Okoteve traducción
|
||||
#elif L==7
|
||||
"Registrare utente";
|
||||
#elif L==8
|
||||
"Rejestracja użytkownika";
|
||||
#elif L==9
|
||||
"Registrar utilizador";
|
||||
"Registrar utilizador/a";
|
||||
#endif
|
||||
|
||||
const char *Txt_Register_me_in_X = // Warning: it is very important to include %s in the following sentences
|
||||
|
|
|
@ -7451,7 +7451,7 @@ void Usr_SeeStudents (void)
|
|||
|
||||
/***** Form to select groups *****/
|
||||
if (Gbl.Scope.Current == Sco_SCOPE_CRS)
|
||||
Grp_ShowFormToSelectSeveralGroups (ActLstStd,false);
|
||||
Grp_ShowFormToSelectSeveralGroups (ActLstStd,Grp_ONLY_MY_GROUPS);
|
||||
|
||||
/***** Start section with user list *****/
|
||||
Lay_StartSection (Usr_USER_LIST_SECTION_ID);
|
||||
|
@ -7626,7 +7626,7 @@ void Usr_SeeTeachers (void)
|
|||
|
||||
/***** Form to select groups *****/
|
||||
if (Gbl.Scope.Current == Sco_SCOPE_CRS)
|
||||
Grp_ShowFormToSelectSeveralGroups (ActLstTch,false);
|
||||
Grp_ShowFormToSelectSeveralGroups (ActLstTch,Grp_ONLY_MY_GROUPS);
|
||||
|
||||
/***** Start section with user list *****/
|
||||
Lay_StartSection (Usr_USER_LIST_SECTION_ID);
|
||||
|
|
Loading…
Reference in New Issue