mirror of
https://github.com/acanas/swad-core.git
synced 2024-06-01 06:15:31 +02:00
Version 18.26.3
This commit is contained in:
parent
9eb9a8bafd
commit
300c651135
|
@ -345,6 +345,8 @@ Buenos d
|
||||||
|
|
||||||
// TODO: Que un grupo tenga asociado un lugar, como un aula, así al hacer un evento de asistencia, podría tener por defecto el lugar asignado al grupo elegido.
|
// TODO: Que un grupo tenga asociado un lugar, como un aula, así al hacer un evento de asistencia, podría tener por defecto el lugar asignado al grupo elegido.
|
||||||
|
|
||||||
|
// TODO: Refactorize OrderBySubQuery
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/****************************** Public constants *****************************/
|
/****************************** Public constants *****************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -364,11 +366,12 @@ En OpenSWAD:
|
||||||
ps2pdf source.ps destination.pdf
|
ps2pdf source.ps destination.pdf
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define Log_PLATFORM_VERSION "SWAD 18.26.2 (2019-01-02)"
|
#define Log_PLATFORM_VERSION "SWAD 18.26.3 (2019-01-03)"
|
||||||
#define CSS_FILE "swad18.22.css"
|
#define CSS_FILE "swad18.22.css"
|
||||||
#define JS_FILE "swad17.17.1.js"
|
#define JS_FILE "swad17.17.1.js"
|
||||||
/*
|
/*
|
||||||
Version 18.26.2: Jan 02, 2019 New field location in classrooms table. (238711 lines)
|
Version 18.26.3: Jan 03, 2019 New column location in classrooms listing. (238725 lines)
|
||||||
|
Version 18.26.2: Jan 02, 2019 New column location in classrooms table. (238711 lines)
|
||||||
1 change necessary in database:
|
1 change necessary in database:
|
||||||
ALTER TABLE classrooms ADD COLUMN Location VARCHAR(2047) NOT NULL AFTER Capacity;
|
ALTER TABLE classrooms ADD COLUMN Location VARCHAR(2047) NOT NULL AFTER Capacity;
|
||||||
|
|
||||||
|
|
101
swad_classroom.c
101
swad_classroom.c
|
@ -25,7 +25,9 @@
|
||||||
/********************************** Headers **********************************/
|
/********************************** Headers **********************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
#define _GNU_SOURCE // For asprintf
|
||||||
#include <linux/stddef.h> // For NULL
|
#include <linux/stddef.h> // For NULL
|
||||||
|
#include <stdio.h> // For asprintf
|
||||||
#include <string.h> // For string functions
|
#include <string.h> // For string functions
|
||||||
|
|
||||||
#include "swad_box.h"
|
#include "swad_box.h"
|
||||||
|
@ -84,8 +86,8 @@ void Cla_SeeClassrooms (void)
|
||||||
{
|
{
|
||||||
extern const char *Hlp_CENTRE_Classrooms;
|
extern const char *Hlp_CENTRE_Classrooms;
|
||||||
extern const char *Txt_Classrooms;
|
extern const char *Txt_Classrooms;
|
||||||
extern const char *Txt_CLASSROOMS_HELP_ORDER[2];
|
extern const char *Txt_CLASSROOMS_HELP_ORDER[Cla_NUM_ORDERS];
|
||||||
extern const char *Txt_CLASSROOMS_ORDER[2];
|
extern const char *Txt_CLASSROOMS_ORDER[Cla_NUM_ORDERS];
|
||||||
extern const char *Txt_New_classroom;
|
extern const char *Txt_New_classroom;
|
||||||
Cla_Order_t Order;
|
Cla_Order_t Order;
|
||||||
unsigned NumCla;
|
unsigned NumCla;
|
||||||
|
@ -103,8 +105,8 @@ void Cla_SeeClassrooms (void)
|
||||||
Hlp_CENTRE_Classrooms,Box_NOT_CLOSABLE);
|
Hlp_CENTRE_Classrooms,Box_NOT_CLOSABLE);
|
||||||
Tbl_StartTableWideMargin (2);
|
Tbl_StartTableWideMargin (2);
|
||||||
fprintf (Gbl.F.Out,"<tr>");
|
fprintf (Gbl.F.Out,"<tr>");
|
||||||
for (Order = Cla_ORDER_BY_CLASSROOM;
|
for (Order = (Cla_Order_t) 0;
|
||||||
Order <= Cla_ORDER_BY_CAPACITY;
|
Order <= (Cla_Order_t) (Cla_NUM_ORDERS - 1);
|
||||||
Order++)
|
Order++)
|
||||||
{
|
{
|
||||||
fprintf (Gbl.F.Out,"<th class=\"LEFT_MIDDLE\">");
|
fprintf (Gbl.F.Out,"<th class=\"LEFT_MIDDLE\">");
|
||||||
|
@ -136,7 +138,11 @@ void Cla_SeeClassrooms (void)
|
||||||
Gbl.Classrooms.Lst[NumCla].FullName);
|
Gbl.Classrooms.Lst[NumCla].FullName);
|
||||||
Cla_WriteCapacity (Gbl.Classrooms.Lst[NumCla].Capacity);
|
Cla_WriteCapacity (Gbl.Classrooms.Lst[NumCla].Capacity);
|
||||||
fprintf (Gbl.F.Out,"</td>"
|
fprintf (Gbl.F.Out,"</td>"
|
||||||
"</tr>");
|
"<td class=\"DAT LEFT_MIDDLE\">"
|
||||||
|
"%s"
|
||||||
|
"</td>"
|
||||||
|
"</tr>",
|
||||||
|
Gbl.Classrooms.Lst[NumCla].Location);
|
||||||
}
|
}
|
||||||
|
|
||||||
/***** End table *****/
|
/***** End table *****/
|
||||||
|
@ -261,7 +267,7 @@ void Cla_PutIconToViewClassrooms (void)
|
||||||
|
|
||||||
void Cla_GetListClassrooms (void)
|
void Cla_GetListClassrooms (void)
|
||||||
{
|
{
|
||||||
char OrderBySubQuery[256];
|
char *OrderBySubQuery;
|
||||||
MYSQL_RES *mysql_res;
|
MYSQL_RES *mysql_res;
|
||||||
MYSQL_ROW row;
|
MYSQL_ROW row;
|
||||||
unsigned long NumRows;
|
unsigned long NumRows;
|
||||||
|
@ -269,26 +275,41 @@ void Cla_GetListClassrooms (void)
|
||||||
struct Classroom *Cla;
|
struct Classroom *Cla;
|
||||||
|
|
||||||
/***** Get classrooms from database *****/
|
/***** Get classrooms from database *****/
|
||||||
|
/* Build order subquery */
|
||||||
switch (Gbl.Classrooms.SelectedOrder)
|
switch (Gbl.Classrooms.SelectedOrder)
|
||||||
{
|
{
|
||||||
case Cla_ORDER_BY_CLASSROOM:
|
case Cla_ORDER_BY_CLASSROOM:
|
||||||
sprintf (OrderBySubQuery,"FullName");
|
if (asprintf (&OrderBySubQuery,"FullName") < 0)
|
||||||
|
Lay_NotEnoughMemoryExit ();
|
||||||
break;
|
break;
|
||||||
case Cla_ORDER_BY_CAPACITY:
|
case Cla_ORDER_BY_CAPACITY:
|
||||||
sprintf (OrderBySubQuery,"Capacity DESC,FullName");
|
if (asprintf (&OrderBySubQuery,"Capacity DESC,"
|
||||||
|
"FullName") < 0)
|
||||||
|
Lay_NotEnoughMemoryExit ();
|
||||||
|
break;
|
||||||
|
case Cla_ORDER_BY_LOCATION:
|
||||||
|
if (asprintf (&OrderBySubQuery,"Location DESC,"
|
||||||
|
"FullName") < 0)
|
||||||
|
Lay_NotEnoughMemoryExit ();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Build query */
|
||||||
NumRows = DB_QuerySELECT (&mysql_res,"can not get classrooms",
|
NumRows = DB_QuerySELECT (&mysql_res,"can not get classrooms",
|
||||||
"SELECT ClaCod,"
|
"SELECT ClaCod,"
|
||||||
"ShortName,"
|
"ShortName,"
|
||||||
"FullName,"
|
"FullName,"
|
||||||
"Capacity"
|
"Capacity,"
|
||||||
|
"Location"
|
||||||
" FROM classrooms"
|
" FROM classrooms"
|
||||||
" WHERE CtrCod=%ld"
|
" WHERE CtrCod=%ld"
|
||||||
" ORDER BY %s",
|
" ORDER BY %s",
|
||||||
Gbl.CurrentCtr.Ctr.CtrCod,
|
Gbl.CurrentCtr.Ctr.CtrCod,
|
||||||
OrderBySubQuery);
|
OrderBySubQuery);
|
||||||
|
|
||||||
|
/* Free allocated memory for subquery */
|
||||||
|
free ((void *) OrderBySubQuery);
|
||||||
|
|
||||||
/***** Count number of rows in result *****/
|
/***** Count number of rows in result *****/
|
||||||
if (NumRows) // Classrooms found...
|
if (NumRows) // Classrooms found...
|
||||||
{
|
{
|
||||||
|
@ -314,15 +335,19 @@ void Cla_GetListClassrooms (void)
|
||||||
|
|
||||||
/* Get the short name of the classroom (row[1]) */
|
/* Get the short name of the classroom (row[1]) */
|
||||||
Str_Copy (Cla->ShrtName,row[1],
|
Str_Copy (Cla->ShrtName,row[1],
|
||||||
Cla_MAX_BYTES_CLASSROOM_SHRT_NAME);
|
Cla_MAX_BYTES_SHRT_NAME);
|
||||||
|
|
||||||
/* Get the full name of the classroom (row[2]) */
|
/* Get the full name of the classroom (row[2]) */
|
||||||
Str_Copy (Cla->FullName,row[2],
|
Str_Copy (Cla->FullName,row[2],
|
||||||
Cla_MAX_BYTES_CLASSROOM_FULL_NAME);
|
Cla_MAX_BYTES_FULL_NAME);
|
||||||
|
|
||||||
/* Get seating capacity in this classroom (row[3]) */
|
/* Get seating capacity in this classroom (row[3]) */
|
||||||
if (sscanf (row[3],"%u",&Cla->Capacity) != 1)
|
if (sscanf (row[3],"%u",&Cla->Capacity) != 1)
|
||||||
Cla->Capacity = Cla_UNLIMITED_CAPACITY;
|
Cla->Capacity = Cla_UNLIMITED_CAPACITY;
|
||||||
|
|
||||||
|
/* Get the full name of the classroom (row[4]) */
|
||||||
|
Str_Copy (Cla->Location,row[4],
|
||||||
|
Cla_MAX_BYTES_LOCATION);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -338,8 +363,6 @@ void Cla_GetListClassrooms (void)
|
||||||
|
|
||||||
void Cla_GetDataOfClassroomByCod (struct Classroom *Cla)
|
void Cla_GetDataOfClassroomByCod (struct Classroom *Cla)
|
||||||
{
|
{
|
||||||
extern const char *Txt_Classroom_unspecified;
|
|
||||||
extern const char *Txt_Another_classroom;
|
|
||||||
MYSQL_RES *mysql_res;
|
MYSQL_RES *mysql_res;
|
||||||
MYSQL_ROW row;
|
MYSQL_ROW row;
|
||||||
unsigned long NumRows;
|
unsigned long NumRows;
|
||||||
|
@ -348,29 +371,17 @@ void Cla_GetDataOfClassroomByCod (struct Classroom *Cla)
|
||||||
Cla->ShrtName[0] = '\0';
|
Cla->ShrtName[0] = '\0';
|
||||||
Cla->FullName[0] = '\0';
|
Cla->FullName[0] = '\0';
|
||||||
Cla->Capacity = Cla_UNLIMITED_CAPACITY;
|
Cla->Capacity = Cla_UNLIMITED_CAPACITY;
|
||||||
|
Cla->Location[0] = '\0';
|
||||||
|
|
||||||
/***** Check if classroom code is correct *****/
|
/***** Check if classroom code is correct *****/
|
||||||
if (Cla->ClaCod < 0)
|
if (Cla->ClaCod > 0)
|
||||||
{
|
|
||||||
Str_Copy (Cla->ShrtName,Txt_Classroom_unspecified,
|
|
||||||
Cla_MAX_BYTES_CLASSROOM_SHRT_NAME);
|
|
||||||
Str_Copy (Cla->FullName,Txt_Classroom_unspecified,
|
|
||||||
Cla_MAX_BYTES_CLASSROOM_FULL_NAME);
|
|
||||||
}
|
|
||||||
else if (Cla->ClaCod == 0)
|
|
||||||
{
|
|
||||||
Str_Copy (Cla->ShrtName,Txt_Another_classroom,
|
|
||||||
Cla_MAX_BYTES_CLASSROOM_SHRT_NAME);
|
|
||||||
Str_Copy (Cla->FullName,Txt_Another_classroom,
|
|
||||||
Cla_MAX_BYTES_CLASSROOM_FULL_NAME);
|
|
||||||
}
|
|
||||||
else if (Cla->ClaCod > 0)
|
|
||||||
{
|
{
|
||||||
/***** Get data of a classroom from database *****/
|
/***** Get data of a classroom from database *****/
|
||||||
NumRows = DB_QuerySELECT (&mysql_res,"can not get data of a classroom",
|
NumRows = DB_QuerySELECT (&mysql_res,"can not get data of a classroom",
|
||||||
"SELECT ShortName,"
|
"SELECT ShortName,"
|
||||||
"FullName,"
|
"FullName,"
|
||||||
"Capacity"
|
"Capacity,"
|
||||||
|
"Location"
|
||||||
" FROM classrooms"
|
" FROM classrooms"
|
||||||
" WHERE ClaCod=%ld",
|
" WHERE ClaCod=%ld",
|
||||||
Cla->ClaCod);
|
Cla->ClaCod);
|
||||||
|
@ -383,15 +394,19 @@ void Cla_GetDataOfClassroomByCod (struct Classroom *Cla)
|
||||||
|
|
||||||
/* Get the short name of the classroom (row[0]) */
|
/* Get the short name of the classroom (row[0]) */
|
||||||
Str_Copy (Cla->ShrtName,row[0],
|
Str_Copy (Cla->ShrtName,row[0],
|
||||||
Cla_MAX_BYTES_CLASSROOM_SHRT_NAME);
|
Cla_MAX_BYTES_SHRT_NAME);
|
||||||
|
|
||||||
/* Get the full name of the classroom (row[1]) */
|
/* Get the full name of the classroom (row[1]) */
|
||||||
Str_Copy (Cla->FullName,row[1],
|
Str_Copy (Cla->FullName,row[1],
|
||||||
Cla_MAX_BYTES_CLASSROOM_FULL_NAME);
|
Cla_MAX_BYTES_FULL_NAME);
|
||||||
|
|
||||||
/* Get seating capacity in this classroom (row[2]) */
|
/* Get seating capacity in this classroom (row[2]) */
|
||||||
if (sscanf (row[2],"%u",&Cla->Capacity) != 1)
|
if (sscanf (row[2],"%u",&Cla->Capacity) != 1)
|
||||||
Cla->Capacity = Cla_UNLIMITED_CAPACITY;
|
Cla->Capacity = Cla_UNLIMITED_CAPACITY;
|
||||||
|
|
||||||
|
/* Get the location of the classroom (row[3]) */
|
||||||
|
Str_Copy (Cla->Location,row[3],
|
||||||
|
Cla_MAX_BYTES_LOCATION);
|
||||||
}
|
}
|
||||||
|
|
||||||
/***** Free structure that stores the query result *****/
|
/***** Free structure that stores the query result *****/
|
||||||
|
@ -457,7 +472,7 @@ static void Cla_ListClassroomsForEdition (void)
|
||||||
" maxlength=\"%u\" value=\"%s\""
|
" maxlength=\"%u\" value=\"%s\""
|
||||||
" class=\"INPUT_SHORT_NAME\""
|
" class=\"INPUT_SHORT_NAME\""
|
||||||
" onchange=\"document.getElementById('%s').submit();\" />",
|
" onchange=\"document.getElementById('%s').submit();\" />",
|
||||||
Cla_MAX_CHARS_CLASSROOM_SHRT_NAME,Cla->ShrtName,Gbl.Form.Id);
|
Cla_MAX_CHARS_SHRT_NAME,Cla->ShrtName,Gbl.Form.Id);
|
||||||
Frm_EndForm ();
|
Frm_EndForm ();
|
||||||
fprintf (Gbl.F.Out,"</td>");
|
fprintf (Gbl.F.Out,"</td>");
|
||||||
|
|
||||||
|
@ -469,7 +484,7 @@ static void Cla_ListClassroomsForEdition (void)
|
||||||
" maxlength=\"%u\" value=\"%s\""
|
" maxlength=\"%u\" value=\"%s\""
|
||||||
" class=\"INPUT_FULL_NAME\""
|
" class=\"INPUT_FULL_NAME\""
|
||||||
" onchange=\"document.getElementById('%s').submit();\" />",
|
" onchange=\"document.getElementById('%s').submit();\" />",
|
||||||
Cla_MAX_CHARS_CLASSROOM_FULL_NAME,Cla->FullName,Gbl.Form.Id);
|
Cla_MAX_CHARS_FULL_NAME,Cla->FullName,Gbl.Form.Id);
|
||||||
Frm_EndForm ();
|
Frm_EndForm ();
|
||||||
fprintf (Gbl.F.Out,"</td>");
|
fprintf (Gbl.F.Out,"</td>");
|
||||||
|
|
||||||
|
@ -574,7 +589,7 @@ static void Cla_RenameClassroom (Cns_ShrtOrFullName_t ShrtOrFullName)
|
||||||
const char *FieldName = NULL; // Initialized to avoid warning
|
const char *FieldName = NULL; // Initialized to avoid warning
|
||||||
unsigned MaxBytes = 0; // Initialized to avoid warning
|
unsigned MaxBytes = 0; // Initialized to avoid warning
|
||||||
char *CurrentClaName = NULL; // Initialized to avoid warning
|
char *CurrentClaName = NULL; // Initialized to avoid warning
|
||||||
char NewClaName[Cla_MAX_BYTES_CLASSROOM_FULL_NAME + 1];
|
char NewClaName[Cla_MAX_BYTES_FULL_NAME + 1];
|
||||||
|
|
||||||
Cla = &Gbl.Classrooms.EditingCla;
|
Cla = &Gbl.Classrooms.EditingCla;
|
||||||
switch (ShrtOrFullName)
|
switch (ShrtOrFullName)
|
||||||
|
@ -582,13 +597,13 @@ static void Cla_RenameClassroom (Cns_ShrtOrFullName_t ShrtOrFullName)
|
||||||
case Cns_SHRT_NAME:
|
case Cns_SHRT_NAME:
|
||||||
ParamName = "ShortName";
|
ParamName = "ShortName";
|
||||||
FieldName = "ShortName";
|
FieldName = "ShortName";
|
||||||
MaxBytes = Cla_MAX_BYTES_CLASSROOM_SHRT_NAME;
|
MaxBytes = Cla_MAX_BYTES_SHRT_NAME;
|
||||||
CurrentClaName = Cla->ShrtName;
|
CurrentClaName = Cla->ShrtName;
|
||||||
break;
|
break;
|
||||||
case Cns_FULL_NAME:
|
case Cns_FULL_NAME:
|
||||||
ParamName = "FullName";
|
ParamName = "FullName";
|
||||||
FieldName = "FullName";
|
FieldName = "FullName";
|
||||||
MaxBytes = Cla_MAX_BYTES_CLASSROOM_FULL_NAME;
|
MaxBytes = Cla_MAX_BYTES_FULL_NAME;
|
||||||
CurrentClaName = Cla->FullName;
|
CurrentClaName = Cla->FullName;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -705,7 +720,7 @@ void Cla_ChangeMaxStudents (void)
|
||||||
NewCapacity = (unsigned)
|
NewCapacity = (unsigned)
|
||||||
Par_GetParToUnsignedLong ("Capacity",
|
Par_GetParToUnsignedLong ("Capacity",
|
||||||
0,
|
0,
|
||||||
Cla_MAX_CAPACITY_OF_A_CLASSROOM,
|
Cla_MAX_CAPACITY,
|
||||||
Cla_UNLIMITED_CAPACITY);
|
Cla_UNLIMITED_CAPACITY);
|
||||||
|
|
||||||
/***** Get data of the classroom from database *****/
|
/***** Get data of the classroom from database *****/
|
||||||
|
@ -752,7 +767,7 @@ void Cla_ChangeMaxStudents (void)
|
||||||
|
|
||||||
static void Cla_WriteCapacity (unsigned Capacity)
|
static void Cla_WriteCapacity (unsigned Capacity)
|
||||||
{
|
{
|
||||||
if (Capacity <= Cla_MAX_CAPACITY_OF_A_CLASSROOM)
|
if (Capacity <= Cla_MAX_CAPACITY)
|
||||||
fprintf (Gbl.F.Out,"%u",Capacity);
|
fprintf (Gbl.F.Out,"%u",Capacity);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -793,7 +808,7 @@ static void Cla_PutFormToCreateClassroom (void)
|
||||||
" class=\"INPUT_SHORT_NAME\""
|
" class=\"INPUT_SHORT_NAME\""
|
||||||
" required=\"required\" />"
|
" required=\"required\" />"
|
||||||
"</td>",
|
"</td>",
|
||||||
Cla_MAX_CHARS_CLASSROOM_SHRT_NAME,Cla->ShrtName);
|
Cla_MAX_CHARS_SHRT_NAME,Cla->ShrtName);
|
||||||
|
|
||||||
/***** Classroom full name *****/
|
/***** Classroom full name *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
|
||||||
|
@ -802,7 +817,7 @@ static void Cla_PutFormToCreateClassroom (void)
|
||||||
" class=\"INPUT_FULL_NAME\""
|
" class=\"INPUT_FULL_NAME\""
|
||||||
" required=\"required\" />"
|
" required=\"required\" />"
|
||||||
"</td>",
|
"</td>",
|
||||||
Cla_MAX_CHARS_CLASSROOM_FULL_NAME,Cla->FullName);
|
Cla_MAX_CHARS_FULL_NAME,Cla->FullName);
|
||||||
|
|
||||||
/***** Seating capacity *****/
|
/***** Seating capacity *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
|
||||||
|
@ -866,16 +881,16 @@ void Cla_RecFormNewClassroom (void)
|
||||||
|
|
||||||
/***** Get parameters from form *****/
|
/***** Get parameters from form *****/
|
||||||
/* Get classroom short name */
|
/* Get classroom short name */
|
||||||
Par_GetParToText ("ShortName",Cla->ShrtName,Cla_MAX_BYTES_CLASSROOM_SHRT_NAME);
|
Par_GetParToText ("ShortName",Cla->ShrtName,Cla_MAX_BYTES_SHRT_NAME);
|
||||||
|
|
||||||
/* Get classroom full name */
|
/* Get classroom full name */
|
||||||
Par_GetParToText ("FullName",Cla->FullName,Cla_MAX_BYTES_CLASSROOM_FULL_NAME);
|
Par_GetParToText ("FullName",Cla->FullName,Cla_MAX_BYTES_FULL_NAME);
|
||||||
|
|
||||||
/* Get seating capacity */
|
/* Get seating capacity */
|
||||||
Cla->Capacity = (unsigned)
|
Cla->Capacity = (unsigned)
|
||||||
Par_GetParToUnsignedLong ("Capacity",
|
Par_GetParToUnsignedLong ("Capacity",
|
||||||
0,
|
0,
|
||||||
Cla_MAX_CAPACITY_OF_A_CLASSROOM,
|
Cla_MAX_CAPACITY,
|
||||||
Cla_UNLIMITED_CAPACITY);
|
Cla_UNLIMITED_CAPACITY);
|
||||||
|
|
||||||
if (Cla->ShrtName[0] && Cla->FullName[0]) // If there's a classroom name
|
if (Cla->ShrtName[0] && Cla->FullName[0]) // If there's a classroom name
|
||||||
|
|
|
@ -33,15 +33,15 @@
|
||||||
/************************** Public types and constants ***********************/
|
/************************** Public types and constants ***********************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
#define Cla_MAX_CHARS_CLASSROOM_SHRT_NAME (32 - 1) // 31
|
#define Cla_MAX_CHARS_SHRT_NAME (32 - 1) // 31
|
||||||
#define Cla_MAX_BYTES_CLASSROOM_SHRT_NAME ((Cla_MAX_CHARS_CLASSROOM_SHRT_NAME + 1) * Str_MAX_BYTES_PER_CHAR - 1) // 511
|
#define Cla_MAX_BYTES_SHRT_NAME ((Cla_MAX_CHARS_SHRT_NAME + 1) * Str_MAX_BYTES_PER_CHAR - 1) // 511
|
||||||
|
|
||||||
#define Cla_MAX_CHARS_CLASSROOM_FULL_NAME (128 - 1) // 127
|
#define Cla_MAX_CHARS_FULL_NAME (128 - 1) // 127
|
||||||
#define Cla_MAX_BYTES_CLASSROOM_FULL_NAME ((Cla_MAX_CHARS_CLASSROOM_FULL_NAME + 1) * Str_MAX_BYTES_PER_CHAR - 1) // 2047
|
#define Cla_MAX_BYTES_FULL_NAME ((Cla_MAX_CHARS_FULL_NAME + 1) * Str_MAX_BYTES_PER_CHAR - 1) // 2047
|
||||||
|
|
||||||
#define Cla_MAX_CAPACITY_OF_A_CLASSROOM 10000 // If capacity of a classroom is greater than this, it is considered infinite
|
#define Cla_MAX_CAPACITY 10000 // If capacity of a classroom is greater than this, it is considered infinite
|
||||||
#define Cla_UNLIMITED_CAPACITY INT_MAX // This number can be stored in database as an integer...
|
#define Cla_UNLIMITED_CAPACITY INT_MAX // This number can be stored in database as an integer...
|
||||||
// ...and means that a classroom has no limited capacity
|
// ...and means that a classroom has no limited capacity
|
||||||
|
|
||||||
#define Cla_MAX_CHARS_LOCATION (128 - 1) // 127
|
#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
|
#define Cla_MAX_BYTES_LOCATION ((Cla_MAX_CHARS_LOCATION + 1) * Str_MAX_BYTES_PER_CHAR - 1) // 2047
|
||||||
|
@ -50,17 +50,18 @@ struct Classroom
|
||||||
{
|
{
|
||||||
long ClaCod;
|
long ClaCod;
|
||||||
long InsCod;
|
long InsCod;
|
||||||
char ShrtName[Cla_MAX_BYTES_CLASSROOM_SHRT_NAME + 1];
|
char ShrtName[Cla_MAX_BYTES_SHRT_NAME + 1];
|
||||||
char FullName[Cla_MAX_BYTES_CLASSROOM_FULL_NAME + 1];
|
char FullName[Cla_MAX_BYTES_FULL_NAME + 1];
|
||||||
unsigned Capacity; // Seating capacity (maximum number of people that fit in the room)
|
unsigned Capacity; // Seating capacity (maximum number of people that fit in the room)
|
||||||
char Location[Cla_MAX_BYTES_LOCATION + 1]; // Examples: Ground floor, first floor, basement
|
char Location[Cla_MAX_BYTES_LOCATION + 1]; // Examples: Ground floor, first floor, basement
|
||||||
};
|
};
|
||||||
|
|
||||||
#define Cla_NUM_ORDERS 2
|
#define Cla_NUM_ORDERS 3
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
Cla_ORDER_BY_CLASSROOM = 0,
|
Cla_ORDER_BY_CLASSROOM = 0,
|
||||||
Cla_ORDER_BY_CAPACITY = 1,
|
Cla_ORDER_BY_CAPACITY = 1,
|
||||||
|
Cla_ORDER_BY_LOCATION = 2,
|
||||||
} Cla_Order_t;
|
} Cla_Order_t;
|
||||||
#define Cla_ORDER_DEFAULT Cla_ORDER_BY_CLASSROOM
|
#define Cla_ORDER_DEFAULT Cla_ORDER_BY_CLASSROOM
|
||||||
|
|
||||||
|
|
|
@ -482,8 +482,8 @@ mysql> DESCRIBE classrooms;
|
||||||
DB_CreateTable ("CREATE TABLE IF NOT EXISTS classrooms ("
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS classrooms ("
|
||||||
"ClaCod INT NOT NULL AUTO_INCREMENT,"
|
"ClaCod INT NOT NULL AUTO_INCREMENT,"
|
||||||
"CtrCod INT NOT NULL,"
|
"CtrCod INT NOT NULL,"
|
||||||
"ShortName VARCHAR(511) NOT NULL," // Cla_MAX_BYTES_CLASSROOM_SHRT_NAME
|
"ShortName VARCHAR(511) NOT NULL," // Cla_MAX_BYTES_SHRT_NAME
|
||||||
"FullName VARCHAR(2047) NOT NULL," // Cla_MAX_BYTES_CLASSROOM_FULL_NAME
|
"FullName VARCHAR(2047) NOT NULL," // Cla_MAX_BYTES_FULL_NAME
|
||||||
"Capacity INT NOT NULL,"
|
"Capacity INT NOT NULL,"
|
||||||
"Location VARCHAR(2047) NOT NULL," // Cla_MAX_BYTES_LOCATION
|
"Location VARCHAR(2047) NOT NULL," // Cla_MAX_BYTES_LOCATION
|
||||||
"UNIQUE INDEX(ClaCod),"
|
"UNIQUE INDEX(ClaCod),"
|
||||||
|
|
70
swad_text.c
70
swad_text.c
|
@ -1642,27 +1642,6 @@ const char *Txt_Another_centre =
|
||||||
"Outro centro";
|
"Outro centro";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const char *Txt_Another_classroom =
|
|
||||||
#if L==1 // ca
|
|
||||||
"Una altra aula";
|
|
||||||
#elif L==2 // de
|
|
||||||
"Ein weiterer Klassenzimmer";
|
|
||||||
#elif L==3 // en
|
|
||||||
"Another classroom";
|
|
||||||
#elif L==4 // es
|
|
||||||
"Otra aula";
|
|
||||||
#elif L==5 // fr
|
|
||||||
"Une autre salle de classe";
|
|
||||||
#elif L==6 // gn
|
|
||||||
"Otra aula"; // Okoteve traducción
|
|
||||||
#elif L==7 // it
|
|
||||||
"Un'altra aula";
|
|
||||||
#elif L==8 // pl
|
|
||||||
"Innym klasa";
|
|
||||||
#elif L==9 // pt
|
|
||||||
"Outra sala de aula";
|
|
||||||
#endif
|
|
||||||
|
|
||||||
const char *Txt_Another_country =
|
const char *Txt_Another_country =
|
||||||
#if L==1 // ca
|
#if L==1 // ca
|
||||||
"Un altre país";
|
"Un altre país";
|
||||||
|
@ -3918,7 +3897,7 @@ const char *Txt_Classroom_X_removed = // Warning: it is very important to includ
|
||||||
const char *Txt_CLASSROOMS_HELP_ORDER[Cla_NUM_ORDERS] =
|
const char *Txt_CLASSROOMS_HELP_ORDER[Cla_NUM_ORDERS] =
|
||||||
{
|
{
|
||||||
#if L==1 // ca
|
#if L==1 // ca
|
||||||
"Ordenar por aula" // Necessita traduccio
|
"Ordenar per aula"
|
||||||
#elif L==2 // de
|
#elif L==2 // de
|
||||||
"Nach Klassenzimmer sortieren"
|
"Nach Klassenzimmer sortieren"
|
||||||
#elif L==3 // en
|
#elif L==3 // en
|
||||||
|
@ -3955,6 +3934,26 @@ const char *Txt_CLASSROOMS_HELP_ORDER[Cla_NUM_ORDERS] =
|
||||||
"Sortuj wed&lsgtrok;ug pojemności miejsc"
|
"Sortuj wed&lsgtrok;ug pojemności miejsc"
|
||||||
#elif L==9 // pt
|
#elif L==9 // pt
|
||||||
"Ordenar por capacidade"
|
"Ordenar por capacidade"
|
||||||
|
#endif
|
||||||
|
,
|
||||||
|
#if L==1 // ca
|
||||||
|
"Ordenar per ubicació"
|
||||||
|
#elif L==2 // de
|
||||||
|
"Nach Standort sortieren"
|
||||||
|
#elif L==3 // en
|
||||||
|
"Sort by location"
|
||||||
|
#elif L==4 // es
|
||||||
|
"Ordenar por ubicación"
|
||||||
|
#elif L==5 // fr
|
||||||
|
"Trier par emplacement"
|
||||||
|
#elif L==6 // gn
|
||||||
|
"Ordenar por ubicación" // Okoteve traducción
|
||||||
|
#elif L==7 // it
|
||||||
|
"Ordina per posizione"
|
||||||
|
#elif L==8 // pl
|
||||||
|
"Sortuj wedlug lokacja"
|
||||||
|
#elif L==9 // pt
|
||||||
|
"Classificar por localização"
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -3999,28 +3998,27 @@ const char *Txt_CLASSROOMS_ORDER[Cla_NUM_ORDERS] =
|
||||||
#elif L==9 // pt
|
#elif L==9 // pt
|
||||||
"Capacidade"
|
"Capacidade"
|
||||||
#endif
|
#endif
|
||||||
};
|
,
|
||||||
|
|
||||||
const char *Txt_Classroom_unspecified =
|
|
||||||
#if L==1 // ca
|
#if L==1 // ca
|
||||||
"Aula sense especificar";
|
"Ubicació"
|
||||||
#elif L==2 // de
|
#elif L==2 // de
|
||||||
"Klassenzimmer nicht spezifiziert";
|
"Standort"
|
||||||
#elif L==3 // en
|
#elif L==3 // en
|
||||||
"Classroom unspecified";
|
"Location"
|
||||||
#elif L==4 // es
|
#elif L==4 // es
|
||||||
"Aula sin especificar";
|
"Ubicación"
|
||||||
#elif L==5 // fr
|
#elif L==5 // fr
|
||||||
"Salle de classe non spécifiée";
|
"Emplacement"
|
||||||
#elif L==6 // gn
|
#elif L==6 // gn
|
||||||
"Aula sin especificar"; // Okoteve traducción
|
"Ñemohenda"
|
||||||
#elif L==7 // it
|
#elif L==7 // it
|
||||||
"Aula non specificata";
|
"Posizione"
|
||||||
#elif L==8 // pl
|
#elif L==8 // pl
|
||||||
"Klasa nieokreslone";
|
"Lokacja"
|
||||||
#elif L==9 // pt
|
#elif L==9 // pt
|
||||||
"Sala de aula indeterminada";
|
"Localização"
|
||||||
#endif
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
const char *Txt_Classrooms =
|
const char *Txt_Classrooms =
|
||||||
#if L==1 // ca
|
#if L==1 // ca
|
||||||
|
@ -17150,7 +17148,7 @@ const char *Txt_Location =
|
||||||
#elif L==5 // fr
|
#elif L==5 // fr
|
||||||
"Emplacement";
|
"Emplacement";
|
||||||
#elif L==6 // gn
|
#elif L==6 // gn
|
||||||
"Ubicación"; // Okoteve traducción
|
"Tenda";
|
||||||
#elif L==7 // it
|
#elif L==7 // it
|
||||||
"Posizione";
|
"Posizione";
|
||||||
#elif L==8 // pl
|
#elif L==8 // pl
|
||||||
|
@ -17171,7 +17169,7 @@ const char *Txt_Locations =
|
||||||
#elif L==5 // fr
|
#elif L==5 // fr
|
||||||
"Emplacements";
|
"Emplacements";
|
||||||
#elif L==6 // gn
|
#elif L==6 // gn
|
||||||
"Ubicación"; // Okoteve traducción
|
"Tenda";
|
||||||
#elif L==7 // it
|
#elif L==7 // it
|
||||||
"Posizioni";
|
"Posizioni";
|
||||||
#elif L==8 // pl
|
#elif L==8 // pl
|
||||||
|
|
Loading…
Reference in New Issue
Block a user