Version19.115.1

This commit is contained in:
Antonio Cañas Vargas 2020-01-11 13:52:56 +01:00
parent 684071c4ae
commit 75dfe814fc
3 changed files with 76 additions and 61 deletions

View File

@ -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)

View File

@ -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
}
/*****************************************************************************/

View File

@ -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 ();