Version 16.229

This commit is contained in:
Antonio Cañas Vargas 2017-05-30 18:24:26 +02:00
parent 3d325bf2b7
commit d5a75d74e5
4 changed files with 65 additions and 40 deletions

View File

@ -231,13 +231,14 @@
/****************************** Public constants *****************************/
/*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 16.228.2 (2017-05-30)"
#define Log_PLATFORM_VERSION "SWAD 16.229 (2017-05-30)"
#define CSS_FILE "swad16.226.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.229: May 30, 2017 Selection of groups also for listing of teachers. (220748 lines)
Version 16.228.2: May 30, 2017 Fixed bug in selection of users. (220726 lines)
Version 16.228.1: May 30, 2017 By default, photos are displayed in listing of users. (220722 lines)
Version 16.228: May 30, 2017 Non-editing teachers can not change their selection of groups.

View File

@ -336,8 +336,8 @@ void Grp_ShowFormToSelectSeveralGroups (Act_Action_t NextAction)
extern const char *The_ClassFormBold[The_NUM_THEMES];
extern const char *Txt_Groups;
extern const char *Txt_All_groups;
extern const char *Txt_Update_students_according_to_selected_groups;
extern const char *Txt_Update_students;
extern const char *Txt_Update_users_according_to_selected_groups;
extern const char *Txt_Update_users;
unsigned NumGrpTyp;
bool ICanEdit;
@ -393,11 +393,11 @@ void Grp_ShowFormToSelectSeveralGroups (Act_Action_t NextAction)
/***** Submit button *****/
fprintf (Gbl.F.Out,"<div class=\"CENTER_MIDDLE\""
" style=\"padding-top:12px;\">");
Act_LinkFormSubmitAnimated (Txt_Update_students_according_to_selected_groups,
Act_LinkFormSubmitAnimated (Txt_Update_users_according_to_selected_groups,
The_ClassFormBold[Gbl.Prefs.Theme],
"CopyMessageToHiddenFields()");
Lay_PutCalculateIconWithText (Txt_Update_students_according_to_selected_groups,
Txt_Update_students);
Lay_PutCalculateIconWithText (Txt_Update_users_according_to_selected_groups,
Txt_Update_users);
fprintf (Gbl.F.Out,"</div>");
/***** End form *****/

View File

@ -49517,46 +49517,46 @@ const char *Txt_Update_messages =
"Atualizar mensagens";
#endif
const char *Txt_Update_students =
const char *Txt_Update_users =
#if L==1
"Actualitzar estudiants";
"Actualitzar usuaris";
#elif L==2
"Update Studenten";
"Update Benutzer";
#elif L==3
"Update students";
"Update users";
#elif L==4
"Actualizar estudiantes";
"Actualizar usuarios";
#elif L==5
"Mise &agrave; jour des &eacute;tudiants";
#elif L==6
"Actualizar estudiantes"; // Okoteve traducción
"Actualizar usuarios"; // Okoteve traducción
#elif L==7
"Aggiornamento studenti";
"Aggiornamento utenti";
#elif L==8
"Aktualizacja student&oacute;w";
"Zaktualizuj u&zdot;ytkownik&oacute;w";
#elif L==9
"Atualizar os estudantes";
"Atualizar os utilizadores";
#endif
const char *Txt_Update_students_according_to_selected_groups =
const char *Txt_Update_users_according_to_selected_groups =
#if L==1
"Actualitzar estudiants segons els grups seleccionats";
"Actualitzar usuaris segons els grups seleccionats";
#elif L==2
"Update Studenten nach ausgew&auml;hlten Gruppen";
"Update Benutzer nach ausgew&auml;hlten Gruppen";
#elif L==3
"Update students according to selected groups";
"Update users according to selected groups";
#elif L==4
"Actualizar estudiantes seg&uacute;n los grupos seleccionados";
"Actualizar usuarios seg&uacute;n los grupos seleccionados";
#elif L==5
"Mise &agrave; jour des &eacute;tudiants en fonction de groupes s&eacute;lectionnes";
#elif L==6
"Actualizar estudiantes seg&uacute;n los grupos seleccionados"; // Okoteve traducción
"Actualizar usuarios seg&uacute;n los grupos seleccionados"; // Okoteve traducción
#elif L==7
"Aggiornamento studenti in base a gruppi selezionati";
"Aggiornamento utenti in base a gruppi selezionati";
#elif L==8
"Update students according to selected groups"; // Potrzebujesz tlumaczenie
"Zaktualizuj u&zdot;ytkownik&oacute;w wed&lstrok;ug wybranych grup";
#elif L==9
"Atualizar os estudantes de acordo com grupos selecionados";
"Atualizar os utilizadores de acordo com grupos selecionados";
#endif
const char *Txt_UPLOAD_FILE_Invalid_link =

View File

@ -4044,9 +4044,8 @@ static void Usr_BuildQueryToGetUsrsLstCrs (Rol_Role_t Role,
*/
/***** If there are no groups selected, don't do anything *****/
if (Role == Rol_STD &&
(!Gbl.Usrs.ClassPhoto.AllGroups &&
!Gbl.CurrentCrs.Grps.LstGrpsSel.NumGrps))
if (!Gbl.Usrs.ClassPhoto.AllGroups &&
!Gbl.CurrentCrs.Grps.LstGrpsSel.NumGrps)
{
Query[0] = '\0';
return;
@ -4071,8 +4070,8 @@ static void Usr_BuildQueryToGetUsrsLstCrs (Rol_Role_t Role,
QueryFields,
Gbl.CurrentCrs.Crs.CrsCod,(unsigned) Role);
/***** Select users in selected groups (only for students) *****/
if (Role == Rol_STD && !Gbl.Usrs.ClassPhoto.AllGroups)
/***** Select users in selected groups *****/
if (!Gbl.Usrs.ClassPhoto.AllGroups)
{
/***** Get list of groups types in current course *****/
Grp_GetListGrpTypesInThisCrs (Grp_ONLY_GROUP_TYPES_WITH_GROUPS);
@ -6508,9 +6507,13 @@ void Usr_ListAllDataTchs (void)
/***** Get list of teachers *****/
Usr_GetListUsrs (Gbl.Scope.Current,Rol_NET); // Non-editing teachers
Usr_GetListUsrs (Gbl.Scope.Current,Rol_TCH); // Teachers
NumUsrs = Usr_GetTotalNumberOfUsersInCourses (Gbl.Scope.Current,
1 << Rol_NET |
1 << Rol_TCH);
if (Gbl.Scope.Current == Sco_SCOPE_CRS)
NumUsrs = Gbl.Usrs.LstUsrs[Rol_NET].NumUsrs +
Gbl.Usrs.LstUsrs[Rol_TCH].NumUsrs;
else
NumUsrs = Usr_GetTotalNumberOfUsersInCourses (Gbl.Scope.Current,
1 << Rol_NET |
1 << Rol_TCH);
if (NumUsrs)
{
@ -7560,12 +7563,20 @@ void Usr_SeeTeachers (void)
Sco_GetScope ("ScopeUsr");
ICanViewRecords = (Gbl.Scope.Current == Sco_SCOPE_CRS);
/***** Get groups to show ******/
if (Gbl.Scope.Current == Sco_SCOPE_CRS)
Grp_GetParCodsSeveralGrpsToShowUsrs ();
/***** Get lists of teachers *****/
Usr_GetListUsrs (Gbl.Scope.Current,Rol_NET); // Non-editing teachers
Usr_GetListUsrs (Gbl.Scope.Current,Rol_TCH); // Teachers
NumUsrs = Usr_GetTotalNumberOfUsersInCourses (Gbl.Scope.Current,
1 << Rol_NET |
1 << Rol_TCH);
if (Gbl.Scope.Current == Sco_SCOPE_CRS)
NumUsrs = Gbl.Usrs.LstUsrs[Rol_NET].NumUsrs +
Gbl.Usrs.LstUsrs[Rol_TCH].NumUsrs;
else
NumUsrs = Usr_GetTotalNumberOfUsersInCourses (Gbl.Scope.Current,
1 << Rol_NET |
1 << Rol_TCH);
/***** Start frame *****/
Lay_StartRoundFrame (NULL,Txt_ROLES_PLURAL_Abc[Rol_TCH][Usr_SEX_UNKNOWN],
@ -7582,6 +7593,10 @@ void Usr_SeeTeachers (void)
Act_FormEnd ();
fprintf (Gbl.F.Out,"</div>");
/***** Form to select groups *****/
if (Gbl.Scope.Current == Sco_SCOPE_CRS)
Grp_ShowFormToSelectSeveralGroups (ActLstTch);
/***** Start section with user list *****/
Lay_StartSection (Usr_USER_LIST_SECTION_ID);
@ -7663,6 +7678,9 @@ void Usr_SeeTeachers (void)
/***** Free memory for teachers lists *****/
Usr_FreeUsrsList (Rol_TCH); // Teachers
Usr_FreeUsrsList (Rol_NET); // Non-editing teachers
/***** Free memory for list of selected groups *****/
Grp_FreeListCodSelectedGrps ();
}
/*****************************************************************************/
@ -7932,9 +7950,13 @@ void Usr_SeeTchClassPhotoPrn (void)
/***** Get list of teachers *****/
Usr_GetListUsrs (Gbl.Scope.Current,Rol_NET); // Non-editing teachers
Usr_GetListUsrs (Gbl.Scope.Current,Rol_TCH); // Teachers
NumUsrs = Usr_GetTotalNumberOfUsersInCourses (Gbl.Scope.Current,
1 << Rol_NET |
1 << Rol_TCH);
if (Gbl.Scope.Current == Sco_SCOPE_CRS)
NumUsrs = Gbl.Usrs.LstUsrs[Rol_NET].NumUsrs +
Gbl.Usrs.LstUsrs[Rol_TCH].NumUsrs;
else
NumUsrs = Usr_GetTotalNumberOfUsersInCourses (Gbl.Scope.Current,
1 << Rol_NET |
1 << Rol_TCH);
if (NumUsrs)
{
@ -8166,14 +8188,16 @@ void Usr_ShowWarningNoUsersFound (Rol_Role_t Role)
extern const char *Txt_Register_students;
extern const char *Txt_Register_teacher;
if (Role == Rol_STD && // No students found
if (Gbl.Usrs.ClassPhoto.AllGroups && // All groups selected
Role == Rol_STD && // No students found
Gbl.Usrs.Me.LoggedRole == Rol_TCH) // Course selected and I am logged as teacher
/***** Show alert and button to enrol students *****/
Ale_ShowAlertAndButton (Ale_WARNING,Txt_No_users_found[Rol_STD],
ActReqEnrSevStd,NULL,NULL,NULL,
Lay_CREATE_BUTTON,Txt_Register_students);
else if (Role == Rol_TCH && // No teachers found
else if (Gbl.Usrs.ClassPhoto.AllGroups && // All groups selected
Role == Rol_TCH && // No teachers found
Gbl.CurrentCrs.Crs.CrsCod > 0 && // Course selected
Gbl.Usrs.Me.LoggedRole >= Rol_DEG_ADM) // I am an administrator
/***** Show alert and button to enrol students *****/