diff --git a/sql/swad.sql b/sql/swad.sql index 589bc6561..1e4bd2849 100644 --- a/sql/swad.sql +++ b/sql/swad.sql @@ -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, diff --git a/swad_changelog.h b/swad_changelog.h index f9850a9eb..73a043e35 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -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; diff --git a/swad_database.c b/swad_database.c index 7817c9eb6..f5b8ab4ee 100644 --- a/swad_database.c +++ b/swad_database.c @@ -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," diff --git a/swad_enrollment.c b/swad_enrollment.c index 9ab998fb1..0a93c595c 100644 --- a/swad_enrollment.c +++ b/swad_enrollment.c @@ -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, diff --git a/swad_file_browser.c b/swad_file_browser.c index 56bafd85c..96d025f89 100644 --- a/swad_file_browser.c +++ b/swad_file_browser.c @@ -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"); } /*****************************************************************************/ diff --git a/swad_group.c b/swad_group.c index d3d2174aa..0573cb6ff 100644 --- a/swad_group.c +++ b/swad_group.c @@ -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"); }