mirror of
https://github.com/acanas/swad-core.git
synced 2024-09-20 00:02:42 +02:00
Version 15.68
This commit is contained in:
parent
3a7a4d17b5
commit
f4ac8cd22a
|
@ -94,7 +94,6 @@
|
||||||
----------Otros
|
----------Otros
|
||||||
....Etc.....
|
....Etc.....
|
||||||
*/
|
*/
|
||||||
// TODO: Show guests in connected users.
|
|
||||||
// TODO: A teacher should may confirm a student ID? In what conditions? (Necessary in order to a student can view his/her marks)
|
// TODO: A teacher should may confirm a student ID? In what conditions? (Necessary in order to a student can view his/her marks)
|
||||||
// TODO: Put headers Content-type and Content-disposition when redirecting with Location:
|
// TODO: Put headers Content-type and Content-disposition when redirecting with Location:
|
||||||
// TODO: When a new assignment/attendance/survey is incorrect, the second time the form is shown, it should be filled with partial data, now is always empty
|
// TODO: When a new assignment/attendance/survey is incorrect, the second time the form is shown, it should be filled with partial data, now is always empty
|
||||||
|
@ -120,12 +119,14 @@
|
||||||
/****************************** Public constants *****************************/
|
/****************************** Public constants *****************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
#define Log_PLATFORM_VERSION "SWAD 15.67.1 (2015/12/15)"
|
#define Log_PLATFORM_VERSION "SWAD 15.68 (2015/12/19)"
|
||||||
#define CSS_FILE "swad15.65.1.css"
|
#define CSS_FILE "swad15.65.1.css"
|
||||||
|
|
||||||
// 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 15.68: Dec 19, 2015 Show guests in connected users.
|
||||||
|
Optimization in queries about connected users. (187158 lines)
|
||||||
Version 15.67.1: Dec 15, 2015 Changed some messages. (187141 lines)
|
Version 15.67.1: Dec 15, 2015 Changed some messages. (187141 lines)
|
||||||
Version 15.67: Dec 15, 2015 Fixed bugs in queries of enrollment requests. (187140 lines)
|
Version 15.67: Dec 15, 2015 Fixed bugs in queries of enrollment requests. (187140 lines)
|
||||||
Version 15.66.3: Dec 15, 2015 Changes in some small icons.
|
Version 15.66.3: Dec 15, 2015 Changes in some small icons.
|
||||||
|
|
|
@ -95,11 +95,10 @@ void Con_ShowConnectedUsrs (void)
|
||||||
Gbl.Now.Date.Day,
|
Gbl.Now.Date.Day,
|
||||||
Gbl.Now.Time.Hour,
|
Gbl.Now.Time.Hour,
|
||||||
Gbl.Now.Time.Minute);
|
Gbl.Now.Time.Minute);
|
||||||
Lay_StartRoundFrameTable (NULL,0,Gbl.Title);
|
Lay_StartRoundFrame (NULL,Gbl.Title);
|
||||||
|
|
||||||
/***** Put form to update connected users *****/
|
/***** Put form to update connected users *****/
|
||||||
fprintf (Gbl.F.Out,"<tr>"
|
fprintf (Gbl.F.Out,"<div class=\"CENTER_MIDDLE\""
|
||||||
"<td class=\"CENTER_MIDDLE\""
|
|
||||||
" style=\"padding-bottom:12px;\">");
|
" style=\"padding-bottom:12px;\">");
|
||||||
Act_FormStart (ActLstCon);
|
Act_FormStart (ActLstCon);
|
||||||
Gbl.Scope.Current = Sco_SCOPE_CRS;
|
Gbl.Scope.Current = Sco_SCOPE_CRS;
|
||||||
|
@ -114,11 +113,7 @@ void Con_ShowConnectedUsrs (void)
|
||||||
Sco_PutSelectorScope (true);
|
Sco_PutSelectorScope (true);
|
||||||
}
|
}
|
||||||
Act_FormEnd ();
|
Act_FormEnd ();
|
||||||
|
fprintf (Gbl.F.Out,"</div>");
|
||||||
fprintf (Gbl.F.Out,"</td>"
|
|
||||||
"</tr>"
|
|
||||||
"<tr>"
|
|
||||||
"<td class=\"CENTER_MIDDLE\">");
|
|
||||||
|
|
||||||
/* Number of connected users in the whole platform */
|
/* Number of connected users in the whole platform */
|
||||||
Con_ShowGlobalConnectedUsrs ();
|
Con_ShowGlobalConnectedUsrs ();
|
||||||
|
@ -126,11 +121,8 @@ void Con_ShowConnectedUsrs (void)
|
||||||
/* Show connected users in the current course */
|
/* Show connected users in the current course */
|
||||||
Con_ShowConnectedUsrsBelongingToScope ();
|
Con_ShowConnectedUsrsBelongingToScope ();
|
||||||
|
|
||||||
fprintf (Gbl.F.Out,"</td>"
|
|
||||||
"</tr>");
|
|
||||||
|
|
||||||
/***** End frame *****/
|
/***** End frame *****/
|
||||||
Lay_EndRoundFrameTable ();
|
Lay_EndRoundFrame ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -510,6 +502,8 @@ void Con_ShowConnectedUsrsBelongingToScope (void)
|
||||||
case Con_SHOW_ON_MAIN_ZONE:
|
case Con_SHOW_ON_MAIN_ZONE:
|
||||||
Con_ShowConnectedUsrsWithARoleBelongingToCurrentLocationOnMainZone (Rol_TEACHER);
|
Con_ShowConnectedUsrsWithARoleBelongingToCurrentLocationOnMainZone (Rol_TEACHER);
|
||||||
Con_ShowConnectedUsrsWithARoleBelongingToCurrentLocationOnMainZone (Rol_STUDENT);
|
Con_ShowConnectedUsrsWithARoleBelongingToCurrentLocationOnMainZone (Rol_STUDENT);
|
||||||
|
if (Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM)
|
||||||
|
Con_ShowConnectedUsrsWithARoleBelongingToCurrentLocationOnMainZone (Rol__GUEST_);
|
||||||
break;
|
break;
|
||||||
case Con_SHOW_ON_RIGHT_COLUMN:
|
case Con_SHOW_ON_RIGHT_COLUMN:
|
||||||
Gbl.Usrs.Connected.NumUsr = 0;
|
Gbl.Usrs.Connected.NumUsr = 0;
|
||||||
|
@ -517,6 +511,8 @@ void Con_ShowConnectedUsrsBelongingToScope (void)
|
||||||
Gbl.Usrs.Connected.NumUsrsToList = 0;
|
Gbl.Usrs.Connected.NumUsrsToList = 0;
|
||||||
Con_ShowConnectedUsrsWithARoleBelongingToCurrentLocationOnRightColumn (Rol_TEACHER);
|
Con_ShowConnectedUsrsWithARoleBelongingToCurrentLocationOnRightColumn (Rol_TEACHER);
|
||||||
Con_ShowConnectedUsrsWithARoleBelongingToCurrentLocationOnRightColumn (Rol_STUDENT);
|
Con_ShowConnectedUsrsWithARoleBelongingToCurrentLocationOnRightColumn (Rol_STUDENT);
|
||||||
|
if (Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM)
|
||||||
|
Con_ShowConnectedUsrsWithARoleBelongingToCurrentLocationOnRightColumn (Rol__GUEST_);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1119,21 +1115,32 @@ static void Con_ShowConnectedUsrsCurrentLocationOneByOneOnMainZone (Rol_Role_t R
|
||||||
Gbl.Scope.Current == Sco_SCOPE_CRS);
|
Gbl.Scope.Current == Sco_SCOPE_CRS);
|
||||||
|
|
||||||
/***** Get connected users who belong to current location from database *****/
|
/***** Get connected users who belong to current location from database *****/
|
||||||
|
switch (Role)
|
||||||
|
{
|
||||||
|
case Rol__GUEST_:
|
||||||
|
sprintf (Query,"SELECT UsrCod,LastCrsCod,"
|
||||||
|
"UNIX_TIMESTAMP()-UNIX_TIMESTAMP(LastTime) AS Dif"
|
||||||
|
" FROM connected"
|
||||||
|
" WHERE UsrCod NOT IN (SELECT UsrCod FROM crs_usr)"
|
||||||
|
" ORDER BY Dif");
|
||||||
|
break;
|
||||||
|
case Rol_STUDENT:
|
||||||
|
case Rol_TEACHER:
|
||||||
switch (Gbl.Scope.Current)
|
switch (Gbl.Scope.Current)
|
||||||
{
|
{
|
||||||
case Sco_SCOPE_SYS: // Show connected users in the whole platform
|
case Sco_SCOPE_SYS: // Show connected users in the whole platform
|
||||||
sprintf (Query,"SELECT DISTINCTROW connected.UsrCod,connected.LastCrsCod,"
|
sprintf (Query,"SELECT DISTINCTROW connected.UsrCod,connected.LastCrsCod,"
|
||||||
"UNIX_TIMESTAMP()-UNIX_TIMESTAMP(connected.LastTime) AS Dif"
|
"UNIX_TIMESTAMP()-UNIX_TIMESTAMP(connected.LastTime) AS Dif"
|
||||||
" FROM connected,crs_usr,usr_data"
|
" FROM connected,crs_usr"
|
||||||
" WHERE connected.UsrCod=crs_usr.UsrCod"
|
" WHERE connected.UsrCod=crs_usr.UsrCod"
|
||||||
" AND crs_usr.Role='%u'"
|
" AND crs_usr.Role='%u'"
|
||||||
" AND connected.UsrCod=usr_data.UsrCod ORDER BY Dif",
|
" ORDER BY Dif",
|
||||||
(unsigned) Role);
|
(unsigned) Role);
|
||||||
break;
|
break;
|
||||||
case Sco_SCOPE_CTY: // Show connected users in the current country
|
case Sco_SCOPE_CTY: // Show connected users in the current country
|
||||||
sprintf (Query,"SELECT DISTINCTROW connected.UsrCod,connected.LastCrsCod,"
|
sprintf (Query,"SELECT DISTINCTROW connected.UsrCod,connected.LastCrsCod,"
|
||||||
"UNIX_TIMESTAMP()-UNIX_TIMESTAMP(connected.LastTime) AS Dif"
|
"UNIX_TIMESTAMP()-UNIX_TIMESTAMP(connected.LastTime) AS Dif"
|
||||||
" FROM institutions,centres,degrees,courses,crs_usr,connected,usr_data"
|
" FROM institutions,centres,degrees,courses,crs_usr,connected"
|
||||||
" WHERE institutions.CtyCod='%ld'"
|
" WHERE institutions.CtyCod='%ld'"
|
||||||
" AND institutions.InsCod=centres.InsCod"
|
" AND institutions.InsCod=centres.InsCod"
|
||||||
" AND centres.CtrCod=degrees.CtrCod"
|
" AND centres.CtrCod=degrees.CtrCod"
|
||||||
|
@ -1141,57 +1148,57 @@ static void Con_ShowConnectedUsrsCurrentLocationOneByOneOnMainZone (Rol_Role_t R
|
||||||
" AND courses.CrsCod=crs_usr.CrsCod"
|
" AND courses.CrsCod=crs_usr.CrsCod"
|
||||||
" AND crs_usr.Role='%u'"
|
" AND crs_usr.Role='%u'"
|
||||||
" AND crs_usr.UsrCod=connected.UsrCod"
|
" AND crs_usr.UsrCod=connected.UsrCod"
|
||||||
" AND crs_usr.UsrCod=usr_data.UsrCod ORDER BY Dif",
|
" ORDER BY Dif",
|
||||||
Gbl.CurrentCty.Cty.CtyCod,
|
Gbl.CurrentCty.Cty.CtyCod,
|
||||||
(unsigned) Role);
|
(unsigned) Role);
|
||||||
break;
|
break;
|
||||||
case Sco_SCOPE_INS: // Show connected users in the current institution
|
case Sco_SCOPE_INS: // Show connected users in the current institution
|
||||||
sprintf (Query,"SELECT DISTINCTROW connected.UsrCod,connected.LastCrsCod,"
|
sprintf (Query,"SELECT DISTINCTROW connected.UsrCod,connected.LastCrsCod,"
|
||||||
"UNIX_TIMESTAMP()-UNIX_TIMESTAMP(connected.LastTime) AS Dif"
|
"UNIX_TIMESTAMP()-UNIX_TIMESTAMP(connected.LastTime) AS Dif"
|
||||||
" FROM centres,degrees,courses,crs_usr,connected,usr_data"
|
" FROM centres,degrees,courses,crs_usr,connected"
|
||||||
" WHERE centres.InsCod='%ld'"
|
" WHERE centres.InsCod='%ld'"
|
||||||
" AND centres.CtrCod=degrees.CtrCod"
|
" AND centres.CtrCod=degrees.CtrCod"
|
||||||
" AND degrees.DegCod=courses.DegCod"
|
" AND degrees.DegCod=courses.DegCod"
|
||||||
" AND courses.CrsCod=crs_usr.CrsCod"
|
" AND courses.CrsCod=crs_usr.CrsCod"
|
||||||
" AND crs_usr.Role='%u'"
|
" AND crs_usr.Role='%u'"
|
||||||
" AND crs_usr.UsrCod=connected.UsrCod"
|
" AND crs_usr.UsrCod=connected.UsrCod"
|
||||||
" AND crs_usr.UsrCod=usr_data.UsrCod ORDER BY Dif",
|
" ORDER BY Dif",
|
||||||
Gbl.CurrentIns.Ins.InsCod,
|
Gbl.CurrentIns.Ins.InsCod,
|
||||||
(unsigned) Role);
|
(unsigned) Role);
|
||||||
break;
|
break;
|
||||||
case Sco_SCOPE_CTR: // Show connected users in the current centre
|
case Sco_SCOPE_CTR: // Show connected users in the current centre
|
||||||
sprintf (Query,"SELECT DISTINCTROW connected.UsrCod,connected.LastCrsCod,"
|
sprintf (Query,"SELECT DISTINCTROW connected.UsrCod,connected.LastCrsCod,"
|
||||||
"UNIX_TIMESTAMP()-UNIX_TIMESTAMP(connected.LastTime) AS Dif"
|
"UNIX_TIMESTAMP()-UNIX_TIMESTAMP(connected.LastTime) AS Dif"
|
||||||
" FROM degrees,courses,crs_usr,connected,usr_data"
|
" FROM degrees,courses,crs_usr,connected"
|
||||||
" WHERE degrees.CtrCod='%ld'"
|
" WHERE degrees.CtrCod='%ld'"
|
||||||
" AND degrees.DegCod=courses.DegCod"
|
" AND degrees.DegCod=courses.DegCod"
|
||||||
" AND courses.CrsCod=crs_usr.CrsCod"
|
" AND courses.CrsCod=crs_usr.CrsCod"
|
||||||
" AND crs_usr.Role='%u'"
|
" AND crs_usr.Role='%u'"
|
||||||
" AND crs_usr.UsrCod=connected.UsrCod"
|
" AND crs_usr.UsrCod=connected.UsrCod"
|
||||||
" AND crs_usr.UsrCod=usr_data.UsrCod ORDER BY Dif",
|
" ORDER BY Dif",
|
||||||
Gbl.CurrentCtr.Ctr.CtrCod,
|
Gbl.CurrentCtr.Ctr.CtrCod,
|
||||||
(unsigned) Role);
|
(unsigned) Role);
|
||||||
break;
|
break;
|
||||||
case Sco_SCOPE_DEG: // Show connected users in the current degree
|
case Sco_SCOPE_DEG: // Show connected users in the current degree
|
||||||
sprintf (Query,"SELECT DISTINCTROW connected.UsrCod,connected.LastCrsCod,"
|
sprintf (Query,"SELECT DISTINCTROW connected.UsrCod,connected.LastCrsCod,"
|
||||||
"UNIX_TIMESTAMP()-UNIX_TIMESTAMP(connected.LastTime) AS Dif"
|
"UNIX_TIMESTAMP()-UNIX_TIMESTAMP(connected.LastTime) AS Dif"
|
||||||
" FROM courses,crs_usr,connected,usr_data"
|
" FROM courses,crs_usr,connected"
|
||||||
" WHERE courses.DegCod='%ld'"
|
" WHERE courses.DegCod='%ld'"
|
||||||
" AND courses.CrsCod=crs_usr.CrsCod"
|
" AND courses.CrsCod=crs_usr.CrsCod"
|
||||||
" AND crs_usr.Role='%u'"
|
" AND crs_usr.Role='%u'"
|
||||||
" AND crs_usr.UsrCod=connected.UsrCod"
|
" AND crs_usr.UsrCod=connected.UsrCod"
|
||||||
" AND crs_usr.UsrCod=usr_data.UsrCod ORDER BY Dif",
|
" ORDER BY Dif",
|
||||||
Gbl.CurrentDeg.Deg.DegCod,
|
Gbl.CurrentDeg.Deg.DegCod,
|
||||||
(unsigned) Role);
|
(unsigned) Role);
|
||||||
break;
|
break;
|
||||||
case Sco_SCOPE_CRS: // Show connected users in the current course
|
case Sco_SCOPE_CRS: // Show connected users in the current course
|
||||||
sprintf (Query,"SELECT connected.UsrCod,connected.LastCrsCod,"
|
sprintf (Query,"SELECT connected.UsrCod,connected.LastCrsCod,"
|
||||||
"UNIX_TIMESTAMP()-UNIX_TIMESTAMP(connected.LastTime) AS Dif"
|
"UNIX_TIMESTAMP()-UNIX_TIMESTAMP(connected.LastTime) AS Dif"
|
||||||
" FROM crs_usr,connected,usr_data"
|
" FROM crs_usr,connected"
|
||||||
" WHERE crs_usr.CrsCod='%ld'"
|
" WHERE crs_usr.CrsCod='%ld'"
|
||||||
" AND crs_usr.Role='%u'"
|
" AND crs_usr.Role='%u'"
|
||||||
" AND crs_usr.UsrCod=connected.UsrCod"
|
" AND crs_usr.UsrCod=connected.UsrCod"
|
||||||
" AND crs_usr.UsrCod=usr_data.UsrCod ORDER BY Dif",
|
" ORDER BY Dif",
|
||||||
Gbl.CurrentCrs.Crs.CrsCod,
|
Gbl.CurrentCrs.Crs.CrsCod,
|
||||||
(unsigned) Role);
|
(unsigned) Role);
|
||||||
break;
|
break;
|
||||||
|
@ -1199,6 +1206,12 @@ static void Con_ShowConnectedUsrsCurrentLocationOneByOneOnMainZone (Rol_Role_t R
|
||||||
Lay_ShowErrorAndExit ("Wrong scope.");
|
Lay_ShowErrorAndExit ("Wrong scope.");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
Lay_ShowErrorAndExit ("Wrong role.");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
NumUsrs = (unsigned) DB_QuerySELECT (Query,&mysql_res,"can not get list of connected users who belong to this location");
|
NumUsrs = (unsigned) DB_QuerySELECT (Query,&mysql_res,"can not get list of connected users who belong to this location");
|
||||||
|
|
||||||
if (NumUsrs)
|
if (NumUsrs)
|
||||||
|
@ -1215,8 +1228,8 @@ static void Con_ShowConnectedUsrsCurrentLocationOneByOneOnMainZone (Rol_Role_t R
|
||||||
|
|
||||||
/* Get user's data */
|
/* Get user's data */
|
||||||
UsrDat.UsrCod = Str_ConvertStrCodToLongCod (row[0]);
|
UsrDat.UsrCod = Str_ConvertStrCodToLongCod (row[0]);
|
||||||
Usr_GetAllUsrDataFromUsrCod (&UsrDat);
|
if (Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat)) // Existing user
|
||||||
|
{
|
||||||
/* Get course code (row[1]) */
|
/* Get course code (row[1]) */
|
||||||
ThisCrs = (Str_ConvertStrCodToLongCod (row[1]) == Gbl.CurrentCrs.Crs.CrsCod);
|
ThisCrs = (Str_ConvertStrCodToLongCod (row[1]) == Gbl.CurrentCrs.Crs.CrsCod);
|
||||||
Font = (ThisCrs ? "CON_CRS" :
|
Font = (ThisCrs ? "CON_CRS" :
|
||||||
|
@ -1266,6 +1279,7 @@ static void Con_ShowConnectedUsrsCurrentLocationOneByOneOnMainZone (Rol_Role_t R
|
||||||
|
|
||||||
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
|
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/***** Free memory used for user's data *****/
|
/***** Free memory used for user's data *****/
|
||||||
Usr_UsrDataDestructor (&UsrDat);
|
Usr_UsrDataDestructor (&UsrDat);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user