Version 15.233.2

This commit is contained in:
Antonio Cañas Vargas 2016-06-27 19:37:45 +02:00
parent 59a2a0661a
commit a8e5f0c724
2 changed files with 46 additions and 92 deletions

View File

@ -130,13 +130,14 @@
/****************************** Public constants *****************************/ /****************************** Public constants *****************************/
/*****************************************************************************/ /*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 15.233.1 (2016-06-27)" #define Log_PLATFORM_VERSION "SWAD 15.233.2 (2016-06-27)"
#define CSS_FILE "swad15.229.css" #define CSS_FILE "swad15.229.css"
#define JS_FILE "swad15.226.js" #define JS_FILE "swad15.226.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 15.233.2: Jun 27, 2015 Code refactoring in search of users. (203072 lines)
Version 15.233.1: Jun 27, 2015 New restrictions in length of search string. (203117 lines) Version 15.233.1: Jun 27, 2015 New restrictions in length of search string. (203117 lines)
Version 15.233: Jun 27, 2015 Simplified search for users with a role. Now all users can be found. (203103 lines) Version 15.233: Jun 27, 2015 Simplified search for users with a role. Now all users can be found. (203103 lines)
Version 15.232.1: Jun 27, 2015 Fixed bug in search of any user (acceptation of enrollment was wrong). (203702 lines) Version 15.232.1: Jun 27, 2015 Fixed bug in search of any user (acceptation of enrollment was wrong). (203702 lines)

View File

@ -3805,12 +3805,17 @@ void Usr_GetListUsrs (Rol_Role_t Role,Sco_Scope_t Scope)
static void Usr_SearchListUsrs (Rol_Role_t Role) static void Usr_SearchListUsrs (Rol_Role_t Role)
{ {
char Query[4*1024]; char Query[4*1024];
const char *OrderQuery = "candidate_users.UsrCod=usr_data.UsrCod"
" ORDER BY "
"usr_data.Surname1,"
"usr_data.Surname2,"
"usr_data.FirstName,"
"usr_data.UsrCod";
/***** Build query *****/ /***** Build query *****/
// if Gbl.Scope.Current is course ==> 3 columns are retrieved: UsrCod, Sex, Accepted // if Gbl.Scope.Current is course ==> 3 columns are retrieved: UsrCod, Sex, Accepted
// else ==> 2 columns are retrieved: UsrCod, Sex // else ==> 2 columns are retrieved: UsrCod, Sex
// Search is faster (aproximately x2) using temporary tables // Search is faster (aproximately x2) using a temporary table to store users found in the whole platform
switch (Role) switch (Role)
{ {
case Rol_UNKNOWN: // Here Rol_UNKNOWN means any rol (role does not matter) case Rol_UNKNOWN: // Here Rol_UNKNOWN means any rol (role does not matter)
@ -3820,12 +3825,8 @@ static void Usr_SearchListUsrs (Rol_Role_t Role)
/* Search users from the whole platform */ /* Search users from the whole platform */
sprintf (Query,"SELECT DISTINCT candidate_users.UsrCod,usr_data.Sex" sprintf (Query,"SELECT DISTINCT candidate_users.UsrCod,usr_data.Sex"
" FROM candidate_users,usr_data" " FROM candidate_users,usr_data"
" WHERE candidate_users.UsrCod=usr_data.UsrCod" " WHERE %s",
" ORDER BY " OrderQuery);
"usr_data.Surname1,"
"usr_data.Surname2,"
"usr_data.FirstName,"
"usr_data.UsrCod");
break; break;
case Sco_SCOPE_CTY: case Sco_SCOPE_CTY:
/* Search users in courses from the current country */ /* Search users in courses from the current country */
@ -3837,13 +3838,9 @@ static void Usr_SearchListUsrs (Rol_Role_t Role)
" AND degrees.CtrCod=centres.CtrCod" " AND degrees.CtrCod=centres.CtrCod"
" AND centres.InsCod=institutions.InsCod" " AND centres.InsCod=institutions.InsCod"
" AND institutions.CtyCod='%ld'" " AND institutions.CtyCod='%ld'"
" AND candidate_users.UsrCod=usr_data.UsrCod" " AND %s",
" ORDER BY " Gbl.CurrentCty.Cty.CtyCod,
"usr_data.Surname1," OrderQuery);
"usr_data.Surname2,"
"usr_data.FirstName,"
"usr_data.UsrCod",
Gbl.CurrentCty.Cty.CtyCod);
break; break;
case Sco_SCOPE_INS: case Sco_SCOPE_INS:
/* Search users in courses from the current institution */ /* Search users in courses from the current institution */
@ -3854,13 +3851,9 @@ static void Usr_SearchListUsrs (Rol_Role_t Role)
" AND courses.DegCod=degrees.DegCod" " AND courses.DegCod=degrees.DegCod"
" AND degrees.CtrCod=centres.CtrCod" " AND degrees.CtrCod=centres.CtrCod"
" AND centres.InsCod='%ld'" " AND centres.InsCod='%ld'"
" AND candidate_users.UsrCod=usr_data.UsrCod" " AND %s",
" ORDER BY " Gbl.CurrentIns.Ins.InsCod,
"usr_data.Surname1," OrderQuery);
"usr_data.Surname2,"
"usr_data.FirstName,"
"usr_data.UsrCod",
Gbl.CurrentIns.Ins.InsCod);
break; break;
case Sco_SCOPE_CTR: case Sco_SCOPE_CTR:
/* Search users in courses from the current centre */ /* Search users in courses from the current centre */
@ -3870,13 +3863,9 @@ static void Usr_SearchListUsrs (Rol_Role_t Role)
" AND crs_usr.CrsCod=courses.CrsCod" " AND crs_usr.CrsCod=courses.CrsCod"
" AND courses.DegCod=degrees.DegCod" " AND courses.DegCod=degrees.DegCod"
" AND degrees.CtrCod='%ld'" " AND degrees.CtrCod='%ld'"
" AND candidate_users.UsrCod=usr_data.UsrCod" " AND %s",
" ORDER BY " Gbl.CurrentCtr.Ctr.CtrCod,
"usr_data.Surname1," OrderQuery);
"usr_data.Surname2,"
"usr_data.FirstName,"
"usr_data.UsrCod",
Gbl.CurrentCtr.Ctr.CtrCod);
break; break;
case Sco_SCOPE_DEG: case Sco_SCOPE_DEG:
/* Search users in courses from the current degree */ /* Search users in courses from the current degree */
@ -3885,13 +3874,9 @@ static void Usr_SearchListUsrs (Rol_Role_t Role)
" WHERE candidate_users.UsrCod=crs_usr.UsrCod" " WHERE candidate_users.UsrCod=crs_usr.UsrCod"
" AND crs_usr.CrsCod=courses.CrsCod" " AND crs_usr.CrsCod=courses.CrsCod"
" AND courses.DegCod='%ld'" " AND courses.DegCod='%ld'"
" AND candidate_users.UsrCod=usr_data.UsrCod" " AND %s",
" ORDER BY " Gbl.CurrentDeg.Deg.DegCod,
"usr_data.Surname1," OrderQuery);
"usr_data.Surname2,"
"usr_data.FirstName,"
"usr_data.UsrCod",
Gbl.CurrentDeg.Deg.DegCod);
break; break;
case Sco_SCOPE_CRS: case Sco_SCOPE_CRS:
/* Search users in courses from the current course */ /* Search users in courses from the current course */
@ -3899,13 +3884,9 @@ static void Usr_SearchListUsrs (Rol_Role_t Role)
" FROM candidate_users,crs_usr,usr_data" " FROM candidate_users,crs_usr,usr_data"
" WHERE candidate_users.UsrCod=crs_usr.UsrCod" " WHERE candidate_users.UsrCod=crs_usr.UsrCod"
" AND crs_usr.CrsCod='%ld'" " AND crs_usr.CrsCod='%ld'"
" AND candidate_users.UsrCod=usr_data.UsrCod" " AND %s",
" ORDER BY " Gbl.CurrentCrs.Crs.CrsCod,
"usr_data.Surname1," OrderQuery);
"usr_data.Surname2,"
"usr_data.FirstName,"
"usr_data.UsrCod",
Gbl.CurrentCrs.Crs.CrsCod);
break; break;
default: default:
Lay_ShowErrorAndExit ("Wrong scope."); Lay_ShowErrorAndExit ("Wrong scope.");
@ -3917,12 +3898,8 @@ static void Usr_SearchListUsrs (Rol_Role_t Role)
sprintf (Query,"SELECT candidate_users.UsrCod,usr_data.Sex" sprintf (Query,"SELECT candidate_users.UsrCod,usr_data.Sex"
" FROM candidate_users,usr_data" " FROM candidate_users,usr_data"
" WHERE candidate_users.UsrCod NOT IN (SELECT UsrCod FROM crs_usr)" " WHERE candidate_users.UsrCod NOT IN (SELECT UsrCod FROM crs_usr)"
" AND candidate_users.UsrCod=usr_data.UsrCod" " AND %s",
" ORDER BY " OrderQuery);
"usr_data.Surname1,"
"usr_data.Surname2,"
"usr_data.FirstName,"
"usr_data.UsrCod");
break; break;
case Rol_STUDENT: case Rol_STUDENT:
case Rol_TEACHER: case Rol_TEACHER:
@ -3939,13 +3916,9 @@ static void Usr_SearchListUsrs (Rol_Role_t Role)
" FROM candidate_users,crs_usr,usr_data" " FROM candidate_users,crs_usr,usr_data"
" WHERE candidate_users.UsrCod=crs_usr.UsrCod" " WHERE candidate_users.UsrCod=crs_usr.UsrCod"
" AND crs_usr.Role='%u'" " AND crs_usr.Role='%u'"
" AND candidate_users.UsrCod=usr_data.UsrCod" " AND %s",
" ORDER BY " (unsigned) Role,
"usr_data.Surname1," OrderQuery);
"usr_data.Surname2,"
"usr_data.FirstName,"
"usr_data.UsrCod",
(unsigned) Role);
break; break;
case Sco_SCOPE_CTY: case Sco_SCOPE_CTY:
/* Search users in courses from the current country */ /* Search users in courses from the current country */
@ -3958,14 +3931,10 @@ static void Usr_SearchListUsrs (Rol_Role_t Role)
" AND degrees.CtrCod=centres.CtrCod" " AND degrees.CtrCod=centres.CtrCod"
" AND centres.InsCod=institutions.InsCod" " AND centres.InsCod=institutions.InsCod"
" AND institutions.CtyCod='%ld'" " AND institutions.CtyCod='%ld'"
" AND candidate_users.UsrCod=usr_data.UsrCod" " AND %s",
" ORDER BY "
"usr_data.Surname1,"
"usr_data.Surname2,"
"usr_data.FirstName,"
"usr_data.UsrCod",
(unsigned) Role, (unsigned) Role,
Gbl.CurrentCty.Cty.CtyCod); Gbl.CurrentCty.Cty.CtyCod,
OrderQuery);
break; break;
case Sco_SCOPE_INS: case Sco_SCOPE_INS:
/* Search users in courses from the current institution */ /* Search users in courses from the current institution */
@ -3977,14 +3946,10 @@ static void Usr_SearchListUsrs (Rol_Role_t Role)
" AND courses.DegCod=degrees.DegCod" " AND courses.DegCod=degrees.DegCod"
" AND degrees.CtrCod=centres.CtrCod" " AND degrees.CtrCod=centres.CtrCod"
" AND centres.InsCod='%ld'" " AND centres.InsCod='%ld'"
" AND candidate_users.UsrCod=usr_data.UsrCod" " AND %s",
" ORDER BY "
"usr_data.Surname1,"
"usr_data.Surname2,"
"usr_data.FirstName,"
"usr_data.UsrCod",
(unsigned) Role, (unsigned) Role,
Gbl.CurrentIns.Ins.InsCod); Gbl.CurrentIns.Ins.InsCod,
OrderQuery);
break; break;
case Sco_SCOPE_CTR: case Sco_SCOPE_CTR:
/* Search users in courses from the current centre */ /* Search users in courses from the current centre */
@ -3995,14 +3960,10 @@ static void Usr_SearchListUsrs (Rol_Role_t Role)
" AND crs_usr.CrsCod=courses.CrsCod" " AND crs_usr.CrsCod=courses.CrsCod"
" AND courses.DegCod=degrees.DegCod" " AND courses.DegCod=degrees.DegCod"
" AND degrees.CtrCod='%ld'" " AND degrees.CtrCod='%ld'"
" AND candidate_users.UsrCod=usr_data.UsrCod" " AND %s",
" ORDER BY "
"usr_data.Surname1,"
"usr_data.Surname2,"
"usr_data.FirstName,"
"usr_data.UsrCod",
(unsigned) Role, (unsigned) Role,
Gbl.CurrentCtr.Ctr.CtrCod); Gbl.CurrentCtr.Ctr.CtrCod,
OrderQuery);
break; break;
case Sco_SCOPE_DEG: case Sco_SCOPE_DEG:
/* Search users in courses from the current degree */ /* Search users in courses from the current degree */
@ -4012,14 +3973,10 @@ static void Usr_SearchListUsrs (Rol_Role_t Role)
" AND crs_usr.Role='%u'" " AND crs_usr.Role='%u'"
" AND crs_usr.CrsCod=courses.CrsCod" " AND crs_usr.CrsCod=courses.CrsCod"
" AND courses.DegCod='%ld'" " AND courses.DegCod='%ld'"
" AND candidate_users.UsrCod=usr_data.UsrCod" " AND %s",
" ORDER BY "
"usr_data.Surname1,"
"usr_data.Surname2,"
"usr_data.FirstName,"
"usr_data.UsrCod",
(unsigned) Role, (unsigned) Role,
Gbl.CurrentDeg.Deg.DegCod); Gbl.CurrentDeg.Deg.DegCod,
OrderQuery);
break; break;
case Sco_SCOPE_CRS: case Sco_SCOPE_CRS:
/* Search users in courses from the current course */ /* Search users in courses from the current course */
@ -4028,14 +3985,10 @@ static void Usr_SearchListUsrs (Rol_Role_t Role)
" WHERE candidate_users.UsrCod=crs_usr.UsrCod" " WHERE candidate_users.UsrCod=crs_usr.UsrCod"
" AND crs_usr.Role='%u'" " AND crs_usr.Role='%u'"
" AND crs_usr.CrsCod='%ld'" " AND crs_usr.CrsCod='%ld'"
" AND candidate_users.UsrCod=usr_data.UsrCod" " AND %s",
" ORDER BY "
"usr_data.Surname1,"
"usr_data.Surname2,"
"usr_data.FirstName,"
"usr_data.UsrCod",
(unsigned) Role, (unsigned) Role,
Gbl.CurrentCrs.Crs.CrsCod); Gbl.CurrentCrs.Crs.CrsCod,
OrderQuery);
break; break;
default: default:
Lay_ShowErrorAndExit ("Wrong scope."); Lay_ShowErrorAndExit ("Wrong scope.");