mirror of https://github.com/acanas/swad-core.git
Version19.184
This commit is contained in:
parent
23c7e8baf5
commit
d0c4d46c0a
|
@ -497,7 +497,7 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - *
|
|||
En OpenSWAD:
|
||||
ps2pdf source.ps destination.pdf
|
||||
*/
|
||||
#define Log_PLATFORM_VERSION "SWAD 19.183.2 (2020-04-14)"
|
||||
#define Log_PLATFORM_VERSION "SWAD 19.184 (2020-04-14)"
|
||||
#define CSS_FILE "swad19.146.css"
|
||||
#define JS_FILE "swad19.172.1.js"
|
||||
/*
|
||||
|
@ -548,6 +548,7 @@ Funci
|
|||
// TODO: Oresti Baños: cambiar ojos por candados en descriptores para prohibir/permitir y dejar los ojos para poder elegir descriptores
|
||||
// TODO: Integrar pull requests con traducciones del alemán del usuario eruedin en GitHub
|
||||
|
||||
Version 19.184: Apr 14, 2020 Code refactoring in classrooms. (285706 lines)
|
||||
Version 19.183.2: Apr 14, 2020 Fixed bug in test exams. (285684 lines)
|
||||
Version 19.183.1: Apr 14, 2020 Fixed bug in forums, reported by Javier Fernández Baldomero. (285677 lines)
|
||||
Version 19.183: Apr 13, 2020 Code refactoring in holidays. (285689 lines)
|
||||
|
|
111
swad_classroom.c
111
swad_classroom.c
|
@ -54,13 +54,13 @@ extern struct Globals Gbl;
|
|||
/***************************** Private variables *****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
static struct Classroom *Cla_EditingCla = NULL; // Static variable to keep the classroom being edited
|
||||
static struct Cla_Classroom *Cla_EditingCla = NULL; // Static variable to keep the classroom being edited
|
||||
|
||||
/*****************************************************************************/
|
||||
/***************************** Private prototypes ****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Cla_GetParamClaOrder (void);
|
||||
static Cla_Order_t Cla_GetParamClaOrder (void);
|
||||
static bool Cla_CheckIfICanCreateClassrooms (void);
|
||||
static void Cla_PutIconsListingClassrooms (__attribute__((unused)) void *Args);
|
||||
static void Cla_PutIconToEditClassrooms (void);
|
||||
|
@ -68,7 +68,7 @@ static void Cla_PutIconsEditingClassrooms (__attribute__((unused)) void *Args);
|
|||
|
||||
static void Cla_EditClassroomsInternal (void);
|
||||
|
||||
static void Cla_ListClassroomsForEdition (void);
|
||||
static void Cla_ListClassroomsForEdition (const struct Cla_Classrooms *Classrooms);
|
||||
static void Cla_PutParamClaCod (long ClaCod);
|
||||
|
||||
static void Cla_RenameClassroom (Cns_ShrtOrFullName_t ShrtOrFullName);
|
||||
|
@ -79,16 +79,25 @@ static void Cla_WriteCapacity (char Str[Cns_MAX_DECIMAL_DIGITS_UINT + 1],unsigne
|
|||
|
||||
static void Cla_PutFormToCreateClassroom (void);
|
||||
static void Cla_PutHeadClassrooms (void);
|
||||
static void Cla_CreateClassroom (struct Classroom *Cla);
|
||||
static void Cla_CreateClassroom (struct Cla_Classroom *Cla);
|
||||
|
||||
static void Cla_EditingClassroomConstructor (void);
|
||||
static void Cla_EditingClassroomDestructor (void);
|
||||
|
||||
/*****************************************************************************/
|
||||
/************************* List all the classrooms ***************************/
|
||||
/************************* Reset classrooms context **************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
#define A SIZE_MAX
|
||||
void Cla_ResetClassrooms (struct Cla_Classrooms *Classrooms)
|
||||
{
|
||||
Classrooms->Num = 0; // Number of classrooms
|
||||
Classrooms->Lst = NULL; // List of classrooms
|
||||
Classrooms->SelectedOrder = Cla_ORDER_DEFAULT;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/************************* List all the classrooms ***************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Cla_SeeClassrooms (void)
|
||||
{
|
||||
|
@ -97,6 +106,7 @@ void Cla_SeeClassrooms (void)
|
|||
extern const char *Txt_CLASSROOMS_HELP_ORDER[Cla_NUM_ORDERS];
|
||||
extern const char *Txt_CLASSROOMS_ORDER[Cla_NUM_ORDERS];
|
||||
extern const char *Txt_New_classroom;
|
||||
struct Cla_Classrooms Classrooms;
|
||||
Cla_Order_t Order;
|
||||
unsigned NumCla;
|
||||
unsigned RowEvenOdd;
|
||||
|
@ -106,11 +116,14 @@ void Cla_SeeClassrooms (void)
|
|||
if (Gbl.Hierarchy.Ctr.CtrCod <= 0) // No centre selected
|
||||
return;
|
||||
|
||||
/***** Reset classrooms context *****/
|
||||
Cla_ResetClassrooms (&Classrooms);
|
||||
|
||||
/***** Get parameter with the type of order in the list of classrooms *****/
|
||||
Cla_GetParamClaOrder ();
|
||||
Classrooms.SelectedOrder = Cla_GetParamClaOrder ();
|
||||
|
||||
/***** Get list of classrooms *****/
|
||||
Cla_GetListClassrooms (Cla_ALL_DATA);
|
||||
Cla_GetListClassrooms (&Classrooms,Cla_ALL_DATA);
|
||||
|
||||
/***** Table head *****/
|
||||
Box_BoxBegin (NULL,Txt_Classrooms,
|
||||
|
@ -126,10 +139,10 @@ void Cla_SeeClassrooms (void)
|
|||
Frm_StartForm (ActSeeCla);
|
||||
Par_PutHiddenParamUnsigned (NULL,"Order",(unsigned) Order);
|
||||
HTM_BUTTON_SUBMIT_Begin (Txt_CLASSROOMS_HELP_ORDER[Order],"BT_LINK TIT_TBL",NULL);
|
||||
if (Order == Gbl.Classrooms.SelectedOrder)
|
||||
if (Order == Classrooms.SelectedOrder)
|
||||
HTM_U_Begin ();
|
||||
HTM_Txt (Txt_CLASSROOMS_ORDER[Order]);
|
||||
if (Order == Gbl.Classrooms.SelectedOrder)
|
||||
if (Order == Classrooms.SelectedOrder)
|
||||
HTM_U_End ();
|
||||
HTM_BUTTON_End ();
|
||||
Frm_EndForm ();
|
||||
|
@ -139,30 +152,30 @@ void Cla_SeeClassrooms (void)
|
|||
|
||||
/***** Write list of classrooms *****/
|
||||
for (NumCla = 0, RowEvenOdd = 1;
|
||||
NumCla < Gbl.Classrooms.Num;
|
||||
NumCla < Classrooms.Num;
|
||||
NumCla++, RowEvenOdd = 1 - RowEvenOdd)
|
||||
{
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
/* Short name */
|
||||
HTM_TD_Begin ("class=\"DAT LM %s\"",Gbl.ColorRows[RowEvenOdd]);
|
||||
HTM_Txt (Gbl.Classrooms.Lst[NumCla].ShrtName);
|
||||
HTM_Txt (Classrooms.Lst[NumCla].ShrtName);
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Full name */
|
||||
HTM_TD_Begin ("class=\"DAT LM %s\"",Gbl.ColorRows[RowEvenOdd]);
|
||||
HTM_Txt (Gbl.Classrooms.Lst[NumCla].FullName);
|
||||
HTM_Txt (Classrooms.Lst[NumCla].FullName);
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Capacity */
|
||||
HTM_TD_Begin ("class=\"DAT RM %s\"",Gbl.ColorRows[RowEvenOdd]);
|
||||
Cla_WriteCapacity (StrCapacity,Gbl.Classrooms.Lst[NumCla].Capacity);
|
||||
Cla_WriteCapacity (StrCapacity,Classrooms.Lst[NumCla].Capacity);
|
||||
HTM_Txt (StrCapacity);
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Location */
|
||||
HTM_TD_Begin ("class=\"DAT LM %s\"",Gbl.ColorRows[RowEvenOdd]);
|
||||
HTM_Txt (Gbl.Classrooms.Lst[NumCla].Location);
|
||||
HTM_Txt (Classrooms.Lst[NumCla].Location);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TR_End ();
|
||||
|
@ -183,20 +196,19 @@ void Cla_SeeClassrooms (void)
|
|||
Box_BoxEnd ();
|
||||
|
||||
/***** Free list of classrooms *****/
|
||||
Cla_FreeListClassrooms ();
|
||||
Cla_FreeListClassrooms (&Classrooms);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/******** Get parameter with the type or order in list of classrooms *********/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Cla_GetParamClaOrder (void)
|
||||
static Cla_Order_t Cla_GetParamClaOrder (void)
|
||||
{
|
||||
Gbl.Classrooms.SelectedOrder = (Cla_Order_t)
|
||||
Par_GetParToUnsignedLong ("Order",
|
||||
0,
|
||||
Cla_NUM_ORDERS - 1,
|
||||
(unsigned long) Cla_ORDER_DEFAULT);
|
||||
return (Cla_Order_t) Par_GetParToUnsignedLong ("Order",
|
||||
0,
|
||||
Cla_NUM_ORDERS - 1,
|
||||
(unsigned long) Cla_ORDER_DEFAULT);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -249,9 +261,13 @@ static void Cla_EditClassroomsInternal (void)
|
|||
{
|
||||
extern const char *Hlp_CENTRE_Classrooms_edit;
|
||||
extern const char *Txt_Classrooms;
|
||||
struct Cla_Classrooms Classrooms;
|
||||
|
||||
/***** Reset classrooms context *****/
|
||||
Cla_ResetClassrooms (&Classrooms);
|
||||
|
||||
/***** Get list of classrooms *****/
|
||||
Cla_GetListClassrooms (Cla_ALL_DATA);
|
||||
Cla_GetListClassrooms (&Classrooms,Cla_ALL_DATA);
|
||||
|
||||
/***** Begin box *****/
|
||||
Box_BoxBegin (NULL,Txt_Classrooms,
|
||||
|
@ -262,14 +278,14 @@ static void Cla_EditClassroomsInternal (void)
|
|||
Cla_PutFormToCreateClassroom ();
|
||||
|
||||
/***** Forms to edit current classrooms *****/
|
||||
if (Gbl.Classrooms.Num)
|
||||
Cla_ListClassroomsForEdition ();
|
||||
if (Classrooms.Num)
|
||||
Cla_ListClassroomsForEdition (&Classrooms);
|
||||
|
||||
/***** End box *****/
|
||||
Box_BoxEnd ();
|
||||
|
||||
/***** Free list of classrooms *****/
|
||||
Cla_FreeListClassrooms ();
|
||||
Cla_FreeListClassrooms (&Classrooms);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -300,7 +316,8 @@ void Cla_PutIconToViewClassrooms (void)
|
|||
/************************** List all the classrooms **************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Cla_GetListClassrooms (Cla_WhichData_t WhichData)
|
||||
void Cla_GetListClassrooms (struct Cla_Classrooms *Classrooms,
|
||||
Cla_WhichData_t WhichData)
|
||||
{
|
||||
static const char *OrderBySubQuery[Cla_NUM_ORDERS] =
|
||||
{
|
||||
|
@ -313,7 +330,7 @@ void Cla_GetListClassrooms (Cla_WhichData_t WhichData)
|
|||
MYSQL_ROW row;
|
||||
unsigned long NumRows;
|
||||
unsigned NumCla;
|
||||
struct Classroom *Cla;
|
||||
struct Cla_Classroom *Cla;
|
||||
|
||||
/***** Get classrooms from database *****/
|
||||
switch (WhichData)
|
||||
|
@ -329,7 +346,7 @@ void Cla_GetListClassrooms (Cla_WhichData_t WhichData)
|
|||
" WHERE CtrCod=%ld"
|
||||
" ORDER BY %s",
|
||||
Gbl.Hierarchy.Ctr.CtrCod,
|
||||
OrderBySubQuery[Gbl.Classrooms.SelectedOrder]);
|
||||
OrderBySubQuery[Classrooms->SelectedOrder]);
|
||||
break;
|
||||
case Cla_ONLY_SHRT_NAME:
|
||||
default:
|
||||
|
@ -346,18 +363,20 @@ void Cla_GetListClassrooms (Cla_WhichData_t WhichData)
|
|||
/***** Count number of rows in result *****/
|
||||
if (NumRows) // Classrooms found...
|
||||
{
|
||||
Gbl.Classrooms.Num = (unsigned) NumRows;
|
||||
Classrooms->Num = (unsigned) NumRows;
|
||||
|
||||
/***** Create list with courses in centre *****/
|
||||
if ((Gbl.Classrooms.Lst = (struct Classroom *) calloc (NumRows,sizeof (struct Classroom))) == NULL)
|
||||
if ((Classrooms->Lst = (struct Cla_Classroom *)
|
||||
calloc (NumRows,
|
||||
sizeof (struct Cla_Classroom))) == NULL)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
|
||||
/***** Get the classrooms *****/
|
||||
for (NumCla = 0;
|
||||
NumCla < Gbl.Classrooms.Num;
|
||||
NumCla < Classrooms->Num;
|
||||
NumCla++)
|
||||
{
|
||||
Cla = &(Gbl.Classrooms.Lst[NumCla]);
|
||||
Cla = &Classrooms->Lst[NumCla];
|
||||
|
||||
/* Get next classroom */
|
||||
row = mysql_fetch_row (mysql_res);
|
||||
|
@ -387,7 +406,7 @@ void Cla_GetListClassrooms (Cla_WhichData_t WhichData)
|
|||
}
|
||||
}
|
||||
else
|
||||
Gbl.Classrooms.Num = 0;
|
||||
Classrooms->Num = 0;
|
||||
|
||||
/***** Free structure that stores the query result *****/
|
||||
DB_FreeMySQLResult (&mysql_res);
|
||||
|
@ -397,7 +416,7 @@ void Cla_GetListClassrooms (Cla_WhichData_t WhichData)
|
|||
/************************** Get classroom full name **************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Cla_GetDataOfClassroomByCod (struct Classroom *Cla)
|
||||
void Cla_GetDataOfClassroomByCod (struct Cla_Classroom *Cla)
|
||||
{
|
||||
MYSQL_RES *mysql_res;
|
||||
MYSQL_ROW row;
|
||||
|
@ -454,14 +473,14 @@ void Cla_GetDataOfClassroomByCod (struct Classroom *Cla)
|
|||
/************************** Free list of classrooms **************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Cla_FreeListClassrooms (void)
|
||||
void Cla_FreeListClassrooms (struct Cla_Classrooms *Classrooms)
|
||||
{
|
||||
if (Gbl.Classrooms.Lst)
|
||||
if (Classrooms->Lst)
|
||||
{
|
||||
/***** Free memory used by the list of classrooms in institution *****/
|
||||
free (Gbl.Classrooms.Lst);
|
||||
Gbl.Classrooms.Lst = NULL;
|
||||
Gbl.Classrooms.Num = 0;
|
||||
free (Classrooms->Lst);
|
||||
Classrooms->Lst = NULL;
|
||||
Classrooms->Num = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -469,10 +488,10 @@ void Cla_FreeListClassrooms (void)
|
|||
/************************* List all the classrooms ***************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Cla_ListClassroomsForEdition (void)
|
||||
static void Cla_ListClassroomsForEdition (const struct Cla_Classrooms *Classrooms)
|
||||
{
|
||||
unsigned NumCla;
|
||||
struct Classroom *Cla;
|
||||
struct Cla_Classroom *Cla;
|
||||
char StrCapacity[Cns_MAX_DECIMAL_DIGITS_UINT + 1];
|
||||
|
||||
/***** Write heading *****/
|
||||
|
@ -481,10 +500,10 @@ static void Cla_ListClassroomsForEdition (void)
|
|||
|
||||
/***** Write all the classrooms *****/
|
||||
for (NumCla = 0;
|
||||
NumCla < Gbl.Classrooms.Num;
|
||||
NumCla < Classrooms->Num;
|
||||
NumCla++)
|
||||
{
|
||||
Cla = &Gbl.Classrooms.Lst[NumCla];
|
||||
Cla = &Classrooms->Lst[NumCla];
|
||||
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
|
@ -1022,7 +1041,7 @@ void Cla_RecFormNewClassroom (void)
|
|||
/************************** Create a new classroom ***************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Cla_CreateClassroom (struct Classroom *Cla)
|
||||
static void Cla_CreateClassroom (struct Cla_Classroom *Cla)
|
||||
{
|
||||
/***** Create a new classroom *****/
|
||||
DB_QueryINSERT ("can not create classroom",
|
||||
|
@ -1045,7 +1064,7 @@ static void Cla_EditingClassroomConstructor (void)
|
|||
Lay_ShowErrorAndExit ("Error initializing classroom.");
|
||||
|
||||
/***** Allocate memory for classroom *****/
|
||||
if ((Cla_EditingCla = (struct Classroom *) malloc (sizeof (struct Classroom))) == NULL)
|
||||
if ((Cla_EditingCla = (struct Cla_Classroom *) malloc (sizeof (struct Cla_Classroom))) == NULL)
|
||||
Lay_ShowErrorAndExit ("Error allocating memory for classroom.");
|
||||
|
||||
/***** Reset classroom *****/
|
||||
|
|
|
@ -46,7 +46,7 @@
|
|||
#define Cla_MAX_CHARS_LOCATION (128 - 1) // 127
|
||||
#define Cla_MAX_BYTES_LOCATION ((Cla_MAX_CHARS_LOCATION + 1) * Str_MAX_BYTES_PER_CHAR - 1) // 2047
|
||||
|
||||
struct Classroom
|
||||
struct Cla_Classroom
|
||||
{
|
||||
long ClaCod;
|
||||
long InsCod;
|
||||
|
@ -73,19 +73,29 @@ typedef enum
|
|||
Cla_ONLY_SHRT_NAME,
|
||||
} Cla_WhichData_t;
|
||||
|
||||
struct Cla_Classrooms
|
||||
{
|
||||
unsigned Num; // Number of classrooms
|
||||
struct Cla_Classroom *Lst; // List of classrooms
|
||||
Cla_Order_t SelectedOrder;
|
||||
};
|
||||
|
||||
/*****************************************************************************/
|
||||
/***************************** Public prototypes *****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Cla_ResetClassrooms (struct Cla_Classrooms *Classrooms);
|
||||
|
||||
void Cla_SeeClassrooms (void);
|
||||
void Cla_EditClassrooms (void);
|
||||
void Cla_PutIconToViewClassrooms (void);
|
||||
void Cla_GetListClassrooms (Cla_WhichData_t WhichData);
|
||||
void Cla_FreeListClassrooms (void);
|
||||
void Cla_GetListClassrooms (struct Cla_Classrooms *Classrooms,
|
||||
Cla_WhichData_t WhichData);
|
||||
void Cla_FreeListClassrooms (struct Cla_Classrooms *Classrooms);
|
||||
|
||||
void Cla_GetListClassroomsInThisCtr (void);
|
||||
|
||||
void Cla_GetDataOfClassroomByCod (struct Classroom *Cla);
|
||||
void Cla_GetDataOfClassroomByCod (struct Cla_Classroom *Cla);
|
||||
long Cla_GetParamClaCod (void);
|
||||
|
||||
void Cla_RemoveClassroom (void);
|
||||
|
|
|
@ -226,12 +226,6 @@ struct Globals
|
|||
unsigned Num; // Number of degree types
|
||||
struct DegreeType *Lst; // List of degree types
|
||||
} DegTypes;
|
||||
struct
|
||||
{
|
||||
unsigned Num; // Number of classrooms
|
||||
struct Classroom *Lst; // List of classrooms
|
||||
Cla_Order_t SelectedOrder;
|
||||
} Classrooms;
|
||||
struct
|
||||
{
|
||||
unsigned Num; // Number of mail domains
|
||||
|
|
47
swad_group.c
47
swad_group.c
|
@ -96,7 +96,7 @@ static void Grp_ReqEditGroupsInternal2 (Ale_AlertType_t AlertTypeGroups,
|
|||
const char *AlertTextGroups);
|
||||
|
||||
static void Grp_EditGroupTypes (void);
|
||||
static void Grp_EditGroups (void);
|
||||
static void Grp_EditGroups (const struct Cla_Classrooms *Classrooms);
|
||||
static void Grp_PutIconsEditingGroups (__attribute__((unused)) void *Args);
|
||||
static void Grp_PutIconToCreateNewGroup (void);
|
||||
|
||||
|
@ -116,7 +116,7 @@ static void Grp_PutIconToViewGroups (void);
|
|||
static void Grp_PutIconToCreateNewGroupType (void);
|
||||
static void Grp_WriteHeadingGroupTypes (void);
|
||||
|
||||
static void Grp_ListGroupsForEdition (void);
|
||||
static void Grp_ListGroupsForEdition (const struct Cla_Classrooms *Classrooms);
|
||||
static void Grp_WriteHeadingGroups (void);
|
||||
static void Grp_PutIconToEditGroups (__attribute__((unused)) void *Args);
|
||||
|
||||
|
@ -129,7 +129,7 @@ static void Grp_ListGrpsForMultipleSelection (struct GroupType *GrpTyp,
|
|||
static void Grp_WriteGrpHead (struct GroupType *GrpTyp);
|
||||
static void Grp_WriteRowGrp (struct Group *Grp,bool Highlight);
|
||||
static void Grp_PutFormToCreateGroupType (void);
|
||||
static void Grp_PutFormToCreateGroup (void);
|
||||
static void Grp_PutFormToCreateGroup (const struct Cla_Classrooms *Classrooms);
|
||||
static unsigned Grp_CountNumGrpsInThisCrsOfType (long GrpTypCod);
|
||||
static void Grp_GetDataOfGroupTypeByCod (struct GroupType *GrpTyp);
|
||||
static bool Grp_GetMultipleEnrolmentOfAGroupType (long GrpTypCod);
|
||||
|
@ -235,9 +235,6 @@ static void Grp_ReqEditGroupsInternal1 (Ale_AlertType_t AlertTypeGroupTypes,
|
|||
/***** Get list of groups types and groups in this course *****/
|
||||
Grp_GetListGrpTypesAndGrpsInThisCrs (Grp_ALL_GROUP_TYPES);
|
||||
|
||||
/***** Get list of classrooms in this centre *****/
|
||||
Cla_GetListClassrooms (Cla_ONLY_SHRT_NAME);
|
||||
|
||||
/***** Show optional alert *****/
|
||||
if (AlertTextGroupTypes)
|
||||
if (AlertTextGroupTypes[0])
|
||||
|
@ -256,20 +253,28 @@ static void Grp_ReqEditGroupsInternal1 (Ale_AlertType_t AlertTypeGroupTypes,
|
|||
static void Grp_ReqEditGroupsInternal2 (Ale_AlertType_t AlertTypeGroups,
|
||||
const char *AlertTextGroups)
|
||||
{
|
||||
struct Cla_Classrooms Classrooms;
|
||||
|
||||
/***** Reset classrooms context *****/
|
||||
Cla_ResetClassrooms (&Classrooms);
|
||||
|
||||
/***** Show optional alert *****/
|
||||
if (AlertTextGroups)
|
||||
if (AlertTextGroups[0])
|
||||
Ale_ShowAlert (AlertTypeGroups,AlertTextGroups);
|
||||
|
||||
/***** Get list of classrooms in this centre *****/
|
||||
Cla_GetListClassrooms (&Classrooms,Cla_ONLY_SHRT_NAME);
|
||||
|
||||
/***** Put form to edit groups *****/
|
||||
if (Gbl.Crs.Grps.GrpTypes.Num) // If there are group types...
|
||||
Grp_EditGroups ();
|
||||
Grp_EditGroups (&Classrooms);
|
||||
|
||||
/***** End groups section *****/
|
||||
HTM_SECTION_End ();
|
||||
|
||||
/***** Free list of classrooms in this centre *****/
|
||||
Cla_FreeListClassrooms ();
|
||||
Cla_FreeListClassrooms (&Classrooms);
|
||||
|
||||
/***** Free list of groups types and groups in this course *****/
|
||||
Grp_FreeListGrpTypesAndGrps ();
|
||||
|
@ -308,7 +313,7 @@ static void Grp_EditGroupTypes (void)
|
|||
/**************************** Put forms to edit groups ***********************/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Grp_EditGroups (void)
|
||||
static void Grp_EditGroups (const struct Cla_Classrooms *Classrooms)
|
||||
{
|
||||
extern const char *Hlp_USERS_Groups;
|
||||
extern const char *Txt_Groups;
|
||||
|
@ -320,11 +325,11 @@ static void Grp_EditGroups (void)
|
|||
Hlp_USERS_Groups,Box_NOT_CLOSABLE);
|
||||
|
||||
/***** Put a form to create a new group *****/
|
||||
Grp_PutFormToCreateGroup ();
|
||||
Grp_PutFormToCreateGroup (Classrooms);
|
||||
|
||||
/***** Forms to edit current groups *****/
|
||||
if (Gbl.Crs.Grps.GrpTypes.NumGrpsTotal) // If there are groups...
|
||||
Grp_ListGroupsForEdition ();
|
||||
Grp_ListGroupsForEdition (Classrooms);
|
||||
else // There are group types, but there aren't groups
|
||||
Ale_ShowAlert (Ale_INFO,Txt_No_groups_have_been_created_in_the_course_X,
|
||||
Gbl.Hierarchy.Crs.ShrtName);
|
||||
|
@ -1468,7 +1473,7 @@ static void Grp_WriteHeadingGroupTypes (void)
|
|||
/********************** List current groups for edition **********************/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Grp_ListGroupsForEdition (void)
|
||||
static void Grp_ListGroupsForEdition (const struct Cla_Classrooms *Classrooms)
|
||||
{
|
||||
extern const char *Txt_Group_X_open_click_to_close_it;
|
||||
extern const char *Txt_Group_X_closed_click_to_open_it;
|
||||
|
@ -1595,11 +1600,11 @@ static void Grp_ListGroupsForEdition (void)
|
|||
|
||||
/* Options for classrooms */
|
||||
for (NumCla = 0;
|
||||
NumCla < Gbl.Classrooms.Num;
|
||||
NumCla < Classrooms->Num;
|
||||
NumCla++)
|
||||
HTM_OPTION (HTM_Type_LONG,&Gbl.Classrooms.Lst[NumCla].ClaCod,
|
||||
Gbl.Classrooms.Lst[NumCla].ClaCod == Grp->Classroom.ClaCod,false,
|
||||
"%s",Gbl.Classrooms.Lst[NumCla].ShrtName);
|
||||
HTM_OPTION (HTM_Type_LONG,&Classrooms->Lst[NumCla].ClaCod,
|
||||
Classrooms->Lst[NumCla].ClaCod == Grp->Classroom.ClaCod,false,
|
||||
"%s",Classrooms->Lst[NumCla].ShrtName);
|
||||
|
||||
/* End selector */
|
||||
HTM_SELECT_End ();
|
||||
|
@ -2569,7 +2574,7 @@ static void Grp_PutFormToCreateGroupType (void)
|
|||
/*********************** Put a form to create a new group ********************/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Grp_PutFormToCreateGroup (void)
|
||||
static void Grp_PutFormToCreateGroup (const struct Cla_Classrooms *Classrooms)
|
||||
{
|
||||
extern const char *Txt_New_group;
|
||||
extern const char *Txt_Group_closed;
|
||||
|
@ -2651,11 +2656,11 @@ static void Grp_PutFormToCreateGroup (void)
|
|||
|
||||
/* Options for classrooms */
|
||||
for (NumCla = 0;
|
||||
NumCla < Gbl.Classrooms.Num;
|
||||
NumCla < Classrooms->Num;
|
||||
NumCla++)
|
||||
HTM_OPTION (HTM_Type_LONG,&Gbl.Classrooms.Lst[NumCla].ClaCod,
|
||||
Gbl.Classrooms.Lst[NumCla].ClaCod == Gbl.Crs.Grps.ClaCod,false,
|
||||
"%s",Gbl.Classrooms.Lst[NumCla].ShrtName);
|
||||
HTM_OPTION (HTM_Type_LONG,&Classrooms->Lst[NumCla].ClaCod,
|
||||
Classrooms->Lst[NumCla].ClaCod == Gbl.Crs.Grps.ClaCod,false,
|
||||
"%s",Classrooms->Lst[NumCla].ShrtName);
|
||||
|
||||
/* End selector */
|
||||
HTM_SELECT_End ();
|
||||
|
|
Loading…
Reference in New Issue