mirror of
https://github.com/acanas/swad-core.git
synced 2024-06-04 07:45:27 +02:00
Version 15.44.1
This commit is contained in:
parent
3bcbabd447
commit
7fae861a6a
|
@ -104,17 +104,21 @@
|
|||
// TODO: When a new assignment/attendance/survey is incorrect, the second time the form is shown, it should be filled with partial data, now is always empty
|
||||
// TODO: Remove columns "first year, last year, optional, status" when listing degrees?
|
||||
// TODO: Show message indicating that mail could be in SPAM folder
|
||||
// TODO: Do not show e-mails of administrators and teachers in lists openly
|
||||
// TODO: Show nicknames of users in lists?
|
||||
|
||||
/*****************************************************************************/
|
||||
/****************************** Public constants *****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
#define Log_PLATFORM_VERSION "SWAD 15.44 (2015/11/23)"
|
||||
#define Log_PLATFORM_VERSION "SWAD 15.44.1 (2015/11/23)"
|
||||
|
||||
// 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 sql/swad*.sql | tail -1
|
||||
/*
|
||||
Version 15.44: Nov 23, 2015 Changes in list of institution, centre and degree administrators. (187787 lines)
|
||||
Version 15.44.1: Nov 23, 2015 Fixed bug in list of administrators. (187809 lines)
|
||||
Version 15.44: Nov 23, 2015 Changes in list of institution, centre and degree administrators. (187788 lines)
|
||||
Version 15.43.2: Nov 22, 2015 Minor changes in CSS. (187719 lines)
|
||||
Version 15.43.1: Nov 22, 2015 New figure (statistic) about first day of week. (187722 lines)
|
||||
1 change necessary in database:
|
||||
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1485','es','N','Cambiar primer día semana en calendario');
|
||||
|
|
|
@ -3902,7 +3902,7 @@ void Deg_GetAndWriteInsCtrDegAdminBy (long UsrCod,unsigned ColSpan)
|
|||
{
|
||||
extern const char *Txt_Go_to_X;
|
||||
extern const char *Txt_all_degrees;
|
||||
char Query[2048];
|
||||
char Query[1024];
|
||||
MYSQL_RES *mysql_res;
|
||||
MYSQL_ROW row;
|
||||
unsigned NumRow;
|
||||
|
@ -3912,29 +3912,29 @@ void Deg_GetAndWriteInsCtrDegAdminBy (long UsrCod,unsigned ColSpan)
|
|||
struct Degree Deg;
|
||||
|
||||
/***** Get institutions, centres, degrees admin by user from database *****/
|
||||
sprintf (Query,"(SELECT '%u' AS Scope,'-1' AS Cod,'' AS FullName"
|
||||
sprintf (Query,"(SELECT '%u' AS S,'-1' AS Cod,'' AS FullName"
|
||||
" FROM admin"
|
||||
" WHERE UsrCod='%ld'"
|
||||
" AND Scope='Sys')"
|
||||
" UNION "
|
||||
"(SELECT '%u' AS Scope,admin.Cod,institutions.FullName"
|
||||
"(SELECT '%u' AS S,admin.Cod,institutions.FullName"
|
||||
" FROM admin,institutions"
|
||||
" WHERE admin.UsrCod='%ld'"
|
||||
" AND admin.Scope='Ins'"
|
||||
" AND admin.Cod=institutions.InsCod)"
|
||||
" UNION "
|
||||
"(SELECT '%u' AS Scope,admin.Cod,centres.FullName"
|
||||
"(SELECT '%u' AS S,admin.Cod,centres.FullName"
|
||||
" FROM admin,centres"
|
||||
" WHERE admin.UsrCod='%ld'"
|
||||
" AND admin.Scope='Ctr'"
|
||||
" AND admin.Cod=centres.CtrCod)"
|
||||
" UNION "
|
||||
"(SELECT '%u' AS Scope,admin.Cod,degrees.FullName"
|
||||
"(SELECT '%u' AS S,admin.Cod,degrees.FullName"
|
||||
" FROM admin,degrees"
|
||||
" WHERE admin.UsrCod='%ld'"
|
||||
" AND admin.Scope='Deg'"
|
||||
" AND admin.Cod=degrees.DegCod)"
|
||||
" ORDER BY Scope,FullName",
|
||||
" ORDER BY S,FullName",
|
||||
(unsigned) Sco_SCOPE_SYS,UsrCod,
|
||||
(unsigned) Sco_SCOPE_INS,UsrCod,
|
||||
(unsigned) Sco_SCOPE_CTR,UsrCod,
|
||||
|
|
136
swad_user.c
136
swad_user.c
|
@ -3286,8 +3286,8 @@ void Usr_WriteRowAdmData (unsigned NumUsr,struct UsrData *UsrDat)
|
|||
|
||||
/***** Write degrees which are administrated by this administrator *****/
|
||||
Deg_GetAndWriteInsCtrDegAdminBy (UsrDat->UsrCod,
|
||||
Gbl.Usrs.Listing.WithPhotos ? Usr_NUM_MAIN_FIELDS_DATA_ADM :
|
||||
Usr_NUM_MAIN_FIELDS_DATA_ADM-1);
|
||||
Gbl.Usrs.Listing.WithPhotos ? Usr_NUM_MAIN_FIELDS_DATA_ADM :
|
||||
Usr_NUM_MAIN_FIELDS_DATA_ADM-1);
|
||||
|
||||
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
|
||||
}
|
||||
|
@ -4145,77 +4145,95 @@ void Usr_GetUsrsLst (Rol_Role_t Role,Sco_Scope_t Scope,const char *UsrQuery,bool
|
|||
|
||||
static void Usr_GetAdmsLst (Sco_Scope_t Scope)
|
||||
{
|
||||
char Query[512];
|
||||
char Query[1024];
|
||||
|
||||
/***** Build query *****/
|
||||
switch (Scope)
|
||||
{
|
||||
case Sco_SCOPE_SYS:
|
||||
strcpy (Query,"SELECT DISTINCT admin.UsrCod,'Y',usr_data.Sex"
|
||||
" FROM admin,usr_data"
|
||||
" WHERE admin.UsrCod=usr_data.UsrCod"
|
||||
" ORDER BY "
|
||||
"usr_data.Surname1,"
|
||||
"usr_data.Surname2,"
|
||||
"usr_data.FirstName,"
|
||||
"usr_data.UsrCod");
|
||||
case Sco_SCOPE_SYS: // All admins
|
||||
strcpy (Query,"SELECT UsrCod,'Y',Sex FROM usr_data WHERE UsrCod IN "
|
||||
"(SELECT DISTINCT UsrCod FROM admin)"
|
||||
" ORDER BY Surname1,Surname2,FirstName,UsrCod");
|
||||
break;
|
||||
case Sco_SCOPE_CTY:
|
||||
sprintf (Query,"SELECT DISTINCT admin.UsrCod,'Y',usr_data.Sex"
|
||||
" FROM institutions,centres,degrees,admin,usr_data"
|
||||
" WHERE institutions.CtyCod='%ld'"
|
||||
" AND institutions.InsCod=centres.InsCod"
|
||||
" AND centres.CtrCod=degrees.CtrCod"
|
||||
" AND degrees.DegCod=admin.Cod"
|
||||
" AND admin.UsrCod=usr_data.UsrCod"
|
||||
" ORDER BY "
|
||||
"usr_data.Surname1,"
|
||||
"usr_data.Surname2,"
|
||||
"usr_data.FirstName,"
|
||||
"usr_data.UsrCod",
|
||||
case Sco_SCOPE_CTY: // System admins
|
||||
// and admins of the institutions, centres and degrees in the current country
|
||||
sprintf (Query,"SELECT UsrCod,'Y',Sex FROM usr_data WHERE UsrCod IN "
|
||||
"(SELECT DISTINCT admin.UsrCod"
|
||||
" FROM admin,institutions,centres,degrees WHERE"
|
||||
" admin.Scope='Sys' OR "
|
||||
"(admin.Scope='Ins'"
|
||||
" AND admin.Cod=institutions.InsCod"
|
||||
" AND institutions.CtyCod='%ld') OR "
|
||||
"(admin.Scope='Ctr'"
|
||||
" AND admin.Cod=centres.CtrCod"
|
||||
" AND centres.InsCod=institutions.InsCod"
|
||||
" AND institutions.CtyCod='%ld') OR "
|
||||
"(admin.Scope='Deg'"
|
||||
" AND admin.Cod=degrees.DegCod"
|
||||
" AND degrees.CtrCod=centres.CtrCod"
|
||||
" AND centres.InsCod=institutions.InsCod"
|
||||
" AND institutions.CtyCod='%ld'))"
|
||||
" ORDER BY Surname1,Surname2,FirstName,UsrCod",
|
||||
Gbl.CurrentCty.Cty.CtyCod,
|
||||
Gbl.CurrentCty.Cty.CtyCod,
|
||||
Gbl.CurrentCty.Cty.CtyCod);
|
||||
break;
|
||||
case Sco_SCOPE_INS:
|
||||
sprintf (Query,"SELECT DISTINCT admin.UsrCod,'Y',usr_data.Sex"
|
||||
" FROM centres,degrees,admin,usr_data"
|
||||
" WHERE centres.InsCod='%ld'"
|
||||
" AND centres.CtrCod=degrees.CtrCod"
|
||||
" AND degrees.DegCod=admin.Cod"
|
||||
" AND admin.UsrCod=usr_data.UsrCod"
|
||||
" ORDER BY "
|
||||
"usr_data.Surname1,"
|
||||
"usr_data.Surname2,"
|
||||
"usr_data.FirstName,"
|
||||
"usr_data.UsrCod",
|
||||
case Sco_SCOPE_INS: // System admins,
|
||||
// admins of the current institution,
|
||||
// and admins of the centres and degrees in the current institution
|
||||
sprintf (Query,"SELECT UsrCod,'Y',Sex FROM usr_data WHERE UsrCod IN "
|
||||
"(SELECT DISTINCT admin.UsrCod"
|
||||
" FROM admin,centres,degrees WHERE"
|
||||
" admin.Scope='Sys' OR "
|
||||
"(admin.Scope='Ins' AND admin.Cod='%ld') OR "
|
||||
"(admin.Scope='Ctr'"
|
||||
" AND admin.Cod=centres.CtrCod"
|
||||
" AND centres.InsCod='%ld') OR "
|
||||
"(admin.Scope='Deg'"
|
||||
" AND admin.Cod=degrees.DegCod"
|
||||
" AND degrees.CtrCod=centres.CtrCod"
|
||||
" AND centres.InsCod='%ld'))"
|
||||
" ORDER BY Surname1,Surname2,FirstName,UsrCod",
|
||||
Gbl.CurrentIns.Ins.InsCod,
|
||||
Gbl.CurrentIns.Ins.InsCod,
|
||||
Gbl.CurrentIns.Ins.InsCod);
|
||||
break;
|
||||
case Sco_SCOPE_CTR:
|
||||
sprintf (Query,"SELECT DISTINCT admin.UsrCod,'Y',usr_data.Sex"
|
||||
" FROM degrees,admin,usr_data"
|
||||
" WHERE degrees.CtrCod='%ld'"
|
||||
" AND degrees.DegCod=admin.Cod"
|
||||
" AND admin.UsrCod=usr_data.UsrCod"
|
||||
" ORDER BY "
|
||||
"usr_data.Surname1,"
|
||||
"usr_data.Surname2,"
|
||||
"usr_data.FirstName,"
|
||||
"usr_data.UsrCod",
|
||||
case Sco_SCOPE_CTR: // System admins,
|
||||
// admins of the current institution,
|
||||
// admins and the current centre,
|
||||
// and admins of the degrees in the current centre
|
||||
sprintf (Query,"SELECT UsrCod,'Y',Sex FROM usr_data WHERE UsrCod IN "
|
||||
"(SELECT DISTINCT admin.UsrCod"
|
||||
" FROM admin,degrees WHERE"
|
||||
" admin.Scope='Sys' OR "
|
||||
"(admin.Scope='Ins' AND admin.Cod='%ld') OR "
|
||||
"(admin.Scope='Ctr' AND admin.Cod='%ld') OR "
|
||||
"(admin.Scope='Deg'"
|
||||
" AND admin.Cod=degrees.DegCod"
|
||||
" AND degrees.CtrCod='%ld'))"
|
||||
" ORDER BY Surname1,Surname2,FirstName,UsrCod",
|
||||
Gbl.CurrentIns.Ins.InsCod,
|
||||
Gbl.CurrentCtr.Ctr.CtrCod,
|
||||
Gbl.CurrentCtr.Ctr.CtrCod);
|
||||
break;
|
||||
case Sco_SCOPE_DEG:
|
||||
sprintf (Query,"SELECT DISTINCT admin.UsrCod,'Y',usr_data.Sex"
|
||||
" FROM admin,usr_data"
|
||||
" WHERE admin.Cod='%ld'"
|
||||
" AND admin.UsrCod=usr_data.UsrCod"
|
||||
" ORDER BY "
|
||||
"usr_data.Surname1,"
|
||||
"usr_data.Surname2,"
|
||||
"usr_data.FirstName,"
|
||||
"usr_data.UsrCod",
|
||||
case Sco_SCOPE_DEG: // System admins
|
||||
// and admins of the current institution, centre or degree
|
||||
sprintf (Query,"SELECT UsrCod,'Y',Sex FROM usr_data"
|
||||
" WHERE UsrCod IN "
|
||||
"(SELECT DISTINCT UsrCod"
|
||||
" FROM admin WHERE"
|
||||
" admin.Scope='Sys' OR "
|
||||
"(admin.Scope='Ins' AND admin.Cod='%ld') OR "
|
||||
"(admin.Scope='Ctr' AND admin.Cod='%ld') OR "
|
||||
"(admin.Scope='Deg' AND admin.Cod='%ld'))"
|
||||
" ORDER BY Surname1,Surname2,FirstName,UsrCod",
|
||||
Gbl.CurrentIns.Ins.InsCod,
|
||||
Gbl.CurrentCtr.Ctr.CtrCod,
|
||||
Gbl.CurrentDeg.Deg.DegCod);
|
||||
break;
|
||||
default: // not aplicable
|
||||
return;
|
||||
Lay_ShowErrorAndExit ("Wrong scope.");
|
||||
break;
|
||||
}
|
||||
|
||||
/***** Get list of students from database *****/
|
||||
|
|
Loading…
Reference in New Issue
Block a user