mirror of
https://github.com/acanas/swad-core.git
synced 2024-06-03 07:15:26 +02:00
Version18.86.3
This commit is contained in:
parent
155718f39e
commit
d8b7552c07
161
sql/cambios.sql
161
sql/cambios.sql
|
@ -12691,3 +12691,164 @@ ALTER TABLE usr_data CHANGE COLUMN BasicProfileVisibility BaPrfVisibility ENUM('
|
||||||
ALTER TABLE usr_data DROP COLUMN ExtendedProfileVisibility;
|
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 ********************************/
|
/****************************** Debug example ********************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/*
|
/*
|
||||||
DB_QueryINSERT ("can not debug",
|
struct timeval tv1,tv2;
|
||||||
"INSERT INTO debug"
|
long tv_usecs;
|
||||||
" (DebugTime,Txt)"
|
|
||||||
" VALUES"
|
gettimeofday (&tv1,NULL);
|
||||||
" (NOW(),'ActCod = %ld')",
|
|
||||||
Act_GetActCod (Gbl.Action.Act));
|
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 ************************************/
|
/*********************************** TODO ************************************/
|
||||||
|
@ -459,12 +471,11 @@ En OpenSWAD:
|
||||||
ps2pdf source.ps destination.pdf
|
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 CSS_FILE "swad18.85.1.css"
|
||||||
#define JS_FILE "swad18.85.js"
|
#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.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.
|
Version 18.86.1: Mar 23, 2019 Changes in writing of a floating point number.
|
||||||
Mask applied to figure about privacy.
|
Mask applied to figure about privacy.
|
||||||
|
|
|
@ -368,19 +368,28 @@ static unsigned long Fol_GetUsrsToFollow (unsigned long MaxUsrsToShow,
|
||||||
")"
|
")"
|
||||||
" UNION "
|
" UNION "
|
||||||
"("
|
"("
|
||||||
/***** Likely unknown users *****/
|
/***** Likely unknown userd *****/
|
||||||
// 4. Add some likely unknown random users
|
// 4. Add some likely unknown random user
|
||||||
"SELECT UsrCod FROM usr_data"
|
// Be careful with the method to get some random users
|
||||||
" WHERE UsrCod<>%ld"
|
// from the big table of users.
|
||||||
" AND Surname1<>''" // Surname 1 not empty
|
// It's much faster getting a random code and then get the first users
|
||||||
" AND FirstName<>''" // First name not empty
|
// 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
|
"%s" // SubQuery4
|
||||||
// Do not select my followed
|
// Do not select my followed
|
||||||
" AND UsrCod NOT IN"
|
" AND usr_data.UsrCod NOT IN"
|
||||||
" (SELECT FollowedCod FROM usr_follow"
|
" (SELECT FollowedCod FROM usr_follow"
|
||||||
" WHERE FollowerCod=%ld)"
|
" WHERE FollowerCod=%ld)"
|
||||||
|
" AND usr_data.UsrCod>=random_usr.RandomUsrCod" // random user code could not exists in table of users
|
||||||
// Get only MaxUsrsToShow users
|
// Get only MaxUsrsToShow users
|
||||||
" ORDER BY RAND() LIMIT %lu"
|
" LIMIT %lu"
|
||||||
")"
|
")"
|
||||||
") AS UsrsToFollow"
|
") AS UsrsToFollow"
|
||||||
// Get only MaxUsrsToShow users
|
// Get only MaxUsrsToShow users
|
||||||
|
@ -395,12 +404,12 @@ static unsigned long Fol_GetUsrsToFollow (unsigned long MaxUsrsToShow,
|
||||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||||
SubQuery3,
|
SubQuery3,
|
||||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||||
MaxUsrsToShow * 3, // 3/4 likely known users
|
MaxUsrsToShow * 2, // 2/3 likely known users
|
||||||
|
|
||||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||||
SubQuery4,
|
SubQuery4,
|
||||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||||
MaxUsrsToShow, // 1/4 likely unknown users
|
MaxUsrsToShow, // 1/3 likely unknown users
|
||||||
|
|
||||||
MaxUsrsToShow);
|
MaxUsrsToShow);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1020,6 +1020,8 @@ static void Lay_ShowLeftColumn (void)
|
||||||
static void Lay_ShowRightColumn (void)
|
static void Lay_ShowRightColumn (void)
|
||||||
{
|
{
|
||||||
extern const char *Txt_If_you_have_an_Android_device_try_SWADroid;
|
extern const char *Txt_If_you_have_an_Android_device_try_SWADroid;
|
||||||
|
struct timeval tv1,tv2;
|
||||||
|
long tv_usecs;
|
||||||
|
|
||||||
/***** Banners *****/
|
/***** Banners *****/
|
||||||
Ban_WriteMenuWithBanners ();
|
Ban_WriteMenuWithBanners ();
|
||||||
|
@ -1044,9 +1046,23 @@ static void Lay_ShowRightColumn (void)
|
||||||
}
|
}
|
||||||
else if (Gbl.Usrs.Me.Logged) // I am logged
|
else if (Gbl.Usrs.Me.Logged) // I am logged
|
||||||
{
|
{
|
||||||
|
gettimeofday (&tv1,NULL);
|
||||||
|
|
||||||
/***** Suggest one user to follow *****/
|
/***** Suggest one user to follow *****/
|
||||||
fprintf (Gbl.F.Out,"<div class=\"LEFT_RIGHT_CELL\">");
|
fprintf (Gbl.F.Out,"<div class=\"LEFT_RIGHT_CELL\">");
|
||||||
Fol_SuggestUsrsToFollowMainZoneOnRightColumn ();
|
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>");
|
fprintf (Gbl.F.Out,"</div>");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user