Version 15.77

This commit is contained in:
Antonio Cañas Vargas 2015-12-28 19:22:56 +01:00
parent c0ba17bbb0
commit 1ea6c54d86
8 changed files with 101 additions and 12 deletions

View File

@ -11181,4 +11181,11 @@ UPDATE timetable_crs SET Hour=Hour+2;
UPDATE timetable_tut SET Hour=Hour+2;
SELECT COUNT(DISTINCT crs_usr.UsrCod) FROM institutions,centres,degrees,courses,crs_usr WHERE institutions.CtyCod='724' AND institutions.InsCod=centres.InsCod AND centres.CtrCod=degrees.CtrCod AND degrees.DegCod=courses.DegCod AND courses.CrsCod=crs_usr.CrsCod;
SELECT COUNT(DISTINCT crs_usr.UsrCod) FROM institutions,centres,degrees,courses,crs_usr WHERE institutions.CtyCod='724' AND institutions.InsCod=centres.InsCod AND centres.CtrCod=degrees.CtrCod AND degrees.DegCod=courses.DegCod AND courses.CrsCod=crs_usr.CrsCod;
----- SWAD 15.77 (2015/12/28) -----
CREATE TABLE IF NOT EXISTS social (SocCod BIGINT NOT NULL AUTO_INCREMENT,SocialEvent TINYINT NOT NULL,UsrCod INT NOT NULL,CtyCod INT NOT NULL DEFAULT -1,InsCod INT NOT NULL DEFAULT -1,CtrCod INT NOT NULL DEFAULT -1,DegCod INT NOT NULL DEFAULT -1,CrsCod INT NOT NULL DEFAULT -1,Cod INT NOT NULL DEFAULT -1,TimeEvent DATETIME NOT NULL,Status TINYINT NOT NULL DEFAULT 0,UNIQUE INDEX(SocCod),INDEX(SocialEvent),INDEX(UsrCod),INDEX(TimeEvent));

View File

@ -913,6 +913,25 @@ CREATE TABLE IF NOT EXISTS sessions (
UNIQUE INDEX(SessionId),
INDEX(UsrCod));
--
-- Table social: stores social events (timeline)
--
CREATE TABLE IF NOT EXISTS social (
SocCod BIGINT NOT NULL AUTO_INCREMENT,
SocialEvent TINYINT NOT NULL,
UsrCod INT NOT NULL,
CtyCod INT NOT NULL DEFAULT -1,
InsCod INT NOT NULL DEFAULT -1,
CtrCod INT NOT NULL DEFAULT -1,
DegCod INT NOT NULL DEFAULT -1,
CrsCod INT NOT NULL DEFAULT -1,
Cod INT NOT NULL DEFAULT -1,
TimeEvent DATETIME NOT NULL,
Status TINYINT NOT NULL DEFAULT 0,
UNIQUE INDEX(SocCod),
INDEX(SocialEvent),
INDEX(UsrCod),
INDEX(TimeEvent));
--
-- Table sta_degrees: stores statistics about degrees
--
CREATE TABLE IF NOT EXISTS sta_degrees (

View File

@ -114,12 +114,17 @@
/****************************** Public constants *****************************/
/*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 15.76.1 (2015-12-28)"
#define Log_PLATFORM_VERSION "SWAD 15.77 (2015-12-28)"
#define CSS_FILE "swad15.75.css"
// 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
/*
Version 15.77: Dec 28, 2015 New table in database for social activity. (188287 lines)
2 changes necessary in database:
CREATE TABLE IF NOT EXISTS social (SocCod BIGINT NOT NULL AUTO_INCREMENT,SocialEvent TINYINT NOT NULL,UsrCod INT NOT NULL,CtyCod INT NOT NULL DEFAULT -1,InsCod INT NOT NULL DEFAULT -1,CtrCod INT NOT NULL DEFAULT -1,DegCod INT NOT NULL DEFAULT -1,CrsCod INT NOT NULL DEFAULT -1,Cod INT NOT NULL DEFAULT -1,TimeEvent DATETIME NOT NULL,Status TINYINT NOT NULL DEFAULT 0,UNIQUE INDEX(SocCod),INDEX(SocialEvent),INDEX(UsrCod),INDEX(TimeEvent));
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1490','es','N','Ver actividad social (timeline)');
Version 15.76.1: Dec 28, 2015 Refactoring in swad_database. (187926 lines)
Version 15.76: Dec 28, 2015 New option for social network activity (timeline).
New module swad_social. (187807 lines)

View File

@ -1935,6 +1935,43 @@ mysql> DESCRIBE sessions;
"UNIQUE INDEX(SessionId),"
"INDEX(UsrCod))");
/***** Table social *****/
/*
mysql> DESCRIBE social;
+-------------+------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+------------+------+-----+---------+----------------+
| SocCod | bigint(20) | NO | PRI | NULL | auto_increment |
| SocialEvent | tinyint(4) | NO | MUL | NULL | |
| UsrCod | int(11) | NO | MUL | NULL | |
| CtyCod | int(11) | NO | | -1 | |
| InsCod | int(11) | NO | | -1 | |
| CtrCod | int(11) | NO | | -1 | |
| DegCod | int(11) | NO | | -1 | |
| CrsCod | int(11) | NO | | -1 | |
| Cod | int(11) | NO | | -1 | |
| TimeEvent | datetime | NO | MUL | NULL | |
| Status | tinyint(4) | NO | | 0 | |
+-------------+------------+------+-----+---------+----------------+
11 rows in set (0.00 sec)
*/
DB_CreateTable ("CREATE TABLE IF NOT EXISTS social ("
"SocCod BIGINT NOT NULL AUTO_INCREMENT,"
"SocialEvent TINYINT NOT NULL,"
"UsrCod INT NOT NULL,"
"CtyCod INT NOT NULL DEFAULT -1,"
"InsCod INT NOT NULL DEFAULT -1,"
"CtrCod INT NOT NULL DEFAULT -1,"
"DegCod INT NOT NULL DEFAULT -1,"
"CrsCod INT NOT NULL DEFAULT -1,"
"Cod INT NOT NULL DEFAULT -1,"
"TimeEvent DATETIME NOT NULL,"
"Status TINYINT NOT NULL DEFAULT 0,"
"UNIQUE INDEX(SocCod),"
"INDEX(SocialEvent),"
"INDEX(UsrCod),"
"INDEX(TimeEvent))");
/***** Table sta_degrees *****/
/*
mysql> DESCRIBE sta_degrees;

View File

@ -1273,11 +1273,13 @@ static void For_GetPstData (long PstCod,long *UsrCod,time_t *CreatTimeUTC,
}
/*****************************************************************************/
/********************* Show brief subject of a forum post ********************/
/***************** Get summary and content for a forum post ******************/
/*****************************************************************************/
// This function may be called inside a web service, so don't report error
void For_GetNotifForumPst (char *SummaryStr,char **ContentStr,long PstCod,unsigned MaxChars,bool GetContent)
void For_GetSummaryAndContentForumPst (char *SummaryStr,char **ContentStr,
long PstCod,
unsigned MaxChars,bool GetContent)
{
char Query[512];
MYSQL_RES *mysql_res;

View File

@ -109,7 +109,9 @@ unsigned long For_GetNumPostsUsr (long UsrCod);
void For_DeleteThrFromReadThrs (long ThrCod);
void For_RemoveUsrFromReadThrs (long UsrCod);
void For_GetNotifForumPst (char *SummaryStr,char **ContentStr,long PstCod,unsigned MaxChars,bool GetContent);
void For_GetSummaryAndContentForumPst (char *SummaryStr,char **ContentStr,
long PstCod,
unsigned MaxChars,bool GetContent);
void For_PutAllHiddenParamsForum (void);
void For_SetForumTypeAndRestrictAccess (void);

View File

@ -535,7 +535,7 @@ void Ntf_ShowMyNotifications (void)
fprintf (Gbl.F.Out,"-");
fprintf (Gbl.F.Out,"</td>");
/* Write date and time (DateTime holds date and time in YYYYMMDDHHMMSS format) */
/* Write date and time */
Msg_WriteMsgDate (DateTimeUTC,ClassBackground);
/* Write status (sent by email / pending to be sent by email) */
@ -722,7 +722,7 @@ Ntf_StatusTxt_t Ntf_GetStatusTxtFromStatusBits (Ntf_Status_t Status)
}
/*****************************************************************************/
/********************* Mark possible notification as seen ********************/
/******************* Get notification summary and content ********************/
/*****************************************************************************/
void Ntf_GetNotifSummaryAndContent (char *SummaryStr,char **ContentStr,Ntf_NotifyEvent_t NotifyEvent,
@ -759,7 +759,7 @@ void Ntf_GetNotifSummaryAndContent (char *SummaryStr,char **ContentStr,Ntf_Notif
break;
case Ntf_EVENT_FORUM_POST_COURSE:
case Ntf_EVENT_FORUM_REPLY:
For_GetNotifForumPst (SummaryStr,ContentStr,Cod,MaxChars,GetContent);
For_GetSummaryAndContentForumPst (SummaryStr,ContentStr,Cod,MaxChars,GetContent);
break;
case Ntf_EVENT_MESSAGE:
Msg_GetNotifMessage (SummaryStr,ContentStr,Cod,MaxChars,GetContent);
@ -774,10 +774,6 @@ void Ntf_GetNotifSummaryAndContent (char *SummaryStr,char **ContentStr,Ntf_Notif
Fol_GetNotifFollower (SummaryStr,ContentStr);
break;
}
//if (Gbl.WebService.IsWebService)
/* Set the notification as seen, because I can see it in an extern application */
// Ntf_SetNotifAsSeen (NotifyEvent,Cod,UsrCod);
}
/*****************************************************************************/

View File

@ -27613,6 +27613,27 @@ const char *Txt_posts =
"posts";
#endif
const char *Txt_Public_activity =
#if L==1
"Activitat p&uacute;blica";
#elif L==2
"&Ouml;ffentliche Aktivit&auml;t";
#elif L==3
"Public activity";
#elif L==4
"Actividad p&uacute;blica";
#elif L==5
"Activit&eacute; public";
#elif L==6
"Actividad p&uacute;blica"; // Okoteve traducción
#elif L==7
"Attivit&agrave; pubblica";
#elif L==8
"Aktywno&sacute;&cacute; publiczne";
#elif L==9
"Atividade p&uacute;blica";
#endif
const char *Txt_public_FILES =
#if L==1
"p&uacute;blics";