Version 20.50.2: Mar 15, 2021 Global announcements database table renamed.

This commit is contained in:
acanas 2021-03-15 18:45:09 +01:00
parent 93713a0bc6
commit c6aa4fe3cc
4 changed files with 77 additions and 50 deletions

View File

@ -40,16 +40,9 @@ CREATE TABLE IF NOT EXISTS agd_agendas (
UNIQUE INDEX(AgdCod), UNIQUE INDEX(AgdCod),
INDEX(UsrCod,Public)); INDEX(UsrCod,Public));
-- --
-- Table ann_seen: stores users who have seen global announcements -- Table ann_announcements: stores global announcements
-- --
CREATE TABLE IF NOT EXISTS ann_seen ( CREATE TABLE IF NOT EXISTS ann_announcements (
AnnCod INT NOT NULL,
UsrCod INT NOT NULL,
UNIQUE INDEX(AnnCod,UsrCod));
--
-- Table announcements: stores global announcements
--
CREATE TABLE IF NOT EXISTS announcements (
AnnCod INT NOT NULL AUTO_INCREMENT, AnnCod INT NOT NULL AUTO_INCREMENT,
Status TINYINT NOT NULL DEFAULT 0, Status TINYINT NOT NULL DEFAULT 0,
Roles INT NOT NULL DEFAULT 0, Roles INT NOT NULL DEFAULT 0,
@ -58,6 +51,13 @@ CREATE TABLE IF NOT EXISTS announcements (
UNIQUE INDEX(AnnCod), UNIQUE INDEX(AnnCod),
INDEX(Status)); INDEX(Status));
-- --
-- Table ann_seen: stores users who have seen global announcements
--
CREATE TABLE IF NOT EXISTS ann_seen (
AnnCod INT NOT NULL,
UsrCod INT NOT NULL,
UNIQUE INDEX(AnnCod,UsrCod));
--
-- Table asg_grp: stores the groups associated to assigments -- Table asg_grp: stores the groups associated to assigments
-- --
CREATE TABLE IF NOT EXISTS asg_grp ( CREATE TABLE IF NOT EXISTS asg_grp (

View File

@ -99,8 +99,12 @@ void Ann_ShowAllAnnouncements (void)
{ {
/* Select all announcements */ /* Select all announcements */
NumAnnouncements = (unsigned) DB_QuerySELECT (&mysql_res,"can not get announcements", NumAnnouncements = (unsigned) DB_QuerySELECT (&mysql_res,"can not get announcements",
"SELECT AnnCod,Status,Roles,Subject,Content" "SELECT AnnCod," // row[0]
" FROM announcements" "Status," // row[1]
"Roles," // row[2]
"Subject," // row[3]
"Content" // row[4]
" FROM ann_announcements"
" ORDER BY AnnCod DESC"); " ORDER BY AnnCod DESC");
} }
else if (Gbl.Usrs.Me.Logged) else if (Gbl.Usrs.Me.Logged)
@ -108,8 +112,12 @@ void Ann_ShowAllAnnouncements (void)
/* Select only announcements I can see */ /* Select only announcements I can see */
Rol_GetRolesInAllCrssIfNotYetGot (&Gbl.Usrs.Me.UsrDat); Rol_GetRolesInAllCrssIfNotYetGot (&Gbl.Usrs.Me.UsrDat);
NumAnnouncements = (unsigned) DB_QuerySELECT (&mysql_res,"can not get announcements", NumAnnouncements = (unsigned) DB_QuerySELECT (&mysql_res,"can not get announcements",
"SELECT AnnCod,Status,Roles,Subject,Content" "SELECT AnnCod," // row[0]
" FROM announcements" "Status," // row[1]
"Roles," // row[2]
"Subject," // row[3]
"Content" // row[4]
" FROM ann_announcements"
" WHERE (Roles&%u)<>0 " // All my roles in different courses " WHERE (Roles&%u)<>0 " // All my roles in different courses
" ORDER BY AnnCod DESC", " ORDER BY AnnCod DESC",
(unsigned) Gbl.Usrs.Me.UsrDat.Roles.InCrss); (unsigned) Gbl.Usrs.Me.UsrDat.Roles.InCrss);
@ -118,8 +126,12 @@ void Ann_ShowAllAnnouncements (void)
{ {
/* Select only active announcements for unknown users */ /* Select only active announcements for unknown users */
NumAnnouncements = (unsigned) DB_QuerySELECT (&mysql_res,"can not get announcements", NumAnnouncements = (unsigned) DB_QuerySELECT (&mysql_res,"can not get announcements",
"SELECT AnnCod,Status,Roles,Subject,Content" "SELECT AnnCod," // row[0]
" FROM announcements" "Status," // row[1]
"Roles," // row[2]
"Subject," // row[3]
"Content" // row[4]
" FROM ann_announcements"
" WHERE Status=%u AND (Roles&%u)<>0 " " WHERE Status=%u AND (Roles&%u)<>0 "
" ORDER BY AnnCod DESC", " ORDER BY AnnCod DESC",
(unsigned) Ann_ACTIVE_ANNOUNCEMENT, (unsigned) Ann_ACTIVE_ANNOUNCEMENT,
@ -219,10 +231,16 @@ void Ann_ShowMyAnnouncementsNotMarkedAsSeen (void)
/***** Select announcements not seen *****/ /***** Select announcements not seen *****/
Rol_GetRolesInAllCrssIfNotYetGot (&Gbl.Usrs.Me.UsrDat); Rol_GetRolesInAllCrssIfNotYetGot (&Gbl.Usrs.Me.UsrDat);
NumAnnouncements = (unsigned) DB_QuerySELECT (&mysql_res,"can not get announcements", NumAnnouncements = (unsigned) DB_QuerySELECT (&mysql_res,"can not get announcements",
"SELECT AnnCod,Subject,Content FROM announcements" "SELECT AnnCod," // row[0]
" WHERE Status=%u AND (Roles&%u)<>0 " // All my roles in different courses "Subject," // row[1]
" AND AnnCod NOT IN" "Content" // row[2]
" (SELECT AnnCod FROM ann_seen WHERE UsrCod=%ld)" " FROM ann_announcements"
" WHERE Status=%u"
" AND (Roles&%u)<>0 " // All my roles in different courses
" AND AnnCod NOT IN"
" (SELECT AnnCod"
" FROM ann_seen"
" WHERE UsrCod=%ld)"
" ORDER BY AnnCod DESC", // Newest first " ORDER BY AnnCod DESC", // Newest first
(unsigned) Ann_ACTIVE_ANNOUNCEMENT, (unsigned) Ann_ACTIVE_ANNOUNCEMENT,
(unsigned) Gbl.Usrs.Me.UsrDat.Roles.InCrss, (unsigned) Gbl.Usrs.Me.UsrDat.Roles.InCrss,
@ -502,7 +520,7 @@ static void Ann_CreateAnnouncement (unsigned Roles,const char *Subject,const cha
{ {
/***** Select announcements not seen *****/ /***** Select announcements not seen *****/
DB_QueryINSERT ("can not create announcement", DB_QueryINSERT ("can not create announcement",
"INSERT INTO announcements" "INSERT INTO ann_announcements"
" (Roles,Subject,Content)" " (Roles,Subject,Content)"
" VALUES" " VALUES"
" (%u,'%s','%s')", " (%u,'%s','%s')",
@ -522,9 +540,11 @@ void Ann_HideActiveAnnouncement (void)
/***** Set global announcement as hidden *****/ /***** Set global announcement as hidden *****/
DB_QueryUPDATE ("can not hide announcement", DB_QueryUPDATE ("can not hide announcement",
"UPDATE announcements SET Status=%u" "UPDATE ann_announcements"
" SET Status=%u"
" WHERE AnnCod=%ld", " WHERE AnnCod=%ld",
(unsigned) Ann_OBSOLETE_ANNOUNCEMENT,AnnCod); (unsigned) Ann_OBSOLETE_ANNOUNCEMENT,
AnnCod);
} }
/*****************************************************************************/ /*****************************************************************************/
@ -540,9 +560,11 @@ void Ann_RevealHiddenAnnouncement (void)
/***** Set global announcement as shown *****/ /***** Set global announcement as shown *****/
DB_QueryUPDATE ("can not reveal announcement", DB_QueryUPDATE ("can not reveal announcement",
"UPDATE announcements SET Status=%u" "UPDATE ann_announcements"
" SET Status=%u"
" WHERE AnnCod=%ld", " WHERE AnnCod=%ld",
(unsigned) Ann_ACTIVE_ANNOUNCEMENT,AnnCod); (unsigned) Ann_ACTIVE_ANNOUNCEMENT,
AnnCod);
} }
/*****************************************************************************/ /*****************************************************************************/
@ -559,7 +581,8 @@ void Ann_RemoveAnnouncement (void)
/***** Remove announcement *****/ /***** Remove announcement *****/
DB_QueryDELETE ("can not remove announcement", DB_QueryDELETE ("can not remove announcement",
"DELETE FROM announcements WHERE AnnCod=%ld", "DELETE FROM ann_announcements"
" WHERE AnnCod=%ld",
AnnCod); AnnCod);
/***** Remove users who have seen the announcement *****/ /***** Remove users who have seen the announcement *****/
@ -605,6 +628,7 @@ void Ann_RemoveUsrFromSeenAnnouncements (long UsrCod)
{ {
/***** Remove user from seen announcements *****/ /***** Remove user from seen announcements *****/
DB_QueryDELETE ("can not remove user from seen announcements", DB_QueryDELETE ("can not remove user from seen announcements",
"DELETE FROM ann_seen WHERE UsrCod=%ld", "DELETE FROM ann_seen"
" WHERE UsrCod=%ld",
UsrCod); UsrCod);
} }

View File

@ -600,12 +600,15 @@ TODO: Salvador Romero Cort
TODO: FIX BUG, URGENT! En las fechas como parámetro Dat_WriteParamsIniEndDates(), por ejemplo al cambiar el color de la gráfica de accesos por día y hora, no se respeta la zona horaria. TODO: FIX BUG, URGENT! En las fechas como parámetro Dat_WriteParamsIniEndDates(), por ejemplo al cambiar el color de la gráfica de accesos por día y hora, no se respeta la zona horaria.
*/ */
#define Log_PLATFORM_VERSION "SWAD 20.50.1 (2021-03-15)" #define Log_PLATFORM_VERSION "SWAD 20.50.2 (2021-03-15)"
#define CSS_FILE "swad20.45.css" #define CSS_FILE "swad20.45.css"
#define JS_FILE "swad20.6.2.js" #define JS_FILE "swad20.6.2.js"
/* /*
TODO: Rename CENTRE to CENTER in help wiki. TODO: Rename CENTRE to CENTER in help wiki.
Version 20.50.2: Mar 15, 2021 Global announcements database table renamed. (307166 lines)
1 change necessary in database:
RENAME TABLE announcements TO ann_announcements;
Version 20.50.1: Mar 15, 2021 Agendas database table renamed. (307166 lines) Version 20.50.1: Mar 15, 2021 Agendas database table renamed. (307166 lines)
1 change necessary in database: 1 change necessary in database:

View File

@ -175,6 +175,29 @@ mysql> DESCRIBE agd_agendas;
"UNIQUE INDEX(AgdCod)," "UNIQUE INDEX(AgdCod),"
"INDEX(UsrCod,Public,Hidden))"); "INDEX(UsrCod,Public,Hidden))");
/***** Table ann_announcements *****/
/*
mysql> DESCRIBE ann_announcements;
+---------+------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+------------+------+-----+---------+----------------+
| AnnCod | int(11) | NO | PRI | NULL | auto_increment |
| Status | tinyint(4) | NO | MUL | 0 | |
| Roles | int(11) | NO | | 0 | |
| Subject | text | NO | | NULL | |
| Content | text | NO | | NULL | |
+---------+------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)
*/
DB_CreateTable ("CREATE TABLE IF NOT EXISTS ann_announcements ("
"AnnCod INT NOT NULL AUTO_INCREMENT,"
"Status TINYINT NOT NULL DEFAULT 0,"
"Roles INT NOT NULL DEFAULT 0,"
"Subject TEXT NOT NULL," // Cns_MAX_BYTES_SUBJECT
"Content TEXT NOT NULL," // Cns_MAX_BYTES_TEXT
"UNIQUE INDEX(AnnCod),"
"INDEX(Status))");
/***** Table ann_seen *****/ /***** Table ann_seen *****/
/* /*
mysql> DESCRIBE ann_seen; mysql> DESCRIBE ann_seen;
@ -191,29 +214,6 @@ mysql> DESCRIBE ann_seen;
"UsrCod INT NOT NULL," "UsrCod INT NOT NULL,"
"UNIQUE INDEX(AnnCod,UsrCod))"); "UNIQUE INDEX(AnnCod,UsrCod))");
/***** Table announcements *****/
/*
mysql> DESCRIBE announcements;
+---------+------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+------------+------+-----+---------+----------------+
| AnnCod | int(11) | NO | PRI | NULL | auto_increment |
| Status | tinyint(4) | NO | MUL | 0 | |
| Roles | int(11) | NO | | 0 | |
| Subject | text | NO | | NULL | |
| Content | text | NO | | NULL | |
+---------+------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)
*/
DB_CreateTable ("CREATE TABLE IF NOT EXISTS announcements ("
"AnnCod INT NOT NULL AUTO_INCREMENT,"
"Status TINYINT NOT NULL DEFAULT 0,"
"Roles INT NOT NULL DEFAULT 0,"
"Subject TEXT NOT NULL," // Cns_MAX_BYTES_SUBJECT
"Content TEXT NOT NULL," // Cns_MAX_BYTES_TEXT
"UNIQUE INDEX(AnnCod),"
"INDEX(Status))");
/***** Table asg_grp *****/ /***** Table asg_grp *****/
/* /*
mysql> DESCRIBE asg_grp; mysql> DESCRIBE asg_grp;