Version 14.64

This commit is contained in:
Antonio Cañas Vargas 2015-01-22 01:39:00 +01:00
parent 4e4d86cf35
commit 5e2be20223
6 changed files with 101 additions and 149 deletions

View File

@ -281,9 +281,6 @@ CREATE TABLE IF NOT EXISTS crs_grp_types (
CREATE TABLE IF NOT EXISTS crs_grp_usr (
GrpCod INT NOT NULL,
UsrCod INT NOT NULL,
LastAccDownloadGrp DATETIME NOT NULL,
LastAccCommonGrp DATETIME NOT NULL,
LastAccMarksGrp DATETIME NOT NULL,
UNIQUE INDEX(GrpCod,UsrCod),
INDEX(GrpCod),
INDEX(UsrCod));
@ -347,11 +344,6 @@ CREATE TABLE IF NOT EXISTS crs_usr (
UsrCod INT NOT NULL,
Role TINYINT NOT NULL DEFAULT 0,
Accepted ENUM('N','Y') NOT NULL DEFAULT 'N',
LastAccDownloadCrs DATETIME NOT NULL,
LastAccCommonCrs DATETIME NOT NULL,
LastAccMyWorks DATETIME NOT NULL,
LastAccCrsWorks DATETIME NOT NULL,
LastAccMarksCrs DATETIME NOT NULL,
LastDowGrpCod INT NOT NULL DEFAULT -1,
LastComGrpCod INT NOT NULL DEFAULT -1,
LastAssGrpCod INT NOT NULL DEFAULT -1,

View File

@ -39,12 +39,34 @@
/****************************** Public constants *****************************/
/*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 14.63.5 (2015/01/22)"
#define Log_PLATFORM_VERSION "SWAD 14.64 (2015/01/22)"
// 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 | tail -1
/*
Version 14.63.5: Jan 22, 2015 Changes in last accesses to file browser (briefcases). (? lines)
Version 14.64: Jan 22, 2015 Changes in last accesses to group file browsers. (175510 lines)
6 changes necessary in database:
INSERT INTO file_browser_last (UsrCod,FileBrowser,Cod,LastClick) SELECT UsrCod,'11',GrpCod,LastAccDownloadGrp FROM crs_grp_usr WHERE LastAccDownloadGrp>0;
INSERT INTO file_browser_last (UsrCod,FileBrowser,Cod,LastClick) SELECT UsrCod,'5',GrpCod,LastAccCommonGrp FROM crs_grp_usr WHERE LastAccCommonGrp>0;
INSERT INTO file_browser_last (UsrCod,FileBrowser,Cod,LastClick) SELECT UsrCod,'13',GrpCod,LastAccCommonGrp FROM crs_grp_usr WHERE LastAccMarksGrp>0;
ALTER TABLE crs_grp_usr DROP COLUMN LastAccDownloadGrp;
ALTER TABLE crs_grp_usr DROP COLUMN LastAccCommonGrp;
ALTER TABLE crs_grp_usr DROP COLUMN LastAccMarksGrp;
Version 14.63.6: Jan 22, 2015 Changes in last accesses to course file browsers. (175588 lines)
10 changes necessary in database:
INSERT INTO file_browser_last (UsrCod,FileBrowser,Cod,LastClick) SELECT UsrCod,'3',CrsCod,LastAccDownloadCrs FROM crs_usr WHERE LastAccDownloadCrs>0;
INSERT INTO file_browser_last (UsrCod,FileBrowser,Cod,LastClick) SELECT UsrCod,'4',CrsCod,LastAccCommonCrs FROM crs_usr WHERE LastAccCommonCrs>0;
INSERT INTO file_browser_last (UsrCod,FileBrowser,Cod,LastClick) SELECT UsrCod,'8',CrsCod,LastAccMarksCrs FROM crs_usr WHERE LastAccMarksCrs>0;
INSERT INTO file_browser_last (UsrCod,FileBrowser,Cod,LastClick) SELECT UsrCod,'14',CrsCod,LastAccMyWorks FROM crs_usr WHERE LastAccMyWorks>0;
INSERT INTO file_browser_last (UsrCod,FileBrowser,Cod,LastClick) SELECT UsrCod,'15',CrsCod,LastAccMyWorks FROM crs_usr WHERE LastAccCrsWorks>0;
ALTER TABLE crs_usr DROP COLUMN LastAccDownloadCrs;
ALTER TABLE crs_usr DROP COLUMN LastAccCommonCrs;
ALTER TABLE crs_usr DROP COLUMN LastAccMarksCrs;
ALTER TABLE crs_usr DROP COLUMN LastAccMyWorks;
ALTER TABLE crs_usr DROP COLUMN LastAccCrsWorks;
Version 14.63.5: Jan 22, 2015 Changes in last accesses to file browsers (briefcases). (? lines)
2 changes necessary in database:
INSERT INTO file_browser_last (UsrCod,FileBrowser,Cod,LastClick) SELECT UsrCod,'9','-1',LastAccBriefcase FROM usr_last WHERE LastAccBriefcase>0;
ALTER TABLE usr_last DROP COLUMN LastAccBriefcase;

View File

@ -629,23 +629,17 @@ mysql> DESCRIBE crs_grp_types;
/***** Table crs_grp_usr *****/
/*
mysql> DESCRIBE crs_grp_usr;
+--------------------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+----------+------+-----+---------+-------+
| GrpCod | int(11) | NO | PRI | NULL | |
| UsrCod | int(11) | NO | PRI | NULL | |
| LastAccDownloadGrp | datetime | NO | | NULL | |
| LastAccCommonGrp | datetime | NO | | NULL | |
| LastAccMarksGrp | datetime | NO | | NULL | |
+--------------------+----------+------+-----+---------+-------+
5 rows in set (0.00 sec)
+--------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+---------+------+-----+---------+-------+
| GrpCod | int(11) | NO | PRI | NULL | |
| UsrCod | int(11) | NO | PRI | NULL | |
+--------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)
*/
DB_CreateTable ("CREATE TABLE IF NOT EXISTS crs_grp_usr ("
"GrpCod INT NOT NULL,"
"UsrCod INT NOT NULL,"
"LastAccDownloadGrp DATETIME NOT NULL,"
"LastAccCommonGrp DATETIME NOT NULL,"
"LastAccMarksGrp DATETIME NOT NULL,"
"UNIQUE INDEX(GrpCod,UsrCod),INDEX(GrpCod),INDEX(UsrCod))");
/***** Table crs_info_read *****/
@ -763,40 +757,30 @@ mysql> DESCRIBE crs_records;
/***** Table crs_usr *****/
/*
mysql> DESCRIBE crs_usr;
+--------------------+---------------------------+------+-----+------------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+---------------------------+------+-----+------------+-------+
| CrsCod | int(11) | NO | PRI | -1 | |
| UsrCod | int(11) | NO | PRI | NULL | |
| Role | tinyint(4) | NO | PRI | 0 | |
| Accepted | enum('N','Y') | NO | | N | |
| LastAccDownloadCrs | datetime | NO | | NULL | |
| LastAccCommonCrs | datetime | NO | | NULL | |
| LastAccMyWorks | datetime | NO | | NULL | |
| LastAccCrsWorks | datetime | NO | | NULL | |
| LastAccMarksCrs | datetime | NO | | NULL | |
| LastDowGrpCod | int(11) | NO | | -1 | |
| LastComGrpCod | int(11) | NO | | -1 | |
| LastAssGrpCod | int(11) | NO | | -1 | |
| NumAccTst | int(11) | NO | | 0 | |
| LastAccTst | datetime | NO | | NULL | |
| NumQstsLastTst | int(11) | NO | | 0 | |
| UsrListType | enum('classphoto','list') | NO | | classphoto | |
| ColsClassPhoto | tinyint(4) | NO | | NULL | |
| ListWithPhotos | enum('N','Y') | NO | | Y | |
+--------------------+---------------------------+------+-----+------------+-------+
18 rows in set (0.02 sec)
+----------------+---------------------------+------+-----+------------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------+---------------------------+------+-----+------------+-------+
| CrsCod | int(11) | NO | PRI | -1 | |
| UsrCod | int(11) | NO | PRI | NULL | |
| Role | tinyint(4) | NO | PRI | 0 | |
| Accepted | enum('N','Y') | NO | | N | |
| LastDowGrpCod | int(11) | NO | | -1 | |
| LastComGrpCod | int(11) | NO | | -1 | |
| LastAssGrpCod | int(11) | NO | | -1 | |
| NumAccTst | int(11) | NO | | 0 | |
| LastAccTst | datetime | NO | | NULL | |
| NumQstsLastTst | int(11) | NO | | 0 | |
| UsrListType | enum('classphoto','list') | NO | | classphoto | |
| ColsClassPhoto | tinyint(4) | NO | | NULL | |
| ListWithPhotos | enum('N','Y') | NO | | Y | |
+----------------+---------------------------+------+-----+------------+-------+
13 rows in set (0.00 sec)
*/
DB_CreateTable ("CREATE TABLE IF NOT EXISTS crs_usr ("
"CrsCod INT NOT NULL DEFAULT -1,"
"UsrCod INT NOT NULL,"
"Role TINYINT NOT NULL DEFAULT 0,"
"Accepted ENUM('N','Y') NOT NULL DEFAULT 'N',"
"LastAccDownloadCrs DATETIME NOT NULL,"
"LastAccCommonCrs DATETIME NOT NULL,"
"LastAccMyWorks DATETIME NOT NULL,"
"LastAccCrsWorks DATETIME NOT NULL,"
"LastAccMarksCrs DATETIME NOT NULL,"
"LastDowGrpCod INT NOT NULL DEFAULT -1,"
"LastComGrpCod INT NOT NULL DEFAULT -1,"
"LastAssGrpCod INT NOT NULL DEFAULT -1,"

View File

@ -203,11 +203,9 @@ void Enr_RegisterUsrInCurrentCrs (struct UsrData *UsrDat,Rol_Role_t NewRole,
/***** Register user in current course in database *****/
sprintf (Query,"INSERT INTO crs_usr (CrsCod,UsrCod,Role,Accepted,"
"LastAccDownloadCrs,LastAccCommonCrs,LastAccMyWorks,LastAccCrsWorks,LastAccMarksCrs,"
"LastDowGrpCod,LastComGrpCod,LastAssGrpCod,NumAccTst,LastAccTst,NumQstsLastTst,"
"UsrListType,ColsClassPhoto,ListWithPhotos)"
" VALUES ('%ld','%ld','%u','%c',"
"'0000-00-00','0000-00-00','0000-00-00','0000-00-00','0000-00-00',"
"'-1','-1','-1','0','0000-00-00','0',"
"'%s','%u','%c')",
Gbl.CurrentCrs.Crs.CrsCod,UsrDat->UsrCod,(unsigned) NewRole,

View File

@ -119,6 +119,31 @@ static long Brw_FileBrowserForDB[Brw_NUM_TYPES_FILE_BROWSER] =
Brw_FILE_BRW_ADMIN_DOCUMENTS_INS, // Brw_FILE_BRW_SEE_DOCUMENTS_INS = 20,
Brw_FILE_BRW_ADMIN_DOCUMENTS_INS, // Brw_FILE_BRW_ADMIN_DOCUMENTS_INS = 21,
};
static long Brw_FileBrowserForLastAccess[Brw_NUM_TYPES_FILE_BROWSER] =
{
Brw_FILE_BRW_UNKNOWN, // Brw_FILE_BRW_UNKNOWN = 0,
Brw_FILE_BRW_ADMIN_DOCUMENTS_CRS, // Brw_FILE_BRW_SEE_DOCUMENTS_CRS = 1,
Brw_FILE_BRW_ADMIN_MARKS_CRS, // Brw_FILE_BRW_SEE_MARKS_CRS = 2,
Brw_FILE_BRW_ADMIN_DOCUMENTS_CRS, // Brw_FILE_BRW_ADMIN_DOCUMENTS_CRS = 3,
Brw_FILE_BRW_COMMON_CRS, // Brw_FILE_BRW_COMMON_CRS = 4,
Brw_FILE_BRW_COMMON_GRP, // Brw_FILE_BRW_COMMON_GRP = 5,
Brw_FILE_BRW_ASSIGNMENTS_USR, // Brw_FILE_BRW_WORKS_USR = 6,
Brw_FILE_BRW_ASSIGNMENTS_CRS, // Brw_FILE_BRW_WORKS_CRS = 7,
Brw_FILE_BRW_ADMIN_MARKS_CRS, // Brw_FILE_BRW_ADMIN_MARKS_CRS = 8,
Brw_FILE_BRW_BRIEFCASE_USR, // Brw_FILE_BRW_BRIEFCASE_USR = 9,
Brw_FILE_BRW_ADMIN_DOCUMENTS_GRP, // Brw_FILE_BRW_SEE_DOCUMENTS_GRP = 10,
Brw_FILE_BRW_ADMIN_DOCUMENTS_GRP, // Brw_FILE_BRW_ADMIN_DOCUMENTS_GRP = 11,
Brw_FILE_BRW_ADMIN_MARKS_GRP, // Brw_FILE_BRW_SEE_MARKS_GRP = 12,
Brw_FILE_BRW_ADMIN_MARKS_GRP, // Brw_FILE_BRW_ADMIN_MARKS_GRP = 13,
Brw_FILE_BRW_ASSIGNMENTS_USR, // Brw_FILE_BRW_ASSIGNMENTS_USR = 14,
Brw_FILE_BRW_ASSIGNMENTS_CRS, // Brw_FILE_BRW_ASSIGNMENTS_CRS = 15,
Brw_FILE_BRW_ADMIN_DOCUMENTS_DEG, // Brw_FILE_BRW_SEE_DOCUMENTS_DEG = 16,
Brw_FILE_BRW_ADMIN_DOCUMENTS_DEG, // Brw_FILE_BRW_ADMIN_DOCUMENTS_DEG = 17,
Brw_FILE_BRW_ADMIN_DOCUMENTS_CTR, // Brw_FILE_BRW_SEE_DOCUMENTS_CTR = 18,
Brw_FILE_BRW_ADMIN_DOCUMENTS_CTR, // Brw_FILE_BRW_ADMIN_DOCUMENTS_CTR = 19,
Brw_FILE_BRW_ADMIN_DOCUMENTS_INS, // Brw_FILE_BRW_SEE_DOCUMENTS_INS = 20,
Brw_FILE_BRW_ADMIN_DOCUMENTS_INS, // Brw_FILE_BRW_ADMIN_DOCUMENTS_INS = 21,
};
/*
const char *Brw_Licenses_DB[Brw_NUM_LICENSES] =
{
@ -1192,7 +1217,7 @@ static void Brw_PutFormToShowOrAdmin (Brw_ShowOrAdmin_t ShowOrAdmin,
Act_Action_t Action);
static void Brw_WriteFormFullTree (void);
static bool Brw_GetFullTreeFromForm (void);
static void Brw_GetAndUpdateDateLastAccFileBrowser (const char *FieldNameDB);
static void Brw_GetAndUpdateDateLastAccFileBrowser (void);
static long Brw_GetGrpLastAccZone (const char *FieldNameDB);
static void Brw_ResetFileBrowserSize (void);
static void Brw_CalcSizeOfDirRecursive (unsigned Level,char *Path);
@ -3183,65 +3208,41 @@ static void Brw_WriteTopBeforeShowingFileBrowser (void)
static void Brw_UpdateLastAccess (void)
{
/***** Get and update date and hour of last access to file browser *****/
Brw_GetAndUpdateDateLastAccFileBrowser ();
switch (Gbl.FileBrowser.Type)
{
case Brw_FILE_BRW_SEE_DOCUMENTS_INS:
case Brw_FILE_BRW_ADMIN_DOCUMENTS_INS:
case Brw_FILE_BRW_SEE_DOCUMENTS_CTR:
case Brw_FILE_BRW_ADMIN_DOCUMENTS_CTR:
case Brw_FILE_BRW_SEE_DOCUMENTS_DEG:
case Brw_FILE_BRW_ADMIN_DOCUMENTS_DEG:
Brw_GetAndUpdateDateLastAccFileBrowser ("");
break;
case Brw_FILE_BRW_SEE_DOCUMENTS_CRS:
case Brw_FILE_BRW_ADMIN_DOCUMENTS_CRS:
Brw_GetAndUpdateDateLastAccFileBrowser ("LastAccDownloadCrs");
if (Gbl.CurrentAct == ActChgToSeeDocCrs ||
Gbl.CurrentAct == ActChgToAdmDocCrs)// Update group of last access to a documents zone only when user changes zone
Brw_UpdateGrpLastAccZone ("LastDowGrpCod",-1L);
break;
case Brw_FILE_BRW_SEE_DOCUMENTS_GRP:
case Brw_FILE_BRW_ADMIN_DOCUMENTS_GRP:
Brw_GetAndUpdateDateLastAccFileBrowser ("LastAccDownloadGrp");
if (Gbl.CurrentAct == ActChgToSeeDocCrs ||
Gbl.CurrentAct == ActChgToAdmDocCrs)// Update group of last access to a documents zone only when user changes zone
Brw_UpdateGrpLastAccZone ("LastDowGrpCod",Gbl.CurrentCrs.Grps.GrpCod);
break;
case Brw_FILE_BRW_COMMON_CRS:
Brw_GetAndUpdateDateLastAccFileBrowser ("LastAccCommonCrs");
if (Gbl.CurrentAct == ActChgToAdmCom) // Update group of last access to a shared files zone only when user changes zone
Brw_UpdateGrpLastAccZone ("LastComGrpCod",-1L);
break;
case Brw_FILE_BRW_COMMON_GRP:
Brw_GetAndUpdateDateLastAccFileBrowser ("LastAccCommonGrp");
if (Gbl.CurrentAct == ActChgToAdmCom) // Update group of last access to a shared files zone only when user changes zone
Brw_UpdateGrpLastAccZone ("LastComGrpCod",Gbl.CurrentCrs.Grps.GrpCod);
break;
case Brw_FILE_BRW_SEE_MARKS_CRS:
case Brw_FILE_BRW_ADMIN_MARKS_CRS:
Brw_GetAndUpdateDateLastAccFileBrowser ("LastAccMarksCrs");
if (Gbl.CurrentAct == ActChgToSeeMrk ||
Gbl.CurrentAct == ActChgToAdmMrk) // Update group of last access to a marks zone only when user changes zone
Brw_UpdateGrpLastAccZone ("LastAssGrpCod",-1L);
break;
case Brw_FILE_BRW_SEE_MARKS_GRP:
case Brw_FILE_BRW_ADMIN_MARKS_GRP:
Brw_GetAndUpdateDateLastAccFileBrowser ("LastAccMarksGrp");
if (Gbl.CurrentAct == ActChgToSeeMrk ||
Gbl.CurrentAct == ActChgToAdmMrk) // Update group of last access to a marks zone only when user changes zone
Brw_UpdateGrpLastAccZone ("LastAssGrpCod",Gbl.CurrentCrs.Grps.GrpCod);
break;
case Brw_FILE_BRW_ASSIGNMENTS_USR:
case Brw_FILE_BRW_WORKS_USR:
Brw_GetAndUpdateDateLastAccFileBrowser ("LastAccMyWorks");
break;
case Brw_FILE_BRW_ASSIGNMENTS_CRS:
case Brw_FILE_BRW_WORKS_CRS:
Brw_GetAndUpdateDateLastAccFileBrowser ("LastAccCrsWorks");
break;
case Brw_FILE_BRW_BRIEFCASE_USR:
Brw_GetAndUpdateDateLastAccFileBrowser ("");
break;
default:
break;
}
@ -3757,10 +3758,10 @@ void Brw_CreateDirDownloadTmp (void)
/* Get and update the date of my last access to file browser in this course **/
/*****************************************************************************/
static void Brw_GetAndUpdateDateLastAccFileBrowser (const char *FieldNameDB)
static void Brw_GetAndUpdateDateLastAccFileBrowser (void)
{
char Query1[256];
char Query2[256];
long Cod;
char Query[256];
MYSQL_RES *mysql_res;
MYSQL_ROW row;
unsigned long NumRows;
@ -3770,42 +3771,15 @@ static void Brw_GetAndUpdateDateLastAccFileBrowser (const char *FieldNameDB)
{
case Brw_FILE_BRW_SEE_DOCUMENTS_INS:
case Brw_FILE_BRW_ADMIN_DOCUMENTS_INS:
sprintf (Query1,"SELECT UNIX_TIMESTAMP(LastClick) FROM file_browser_last"
" WHERE UsrCod='%ld' AND FileBrowser='%u' AND Cod='%ld'",
Gbl.Usrs.Me.UsrDat.UsrCod,
(unsigned) Brw_FileBrowserForDB[Gbl.FileBrowser.Type],
Gbl.CurrentIns.Ins.InsCod);
sprintf (Query2,"REPLACE INTO file_browser_last (UsrCod,FileBrowser,Cod,LastClick)"
" VALUES ('%ld','%u','%ld',NOW())",
Gbl.Usrs.Me.UsrDat.UsrCod,
(unsigned) Brw_FileBrowserForDB[Gbl.FileBrowser.Type],
Gbl.CurrentIns.Ins.InsCod);
Cod = Gbl.CurrentIns.Ins.InsCod;
break;
case Brw_FILE_BRW_SEE_DOCUMENTS_CTR:
case Brw_FILE_BRW_ADMIN_DOCUMENTS_CTR:
sprintf (Query1,"SELECT UNIX_TIMESTAMP(LastClick) FROM file_browser_last"
" WHERE UsrCod='%ld' AND FileBrowser='%u' AND Cod='%ld'",
Gbl.Usrs.Me.UsrDat.UsrCod,
(unsigned) Brw_FileBrowserForDB[Gbl.FileBrowser.Type],
Gbl.CurrentCtr.Ctr.CtrCod);
sprintf (Query2,"REPLACE INTO file_browser_last (UsrCod,FileBrowser,Cod,LastClick)"
" VALUES ('%ld','%u','%ld',NOW())",
Gbl.Usrs.Me.UsrDat.UsrCod,
(unsigned) Brw_FileBrowserForDB[Gbl.FileBrowser.Type],
Gbl.CurrentCtr.Ctr.CtrCod);
Cod = Gbl.CurrentCtr.Ctr.CtrCod;
break;
case Brw_FILE_BRW_SEE_DOCUMENTS_DEG:
case Brw_FILE_BRW_ADMIN_DOCUMENTS_DEG:
sprintf (Query1,"SELECT UNIX_TIMESTAMP(LastClick) FROM file_browser_last"
" WHERE UsrCod='%ld' AND FileBrowser='%u' AND Cod='%ld'",
Gbl.Usrs.Me.UsrDat.UsrCod,
(unsigned) Brw_FileBrowserForDB[Gbl.FileBrowser.Type],
Gbl.CurrentDeg.Deg.DegCod);
sprintf (Query2,"REPLACE INTO file_browser_last (UsrCod,FileBrowser,Cod,LastClick)"
" VALUES ('%ld','%u','%ld',NOW())",
Gbl.Usrs.Me.UsrDat.UsrCod,
(unsigned) Brw_FileBrowserForDB[Gbl.FileBrowser.Type],
Gbl.CurrentDeg.Deg.DegCod);
Cod = Gbl.CurrentDeg.Deg.DegCod;
break;
case Brw_FILE_BRW_SEE_DOCUMENTS_CRS:
case Brw_FILE_BRW_ADMIN_DOCUMENTS_CRS:
@ -3816,48 +3790,27 @@ static void Brw_GetAndUpdateDateLastAccFileBrowser (const char *FieldNameDB)
case Brw_FILE_BRW_ASSIGNMENTS_CRS:
case Brw_FILE_BRW_WORKS_USR:
case Brw_FILE_BRW_WORKS_CRS:
sprintf (Query1,"SELECT UNIX_TIMESTAMP(%s) FROM crs_usr"
" WHERE CrsCod='%ld' AND UsrCod='%ld'",
FieldNameDB,
Gbl.CurrentCrs.Crs.CrsCod,
Gbl.Usrs.Me.UsrDat.UsrCod);
sprintf (Query2,"UPDATE crs_usr SET %s=NOW()"
" WHERE CrsCod='%ld' AND UsrCod='%ld'",
FieldNameDB,
Gbl.CurrentCrs.Crs.CrsCod,
Gbl.Usrs.Me.UsrDat.UsrCod);
break;
Cod = Gbl.CurrentCrs.Crs.CrsCod;
break;
case Brw_FILE_BRW_SEE_DOCUMENTS_GRP:
case Brw_FILE_BRW_ADMIN_DOCUMENTS_GRP:
case Brw_FILE_BRW_COMMON_GRP:
case Brw_FILE_BRW_SEE_MARKS_GRP:
case Brw_FILE_BRW_ADMIN_MARKS_GRP:
sprintf (Query1,"SELECT UNIX_TIMESTAMP(%s) FROM crs_grp_usr"
" WHERE GrpCod='%ld' AND UsrCod='%ld'",
FieldNameDB,
Gbl.CurrentCrs.Grps.GrpCod,
Gbl.Usrs.Me.UsrDat.UsrCod);
sprintf (Query2,"UPDATE crs_grp_usr SET %s=NOW()"
" WHERE GrpCod='%ld' AND UsrCod='%ld'",
FieldNameDB,
Gbl.CurrentCrs.Grps.GrpCod,
Gbl.Usrs.Me.UsrDat.UsrCod);
break;
Cod = Gbl.CurrentCrs.Grps.GrpCod;
break;
case Brw_FILE_BRW_BRIEFCASE_USR:
sprintf (Query1,"SELECT UNIX_TIMESTAMP(LastClick) FROM file_browser_last"
" WHERE UsrCod='%ld' AND FileBrowser='%u' AND Cod='-1'",
Gbl.Usrs.Me.UsrDat.UsrCod,
(unsigned) Brw_FileBrowserForDB[Gbl.FileBrowser.Type]);
sprintf (Query2,"REPLACE INTO file_browser_last (UsrCod,FileBrowser,Cod,LastClick)"
" VALUES ('%ld','%u','-1',NOW())",
Gbl.Usrs.Me.UsrDat.UsrCod,
(unsigned) Brw_FileBrowserForDB[Gbl.FileBrowser.Type],
Gbl.CurrentDeg.Deg.DegCod);
Cod = -1L;
break;
default:
return;
}
NumRows = DB_QuerySELECT (Query1,&mysql_res,"can not get date-time of last access to a file browser");
sprintf (Query,"SELECT UNIX_TIMESTAMP(LastClick) FROM file_browser_last"
" WHERE UsrCod='%ld' AND FileBrowser='%u' AND Cod='%ld'",
Gbl.Usrs.Me.UsrDat.UsrCod,
(unsigned) Brw_FileBrowserForLastAccess[Gbl.FileBrowser.Type],
Cod);
NumRows = DB_QuerySELECT (Query,&mysql_res,"can not get date-time of last access to a file browser");
if (NumRows == 0) // May be an administrator not belonging to this course
Gbl.Usrs.Me.TimeLastAccToThisFileBrowser = LONG_MAX; // Initialize to a big value in order to show files as old
@ -3877,7 +3830,12 @@ static void Brw_GetAndUpdateDateLastAccFileBrowser (const char *FieldNameDB)
DB_FreeMySQLResult (&mysql_res);
/***** Update date of my last access to file browser in this course *****/
DB_QueryUPDATE (Query2,"can not update date of last access to a file browser");
sprintf (Query,"REPLACE INTO file_browser_last (UsrCod,FileBrowser,Cod,LastClick)"
" VALUES ('%ld','%u','%ld',NOW())",
Gbl.Usrs.Me.UsrDat.UsrCod,
(unsigned) Brw_FileBrowserForLastAccess[Gbl.FileBrowser.Type],
Cod);
DB_QueryUPDATE (Query,"can not update date of last access to a file browser");
}
/*****************************************************************************/

View File

@ -1104,10 +1104,8 @@ static void Grp_AddUsrToGroup (struct UsrData *UsrDat,long GrpCod)
char Query[512];
/***** Register in group *****/
sprintf (Query,"INSERT INTO crs_grp_usr (GrpCod,UsrCod,"
"LastAccDownloadGrp,LastAccCommonGrp,LastAccMarksGrp)"
" VALUES ('%ld','%ld',"
"'0000-00-00','0000-00-00','0000-00-00')",
sprintf (Query,"INSERT INTO crs_grp_usr (GrpCod,UsrCod)"
" VALUES ('%ld','%ld')",
GrpCod,UsrDat->UsrCod);
DB_QueryINSERT (Query,"can not add a user to a group");
}