Version 14.68.2

This commit is contained in:
Antonio Cañas Vargas 2015-01-25 23:40:07 +01:00
parent 6d8385555d
commit 391395edc8
3 changed files with 108 additions and 82 deletions

View File

@ -39,15 +39,15 @@
/****************************** Public constants *****************************/ /****************************** Public constants *****************************/
/*****************************************************************************/ /*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 14.68.1 (2015/01/25)" #define Log_PLATFORM_VERSION "SWAD 14.68.2 (2015/01/25)"
// Number of lines (includes comments but not blank lines) has been got with the following command: // 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 // nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*.h | tail -1
/* /*
TODO: Chequear que no debe haber documentos abiertos en los grupos (no tiene sentido)
Comprobar que no se pueden crear
Comprobar que se pueden buscar documentos abiertos en titulaciones, centros e instituciones Comprobar que se pueden buscar documentos abiertos en titulaciones, centros e instituciones
Version 14.68.2: Jan 25, 2015 Fixed bugs in search of documents.
Search of user's documents now extended to institution, centre and degree. (175644 lines)
Version 14.68.1: Jan 25, 2015 Changes in codes stores in expanded_folders table. (175618 lines) Version 14.68.1: Jan 25, 2015 Changes in codes stores in expanded_folders table. (175618 lines)
7 changes necessary in database: 7 changes necessary in database:
UPDATE expanded_folders SET FileBrowser='3' WHERE FileBrowser='1'; UPDATE expanded_folders SET FileBrowser='3' WHERE FileBrowser='1';

View File

@ -1392,6 +1392,7 @@ void Ind_GetIndicatorsCrs (long CrsCod,struct Ind_IndicatorsCrs *Indicators)
static unsigned long Ind_GetNumFilesOfCrsFileZoneFromDB (Brw_FileBrowser_t FileBrowser,long CrsCod) static unsigned long Ind_GetNumFilesOfCrsFileZoneFromDB (Brw_FileBrowser_t FileBrowser,long CrsCod)
{ {
extern const Brw_FileBrowser_t Brw_FileBrowserForDB_files[Brw_NUM_TYPES_FILE_BROWSER];
char Query[512]; char Query[512];
MYSQL_RES *mysql_res; MYSQL_RES *mysql_res;
MYSQL_ROW row; MYSQL_ROW row;
@ -1400,8 +1401,8 @@ static unsigned long Ind_GetNumFilesOfCrsFileZoneFromDB (Brw_FileBrowser_t FileB
/***** Get number of files in a file browser from database *****/ /***** Get number of files in a file browser from database *****/
sprintf (Query,"SELECT SUM(NumFiles)" sprintf (Query,"SELECT SUM(NumFiles)"
" FROM file_browser_size" " FROM file_browser_size"
" WHERE FileBrowser='%u' AND CrsCod='%ld'", " WHERE FileBrowser='%u' AND Cod='%ld'",
(unsigned) FileBrowser,CrsCod); (unsigned) Brw_FileBrowserForDB_files[FileBrowser],CrsCod);
DB_QuerySELECT (Query,&mysql_res,"can not get the number of files in a file browser"); DB_QuerySELECT (Query,&mysql_res,"can not get the number of files in a file browser");
/***** Get row *****/ /***** Get row *****/

View File

@ -844,7 +844,7 @@ static unsigned Sch_SearchDocumentsInMyCoursesInDB (const char *RangeQuery)
"(files.FileBrowser IN ('%u','%u','%u')" "(files.FileBrowser IN ('%u','%u','%u')"
" AND files.Cod=crs_grp.GrpCod" " AND files.Cod=crs_grp.GrpCod"
" AND crs_grp.GrpTypCod=crs_grp_types.GrpTypCod" " AND crs_grp.GrpTypCod=crs_grp_types.GrpTypCod"
" AND crs_grp.types.CrsCod=courses.CrsCod)" " AND crs_grp_types.CrsCod=courses.CrsCod)"
")" ")"
" AND courses.DegCod=degrees.DegCod" " AND courses.DegCod=degrees.DegCod"
" AND degrees.CtrCod=centres.CtrCod" " AND degrees.CtrCod=centres.CtrCod"
@ -886,7 +886,7 @@ static unsigned Sch_SearchMyDocumentsInDB (const char *RangeQuery)
{ {
extern const char *Txt_My_documents; extern const char *Txt_My_documents;
char SearchQuery[Sch_MAX_LENGTH_SEARCH_QUERY+1]; char SearchQuery[Sch_MAX_LENGTH_SEARCH_QUERY+1];
char Query[1024+Sch_MAX_LENGTH_SEARCH_QUERY*2]; char Query[(512+Sch_MAX_LENGTH_SEARCH_QUERY)*5];
/***** Check user's permission *****/ /***** Check user's permission *****/
if (Sch_CheckIfIHavePermissionToSearch (Sch_SEARCH_MY_DOCUMENTS)) if (Sch_CheckIfIHavePermissionToSearch (Sch_SEARCH_MY_DOCUMENTS))
@ -895,81 +895,106 @@ static unsigned Sch_SearchMyDocumentsInDB (const char *RangeQuery)
"_latin1 "," COLLATE latin1_general_ci")) "_latin1 "," COLLATE latin1_general_ci"))
{ {
/***** Build the query *****/ /***** Build the query *****/
if (Gbl.Scope.Current == Sco_SCOPE_PLATFORM) sprintf (Query,"SELECT * FROM "
/* Show also documents in private zone */ "("
sprintf (Query,"SELECT * FROM " "SELECT files.FilCod," // Institution
"(" "SUBSTRING(files.Path,LOCATE('/',files.Path)) AS PathFromRoot,"
"SELECT files.FilCod," "'-1','' AS DegShortName,'','' AS CrsShortName"
"SUBSTRING(files.Path,LOCATE('/',files.Path)) AS PathFromRoot," " FROM files,degrees,centres,institutions,countries"
"degrees.DegCod,degrees.ShortName AS DegShortName," " WHERE files.PublisherUsrCod='%ld' AND %s"
"centres.ShortName,courses.ShortName AS CrsShortName" " AND files.FileBrowser='%u'"
" FROM files,crs_grp,crs_grp_types,courses,degrees,centres,institutions,countries" " AND files.Cod=degrees.DegCod"
" WHERE files.PublisherUsrCod='%ld' AND %s" " AND degrees.CtrCod=centres.CtrCod"
" AND " " AND centres.InsCod=institutions.InsCod"
"(" " AND institutions.CtyCod=countries.CtyCod"
"(files.FileBrowser IN ('%u','%u','%u')" "%s"
" AND files.Cod=courses.CrsCod)" " UNION "
" OR " "SELECT files.FilCod," // Centre
"(files.FileBrowser IN ('%u','%u','%u')" "SUBSTRING(files.Path,LOCATE('/',files.Path)) AS PathFromRoot,"
" AND files.Cod=crs_grp.GrpCod" "'-1','' AS DegShortName,"
" AND crs_grp.GrpTypCod=crs_grp_types.GrpTypCod" "centres.ShortName,'' AS CrsShortName"
" AND crs_grp.types.CrsCod=courses.CrsCod)" " FROM files,degrees,centres,institutions,countries"
")" " WHERE files.PublisherUsrCod='%ld' AND %s"
" AND courses.DegCod=degrees.DegCod" " AND files.FileBrowser='%u'"
" AND degrees.CtrCod=centres.CtrCod" " AND files.Cod=degrees.DegCod"
" AND centres.InsCod=institutions.InsCod" " AND degrees.CtrCod=centres.CtrCod"
" AND institutions.CtyCod=countries.CtyCod" " AND centres.InsCod=institutions.InsCod"
"%s" " AND institutions.CtyCod=countries.CtyCod"
" UNION " "%s"
"SELECT files.FilCod," " UNION "
"SUBSTRING(files.Path,LOCATE('/',files.Path)) AS PathFromRoot," "SELECT files.FilCod," // Degree
"'-1','' AS DegShortName,'','' AS CrsShortName" "SUBSTRING(files.Path,LOCATE('/',files.Path)) AS PathFromRoot,"
" FROM files" "degrees.DegCod,degrees.ShortName AS DegShortName,"
" WHERE files.PublisherUsrCod='%ld' AND files.FileBrowser='%u' AND %s" "centres.ShortName,'' AS CrsShortName"
") AS my_files" " FROM files,degrees,centres,institutions,countries"
" WHERE PathFromRoot<>''" " WHERE files.PublisherUsrCod='%ld' AND %s"
" ORDER BY DegShortName,CrsShortName,PathFromRoot", " AND files.FileBrowser='%u'"
Gbl.Usrs.Me.UsrDat.UsrCod,SearchQuery, " AND files.Cod=degrees.DegCod"
(unsigned) Brw_FILE_BRW_ADMIN_DOCUMENTS_CRS, " AND degrees.CtrCod=centres.CtrCod"
(unsigned) Brw_FILE_BRW_COMMON_CRS, " AND centres.InsCod=institutions.InsCod"
(unsigned) Brw_FILE_BRW_ADMIN_MARKS_CRS, " AND institutions.CtyCod=countries.CtyCod"
(unsigned) Brw_FILE_BRW_ADMIN_DOCUMENTS_GRP, "%s"
(unsigned) Brw_FILE_BRW_COMMON_GRP, " UNION "
(unsigned) Brw_FILE_BRW_ADMIN_MARKS_GRP, "SELECT files.FilCod," // Course
RangeQuery, "SUBSTRING(files.Path,LOCATE('/',files.Path)) AS PathFromRoot,"
Gbl.Usrs.Me.UsrDat.UsrCod,(unsigned) Brw_FILE_BRW_BRIEFCASE_USR,SearchQuery); "degrees.DegCod,degrees.ShortName AS DegShortName,"
else "centres.ShortName,courses.ShortName AS CrsShortName"
sprintf (Query,"SELECT files.FilCod," " FROM files,courses,degrees,centres,institutions,countries"
"SUBSTRING(files.Path,LOCATE('/',files.Path)) AS PathFromRoot," " WHERE files.PublisherUsrCod='%ld' AND %s"
"degrees.DegCod,degrees.ShortName," " AND files.FileBrowser IN ('%u','%u','%u')"
"centres.ShortName,courses.ShortName" " AND files.Cod=courses.CrsCod"
" FROM files,crs_grp,crs_grp_types,courses,degrees,centres,institutions,countries" " AND courses.DegCod=degrees.DegCod"
" WHERE files.PublisherUsrCod='%ld' AND %s" " AND degrees.CtrCod=centres.CtrCod"
" AND " " AND centres.InsCod=institutions.InsCod"
"(" " AND institutions.CtyCod=countries.CtyCod"
"(files.FileBrowser IN ('%u','%u','%u')" "%s"
" AND files.Cod=courses.CrsCod)" " UNION "
" OR " "SELECT files.FilCod," // Group
"(files.FileBrowser IN ('%u','%u','%u')" "SUBSTRING(files.Path,LOCATE('/',files.Path)) AS PathFromRoot,"
" AND files.Cod=crs_grp.GrpCod" "degrees.DegCod,degrees.ShortName AS DegShortName,"
" AND crs_grp.GrpTypCod=crs_grp_types.GrpTypCod" "centres.ShortName,courses.ShortName AS CrsShortName"
" AND crs_grp.types.CrsCod=courses.CrsCod)" " FROM files,crs_grp,crs_grp_types,courses,degrees,centres,institutions,countries"
")" " WHERE files.PublisherUsrCod='%ld' AND %s"
" AND courses.DegCod=degrees.DegCod" " AND files.FileBrowser IN ('%u','%u','%u')"
" AND degrees.CtrCod=centres.CtrCod" " AND files.Cod=crs_grp.GrpCod"
" AND centres.InsCod=institutions.InsCod" " AND crs_grp.GrpTypCod=crs_grp_types.GrpTypCod"
" AND institutions.CtyCod=countries.CtyCod" " AND crs_grp_types.CrsCod=courses.CrsCod"
"%s" " AND courses.DegCod=degrees.DegCod"
" HAVING PathFromRoot<>''" " AND degrees.CtrCod=centres.CtrCod"
" ORDER BY degrees.ShortName,courses.ShortName,PathFromRoot", " AND centres.InsCod=institutions.InsCod"
Gbl.Usrs.Me.UsrDat.UsrCod,SearchQuery, " AND institutions.CtyCod=countries.CtyCod"
(unsigned) Brw_FILE_BRW_ADMIN_DOCUMENTS_CRS, "%s"
(unsigned) Brw_FILE_BRW_COMMON_CRS, " UNION "
(unsigned) Brw_FILE_BRW_ADMIN_MARKS_CRS, "SELECT files.FilCod," // Briefcase
(unsigned) Brw_FILE_BRW_ADMIN_DOCUMENTS_GRP, "SUBSTRING(files.Path,LOCATE('/',files.Path)) AS PathFromRoot,"
(unsigned) Brw_FILE_BRW_COMMON_GRP, "'-1','' AS DegShortName,'','' AS CrsShortName"
(unsigned) Brw_FILE_BRW_ADMIN_MARKS_GRP, " FROM files"
RangeQuery); " WHERE files.PublisherUsrCod='%ld' AND %s"
" AND files.FileBrowser='%u'"
") AS my_files"
" WHERE PathFromRoot<>''"
" ORDER BY DegShortName,CrsShortName,PathFromRoot",
Gbl.Usrs.Me.UsrDat.UsrCod,SearchQuery,
(unsigned) Brw_FILE_BRW_ADMIN_DOCUMENTS_INS,
RangeQuery,
Gbl.Usrs.Me.UsrDat.UsrCod,SearchQuery,
(unsigned) Brw_FILE_BRW_ADMIN_DOCUMENTS_CTR,
RangeQuery,
Gbl.Usrs.Me.UsrDat.UsrCod,SearchQuery,
(unsigned) Brw_FILE_BRW_ADMIN_DOCUMENTS_DEG,
RangeQuery,
Gbl.Usrs.Me.UsrDat.UsrCod,SearchQuery,
(unsigned) Brw_FILE_BRW_ADMIN_DOCUMENTS_CRS,
(unsigned) Brw_FILE_BRW_COMMON_CRS,
(unsigned) Brw_FILE_BRW_ADMIN_MARKS_CRS,
RangeQuery,
Gbl.Usrs.Me.UsrDat.UsrCod,SearchQuery,
(unsigned) Brw_FILE_BRW_ADMIN_DOCUMENTS_GRP,
(unsigned) Brw_FILE_BRW_COMMON_GRP,
(unsigned) Brw_FILE_BRW_ADMIN_MARKS_GRP,
RangeQuery,
Gbl.Usrs.Me.UsrDat.UsrCod,SearchQuery,
(unsigned) Brw_FILE_BRW_BRIEFCASE_USR);
/***** Query database and list documents found *****/ /***** Query database and list documents found *****/
/* if (Gbl.Usrs.Me.LoggedRole == Rol_ROLE_SUPERUSER) /* if (Gbl.Usrs.Me.LoggedRole == Rol_ROLE_SUPERUSER)