mirror of https://github.com/acanas/swad-core.git
Version 14.68.2
This commit is contained in:
parent
6d8385555d
commit
391395edc8
|
@ -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';
|
||||
|
|
|
@ -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 *****/
|
||||
|
|
179
swad_search.c
179
swad_search.c
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue