diff --git a/swad_attendance.c b/swad_attendance.c index 7d69ff397..d6c2e0805 100644 --- a/swad_attendance.c +++ b/swad_attendance.c @@ -70,7 +70,6 @@ static void Att_ShowOneAttEvent (struct AttendanceEvent *Att,bool ShowOnlyThisAt static void Att_WriteAttEventAuthor (struct AttendanceEvent *Att); static void Att_GetParamAttOrderType (void); static void Att_PutFormToListStds (void); -static void Att_PutFormToPrintListStds (char *StrAttCodsSelected); static void Att_PutFormToCreateNewAttEvent (void); static void Att_PutFormsToRemEditOneAttEvent (long AttCod,bool Hidden); static void Att_GetListAttEvents (Att_OrderTime_t Order); @@ -97,6 +96,8 @@ static void Att_RemoveUsrFromAttEvent (long AttCod,long UsrCod); static void Att_GetListSelectedUsrCods (unsigned NumStdsInList,long **LstSelectedUsrCods); static void Att_GetListSelectedAttCods (char **StrAttCodsSelected); +static void Att_PutFormToPrintListStds (bool ShowDetails,char *StrAttCodsSelected); +static void Att_PutButtonToShowDetails (char *StrAttCodsSelected); static void Att_ListEventsToSelect (void); static void Att_ListStdsAttendanceTable (unsigned NumStdsInList,long *LstSelectedUsrCods); static void Att_WriteTableHeadSeveralAttEvents (void); @@ -436,28 +437,6 @@ static void Att_PutFormToListStds (void) fprintf (Gbl.F.Out,""); } -/*****************************************************************************/ -/**** Put a link (form) to list assistance of students to several events *****/ -/*****************************************************************************/ - -static void Att_PutFormToPrintListStds (char *StrAttCodsSelected) - { - extern const char *The_ClassFormul[The_NUM_THEMES]; - extern const char *Txt_Print_view; - - /***** Link to print view *****/ - fprintf (Gbl.F.Out,"
"); - Act_FormStart (ActPrnLstAttStd); - Grp_PutParamsCodGrps (); - Usr_PutHiddenParUsrCodAll (ActPrnLstAttStd,Gbl.Usrs.Select.All); - if (StrAttCodsSelected[0]) - Par_PutHiddenParamString ("AttCods",StrAttCodsSelected); - Act_LinkFormSubmit (Txt_Print_view,The_ClassFormul[Gbl.Prefs.Theme]); - Lay_PutSendIcon ("print",Txt_Print_view,Txt_Print_view); - fprintf (Gbl.F.Out,"" - "
"); - } - /*****************************************************************************/ /*********** Put a link (form) to create a new attendance event **************/ /*****************************************************************************/ @@ -2651,8 +2630,10 @@ void Usr_ListAttendanceStdsCrs (void) extern const char *Txt_You_must_select_one_ore_more_students; unsigned NumStdsInList; long *LstSelectedUsrCods; - char *StrAttCodsSelected; unsigned NumAttEvent; + char *StrAttCodsSelected; + char YN[1+1]; + bool ShowDetails; /***** Get list of attendance events *****/ Att_GetListAttEvents (Att_OLDEST_FIRST); @@ -2663,6 +2644,10 @@ void Usr_ListAttendanceStdsCrs (void) /* Check the number of students to list */ if ((NumStdsInList = Usr_CountNumUsrsInEncryptedList ())) { + /***** Get boolean parameter that indicates if details must be shown *****/ + Par_GetParToText ("ShowDetails",YN,1); + ShowDetails = (Str_ConvertToUpperLetter (YN[0]) == 'Y'); + /***** Get list of groups selected ******/ Grp_GetParCodsSeveralGrpsToShowUsrs (); @@ -2682,10 +2667,7 @@ void Usr_ListAttendanceStdsCrs (void) /***** Put link to print *****/ if (Gbl.CurrentAct == ActSeeLstAttStd) - Att_PutFormToPrintListStds (StrAttCodsSelected); - - /***** Free memory for list of attendance events selected *****/ - free ((void *) StrAttCodsSelected); + Att_PutFormToPrintListStds (ShowDetails,StrAttCodsSelected); /***** List events to select *****/ Att_ListEventsToSelect (); @@ -2696,8 +2678,14 @@ void Usr_ListAttendanceStdsCrs (void) /***** Show table with attendances for every student in list *****/ Att_ListStdsAttendanceTable (NumStdsInList,LstSelectedUsrCods); - /***** List the students with details and comments *****/ - Att_ListStdsWithAttEventsDetails (NumStdsInList,LstSelectedUsrCods); + /***** Show details or put button to show details *****/ + if (ShowDetails) + Att_ListStdsWithAttEventsDetails (NumStdsInList,LstSelectedUsrCods); + else if (Gbl.CurrentAct == ActSeeLstAttStd) + Att_PutButtonToShowDetails (StrAttCodsSelected); + + /***** Free memory for list of attendance events selected *****/ + free ((void *) StrAttCodsSelected); /***** Free list of user codes *****/ free ((void *) LstSelectedUsrCods); @@ -2859,6 +2847,51 @@ static void Att_GetListSelectedAttCods (char **StrAttCodsSelected) } } +/*****************************************************************************/ +/**** Put a link (form) to list assistance of students to several events *****/ +/*****************************************************************************/ + +static void Att_PutFormToPrintListStds (bool ShowDetails,char *StrAttCodsSelected) + { + extern const char *The_ClassFormul[The_NUM_THEMES]; + extern const char *Txt_Print_view; + + /***** Link to print view *****/ + fprintf (Gbl.F.Out,"
"); + Act_FormStart (ActPrnLstAttStd); + if (ShowDetails) + Par_PutHiddenParamChar ("ShowDetails",'Y'); + Grp_PutParamsCodGrps (); + Usr_PutHiddenParUsrCodAll (ActPrnLstAttStd,Gbl.Usrs.Select.All); + if (StrAttCodsSelected[0]) + Par_PutHiddenParamString ("AttCods",StrAttCodsSelected); + Act_LinkFormSubmit (Txt_Print_view,The_ClassFormul[Gbl.Prefs.Theme]); + Lay_PutSendIcon ("print",Txt_Print_view,Txt_Print_view); + fprintf (Gbl.F.Out,"" + "
"); + } + +/*****************************************************************************/ +/**** Put a link (form) to list assistance of students to several events *****/ +/*****************************************************************************/ + +static void Att_PutButtonToShowDetails (char *StrAttCodsSelected) + { + extern const char *Txt_Show_more_details; + + /***** Button to show more details *****/ + fprintf (Gbl.F.Out,"
"); + Act_FormStart (ActSeeLstAttStd); + Par_PutHiddenParamChar ("ShowDetails",'Y'); + Grp_PutParamsCodGrps (); + Usr_PutHiddenParUsrCodAll (ActSeeLstAttStd,Gbl.Usrs.Select.All); + if (StrAttCodsSelected[0]) + Par_PutHiddenParamString ("AttCods",StrAttCodsSelected); + Lay_PutSendButton (Txt_Show_more_details); + fprintf (Gbl.F.Out,"" + "
"); + } + /*****************************************************************************/ /********** Write list of those attendance events that have students *********/ /*****************************************************************************/ @@ -2874,19 +2907,19 @@ static void Att_ListEventsToSelect (void) const char *BgColor; unsigned NumAttEvent; - /***** Start frame *****/ + /***** Start form to update the attendance + depending on the events selected *****/ if (Gbl.CurrentAct == ActSeeLstAttStd) { - /***** Start form to update the attendance - depending on the events selected *****/ Act_FormStart (ActSeeLstAttStd); + Grp_PutParamsCodGrps (); Usr_PutHiddenParUsrCodAll (ActSeeLstAttStd,Gbl.Usrs.Select.All); - - Lay_StartRoundFrameTable10 (NULL,2,Txt_Events); } - else - Lay_StartSquareFrameTable (NULL,NULL,NULL,2); + /***** Start frame *****/ + Lay_StartRoundFrameTable10 (NULL,2,Txt_Events); + + /***** Heading row *****/ fprintf (Gbl.F.Out,"" "%s" "%s" @@ -2901,11 +2934,11 @@ static void Att_ListEventsToSelect (void) { BgColor = Gbl.ColorRows[Gbl.RowEvenOdd]; - /***** Get data of the attendance event from database *****/ + /* Get data of the attendance event from database */ Att_GetDataOfAttEventByCodAndCheckCrs (&Gbl.AttEvents.Lst[NumAttEvent]); Att_GetNumStdsTotalWhoAreInAttEvent (&Gbl.AttEvents.Lst[NumAttEvent]); - /***** Write a row for this event *****/ + /* Write a row for this event */ fprintf (Gbl.F.Out,"" "" "" - ""); - Act_LinkFormSubmit (Txt_Update_attendance_according_to_selected_events,The_ClassFormul[Gbl.Prefs.Theme]); - Lay_PutSendIcon ("recycle",Txt_Update_attendance_according_to_selected_events,Txt_Update_attendance); - fprintf (Gbl.F.Out,"" - ""); - - /***** End frame *****/ if (Gbl.CurrentAct == ActSeeLstAttStd) { - Lay_EndRoundFrameTable10 (); - - /***** End form *****/ - fprintf (Gbl.F.Out,""); + fprintf (Gbl.F.Out,"" + ""); + Act_LinkFormSubmit (Txt_Update_attendance_according_to_selected_events,The_ClassFormul[Gbl.Prefs.Theme]); + Lay_PutSendIcon ("recycle",Txt_Update_attendance_according_to_selected_events,Txt_Update_attendance); + fprintf (Gbl.F.Out,"" + ""); } - else - Lay_EndSquareFrameTable (); + + /***** End frame *****/ + Lay_EndRoundFrameTable10 (); + + /***** End form *****/ + if (Gbl.CurrentAct == ActSeeLstAttStd) + fprintf (Gbl.F.Out,""); } /*****************************************************************************/ @@ -2971,10 +3003,9 @@ static void Att_ListStdsAttendanceTable (unsigned NumStdsInList,long *LstSelecte Usr_UsrDataConstructor (&UsrDat); /***** Start frame *****/ - if (Gbl.CurrentAct == ActSeeLstAttStd) - Lay_StartRoundFrameTable10 (NULL,2,Txt_Attendance); - else - Lay_StartSquareFrameTable (NULL,NULL,NULL,2); + Lay_StartRoundFrameTable10 (NULL,2,Txt_Attendance); + + /***** Heading row *****/ Att_WriteTableHeadSeveralAttEvents (); /***** List the students *****/ @@ -3013,10 +3044,7 @@ static void Att_ListStdsAttendanceTable (unsigned NumStdsInList,long *LstSelecte Total); /***** End frame *****/ - if (Gbl.CurrentAct == ActSeeLstAttStd) - Lay_EndRoundFrameTable10 (); - else - Lay_EndSquareFrameTable (); + Lay_EndRoundFrameTable10 (); /***** Free memory used for user's data *****/ Usr_UsrDataDestructor (&UsrDat); @@ -3161,10 +3189,7 @@ static void Att_ListStdsWithAttEventsDetails (unsigned NumStdsInList,long *LstSe Usr_UsrDataConstructor (&UsrDat); /***** Start frame *****/ - if (Gbl.CurrentAct == ActSeeLstAttStd) - Lay_StartRoundFrameTable10 (NULL,2,Txt_Details); - else - Lay_StartSquareFrameTable (NULL,NULL,NULL,2); + Lay_StartRoundFrameTable10 (NULL,2,Txt_Details); /***** List students with attendance details *****/ for (NumStd = 0, Gbl.RowEvenOdd = 0; @@ -3180,10 +3205,7 @@ static void Att_ListStdsWithAttEventsDetails (unsigned NumStdsInList,long *LstSe } /***** End frame *****/ - if (Gbl.CurrentAct == ActSeeLstAttStd) - Lay_EndRoundFrameTable10 (); - else - Lay_EndSquareFrameTable (); + Lay_EndRoundFrameTable10 (); /***** Free memory used for user's data *****/ Usr_UsrDataDestructor (&UsrDat); diff --git a/swad_changelog.h b/swad_changelog.h index d5dde9b67..3af4274da 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -35,12 +35,13 @@ /****************************** Public constants *****************************/ /*****************************************************************************/ -#define Log_PLATFORM_VERSION "SWAD 14.34.1 (2014/12/08)" +#define Log_PLATFORM_VERSION "SWAD 14.34.2 (2014/12/08)" // 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 /* + Version 14.34.2 :Dic 08, 2014 Button to show more details on list of attendances. (170728 lines) Version 14.34.1 :Dic 08, 2014 Translation of a message when refreshing list of attendances. (170710 lines) Version 14.34 :Dic 08, 2014 Teachers can refresh list of attendances after selecting events. (170688 lines) Version 14.33 :Dic 07, 2014 A teacher can select attendance events in list of attendances. (170595 lines)