mirror of https://github.com/acanas/swad-core.git
Version19.115.1
This commit is contained in:
parent
684071c4ae
commit
75dfe814fc
|
@ -492,7 +492,7 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - *
|
|||
En OpenSWAD:
|
||||
ps2pdf source.ps destination.pdf
|
||||
*/
|
||||
#define Log_PLATFORM_VERSION "SWAD 19.115 (2020-01-09)"
|
||||
#define Log_PLATFORM_VERSION "SWAD 19.115.1 (2020-01-11)"
|
||||
#define CSS_FILE "swad19.115.css"
|
||||
#define JS_FILE "swad19.91.1.js"
|
||||
/*
|
||||
|
@ -501,6 +501,7 @@ ps2pdf source.ps destination.pdf
|
|||
// TODO: No se puede entrar con DNI '1' suponiendo que no tenga password ¿por qué?
|
||||
// TODO: Mapas más estrechos en móvil
|
||||
|
||||
Version 19.115.1: Jan 11, 2020 Fixed bug in edition of degrees. (278531 lines)
|
||||
Version 19.115: Jan 09, 2020 Map column in listing of institutions.
|
||||
Fixed bug in edition of timetable, reported by Miguel Damas Hermoso.
|
||||
Language removed from shortcuts. (278515 lines)
|
||||
|
|
|
@ -356,7 +356,6 @@ static void Deg_ListDegreesForEdition (void)
|
|||
Deg = &(Gbl.Hierarchy.Degs.Lst[NumDeg]);
|
||||
|
||||
NumCrss = Crs_GetNumCrssInDeg (Deg->DegCod);
|
||||
|
||||
ICanEdit = Deg_CheckIfICanEditADegree (Deg);
|
||||
|
||||
HTM_TR_Begin (NULL);
|
||||
|
@ -427,7 +426,7 @@ static void Deg_ListDegreesForEdition (void)
|
|||
{
|
||||
DegTyp = &Gbl.DegTypes.Lst[NumDegTyp];
|
||||
HTM_OPTION (HTM_Type_LONG,&DegTyp->DegTypCod,
|
||||
Gbl.Hierarchy.Deg.DegCod > 0 &&
|
||||
// Gbl.Hierarchy.Deg.DegCod > 0 &&
|
||||
DegTyp->DegTypCod == Deg->DegTypCod,false,
|
||||
"%s",DegTyp->DegTypName);
|
||||
}
|
||||
|
@ -516,8 +515,8 @@ static void Deg_ListDegreesForEdition (void)
|
|||
static bool Deg_CheckIfICanEditADegree (struct Degree *Deg)
|
||||
{
|
||||
return (bool) (Gbl.Usrs.Me.Role.Logged >= Rol_CTR_ADM || // I am a centre administrator or higher
|
||||
((Deg->Status & Deg_STATUS_BIT_PENDING) != 0 && // Degree is not yet activated
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod == Deg->RequesterUsrCod)); // I am the requester
|
||||
((Deg->Status & Deg_STATUS_BIT_PENDING) != 0 && // Degree is not yet activated
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod == Deg->RequesterUsrCod)); // I am the requester
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -585,75 +585,90 @@ void DT_GetListDegreeTypes (Hie_Level_t Scope,DT_Order_t Order)
|
|||
all degree types with degrees
|
||||
union with
|
||||
all degree types without any degree */
|
||||
Gbl.DegTypes.Num = (unsigned) DB_QuerySELECT (&mysql_res,"can not get types of degree",
|
||||
"(SELECT deg_types.DegTypCod,deg_types.DegTypName,"
|
||||
"COUNT(degrees.DegCod) AS NumDegs"
|
||||
" FROM degrees,deg_types"
|
||||
" WHERE degrees.DegTypCod=deg_types.DegTypCod"
|
||||
" GROUP BY degrees.DegTypCod)"
|
||||
" UNION "
|
||||
"(SELECT DegTypCod,DegTypName,0 AS NumDegs" // Do not use '0' because NumDegs will be casted to string and order will be wrong
|
||||
" FROM deg_types"
|
||||
" WHERE DegTypCod NOT IN"
|
||||
" (SELECT DegTypCod FROM degrees))"
|
||||
" ORDER BY %s",
|
||||
OrderBySubQuery[Order]);
|
||||
Gbl.DegTypes.Num = (unsigned)
|
||||
DB_QuerySELECT (&mysql_res,"can not get types of degree",
|
||||
"(SELECT deg_types.DegTypCod," // row[0]
|
||||
"deg_types.DegTypName," // row[1]
|
||||
"COUNT(degrees.DegCod) AS NumDegs" // row[2]
|
||||
" FROM degrees,deg_types"
|
||||
" WHERE degrees.DegTypCod=deg_types.DegTypCod"
|
||||
" GROUP BY degrees.DegTypCod)"
|
||||
" UNION "
|
||||
"(SELECT DegTypCod," // row[0]
|
||||
"DegTypName," // row[1]
|
||||
"0 AS NumDegs" // row[2]
|
||||
// do not use '0' because
|
||||
// NumDegs will be casted to string
|
||||
// and order will be wrong
|
||||
" FROM deg_types"
|
||||
" WHERE DegTypCod NOT IN"
|
||||
" (SELECT DegTypCod FROM degrees))"
|
||||
" ORDER BY %s",
|
||||
OrderBySubQuery[Order]);
|
||||
break;
|
||||
case Hie_CTY:
|
||||
/* Get only degree types with degrees in the current country */
|
||||
Gbl.DegTypes.Num = (unsigned) DB_QuerySELECT (&mysql_res,"can not get types of degree",
|
||||
"SELECT deg_types.DegTypCod,deg_types.DegTypName,"
|
||||
"COUNT(degrees.DegCod) AS NumDegs"
|
||||
" FROM institutions,centres,degrees,deg_types"
|
||||
" WHERE institutions.CtyCod=%ld"
|
||||
" AND institutions.InsCod=centres.InsCod"
|
||||
" AND centres.CtrCod=degrees.CtrCod"
|
||||
" AND degrees.DegTypCod=deg_types.DegTypCod"
|
||||
" GROUP BY degrees.DegTypCod"
|
||||
" ORDER BY %s",
|
||||
Gbl.Hierarchy.Cty.CtyCod,
|
||||
OrderBySubQuery[Order]);
|
||||
Gbl.DegTypes.Num = (unsigned)
|
||||
DB_QuerySELECT (&mysql_res,"can not get types of degree",
|
||||
"SELECT deg_types.DegTypCod," // row[0]
|
||||
"deg_types.DegTypName," // row[1]
|
||||
"COUNT(degrees.DegCod) AS NumDegs" // row[2]
|
||||
" FROM institutions,centres,degrees,deg_types"
|
||||
" WHERE institutions.CtyCod=%ld"
|
||||
" AND institutions.InsCod=centres.InsCod"
|
||||
" AND centres.CtrCod=degrees.CtrCod"
|
||||
" AND degrees.DegTypCod=deg_types.DegTypCod"
|
||||
" GROUP BY degrees.DegTypCod"
|
||||
" ORDER BY %s",
|
||||
Gbl.Hierarchy.Cty.CtyCod,
|
||||
OrderBySubQuery[Order]);
|
||||
break;
|
||||
case Hie_INS:
|
||||
/* Get only degree types with degrees in the current institution */
|
||||
Gbl.DegTypes.Num = (unsigned) DB_QuerySELECT (&mysql_res,"can not get types of degree",
|
||||
"SELECT deg_types.DegTypCod,deg_types.DegTypName,"
|
||||
"COUNT(degrees.DegCod) AS NumDegs"
|
||||
" FROM centres,degrees,deg_types"
|
||||
" WHERE centres.InsCod=%ld"
|
||||
" AND centres.CtrCod=degrees.CtrCod"
|
||||
" AND degrees.DegTypCod=deg_types.DegTypCod"
|
||||
" GROUP BY degrees.DegTypCod"
|
||||
" ORDER BY %s",
|
||||
Gbl.Hierarchy.Ins.InsCod,
|
||||
OrderBySubQuery[Order]);
|
||||
Gbl.DegTypes.Num = (unsigned)
|
||||
DB_QuerySELECT (&mysql_res,"can not get types of degree",
|
||||
"SELECT deg_types.DegTypCod," // row[0]
|
||||
"deg_types.DegTypName," // row[1]
|
||||
"COUNT(degrees.DegCod) AS NumDegs" // row[2]
|
||||
" FROM centres,degrees,deg_types"
|
||||
" WHERE centres.InsCod=%ld"
|
||||
" AND centres.CtrCod=degrees.CtrCod"
|
||||
" AND degrees.DegTypCod=deg_types.DegTypCod"
|
||||
" GROUP BY degrees.DegTypCod"
|
||||
" ORDER BY %s",
|
||||
Gbl.Hierarchy.Ins.InsCod,
|
||||
OrderBySubQuery[Order]);
|
||||
break;
|
||||
case Hie_CTR:
|
||||
/* Get only degree types with degrees in the current centre */
|
||||
Gbl.DegTypes.Num = (unsigned) DB_QuerySELECT (&mysql_res,"can not get types of degree",
|
||||
"SELECT deg_types.DegTypCod,deg_types.DegTypName,"
|
||||
"COUNT(degrees.DegCod) AS NumDegs"
|
||||
" FROM degrees,deg_types"
|
||||
" WHERE degrees.CtrCod=%ld"
|
||||
" AND degrees.DegTypCod=deg_types.DegTypCod"
|
||||
" GROUP BY degrees.DegTypCod"
|
||||
" ORDER BY %s",
|
||||
Gbl.Hierarchy.Ctr.CtrCod,
|
||||
OrderBySubQuery[Order]);
|
||||
Gbl.DegTypes.Num = (unsigned)
|
||||
DB_QuerySELECT (&mysql_res,"can not get types of degree",
|
||||
"SELECT deg_types.DegTypCod," // row[0]
|
||||
"deg_types.DegTypName," // row[1]
|
||||
"COUNT(degrees.DegCod) AS NumDegs" // row[2]
|
||||
" FROM degrees,deg_types"
|
||||
" WHERE degrees.CtrCod=%ld"
|
||||
" AND degrees.DegTypCod=deg_types.DegTypCod"
|
||||
" GROUP BY degrees.DegTypCod"
|
||||
" ORDER BY %s",
|
||||
Gbl.Hierarchy.Ctr.CtrCod,
|
||||
OrderBySubQuery[Order]);
|
||||
break;
|
||||
case Hie_DEG:
|
||||
case Hie_CRS:
|
||||
/* Get only degree types with degrees in the current degree */
|
||||
Gbl.DegTypes.Num = (unsigned) DB_QuerySELECT (&mysql_res,"can not get types of degree",
|
||||
"SELECT deg_types.DegTypCod,deg_types.DegTypName,"
|
||||
"COUNT(degrees.DegCod) AS NumDegs"
|
||||
" FROM degrees,deg_types"
|
||||
" WHERE degrees.DegCod=%ld"
|
||||
" AND degrees.DegTypCod=deg_types.DegTypCod"
|
||||
" GROUP BY degrees.DegTypCod"
|
||||
" ORDER BY %s",
|
||||
Gbl.Hierarchy.Deg.DegCod,
|
||||
OrderBySubQuery[Order]);
|
||||
Gbl.DegTypes.Num = (unsigned)
|
||||
DB_QuerySELECT (&mysql_res,"can not get types of degree",
|
||||
"SELECT deg_types.DegTypCod," // row[0]
|
||||
"deg_types.DegTypName," // row[1]
|
||||
"COUNT(degrees.DegCod) AS NumDegs" // row[2]
|
||||
" FROM degrees,deg_types"
|
||||
" WHERE degrees.DegCod=%ld"
|
||||
" AND degrees.DegTypCod=deg_types.DegTypCod"
|
||||
" GROUP BY degrees.DegTypCod"
|
||||
" ORDER BY %s",
|
||||
Gbl.Hierarchy.Deg.DegCod,
|
||||
OrderBySubQuery[Order]);
|
||||
break;
|
||||
default:
|
||||
Lay_WrongScopeExit ();
|
||||
|
|
Loading…
Reference in New Issue