diff --git a/swad_attendance.c b/swad_attendance.c index 295dbaab5..a64dbce56 100644 --- a/swad_attendance.c +++ b/swad_attendance.c @@ -1925,12 +1925,18 @@ static void Att_ListAttStudents (struct AttendanceEvent *Att) unsigned NumStd; struct UsrData UsrDat; - /***** Form to select groups *****/ - Grp_ShowFormToSelectSeveralGroups (ActSeeOneAtt); + /***** Get groups to show ******/ + Grp_GetParCodsSeveralGrpsToShowUsrs (); /***** Get and order list of students in this course *****/ Usr_GetListUsrs (Rol_STUDENT,Sco_SCOPE_CRS); + /***** Start frame *****/ + Lay_StartRoundFrame (NULL,Txt_Attendance,NULL,Hlp_USERS_Attendance); + + /***** Form to select groups *****/ + Grp_ShowFormToSelectSeveralGroups (ActSeeOneAtt); + if (Gbl.Usrs.LstUsrs[Rol_STUDENT].NumUsrs) { /***** Get my preference about photos in users' list for current course *****/ @@ -1945,10 +1951,8 @@ static void Att_ListAttStudents (struct AttendanceEvent *Att) Grp_PutParamsCodGrps (); /***** List students' data *****/ - /* Header */ - Lay_StartRoundFrameTable (NULL,Txt_Attendance, - NULL,Hlp_USERS_Attendance,2); - fprintf (Gbl.F.Out,"" + fprintf (Gbl.F.Out,"" + "" "" "" ""); @@ -1982,8 +1986,10 @@ static void Att_ListAttStudents (struct AttendanceEvent *Att) Att_WriteRowStdToCallTheRoll (NumStd + 1,&UsrDat,Att); } - /* Send button and end frame */ - Lay_EndRoundFrameTableWithButton (Lay_CONFIRM_BUTTON,Txt_Save); + fprintf (Gbl.F.Out,"
"); + + /* Send button */ + Lay_PutConfirmButton (Txt_Save); /***** End form *****/ Act_FormEnd (); @@ -1994,6 +2000,9 @@ static void Att_ListAttStudents (struct AttendanceEvent *Att) else Usr_ShowWarningNoUsersFound (Rol_STUDENT); + /***** End frame *****/ + Lay_EndRoundFrame (); + /***** Free memory for students list *****/ Usr_FreeUsrsList (Rol_STUDENT); @@ -2592,6 +2601,12 @@ void Usr_ReqListStdsAttendanceCrs (void) and preference about view photos *****/ Usr_GetAndUpdatePrefsAboutUsrList (); + /***** Get groups to show ******/ + Grp_GetParCodsSeveralGrpsToShowUsrs (); + + /***** Get and order lists of users from current course *****/ + Usr_GetListUsrs (Rol_STUDENT,Sco_SCOPE_CRS); + /***** Start frame *****/ Lay_StartRoundFrame (NULL,Txt_ROLES_PLURAL_Abc[Rol_STUDENT][Usr_SEX_UNKNOWN], NULL,NULL); @@ -2599,9 +2614,6 @@ void Usr_ReqListStdsAttendanceCrs (void) /***** Form to select groups *****/ Grp_ShowFormToSelectSeveralGroups (ActReqLstStdAtt); - /***** Get and order lists of users from current course *****/ - Usr_GetListUsrs (Rol_STUDENT,Sco_SCOPE_CRS); - if (Gbl.Usrs.LstUsrs[Rol_STUDENT].NumUsrs) { if (Usr_GetIfShowBigList (Gbl.Usrs.LstUsrs[Rol_STUDENT].NumUsrs,NULL)) diff --git a/swad_changelog.h b/swad_changelog.h index 06053bf6b..3b014126c 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -168,17 +168,22 @@ // TODO: Change forms to change my webs / social networks to one unique form with a "Save changes" button +// TODO: In USERS > Attendance > Select event, if the list of users is big, the user should be requested to see big list in the same way that it is made in other options + +// TODO: Check help on ASSESSMENT > Tests > Test results + /*****************************************************************************/ /****************************** Public constants *****************************/ /*****************************************************************************/ -#define Log_PLATFORM_VERSION "SWAD 16.70.5 (2016-11-24)" +#define Log_PLATFORM_VERSION "SWAD 16.71 (2016-11-25)" #define CSS_FILE "swad16.69.css" #define JS_FILE "swad16.46.1.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.71: Nov 25, 2016 Fixed bugs and changes in layout related with selection of groups. (207560 lines) Version 16.70.5: Nov 24, 2016 Changes in layout of attendance list. (207549 lines) Version 16.70.4: Nov 24, 2016 Changes in layout of students' list. (207547 lines) Version 16.70.3: Nov 24, 2016 Changes in layout of selection of students to view homework. (207547 lines) diff --git a/swad_file_browser.c b/swad_file_browser.c index 068e0f108..b1401839e 100644 --- a/swad_file_browser.c +++ b/swad_file_browser.c @@ -3040,6 +3040,7 @@ void Brw_AskEditWorksCrs (void) { extern const char *Txt_Users; extern const char *Txt_View_homework; + unsigned NumTotalUsrs; /***** Get parameters related to file browser *****/ Brw_GetParAndInitFileBrowser (); @@ -3049,21 +3050,24 @@ void Brw_AskEditWorksCrs (void) and preference about view photos *****/ Usr_GetAndUpdatePrefsAboutUsrList (); + /***** Get groups to show ******/ + Grp_GetParCodsSeveralGrpsToShowUsrs (); + + /***** Get and order lists of users from this course *****/ + Usr_GetListUsrs (Rol_TEACHER,Sco_SCOPE_CRS); + Usr_GetListUsrs (Rol_STUDENT,Sco_SCOPE_CRS); + NumTotalUsrs = Gbl.Usrs.LstUsrs[Rol_TEACHER].NumUsrs + + Gbl.Usrs.LstUsrs[Rol_STUDENT].NumUsrs; + /***** Draw class photos to select users *****/ Lay_StartRoundFrame (NULL,Txt_Users,NULL,NULL); /***** Show form to select the groups *****/ Grp_ShowFormToSelectSeveralGroups (ActReqAsgWrkCrs); - /***** Get and order lists of users from this course *****/ - Usr_GetListUsrs (Rol_TEACHER,Sco_SCOPE_CRS); - Usr_GetListUsrs (Rol_STUDENT,Sco_SCOPE_CRS); - - if (Gbl.Usrs.LstUsrs[Rol_TEACHER].NumUsrs || - Gbl.Usrs.LstUsrs[Rol_STUDENT].NumUsrs) + if (NumTotalUsrs) { - if (Usr_GetIfShowBigList (Gbl.Usrs.LstUsrs[Rol_TEACHER].NumUsrs + - Gbl.Usrs.LstUsrs[Rol_STUDENT].NumUsrs,NULL)) + if (Usr_GetIfShowBigList (NumTotalUsrs,NULL)) { /* Form to select type of list used for select several users */ Usr_ShowFormsToSelectUsrListType (ActReqAsgWrkCrs); diff --git a/swad_group.c b/swad_group.c index 91a71422e..f7b65d8b7 100644 --- a/swad_group.c +++ b/swad_group.c @@ -61,7 +61,6 @@ extern struct Globals Gbl; static void Grp_EditGroupTypes (void); static void Grp_EditGroups (void); -static void Grp_ShowFormSeveralGrps (Act_Action_t NextAction); static void Grp_ConstructorListGrpAlreadySelec (struct ListGrpsAlreadySelec **AlreadyExistsGroupOfType); static void Grp_DestructorListGrpAlreadySelec (struct ListGrpsAlreadySelec **AlreadyExistsGroupOfType); static void Grp_RemoveUsrFromGroup (long UsrCod,long GrpCod); @@ -225,7 +224,7 @@ static void Grp_EditGroups (void) /*************** Show form to select one or several groups *******************/ /*****************************************************************************/ -static void Grp_ShowFormSeveralGrps (Act_Action_t NextAction) +void Grp_ShowFormToSelectSeveralGroups (Act_Action_t NextAction) { extern const char *Hlp_USERS_Groups; extern const char *The_ClassForm[The_NUM_THEMES]; @@ -235,70 +234,75 @@ static void Grp_ShowFormSeveralGrps (Act_Action_t NextAction) extern const char *Txt_Update_students; extern const char *Txt_Update_students_according_to_selected_groups; unsigned NumGrpTyp; - bool ICanEdit = !Gbl.Form.Inside && - (Gbl.Usrs.Me.LoggedRole == Rol_TEACHER || - Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM); + bool ICanEdit; - fprintf (Gbl.F.Out,"
"); + if (Gbl.CurrentCrs.Grps.NumGrps) + { + ICanEdit = !Gbl.Form.Inside && + (Gbl.Usrs.Me.LoggedRole == Rol_TEACHER || + Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM); - /***** Start frame *****/ - Lay_StartRoundFrame (NULL,Txt_Groups, - ICanEdit ? Grp_PutIconToEditGroups : - NULL, - Hlp_USERS_Groups); + fprintf (Gbl.F.Out,"
"); - /***** Start form to update the students listed - depending on the groups selected *****/ - Act_FormStart (NextAction); - Usr_PutParamUsrListType (Gbl.Usrs.Me.ListType); - Usr_PutParamColsClassPhoto (); - Usr_PutParamListWithPhotos (); + /***** Start frame *****/ + Lay_StartRoundFrame (NULL,Txt_Groups, + ICanEdit ? Grp_PutIconToEditGroups : + NULL, + Hlp_USERS_Groups); - /***** Put parameters needed depending on the action *****/ - Usr_PutExtraParamsUsrList (NextAction); + /***** Start form to update the students listed + depending on the groups selected *****/ + Act_FormStart (NextAction); + Usr_PutParamUsrListType (Gbl.Usrs.Me.ListType); + Usr_PutParamColsClassPhoto (); + Usr_PutParamListWithPhotos (); - /***** Select all groups *****/ - fprintf (Gbl.F.Out,"
" - "" - " %s" - "
", - Txt_All_groups); + /***** Put parameters needed depending on the action *****/ + Usr_PutExtraParamsUsrList (NextAction); - /***** Get list of groups types and groups in this course *****/ - Grp_GetListGrpTypesAndGrpsInThisCrs (Grp_ONLY_GROUP_TYPES_WITH_GROUPS); + /***** Select all groups *****/ + fprintf (Gbl.F.Out,"
" + "" + " %s" + "
", + Txt_All_groups); - /***** List the groups for each group type *****/ - fprintf (Gbl.F.Out,""); - for (NumGrpTyp = 0; - NumGrpTyp < Gbl.CurrentCrs.Grps.GrpTypes.Num; - NumGrpTyp++) - if (Gbl.CurrentCrs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].NumGrps) - Grp_ListGrpsForMultipleSelection (&Gbl.CurrentCrs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp]); - fprintf (Gbl.F.Out,"
"); + /***** Get list of groups types and groups in this course *****/ + Grp_GetListGrpTypesAndGrpsInThisCrs (Grp_ONLY_GROUP_TYPES_WITH_GROUPS); - /***** Free list of groups types and groups in this course *****/ - Grp_FreeListGrpTypesAndGrps (); + /***** List the groups for each group type *****/ + fprintf (Gbl.F.Out,""); + for (NumGrpTyp = 0; + NumGrpTyp < Gbl.CurrentCrs.Grps.GrpTypes.Num; + NumGrpTyp++) + if (Gbl.CurrentCrs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].NumGrps) + Grp_ListGrpsForMultipleSelection (&Gbl.CurrentCrs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp]); + fprintf (Gbl.F.Out,"
"); - /***** Submit button *****/ - fprintf (Gbl.F.Out,"
"); - Act_LinkFormSubmitAnimated (Txt_Update_students_according_to_selected_groups, - The_ClassFormBold[Gbl.Prefs.Theme], - "CopyMessageToHiddenFields()"); - Lay_PutCalculateIconWithText (Txt_Update_students_according_to_selected_groups, - Txt_Update_students); - fprintf (Gbl.F.Out,"
"); + /***** Free list of groups types and groups in this course *****/ + Grp_FreeListGrpTypesAndGrps (); - /***** End form *****/ - Act_FormEnd (); + /***** Submit button *****/ + fprintf (Gbl.F.Out,"
"); + Act_LinkFormSubmitAnimated (Txt_Update_students_according_to_selected_groups, + The_ClassFormBold[Gbl.Prefs.Theme], + "CopyMessageToHiddenFields()"); + Lay_PutCalculateIconWithText (Txt_Update_students_according_to_selected_groups, + Txt_Update_students); + fprintf (Gbl.F.Out,"
"); - /***** End frame *****/ - Lay_EndRoundFrame (); - fprintf (Gbl.F.Out,"
"); + /***** End form *****/ + Act_FormEnd (); + + /***** End frame *****/ + Lay_EndRoundFrame (); + fprintf (Gbl.F.Out,"
"); + } } /*****************************************************************************/ @@ -331,20 +335,6 @@ void Grp_PutParamsCodGrps (void) } } -/*****************************************************************************/ -/**************** Show a form to select one or several groups ****************/ -/*****************************************************************************/ - -void Grp_ShowFormToSelectSeveralGroups (Act_Action_t NextAction) - { - /***** Get groups to show ******/ - Grp_GetParCodsSeveralGrpsToShowUsrs (); - - /***** Show form *****/ - if (Gbl.CurrentCrs.Grps.NumGrps) - Grp_ShowFormSeveralGrps (NextAction); - } - /*****************************************************************************/ /**************** Get parameters related to groups selected ******************/ /*****************************************************************************/ @@ -371,7 +361,6 @@ void Grp_GetParCodsSeveralGrpsToShowUsrs (void) Par_GetParToText ("AllGroups",YN,1); Gbl.Usrs.ClassPhoto.AllGroups = (Str_ConvertToUpperLetter (YN[0]) == 'Y'); - /***** Count number of groups in current course *****/ if (Gbl.CurrentCrs.Grps.NumGrps) { /***** Allocate memory for the list of group codes *****/ @@ -451,7 +440,6 @@ void Grp_GetParCodsSeveralGrpsToEditAsgAttOrSvy (void) /***** Set default for number of groups selected by me *****/ Gbl.CurrentCrs.Grps.LstGrpsSel.NumGrps = 0; - /***** Count number of groups in current course *****/ if (Gbl.CurrentCrs.Grps.NumGrps) { /***** Allocate memory for the list of group codes *****/ diff --git a/swad_group.h b/swad_group.h index b1550ec8d..a8e44d3ee 100644 --- a/swad_group.h +++ b/swad_group.h @@ -120,8 +120,9 @@ typedef enum void Grp_WriteNamesOfSelectedGrps (void); void Grp_ReqEditGroups (void); -void Grp_PutParamsCodGrps (void); + void Grp_ShowFormToSelectSeveralGroups (Act_Action_t NextAction); +void Grp_PutParamsCodGrps (void); void Grp_GetParCodsSeveralGrpsToShowUsrs (void); void Grp_GetParCodsSeveralGrpsToEditAsgAttOrSvy (void); void Grp_FreeListCodSelectedGrps (void); diff --git a/swad_mail.c b/swad_mail.c index 0b89da433..cde4cd4b4 100644 --- a/swad_mail.c +++ b/swad_mail.c @@ -837,27 +837,29 @@ void Mai_ListEmails (void) unsigned int LengthStrAddr = 0; struct UsrData UsrDat; - /***** Form to select groups *****/ - Grp_ShowFormToSelectSeveralGroups (ActMaiStd); + /***** Get groups to show ******/ + Grp_GetParCodsSeveralGrpsToShowUsrs (); /***** Get and order list of students in this course *****/ Usr_GetListUsrs (Rol_STUDENT,Sco_SCOPE_CRS); + /***** Start of the frame used to list the emails *****/ + Lay_StartRoundFrame (NULL, + Txt_Students_who_have_accepted_and_who_have_email, + NULL,NULL); + + /***** Form to select groups *****/ + Grp_ShowFormToSelectSeveralGroups (ActMaiStd); + if (Gbl.Usrs.LstUsrs[Rol_STUDENT].NumUsrs) { if (Usr_GetIfShowBigList (Gbl.Usrs.LstUsrs[Rol_STUDENT].NumUsrs,NULL)) { - /***** Start of the frame used to list the emails *****/ - Lay_StartRoundFrameTable (NULL, - Txt_Students_who_have_accepted_and_who_have_email, - NULL,NULL,0); - fprintf (Gbl.F.Out,"" - ""); - /***** Initialize structure with user's data *****/ Usr_UsrDataConstructor (&UsrDat); /***** List the students' email addresses *****/ + fprintf (Gbl.F.Out,"
"); for (NumUsr = 0; NumUsr < Gbl.Usrs.LstUsrs[Rol_STUDENT].NumUsrs; NumUsr++) @@ -895,36 +897,28 @@ void Mai_ListEmails (void) } } } - fprintf (Gbl.F.Out,"" - ""); + fprintf (Gbl.F.Out,"
"); /***** Free memory used for user's data *****/ Usr_UsrDataDestructor (&UsrDat); /***** Show a message with the number of students with email ****/ - fprintf (Gbl.F.Out,"" - ""); + fprintf (Gbl.F.Out,"
"); fprintf (Gbl.F.Out,Txt_X_students_who_have_email, NumStdsWithEmail, ((float) NumStdsWithEmail / (float) Gbl.Usrs.LstUsrs[Rol_STUDENT].NumUsrs) * 100.0, Gbl.Usrs.LstUsrs[Rol_STUDENT].NumUsrs); - fprintf (Gbl.F.Out,"" - ""); + fprintf (Gbl.F.Out,"
"); /***** Show a message with the number of students who have accepted and have email ****/ - fprintf (Gbl.F.Out,"" - ""); + fprintf (Gbl.F.Out,"
"); fprintf (Gbl.F.Out,Txt_X_students_who_have_accepted_and_who_have_email, NumAcceptedStdsWithEmail, ((float) NumAcceptedStdsWithEmail / (float) Gbl.Usrs.LstUsrs[Rol_STUDENT].NumUsrs) * 100.0, Gbl.Usrs.LstUsrs[Rol_STUDENT].NumUsrs); - fprintf (Gbl.F.Out,"" - ""); - - /***** End of the frame used to list the emails *****/ - Lay_EndRoundFrameTable (); + fprintf (Gbl.F.Out,"
"); /***** Icon to open the client email program *****/ fprintf (Gbl.F.Out,"
" @@ -946,6 +940,9 @@ void Mai_ListEmails (void) else Usr_ShowWarningNoUsersFound (Rol_STUDENT); + /***** End of the frame used to list the emails *****/ + Lay_EndRoundFrame (); + /***** Free memory for students list *****/ Usr_FreeUsrsList (Rol_STUDENT); diff --git a/swad_message.c b/swad_message.c index b5744ff6a..08f7f0f10 100644 --- a/swad_message.c +++ b/swad_message.c @@ -173,9 +173,7 @@ static void Msg_PutFormMsgUsrs (char *Content) char YN[1+1]; unsigned NumUsrsInCrs; bool ShowUsrsInCrs = false; - bool GetUsrsInCrs = !Gbl.Msg.ShowOnlyOneRecipient && // Show list of potential recipients - (Gbl.Usrs.Me.IBelongToCurrentCrs || // If there is a course selected and I belong to it - Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM); + bool GetUsrsInCrs; Gbl.Usrs.LstUsrs[Rol_TEACHER].NumUsrs = Gbl.Usrs.LstUsrs[Rol_STUDENT].NumUsrs = 0; @@ -199,6 +197,27 @@ static void Msg_PutFormMsgUsrs (char *Content) else Gbl.Msg.ShowOnlyOneRecipient = false; + GetUsrsInCrs = !Gbl.Msg.ShowOnlyOneRecipient && // Show list of potential recipients + (Gbl.Usrs.Me.IBelongToCurrentCrs || // If there is a course selected and I belong to it + Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM); + + if (GetUsrsInCrs) + { + /***** Get and update type of list, + number of columns in class photo + and preference about view photos *****/ + Usr_GetAndUpdatePrefsAboutUsrList (); + + /***** Get groups to show ******/ + Grp_GetParCodsSeveralGrpsToShowUsrs (); + + /***** Get and order lists of users from this course *****/ + Usr_GetListUsrs (Rol_TEACHER,Sco_SCOPE_CRS); + Usr_GetListUsrs (Rol_STUDENT,Sco_SCOPE_CRS); + NumUsrsInCrs = Gbl.Usrs.LstUsrs[Rol_TEACHER].NumUsrs + + Gbl.Usrs.LstUsrs[Rol_STUDENT].NumUsrs; + } + /***** Start frame *****/ Lay_StartRoundFrame (NULL, Gbl.Msg.Reply.IsReply ? Txt_Reply_message : @@ -213,19 +232,9 @@ static void Msg_PutFormMsgUsrs (char *Content) /***** Get list of users belonging to the current course *****/ if (GetUsrsInCrs) { - /***** Get and update type of list, - number of columns in class photo - and preference about view photos *****/ - Usr_GetAndUpdatePrefsAboutUsrList (); - /***** Form to select groups *****/ Grp_ShowFormToSelectSeveralGroups (ActReqMsgUsr); - /***** Get and order lists of users from this course *****/ - Usr_GetListUsrs (Rol_TEACHER,Sco_SCOPE_CRS); - Usr_GetListUsrs (Rol_STUDENT,Sco_SCOPE_CRS); - NumUsrsInCrs = Gbl.Usrs.LstUsrs[Rol_TEACHER].NumUsrs + - Gbl.Usrs.LstUsrs[Rol_STUDENT].NumUsrs; if (NumUsrsInCrs) { /***** Form to select type of list used for select several users *****/ diff --git a/swad_statistic.c b/swad_statistic.c index 1e9d43828..3ce0824a1 100644 --- a/swad_statistic.c +++ b/swad_statistic.c @@ -419,13 +419,8 @@ void Sta_AskShowCrsHits (void) and preference about view photos *****/ Usr_GetAndUpdatePrefsAboutUsrList (); - /***** Start frame *****/ - sprintf (Gbl.Title,Txt_Statistics_of_visits_to_the_course_X, - Gbl.CurrentCrs.Crs.ShrtName); - Lay_StartRoundFrame (NULL,Gbl.Title,NULL,NULL); - - /***** Show form to select the grupos *****/ - Grp_ShowFormToSelectSeveralGroups (ActReqAccCrs); + /***** Get groups to show ******/ + Grp_GetParCodsSeveralGrpsToShowUsrs (); /***** Get and order the lists of users of this course *****/ Usr_GetListUsrs (Rol_TEACHER,Sco_SCOPE_CRS); @@ -433,6 +428,14 @@ void Sta_AskShowCrsHits (void) NumTotalUsrs = Gbl.Usrs.LstUsrs[Rol_TEACHER].NumUsrs + Gbl.Usrs.LstUsrs[Rol_STUDENT].NumUsrs; + /***** Start frame *****/ + sprintf (Gbl.Title,Txt_Statistics_of_visits_to_the_course_X, + Gbl.CurrentCrs.Crs.ShrtName); + Lay_StartRoundFrame (NULL,Gbl.Title,NULL,NULL); + + /***** Show form to select the groups *****/ + Grp_ShowFormToSelectSeveralGroups (ActReqAccCrs); + if (NumTotalUsrs) { if (Usr_GetIfShowBigList (NumTotalUsrs,NULL)) diff --git a/swad_test.c b/swad_test.c index b9621c8ea..e4dd51f79 100644 --- a/swad_test.c +++ b/swad_test.c @@ -6879,8 +6879,8 @@ void Tst_SelUsrsToSeeUsrsTestResults (void) and preference about view photos *****/ Usr_GetAndUpdatePrefsAboutUsrList (); - /***** Show form to select the groups *****/ - Grp_ShowFormToSelectSeveralGroups (ActReqSeeUsrTstRes); + /***** Get groups to show ******/ + Grp_GetParCodsSeveralGrpsToShowUsrs (); /***** Get and order lists of users from this course *****/ Usr_GetListUsrs (Rol_TEACHER,Sco_SCOPE_CRS); @@ -6888,13 +6888,16 @@ void Tst_SelUsrsToSeeUsrsTestResults (void) NumTotalUsrs = Gbl.Usrs.LstUsrs[Rol_TEACHER].NumUsrs + Gbl.Usrs.LstUsrs[Rol_STUDENT].NumUsrs; + /***** Start frame *****/ + Lay_StartRoundFrame (NULL,Txt_Test_results,NULL,NULL); + + /***** Show form to select the groups *****/ + Grp_ShowFormToSelectSeveralGroups (ActReqSeeUsrTstRes); + if (NumTotalUsrs) { if (Usr_GetIfShowBigList (NumTotalUsrs,NULL)) { - /***** Start frame *****/ - Lay_StartRoundFrame (NULL,Txt_Test_results,NULL,NULL); - /***** Form to select type of list used for select several users *****/ Usr_ShowFormsToSelectUsrListType (ActReqSeeUsrTstRes); @@ -6929,14 +6932,14 @@ void Tst_SelUsrsToSeeUsrsTestResults (void) /***** End form *****/ Act_FormEnd (); - - /***** End frame *****/ - Lay_EndRoundFrame (); } } else Usr_ShowWarningNoUsersFound (Rol_UNKNOWN); + /***** End frame *****/ + Lay_EndRoundFrame (); + /***** Free memory for users' list *****/ Usr_FreeUsrsList (Rol_TEACHER); Usr_FreeUsrsList (Rol_STUDENT); diff --git a/swad_user.c b/swad_user.c index 04e185c72..6a8fca4cf 100644 --- a/swad_user.c +++ b/swad_user.c @@ -5810,16 +5810,14 @@ void Usr_ListAllDataStds (void) and preference about view photos *****/ Usr_GetAndUpdatePrefsAboutUsrList (); - /***** Get list of groups types and groups in current course *****/ - Grp_GetListGrpTypesInThisCrs (Grp_ONLY_GROUP_TYPES_WITH_GROUPS); - - /***** Get groups to show *****/ - Grp_GetParCodsSeveralGrpsToShowUsrs (); - /***** Get scope *****/ Sco_SetScopesForListingStudents (); Sco_GetScope ("ScopeUsr"); + /***** Get groups to show *****/ + if (Gbl.Scope.Current == Sco_SCOPE_CRS) + Grp_GetParCodsSeveralGrpsToShowUsrs (); + /****** Get and order list of students in current course ******/ Usr_GetListUsrs (Rol_STUDENT,Gbl.Scope.Current); @@ -6889,6 +6887,13 @@ void Usr_SeeStudents (void) Gbl.Usrs.Me.LoggedRole == Rol_DEG_ADM || Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM)); + /***** Get groups to show ******/ + if (Gbl.Scope.Current == Sco_SCOPE_CRS) + Grp_GetParCodsSeveralGrpsToShowUsrs (); + + /***** Get and order list of students *****/ + Usr_GetListUsrs (Rol_STUDENT,Gbl.Scope.Current); + /***** Start frame *****/ Lay_StartRoundFrame (NULL,Txt_ROLES_PLURAL_Abc[Rol_STUDENT][Usr_SEX_UNKNOWN], Usr_PutIconsListStds,Hlp_USERS_Students); @@ -6897,9 +6902,6 @@ void Usr_SeeStudents (void) if (Gbl.Scope.Current == Sco_SCOPE_CRS) Grp_ShowFormToSelectSeveralGroups (ActLstStd); - /***** Get and order list of students *****/ - Usr_GetListUsrs (Rol_STUDENT,Gbl.Scope.Current); - if (Usr_GetIfShowBigList (Gbl.Usrs.LstUsrs[Rol_STUDENT].NumUsrs,NULL)) { /***** Get list of selected users *****/