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 *****************************/
/*****************************************************************************/
#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:
// 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
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)
7 changes necessary in database:
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)
{
extern const Brw_FileBrowser_t Brw_FileBrowserForDB_files[Brw_NUM_TYPES_FILE_BROWSER];
char Query[512];
MYSQL_RES *mysql_res;
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 *****/
sprintf (Query,"SELECT SUM(NumFiles)"
" FROM file_browser_size"
" WHERE FileBrowser='%u' AND CrsCod='%ld'",
(unsigned) FileBrowser,CrsCod);
" WHERE FileBrowser='%u' AND Cod='%ld'",
(unsigned) Brw_FileBrowserForDB_files[FileBrowser],CrsCod);
DB_QuerySELECT (Query,&mysql_res,"can not get the number of files in a file browser");
/***** Get row *****/

View File

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