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),
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 (
AnnCod INT NOT NULL,
UsrCod INT NOT NULL,
UNIQUE INDEX(AnnCod,UsrCod));
--
-- Table announcements: stores global announcements
--
CREATE TABLE IF NOT EXISTS announcements (
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,
@ -58,6 +51,13 @@ CREATE TABLE IF NOT EXISTS announcements (
UNIQUE INDEX(AnnCod),
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
--
CREATE TABLE IF NOT EXISTS asg_grp (

View File

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

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.
*/
#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 JS_FILE "swad20.6.2.js"
/*
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)
1 change necessary in database:

View File

@ -175,6 +175,29 @@ mysql> DESCRIBE agd_agendas;
"UNIQUE INDEX(AgdCod),"
"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 *****/
/*
mysql> DESCRIBE ann_seen;
@ -191,29 +214,6 @@ mysql> DESCRIBE ann_seen;
"UsrCod INT NOT NULL,"
"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 *****/
/*
mysql> DESCRIBE asg_grp;