Version18.109.1

This commit is contained in:
Antonio Cañas Vargas 2019-04-10 17:46:42 +02:00
parent 48ba865513
commit f312766129
3 changed files with 1372 additions and 1387 deletions

File diff suppressed because it is too large Load Diff

View File

@ -459,10 +459,11 @@ En OpenSWAD:
ps2pdf source.ps destination.pdf ps2pdf source.ps destination.pdf
*/ */
#define Log_PLATFORM_VERSION "SWAD 18.109 (2019-04-09)" #define Log_PLATFORM_VERSION "SWAD 18.109.1 (2019-04-10)"
#define CSS_FILE "swad18.92.css" #define CSS_FILE "swad18.92.css"
#define JS_FILE "swad18.92.js" #define JS_FILE "swad18.92.js"
/* /*
Version 18.109.1: Apr 10, 2019 A non-editing teacher can choose students with no groups of a type. (242406 lines)
Version 18.109: Apr 09, 2019 Code refactoring in edition of plugins. (242421 lines) Version 18.109: Apr 09, 2019 Code refactoring in edition of plugins. (242421 lines)
Version 18.108: Apr 09, 2019 Code refactoring in edition of links. (242336 lines) Version 18.108: Apr 09, 2019 Code refactoring in edition of links. (242336 lines)
Version 18.107: Apr 09, 2019 Code refactoring in edition of banners. (242275 lines) Version 18.107: Apr 09, 2019 Code refactoring in edition of banners. (242275 lines)

View File

@ -369,59 +369,59 @@ void Grp_ShowFormToSelectSeveralGroups (Act_Action_t NextAction,
unsigned NumGrpTyp; unsigned NumGrpTyp;
bool ICanEdit; bool ICanEdit;
if (Gbl.Crs.Grps.NumGrps) /***** Trivial check: if no groups ==> nothing to do *****/
{ if (!Gbl.Crs.Grps.NumGrps)
ICanEdit = !Gbl.Form.Inside && return;
(Gbl.Usrs.Me.Role.Logged == Rol_TCH ||
Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM);
/***** Start box *****/ /***** Start box *****/
Box_StartBox (NULL,Txt_Groups,ICanEdit ? Grp_PutIconToEditGroups : ICanEdit = !Gbl.Form.Inside &&
NULL, (Gbl.Usrs.Me.Role.Logged == Rol_TCH ||
Hlp_USERS_Groups,Box_CLOSABLE); Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM);
Box_StartBox (NULL,Txt_Groups,ICanEdit ? Grp_PutIconToEditGroups :
NULL,
Hlp_USERS_Groups,Box_CLOSABLE);
/***** Start form to update the students listed /***** Start form to update the students listed
depending on the groups selected *****/ depending on the groups selected *****/
Frm_StartFormAnchor (NextAction,Usr_USER_LIST_SECTION_ID); Frm_StartFormAnchor (NextAction,Usr_USER_LIST_SECTION_ID);
Usr_PutParamsPrefsAboutUsrList (); Usr_PutParamsPrefsAboutUsrList ();
/***** Put parameters needed depending on the action *****/ /***** Put parameters needed depending on the action *****/
Usr_PutExtraParamsUsrList (NextAction); Usr_PutExtraParamsUsrList (NextAction);
/***** Select all groups *****/ /***** Select all groups *****/
Grp_PutCheckboxAllGrps (GroupsSelectableByStdsOrNETs); Grp_PutCheckboxAllGrps (GroupsSelectableByStdsOrNETs);
/***** Get list of groups types and groups in this course *****/ /***** Get list of groups types and groups in this course *****/
Grp_GetListGrpTypesAndGrpsInThisCrs (Grp_ONLY_GROUP_TYPES_WITH_GROUPS); Grp_GetListGrpTypesAndGrpsInThisCrs (Grp_ONLY_GROUP_TYPES_WITH_GROUPS);
/***** List the groups for each group type *****/ /***** List the groups for each group type *****/
Tbl_StartTableWide (2); Tbl_StartTableWide (2);
for (NumGrpTyp = 0; for (NumGrpTyp = 0;
NumGrpTyp < Gbl.Crs.Grps.GrpTypes.Num; NumGrpTyp < Gbl.Crs.Grps.GrpTypes.Num;
NumGrpTyp++) NumGrpTyp++)
if (Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].NumGrps) if (Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].NumGrps)
Grp_ListGrpsForMultipleSelection (&Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp], Grp_ListGrpsForMultipleSelection (&Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp],
GroupsSelectableByStdsOrNETs); GroupsSelectableByStdsOrNETs);
Tbl_EndTable (); Tbl_EndTable ();
/***** Free list of groups types and groups in this course *****/ /***** Free list of groups types and groups in this course *****/
Grp_FreeListGrpTypesAndGrps (); Grp_FreeListGrpTypesAndGrps ();
/***** Submit button *****/ /***** Submit button *****/
fprintf (Gbl.F.Out,"<div class=\"CENTER_MIDDLE\"" fprintf (Gbl.F.Out,"<div class=\"CENTER_MIDDLE\""
" style=\"padding-top:12px;\">"); " style=\"padding-top:12px;\">");
Frm_LinkFormSubmitAnimated (Txt_Update_users, Frm_LinkFormSubmitAnimated (Txt_Update_users,
The_ClassFormInBoxBold[Gbl.Prefs.Theme], The_ClassFormInBoxBold[Gbl.Prefs.Theme],
"CopyMessageToHiddenFields();"); "CopyMessageToHiddenFields();");
Ico_PutCalculateIconWithText (Txt_Update_users); Ico_PutCalculateIconWithText (Txt_Update_users);
fprintf (Gbl.F.Out,"</div>"); fprintf (Gbl.F.Out,"</div>");
/***** End form *****/ /***** End form *****/
Frm_EndForm (); Frm_EndForm ();
/***** End box *****/ /***** End box *****/
Box_EndBox (); Box_EndBox ();
}
} }
/*****************************************************************************/ /*****************************************************************************/
@ -2272,23 +2272,7 @@ static void Grp_ListGrpsForMultipleSelection (struct GroupType *GrpTyp,
/***** Write rows to select the students who don't belong to any group *****/ /***** Write rows to select the students who don't belong to any group *****/
/* To get the students who don't belong to a type of group, use group code -(GrpTyp->GrpTypCod) */ /* To get the students who don't belong to a type of group, use group code -(GrpTyp->GrpTypCod) */
/* Write checkbox to select the group */ /* Write checkbox to select the group */
switch (Gbl.Usrs.Me.Role.Logged) ICanSelUnselGroup = (Gbl.Usrs.Me.Role.Logged >= Rol_STD);
{
case Rol_NET:
ICanSelUnselGroup = false;
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;
break;
default:
ICanSelUnselGroup = false;
break;
}
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td class=\"LEFT_MIDDLE\">" "<td class=\"LEFT_MIDDLE\">"
"<input type=\"checkbox\" id=\"Grp%ld\" name=\"GrpCods\"" "<input type=\"checkbox\" id=\"Grp%ld\" name=\"GrpCods\""