mirror of https://github.com/acanas/swad-core.git
Version18.86.3
This commit is contained in:
parent
155718f39e
commit
d8b7552c07
163
sql/cambios.sql
163
sql/cambios.sql
|
@ -12690,4 +12690,165 @@ SELECT degrees.ShortName,main_degree.MaxRole
|
|||
ALTER TABLE usr_data CHANGE COLUMN BasicProfileVisibility BaPrfVisibility ENUM('unknown','user','course','system','world') NOT NULL DEFAULT 'unknown';
|
||||
ALTER TABLE usr_data DROP COLUMN ExtendedProfileVisibility;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
SELECT DISTINCT UsrCod FROM
|
||||
(
|
||||
(SELECT DISTINCT UsrCod FROM
|
||||
(
|
||||
(
|
||||
SELECT DISTINCT usr_follow.FollowedCod AS UsrCod
|
||||
FROM usr_follow,
|
||||
(SELECT FollowedCod FROM usr_follow
|
||||
WHERE FollowerCod=1346) AS my_followed,
|
||||
usr_data
|
||||
WHERE usr_follow.FollowerCod=my_followed.FollowedCod
|
||||
AND usr_follow.FollowedCod<>1346
|
||||
AND usr_follow.FollowedCod=usr_data.UsrCod
|
||||
AND usr_data.Surname1<>''
|
||||
AND usr_data.FirstName<>''
|
||||
AND usr_data.PhotoVisibility IN ('system','world')
|
||||
AND usr_data.Photo<>''
|
||||
)
|
||||
UNION
|
||||
(
|
||||
SELECT DISTINCT crs_usr.UsrCod
|
||||
FROM crs_usr,
|
||||
(SELECT CrsCod FROM crs_usr
|
||||
WHERE UsrCod=1346) AS my_crs,
|
||||
usr_data
|
||||
WHERE crs_usr.CrsCod=my_crs.CrsCod
|
||||
AND crs_usr.UsrCod<>1346
|
||||
AND crs_usr.UsrCod=usr_data.UsrCod
|
||||
AND usr_data.Surname1<>''
|
||||
AND usr_data.FirstName<>''
|
||||
AND usr_data.PhotoVisibility IN ('course','system','world')
|
||||
AND usr_data.Photo<>''
|
||||
)
|
||||
UNION
|
||||
(
|
||||
SELECT DISTINCT crs_usr.UsrCod
|
||||
FROM crs_usr,
|
||||
(SELECT CrsCod,Role FROM crs_usr
|
||||
WHERE UsrCod=1346) AS my_crs_role,
|
||||
usr_data
|
||||
WHERE crs_usr.CrsCod=my_crs_role.CrsCod
|
||||
AND crs_usr.Role<>my_crs_role.Role
|
||||
AND crs_usr.UsrCod=usr_data.UsrCod
|
||||
AND usr_data.Surname1<>''
|
||||
AND usr_data.FirstName<>''
|
||||
AND usr_data.PhotoVisibility IN ('user','course','system','world')
|
||||
AND usr_data.Photo<>''
|
||||
)
|
||||
) AS LikelyKnownUsrsToFollow
|
||||
WHERE UsrCod NOT IN
|
||||
(SELECT FollowedCod FROM usr_follow
|
||||
WHERE FollowerCod=1346)
|
||||
ORDER BY RAND() LIMIT 6
|
||||
)
|
||||
UNION
|
||||
(
|
||||
SELECT usr_data.UsrCod FROM usr_data,
|
||||
(SELECT ROUND(RAND() * (SELECT MAX(UsrCod) FROM usr_data)) AS UsrCod) AS random_usr
|
||||
WHERE usr_data.UsrCod<>1346
|
||||
AND usr_data.Surname1<>''
|
||||
AND usr_data.FirstName<>''
|
||||
AND usr_data.PhotoVisibility IN ('system','world')
|
||||
AND usr_data.Photo<>''
|
||||
AND usr_data.UsrCod NOT IN
|
||||
(SELECT FollowedCod FROM usr_follow
|
||||
WHERE FollowerCod=1346)
|
||||
AND usr_data.UsrCod>=random_usr.UsrCod
|
||||
LIMIT 3
|
||||
)
|
||||
) AS UsrsToFollow
|
||||
ORDER BY RAND() LIMIT 3;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
SELECT usr_data.UsrCod FROM usr_data,
|
||||
(SELECT ROUND(RAND() * (SELECT MAX(UsrCod) FROM usr_data)) AS UsrCod) AS random_usr
|
||||
WHERE usr_data.UsrCod<>1346
|
||||
AND usr_data.Surname1<>''
|
||||
AND usr_data.FirstName<>''
|
||||
AND usr_data.PhotoVisibility IN ('system','world')
|
||||
AND usr_data.Photo<>''
|
||||
AND usr_data.UsrCod NOT IN
|
||||
(SELECT FollowedCod FROM usr_follow
|
||||
WHERE FollowerCod=1346)
|
||||
AND usr_data.UsrCod>=random_usr.UsrCod
|
||||
LIMIT 3;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
SELECT DISTINCT UsrCod FROM
|
||||
(
|
||||
(SELECT DISTINCT UsrCod FROM
|
||||
(
|
||||
(
|
||||
SELECT DISTINCT usr_follow.FollowedCod AS UsrCod
|
||||
FROM usr_follow,
|
||||
(SELECT FollowedCod FROM usr_follow
|
||||
WHERE FollowerCod=1346) AS my_followed,
|
||||
usr_data
|
||||
WHERE usr_follow.FollowerCod=my_followed.FollowedCod
|
||||
AND usr_follow.FollowedCod<>1346
|
||||
AND usr_follow.FollowedCod=usr_data.UsrCod
|
||||
AND usr_data.Surname1<>''
|
||||
AND usr_data.FirstName<>''
|
||||
AND usr_data.PhotoVisibility IN ('system','world')
|
||||
AND usr_data.Photo<>''
|
||||
)
|
||||
UNION
|
||||
(
|
||||
SELECT DISTINCT crs_usr.UsrCod
|
||||
FROM crs_usr,
|
||||
(SELECT CrsCod FROM crs_usr
|
||||
WHERE UsrCod=1346) AS my_crs,
|
||||
usr_data
|
||||
WHERE crs_usr.CrsCod=my_crs.CrsCod
|
||||
AND crs_usr.UsrCod<>1346
|
||||
AND crs_usr.UsrCod=usr_data.UsrCod
|
||||
AND usr_data.Surname1<>''
|
||||
AND usr_data.FirstName<>''
|
||||
AND usr_data.PhotoVisibility IN ('course','system','world')
|
||||
AND usr_data.Photo<>''
|
||||
)
|
||||
UNION
|
||||
(
|
||||
SELECT DISTINCT crs_usr.UsrCod
|
||||
FROM crs_usr,
|
||||
(SELECT CrsCod,Role FROM crs_usr
|
||||
WHERE UsrCod=1346) AS my_crs_role,
|
||||
usr_data
|
||||
WHERE crs_usr.CrsCod=my_crs_role.CrsCod
|
||||
AND crs_usr.Role<>my_crs_role.Role
|
||||
AND crs_usr.UsrCod=usr_data.UsrCod
|
||||
AND usr_data.Surname1<>''
|
||||
AND usr_data.FirstName<>''
|
||||
AND usr_data.PhotoVisibility IN ('user','course','system','world')
|
||||
AND usr_data.Photo<>''
|
||||
)
|
||||
) AS LikelyKnownUsrsToFollow
|
||||
WHERE UsrCod NOT IN
|
||||
(SELECT FollowedCod FROM usr_follow
|
||||
WHERE FollowerCod=1346)
|
||||
ORDER BY RAND() LIMIT 6
|
||||
)
|
||||
) AS UsrsToFollow
|
||||
ORDER BY RAND() LIMIT 3;
|
||||
|
||||
|
|
|
@ -38,12 +38,24 @@
|
|||
/****************************** Debug example ********************************/
|
||||
/*****************************************************************************/
|
||||
/*
|
||||
DB_QueryINSERT ("can not debug",
|
||||
"INSERT INTO debug"
|
||||
" (DebugTime,Txt)"
|
||||
" VALUES"
|
||||
" (NOW(),'ActCod = %ld')",
|
||||
Act_GetActCod (Gbl.Action.Act));
|
||||
struct timeval tv1,tv2;
|
||||
long tv_usecs;
|
||||
|
||||
gettimeofday (&tv1,NULL);
|
||||
|
||||
function ();
|
||||
|
||||
gettimeofday (&tv2,NULL);
|
||||
tv_usecs = (tv2.tv_sec - tv1.tv_sec ) * 1E6 +
|
||||
(tv2.tv_usec - tv1.tv_usec);
|
||||
*/
|
||||
/*
|
||||
DB_QueryINSERT ("can not debug",
|
||||
"INSERT INTO debug"
|
||||
" (DebugTime,Txt)"
|
||||
" VALUES"
|
||||
" (NOW(),'ActCod = %ld')",
|
||||
Act_GetActCod (Gbl.Action.Act));
|
||||
*/
|
||||
/*****************************************************************************/
|
||||
/*********************************** TODO ************************************/
|
||||
|
@ -459,12 +471,11 @@ En OpenSWAD:
|
|||
ps2pdf source.ps destination.pdf
|
||||
*/
|
||||
|
||||
#define Log_PLATFORM_VERSION "SWAD 18.86.2 (2019-03-24)"
|
||||
#define Log_PLATFORM_VERSION "SWAD 18.86.3 (2019-03-24)"
|
||||
#define CSS_FILE "swad18.85.1.css"
|
||||
#define JS_FILE "swad18.85.js"
|
||||
/*
|
||||
TODO: Comprobar consultas de usuarios a quienes seguir después de los cambios en privacidad del perfil público básico
|
||||
|
||||
Version 18.86.3: Mar 24, 2019 Optimization in suggestion of users to follow. (240965 lines)
|
||||
Version 18.86.2: Mar 24, 2019 Optimization in suggestion of users to follow. (240935 lines)
|
||||
Version 18.86.1: Mar 23, 2019 Changes in writing of a floating point number.
|
||||
Mask applied to figure about privacy.
|
||||
|
|
|
@ -368,19 +368,28 @@ static unsigned long Fol_GetUsrsToFollow (unsigned long MaxUsrsToShow,
|
|||
")"
|
||||
" UNION "
|
||||
"("
|
||||
/***** Likely unknown users *****/
|
||||
// 4. Add some likely unknown random users
|
||||
"SELECT UsrCod FROM usr_data"
|
||||
" WHERE UsrCod<>%ld"
|
||||
" AND Surname1<>''" // Surname 1 not empty
|
||||
" AND FirstName<>''" // First name not empty
|
||||
/***** Likely unknown userd *****/
|
||||
// 4. Add some likely unknown random user
|
||||
// Be careful with the method to get some random users
|
||||
// from the big table of users.
|
||||
// It's much faster getting a random code and then get the first users
|
||||
// with codes >= that random code
|
||||
// that getting all users and then ordering by rand.
|
||||
"SELECT usr_data.UsrCod"
|
||||
" FROM usr_data,"
|
||||
"(SELECT ROUND(RAND()*(SELECT MAX(UsrCod) FROM usr_data)) AS RandomUsrCod)" // a random user code
|
||||
" AS random_usr"
|
||||
" WHERE usr_data.UsrCod<>%ld"
|
||||
" AND usr_data.Surname1<>''" // Surname 1 not empty
|
||||
" AND usr_data.FirstName<>''" // First name not empty
|
||||
"%s" // SubQuery4
|
||||
// Do not select my followed
|
||||
" AND UsrCod NOT IN"
|
||||
" AND usr_data.UsrCod NOT IN"
|
||||
" (SELECT FollowedCod FROM usr_follow"
|
||||
" WHERE FollowerCod=%ld)"
|
||||
" AND usr_data.UsrCod>=random_usr.RandomUsrCod" // random user code could not exists in table of users
|
||||
// Get only MaxUsrsToShow users
|
||||
" ORDER BY RAND() LIMIT %lu"
|
||||
" LIMIT %lu"
|
||||
")"
|
||||
") AS UsrsToFollow"
|
||||
// Get only MaxUsrsToShow users
|
||||
|
@ -395,12 +404,12 @@ static unsigned long Fol_GetUsrsToFollow (unsigned long MaxUsrsToShow,
|
|||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
SubQuery3,
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
MaxUsrsToShow * 3, // 3/4 likely known users
|
||||
MaxUsrsToShow * 2, // 2/3 likely known users
|
||||
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
SubQuery4,
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
MaxUsrsToShow, // 1/4 likely unknown users
|
||||
MaxUsrsToShow, // 1/3 likely unknown users
|
||||
|
||||
MaxUsrsToShow);
|
||||
}
|
||||
|
|
|
@ -1020,6 +1020,8 @@ static void Lay_ShowLeftColumn (void)
|
|||
static void Lay_ShowRightColumn (void)
|
||||
{
|
||||
extern const char *Txt_If_you_have_an_Android_device_try_SWADroid;
|
||||
struct timeval tv1,tv2;
|
||||
long tv_usecs;
|
||||
|
||||
/***** Banners *****/
|
||||
Ban_WriteMenuWithBanners ();
|
||||
|
@ -1044,9 +1046,23 @@ static void Lay_ShowRightColumn (void)
|
|||
}
|
||||
else if (Gbl.Usrs.Me.Logged) // I am logged
|
||||
{
|
||||
gettimeofday (&tv1,NULL);
|
||||
|
||||
/***** Suggest one user to follow *****/
|
||||
fprintf (Gbl.F.Out,"<div class=\"LEFT_RIGHT_CELL\">");
|
||||
Fol_SuggestUsrsToFollowMainZoneOnRightColumn ();
|
||||
|
||||
gettimeofday (&tv2,NULL);
|
||||
tv_usecs = (tv2.tv_sec - tv1.tv_sec ) * 1E6 +
|
||||
(tv2.tv_usec - tv1.tv_usec);
|
||||
|
||||
DB_QueryINSERT ("can not debug",
|
||||
"INSERT INTO debug"
|
||||
" (DebugTime,Txt)"
|
||||
" VALUES"
|
||||
" (NOW(),'Fol_SuggestUsrsToFollowMainZoneOnRightColumn: %ld us')",
|
||||
tv_usecs);
|
||||
|
||||
fprintf (Gbl.F.Out,"</div>");
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue