Version 16.111.14

This commit is contained in:
Antonio Cañas Vargas 2016-12-29 23:33:01 +01:00
parent 178e648523
commit ff0a98979f
3 changed files with 60 additions and 45 deletions

View File

@ -701,8 +701,11 @@ void Asg_GetDataOfAssignmentByCod (struct Assignment *Asg)
Asg_GetDataOfAssignment (Asg,Query); Asg_GetDataOfAssignment (Asg,Query);
} }
else else
{
/***** Clear all assignment data *****/ /***** Clear all assignment data *****/
Asg->AsgCod = -1L;
Asg_ResetAssignment (Asg); Asg_ResetAssignment (Asg);
}
} }
/*****************************************************************************/ /*****************************************************************************/
@ -729,8 +732,11 @@ void Asg_GetDataOfAssignmentByFolder (struct Assignment *Asg)
Asg_GetDataOfAssignment (Asg,Query); Asg_GetDataOfAssignment (Asg,Query);
} }
else else
{
/***** Clear all assignment data *****/ /***** Clear all assignment data *****/
Asg->AsgCod = -1L;
Asg_ResetAssignment (Asg); Asg_ResetAssignment (Asg);
}
} }
/*****************************************************************************/ /*****************************************************************************/
@ -741,15 +747,12 @@ static void Asg_GetDataOfAssignment (struct Assignment *Asg,const char *Query)
{ {
MYSQL_RES *mysql_res; MYSQL_RES *mysql_res;
MYSQL_ROW row; MYSQL_ROW row;
unsigned long NumRows;
/***** Clear all assignment data *****/ /***** Clear all assignment data *****/
Asg_ResetAssignment (Asg); Asg_ResetAssignment (Asg);
/***** Get data of assignment from database *****/ /***** Get data of assignment from database *****/
NumRows = DB_QuerySELECT (Query,&mysql_res,"can not get assignment data"); if (DB_QuerySELECT (Query,&mysql_res,"can not get assignment data")) // Assignment found...
if (NumRows) // Assignment found...
{ {
/* Get row */ /* Get row */
row = mysql_fetch_row (mysql_res); row = mysql_fetch_row (mysql_res);
@ -793,6 +796,8 @@ static void Asg_GetDataOfAssignment (struct Assignment *Asg,const char *Query)
static void Asg_ResetAssignment (struct Assignment *Asg) static void Asg_ResetAssignment (struct Assignment *Asg)
{ {
if (Asg->AsgCod <= 0) // If > 0 ==> keep value
Asg->AsgCod = -1L;
Asg->AsgCod = -1L; Asg->AsgCod = -1L;
Asg->Hidden = false; Asg->Hidden = false;
Asg->UsrCod = -1L; Asg->UsrCod = -1L;
@ -1298,8 +1303,11 @@ void Asg_RecFormAssignment (void)
ItsANewAssignment = (NewAsg.AsgCod < 0); ItsANewAssignment = (NewAsg.AsgCod < 0);
if (ItsANewAssignment) if (ItsANewAssignment)
{
/***** Reset old (current, not existing) assignment data *****/ /***** Reset old (current, not existing) assignment data *****/
OldAsg.AsgCod = -1L;
Asg_ResetAssignment (&OldAsg); Asg_ResetAssignment (&OldAsg);
}
else else
{ {
/***** Get data of the old (current) assignment from database *****/ /***** Get data of the old (current) assignment from database *****/

View File

@ -736,59 +736,62 @@ bool Att_GetDataOfAttEventByCod (struct AttendanceEvent *Att)
char Query[1024]; char Query[1024];
MYSQL_RES *mysql_res; MYSQL_RES *mysql_res;
MYSQL_ROW row; MYSQL_ROW row;
bool Found; bool Found = false;
/***** Reset attendance event data *****/ /***** Reset attendance event data *****/
Att_ResetAttendanceEvent (Att); Att_ResetAttendanceEvent (Att);
/***** Build query *****/ if (Att->AttCod > 0)
sprintf (Query,"SELECT AttCod,CrsCod,Hidden,UsrCod,"
"UNIX_TIMESTAMP(StartTime),"
"UNIX_TIMESTAMP(EndTime),"
"NOW() BETWEEN StartTime AND EndTime,"
"CommentTchVisible,"
"Title"
" FROM att_events"
" WHERE AttCod='%ld'",
Att->AttCod);
/***** Get data of attendance event from database *****/
if ((Found = (DB_QuerySELECT (Query,&mysql_res,"can not get attendance event data") != 0))) // Attendance event found...
{ {
/* Get row */ /***** Build query *****/
row = mysql_fetch_row (mysql_res); sprintf (Query,"SELECT AttCod,CrsCod,Hidden,UsrCod,"
"UNIX_TIMESTAMP(StartTime),"
"UNIX_TIMESTAMP(EndTime),"
"NOW() BETWEEN StartTime AND EndTime,"
"CommentTchVisible,"
"Title"
" FROM att_events"
" WHERE AttCod='%ld'",
Att->AttCod);
/* Get code of the attendance event (row[0]) */ /***** Get data of attendance event from database *****/
Att->AttCod = Str_ConvertStrCodToLongCod (row[0]); if ((Found = (DB_QuerySELECT (Query,&mysql_res,"can not get attendance event data") != 0))) // Attendance event found...
{
/* Get row */
row = mysql_fetch_row (mysql_res);
/* Get code of the course (row[1]) */ /* Get code of the attendance event (row[0]) */
Att->CrsCod = Str_ConvertStrCodToLongCod (row[1]); Att->AttCod = Str_ConvertStrCodToLongCod (row[0]);
/* Get whether the attendance event is hidden or not (row[2]) */ /* Get code of the course (row[1]) */
Att->Hidden = (row[2][0] == 'Y'); Att->CrsCod = Str_ConvertStrCodToLongCod (row[1]);
/* Get author of the attendance event (row[3]) */ /* Get whether the attendance event is hidden or not (row[2]) */
Att->UsrCod = Str_ConvertStrCodToLongCod (row[3]); Att->Hidden = (row[2][0] == 'Y');
/* Get start date (row[4] holds the start UTC time) */ /* Get author of the attendance event (row[3]) */
Att->TimeUTC[Att_START_TIME] = Dat_GetUNIXTimeFromStr (row[4]); Att->UsrCod = Str_ConvertStrCodToLongCod (row[3]);
/* Get end date (row[5] holds the end UTC time) */ /* Get start date (row[4] holds the start UTC time) */
Att->TimeUTC[Att_END_TIME ] = Dat_GetUNIXTimeFromStr (row[5]); Att->TimeUTC[Att_START_TIME] = Dat_GetUNIXTimeFromStr (row[4]);
/* Get whether the attendance event is open or closed (row(6)) */ /* Get end date (row[5] holds the end UTC time) */
Att->Open = (row[6][0] == '1'); Att->TimeUTC[Att_END_TIME ] = Dat_GetUNIXTimeFromStr (row[5]);
/* Get whether the attendance event is visible or not (row[7]) */ /* Get whether the attendance event is open or closed (row(6)) */
Att->CommentTchVisible = (row[7][0] == 'Y'); Att->Open = (row[6][0] == '1');
/* Get the title of the attendance event (row[8]) */ /* Get whether the attendance event is visible or not (row[7]) */
strcpy (Att->Title,row[8]); Att->CommentTchVisible = (row[7][0] == 'Y');
/* Get the title of the attendance event (row[8]) */
strcpy (Att->Title,row[8]);
}
/***** Free structure that stores the query result *****/
DB_FreeMySQLResult (&mysql_res);
} }
/***** Free structure that stores the query result *****/
DB_FreeMySQLResult (&mysql_res);
return Found; return Found;
} }
@ -798,7 +801,8 @@ bool Att_GetDataOfAttEventByCod (struct AttendanceEvent *Att)
static void Att_ResetAttendanceEvent (struct AttendanceEvent *Att) static void Att_ResetAttendanceEvent (struct AttendanceEvent *Att)
{ {
Att->AttCod = -1L; if (Att->AttCod <= 0) // If > 0 ==> keep value
Att->AttCod = -1L;
Att->CrsCod = -1L; Att->CrsCod = -1L;
Att->Hidden = false; Att->Hidden = false;
Att->UsrCod = -1L; Att->UsrCod = -1L;
@ -834,13 +838,14 @@ void Att_FreeListAttEvents (void)
static void Att_GetAttEventTxtFromDB (long AttCod,char *Txt) static void Att_GetAttEventTxtFromDB (long AttCod,char *Txt)
{ {
char Query[512]; char Query[256];
MYSQL_RES *mysql_res; MYSQL_RES *mysql_res;
MYSQL_ROW row; MYSQL_ROW row;
unsigned long NumRows; unsigned long NumRows;
/***** Get text of attendance event from database *****/ /***** Get text of attendance event from database *****/
sprintf (Query,"SELECT Txt FROM att_events WHERE AttCod='%ld' AND CrsCod='%ld'", sprintf (Query,"SELECT Txt FROM att_events"
" WHERE AttCod='%ld' AND CrsCod='%ld'",
AttCod,Gbl.CurrentCrs.Crs.CrsCod); AttCod,Gbl.CurrentCrs.Crs.CrsCod);
NumRows = DB_QuerySELECT (Query,&mysql_res,"can not get attendance event text"); NumRows = DB_QuerySELECT (Query,&mysql_res,"can not get attendance event text");
@ -1123,6 +1128,7 @@ void Att_RequestCreatOrEditAttEvent (void)
if (ItsANewAttEvent) if (ItsANewAttEvent)
{ {
/* Reset attendance event data */ /* Reset attendance event data */
Att.AttCod = -1L;
Att_ResetAttendanceEvent (&Att); Att_ResetAttendanceEvent (&Att);
/* Initialize some fields */ /* Initialize some fields */

View File

@ -189,13 +189,14 @@
/****************************** Public constants *****************************/ /****************************** Public constants *****************************/
/*****************************************************************************/ /*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 16.111.13 (2016-12-29)" #define Log_PLATFORM_VERSION "SWAD 16.111.14 (2016-12-29)"
#define CSS_FILE "swad16.111.5.css" #define CSS_FILE "swad16.111.5.css"
#define JS_FILE "swad16.101.js" #define JS_FILE "swad16.101.js"
// Number of lines (includes comments but not blank lines) has been got with the following command: // 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 // nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*?.h sql/swad*.sql | tail -1
/* /*
Version 16.111.14:Dec 29, 2016 Fixed bug in attendance events. (211189 lines)
Version 16.111.13:Dec 29, 2016 Fixed bug in attendance events, reported by Coverity. (211173 lines) Version 16.111.13:Dec 29, 2016 Fixed bug in attendance events, reported by Coverity. (211173 lines)
Version 16.111.12:Dec 29, 2016 Fixed minor bug in groups, reported by Coverity. (? lines) Version 16.111.12:Dec 29, 2016 Fixed minor bug in groups, reported by Coverity. (? lines)
Version 16.111.11:Dec 29, 2016 Fixed minor bug inserting links to nicknames, reported by Coverity. (211149 lines) Version 16.111.11:Dec 29, 2016 Fixed minor bug inserting links to nicknames, reported by Coverity. (211149 lines)