mirror of https://github.com/acanas/swad-core.git
Version 20.88.2: Jun 02, 2021 Queries moved to module swad_center_database. Fixed bug in visibility of exam results. Reported by Mancia Anguita López.
This commit is contained in:
parent
920018f1f3
commit
4f83e637c6
102
swad_center.c
102
swad_center.c
|
@ -97,7 +97,7 @@ static void Ctr_PutParamGoToCtr (void *CtrCod);
|
|||
static void Ctr_PutFormToCreateCenter (const struct Plc_Places *Places);
|
||||
static void Ctr_PutHeadCentersForSeeing (bool OrderSelectable);
|
||||
static void Ctr_PutHeadCentersForEdition (void);
|
||||
static void Ctr_ReceiveFormRequestOrCreateCtr (unsigned Status);
|
||||
static void Ctr_ReceiveFormRequestOrCreateCtr (Ctr_Status_t Status);
|
||||
|
||||
static unsigned Ctr_GetNumCtrsInCty (long CtyCod);
|
||||
|
||||
|
@ -1312,12 +1312,7 @@ void Ctr_ChangeCtrStatus (void)
|
|||
Ctr_GetDataOfCenterByCod (Ctr_EditingCtr);
|
||||
|
||||
/***** Update status in table of centers *****/
|
||||
DB_QueryUPDATE ("can not update the status of a center",
|
||||
"UPDATE ctr_centers"
|
||||
" SET Status=%u"
|
||||
" WHERE CtrCod=%ld",
|
||||
(unsigned) Status,
|
||||
Ctr_EditingCtr->CtrCod);
|
||||
Ctr_DB_UpdateCtrStatus (Ctr_EditingCtr->CtrCod,Status);
|
||||
Ctr_EditingCtr->Status = Status;
|
||||
|
||||
/***** Write message to show the change made
|
||||
|
@ -1590,7 +1585,7 @@ void Ctr_ReceiveFormReqCtr (void)
|
|||
Ctr_EditingCenterConstructor ();
|
||||
|
||||
/***** Receive form to request a new center *****/
|
||||
Ctr_ReceiveFormRequestOrCreateCtr ((unsigned) Ctr_STATUS_BIT_PENDING);
|
||||
Ctr_ReceiveFormRequestOrCreateCtr ((Ctr_Status_t) Ctr_STATUS_BIT_PENDING);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -1603,14 +1598,14 @@ void Ctr_ReceiveFormNewCtr (void)
|
|||
Ctr_EditingCenterConstructor ();
|
||||
|
||||
/***** Receive form to create a new center *****/
|
||||
Ctr_ReceiveFormRequestOrCreateCtr (0);
|
||||
Ctr_ReceiveFormRequestOrCreateCtr ((Ctr_Status_t) 0);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/************* Receive form to request or create a new center ****************/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Ctr_ReceiveFormRequestOrCreateCtr (unsigned Status)
|
||||
static void Ctr_ReceiveFormRequestOrCreateCtr (Ctr_Status_t Status)
|
||||
{
|
||||
extern const char *Txt_The_center_X_already_exists;
|
||||
extern const char *Txt_Created_new_center_X;
|
||||
|
@ -1625,11 +1620,9 @@ static void Ctr_ReceiveFormRequestOrCreateCtr (unsigned Status)
|
|||
if ((Ctr_EditingCtr->PlcCod = Plc_GetParamPlcCod ()) < 0) // 0 is reserved for "other place"
|
||||
Ale_ShowAlert (Ale_ERROR,"Wrong place.");
|
||||
|
||||
/* Get center short name */
|
||||
/* Get center short name and full name */
|
||||
Par_GetParToText ("ShortName",Ctr_EditingCtr->ShrtName,Cns_HIERARCHY_MAX_BYTES_SHRT_NAME);
|
||||
|
||||
/* Get center full name */
|
||||
Par_GetParToText ("FullName",Ctr_EditingCtr->FullName,Cns_HIERARCHY_MAX_BYTES_FULL_NAME);
|
||||
Par_GetParToText ("FullName" ,Ctr_EditingCtr->FullName,Cns_HIERARCHY_MAX_BYTES_FULL_NAME);
|
||||
|
||||
/* Get center WWW */
|
||||
Par_GetParToText ("WWW",Ctr_EditingCtr->WWW,Cns_MAX_BYTES_WWW);
|
||||
|
@ -1708,14 +1701,7 @@ static unsigned Ctr_GetNumCtrsInCty (long CtyCod)
|
|||
|
||||
/***** 3. Slow: number of centers in a country from database *****/
|
||||
Gbl.Cache.NumCtrsInCty.CtyCod = CtyCod;
|
||||
Gbl.Cache.NumCtrsInCty.NumCtrs = (unsigned)
|
||||
DB_QueryCOUNT ("can not get number of centers in a country",
|
||||
"SELECT COUNT(*)"
|
||||
" FROM ins_instits,"
|
||||
"ctr_centers"
|
||||
" WHERE ins_instits.CtyCod=%ld"
|
||||
" AND ins_instits.InsCod=ctr_centers.InsCod",
|
||||
CtyCod);
|
||||
Gbl.Cache.NumCtrsInCty.NumCtrs = Ctr_DB_GetNumCtrsInCty (CtyCod);
|
||||
FigCch_UpdateFigureIntoCache (FigCch_NUM_CTRS,HieLvl_CTY,Gbl.Cache.NumCtrsInCty.CtyCod,
|
||||
FigCch_UNSIGNED,&Gbl.Cache.NumCtrsInCty.NumCtrs);
|
||||
return Gbl.Cache.NumCtrsInCty.NumCtrs;
|
||||
|
@ -1756,12 +1742,7 @@ unsigned Ctr_GetNumCtrsInIns (long InsCod)
|
|||
|
||||
/***** 3. Slow: number of centers in an institution from database *****/
|
||||
Gbl.Cache.NumCtrsInIns.InsCod = InsCod;
|
||||
Gbl.Cache.NumCtrsInIns.NumCtrs = (unsigned)
|
||||
DB_QueryCOUNT ("can not get number of centers in an institution",
|
||||
"SELECT COUNT(*)"
|
||||
" FROM ctr_centers"
|
||||
" WHERE InsCod=%ld",
|
||||
InsCod);
|
||||
Gbl.Cache.NumCtrsInIns.NumCtrs = Ctr_DB_GetNumCtrsInIns (InsCod);
|
||||
FigCch_UpdateFigureIntoCache (FigCch_NUM_CTRS,HieLvl_INS,Gbl.Cache.NumCtrsInIns.InsCod,
|
||||
FigCch_UNSIGNED,&Gbl.Cache.NumCtrsInIns.NumCtrs);
|
||||
return Gbl.Cache.NumCtrsInIns.NumCtrs;
|
||||
|
@ -1794,12 +1775,7 @@ unsigned Ctr_GetCachedNumCtrsWithMapInSys (void)
|
|||
{
|
||||
/***** Get current number of centers with map from database and update cache *****/
|
||||
/* Ccoordinates 0, 0 means not set ==> don't show map */
|
||||
NumCtrsWithMap = (unsigned)
|
||||
DB_QueryCOUNT ("can not get number of centers with map",
|
||||
"SELECT COUNT(*)"
|
||||
" FROM ctr_centers"
|
||||
" WHERE Latitude<>0"
|
||||
" OR Longitude<>0");
|
||||
NumCtrsWithMap = (unsigned) Ctr_DB_GetNumCtrsWithMap ();
|
||||
FigCch_UpdateFigureIntoCache (FigCch_NUM_CTRS_WITH_MAP,HieLvl_SYS,-1L,
|
||||
FigCch_UNSIGNED,&NumCtrsWithMap);
|
||||
}
|
||||
|
@ -1821,16 +1797,7 @@ unsigned Ctr_GetCachedNumCtrsWithMapInCty (long CtyCod)
|
|||
{
|
||||
/***** Get current number of centers with map from database and update cache *****/
|
||||
/* Ccoordinates 0, 0 means not set ==> don't show map */
|
||||
NumCtrsWithMap = (unsigned)
|
||||
DB_QueryCOUNT ("can not get number of centers with map",
|
||||
"SELECT COUNT(*)"
|
||||
" FROM ins_instits,"
|
||||
"ctr_centers"
|
||||
" WHERE ins_instits.CtyCod=%ld"
|
||||
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
||||
" AND (ctr_centers.Latitude<>0"
|
||||
" OR ctr_centers.Longitude<>0)",
|
||||
CtyCod);
|
||||
NumCtrsWithMap = Ctr_DB_GetNumCtrsWithMapInCty (CtyCod);
|
||||
FigCch_UpdateFigureIntoCache (FigCch_NUM_CTRS_WITH_MAP,HieLvl_CTY,CtyCod,
|
||||
FigCch_UNSIGNED,&NumCtrsWithMap);
|
||||
}
|
||||
|
@ -1852,14 +1819,7 @@ unsigned Ctr_GetCachedNumCtrsWithMapInIns (long InsCod)
|
|||
{
|
||||
/***** Get current number of centers with map from database and update cache *****/
|
||||
/* Ccoordinates 0, 0 means not set ==> don't show map */
|
||||
NumCtrsWithMap = (unsigned)
|
||||
DB_QueryCOUNT ("can not get number of centers with map",
|
||||
"SELECT COUNT(*)"
|
||||
" FROM ctr_centers"
|
||||
" WHERE InsCod=%ld"
|
||||
" AND (Latitude<>0"
|
||||
" OR Longitude<>0)",
|
||||
InsCod);
|
||||
NumCtrsWithMap = Ctr_DB_GetNumCtrsWithMapInIns (InsCod);
|
||||
FigCch_UpdateFigureIntoCache (FigCch_NUM_CTRS_WITH_MAP,HieLvl_INS,InsCod,
|
||||
FigCch_UNSIGNED,&NumCtrsWithMap);
|
||||
}
|
||||
|
@ -1881,15 +1841,7 @@ unsigned Ctr_GetCachedNumCtrsWithDegs (const char *SubQuery,
|
|||
FigCch_UNSIGNED,&NumCtrsWithDegs))
|
||||
{
|
||||
/***** Get current number of centers with degrees from database and update cache *****/
|
||||
NumCtrsWithDegs = (unsigned)
|
||||
DB_QueryCOUNT ("can not get number of centers with degrees",
|
||||
"SELECT COUNT(DISTINCT ctr_centers.CtrCod)"
|
||||
" FROM ins_instits,"
|
||||
"ctr_centers,"
|
||||
"deg_degrees"
|
||||
" WHERE %sinstitutions.InsCod=ctr_centers.InsCod"
|
||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod",
|
||||
SubQuery);
|
||||
NumCtrsWithDegs = Ctr_DB_GetNumCtrsWithDegs (SubQuery);
|
||||
FigCch_UpdateFigureIntoCache (FigCch_NUM_CTRS_WITH_DEGS,Scope,Cod,
|
||||
FigCch_UNSIGNED,&NumCtrsWithDegs);
|
||||
}
|
||||
|
@ -1911,17 +1863,7 @@ unsigned Ctr_GetCachedNumCtrsWithCrss (const char *SubQuery,
|
|||
FigCch_UNSIGNED,&NumCtrsWithCrss))
|
||||
{
|
||||
/***** Get number of centers with courses *****/
|
||||
NumCtrsWithCrss = (unsigned)
|
||||
DB_QueryCOUNT ("can not get number of centers with courses",
|
||||
"SELECT COUNT(DISTINCT ctr_centers.CtrCod)"
|
||||
" FROM ins_instits,"
|
||||
"ctr_centers,"
|
||||
"deg_degrees,"
|
||||
"crs_courses"
|
||||
" WHERE %sinstitutions.InsCod=ctr_centers.InsCod"
|
||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||
" AND deg_degrees.DegCod=crs_courses.DegCod",
|
||||
SubQuery);
|
||||
NumCtrsWithCrss = Ctr_DB_GetNumCtrsWithCrss (SubQuery);
|
||||
FigCch_UpdateFigureIntoCache (FigCch_NUM_CTRS_WITH_CRSS,Scope,Cod,
|
||||
FigCch_UNSIGNED,&NumCtrsWithCrss);
|
||||
}
|
||||
|
@ -1949,21 +1891,7 @@ unsigned Ctr_GetCachedNumCtrsWithUsrs (Rol_Role_t Role,const char *SubQuery,
|
|||
FigCch_UNSIGNED,&NumCtrsWithUsrs))
|
||||
{
|
||||
/***** Get current number of centers with users from database and update cache *****/
|
||||
NumCtrsWithUsrs = (unsigned)
|
||||
DB_QueryCOUNT ("can not get number of centers with users",
|
||||
"SELECT COUNT(DISTINCT ctr_centers.CtrCod)"
|
||||
" FROM ins_instits,"
|
||||
"ctr_centers,"
|
||||
"deg_degrees,"
|
||||
"crs_courses,"
|
||||
"crs_users"
|
||||
" WHERE %s"
|
||||
"institutions.InsCod=ctr_centers.InsCod"
|
||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||
" AND crs_users.Role=%u",
|
||||
SubQuery,(unsigned) Role);
|
||||
NumCtrsWithUsrs = Ctr_DB_GetNumCtrsWithUsrs (Role,SubQuery);
|
||||
FigCch_UpdateFigureIntoCache (FigureCtrs[Role],Scope,Cod,
|
||||
FigCch_UNSIGNED,&NumCtrsWithUsrs);
|
||||
}
|
||||
|
|
|
@ -34,6 +34,7 @@
|
|||
#include <unistd.h> // For unlink
|
||||
|
||||
#include "swad_center.h"
|
||||
#include "swad_center_database.h"
|
||||
#include "swad_database.h"
|
||||
#include "swad_error.h"
|
||||
#include "swad_figure_cache.h"
|
||||
|
|
|
@ -73,7 +73,7 @@ extern struct Globals Gbl;
|
|||
/***************************** Create a new center ***************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
long Ctr_DB_CreateCenter (const struct Ctr_Center *Ctr,unsigned Status)
|
||||
long Ctr_DB_CreateCenter (const struct Ctr_Center *Ctr,Ctr_Status_t Status)
|
||||
{
|
||||
return
|
||||
DB_QueryINSERTandReturnCode ("can not create a new center",
|
||||
|
@ -85,7 +85,7 @@ long Ctr_DB_CreateCenter (const struct Ctr_Center *Ctr,unsigned Status)
|
|||
"'%s','%s','%s','')",
|
||||
Ctr->InsCod,
|
||||
Ctr->PlcCod,
|
||||
Status,
|
||||
(unsigned) Status,
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
Ctr->ShrtName,
|
||||
Ctr->FullName,
|
||||
|
@ -317,13 +317,42 @@ bool Ctr_DB_CheckIfCtrNameExistsInIns (const char *FieldName,const char *Name,
|
|||
CtrCod) != 0);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/******************** Get number of centers in a country *********************/
|
||||
/*****************************************************************************/
|
||||
|
||||
unsigned Ctr_DB_GetNumCtrsInCty (long CtyCod)
|
||||
{
|
||||
return (unsigned)
|
||||
DB_QueryCOUNT ("can not get number of centers in a country",
|
||||
"SELECT COUNT(*)"
|
||||
" FROM ins_instits,"
|
||||
"ctr_centers"
|
||||
" WHERE ins_instits.CtyCod=%ld"
|
||||
" AND ins_instits.InsCod=ctr_centers.InsCod",
|
||||
CtyCod);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/****************** Get number of centers in an institution ******************/
|
||||
/*****************************************************************************/
|
||||
|
||||
unsigned Ctr_DB_GetNumCtrsInIns (long InsCod)
|
||||
{
|
||||
return (unsigned)
|
||||
DB_QueryCOUNT ("can not get number of centers in an institution",
|
||||
"SELECT COUNT(*)"
|
||||
" FROM ctr_centers"
|
||||
" WHERE InsCod=%ld",
|
||||
InsCod);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/******* Get number of centers (of the current institution) in a place *******/
|
||||
/*****************************************************************************/
|
||||
|
||||
unsigned Ctr_DB_GetNumCtrsInPlc (long PlcCod)
|
||||
{
|
||||
/***** Get number of centers (of the current institution) in a place *****/
|
||||
return (unsigned)
|
||||
DB_QueryCOUNT ("can not get the number of centers in a place",
|
||||
"SELECT COUNT(*)"
|
||||
|
@ -334,6 +363,111 @@ unsigned Ctr_DB_GetNumCtrsInPlc (long PlcCod)
|
|||
PlcCod);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/*********************** Get number of centers with map **********************/
|
||||
/*****************************************************************************/
|
||||
|
||||
unsigned Ctr_DB_GetNumCtrsWithMap (void)
|
||||
{
|
||||
return (unsigned)
|
||||
DB_QueryCOUNT ("can not get number of centers with map",
|
||||
"SELECT COUNT(*)"
|
||||
" FROM ctr_centers"
|
||||
" WHERE Latitude<>0"
|
||||
" OR Longitude<>0");
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/**************** Get number of centers with map in a country ****************/
|
||||
/*****************************************************************************/
|
||||
|
||||
unsigned Ctr_DB_GetNumCtrsWithMapInCty (long CtyCod)
|
||||
{
|
||||
return (unsigned)
|
||||
DB_QueryCOUNT ("can not get number of centers with map",
|
||||
"SELECT COUNT(*)"
|
||||
" FROM ins_instits,"
|
||||
"ctr_centers"
|
||||
" WHERE ins_instits.CtyCod=%ld"
|
||||
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
||||
" AND (ctr_centers.Latitude<>0"
|
||||
" OR ctr_centers.Longitude<>0)",
|
||||
CtyCod);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/************* Get number of centers with map in an institution **************/
|
||||
/*****************************************************************************/
|
||||
|
||||
unsigned Ctr_DB_GetNumCtrsWithMapInIns (long InsCod)
|
||||
{
|
||||
return (unsigned)
|
||||
DB_QueryCOUNT ("can not get number of centers with map",
|
||||
"SELECT COUNT(*)"
|
||||
" FROM ctr_centers"
|
||||
" WHERE InsCod=%ld"
|
||||
" AND (Latitude<>0"
|
||||
" OR Longitude<>0)",
|
||||
InsCod);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/********************* Get number of centers with degrees ********************/
|
||||
/*****************************************************************************/
|
||||
|
||||
unsigned Ctr_DB_GetNumCtrsWithDegs (const char *SubQuery)
|
||||
{
|
||||
return (unsigned)
|
||||
DB_QueryCOUNT ("can not get number of centers with degrees",
|
||||
"SELECT COUNT(DISTINCT ctr_centers.CtrCod)"
|
||||
" FROM ins_instits,"
|
||||
"ctr_centers,"
|
||||
"deg_degrees"
|
||||
" WHERE %sinstitutions.InsCod=ctr_centers.InsCod"
|
||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod",
|
||||
SubQuery);
|
||||
}
|
||||
/*****************************************************************************/
|
||||
/********************* Get number of centers with courses ********************/
|
||||
/*****************************************************************************/
|
||||
|
||||
unsigned Ctr_DB_GetNumCtrsWithCrss (const char *SubQuery)
|
||||
{
|
||||
return (unsigned)
|
||||
DB_QueryCOUNT ("can not get number of centers with courses",
|
||||
"SELECT COUNT(DISTINCT ctr_centers.CtrCod)"
|
||||
" FROM ins_instits,"
|
||||
"ctr_centers,"
|
||||
"deg_degrees,"
|
||||
"crs_courses"
|
||||
" WHERE %sinstitutions.InsCod=ctr_centers.InsCod"
|
||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||
" AND deg_degrees.DegCod=crs_courses.DegCod",
|
||||
SubQuery);
|
||||
}
|
||||
/*****************************************************************************/
|
||||
/********************* Get number of centers with users **********************/
|
||||
/*****************************************************************************/
|
||||
|
||||
unsigned Ctr_DB_GetNumCtrsWithUsrs (Rol_Role_t Role,const char *SubQuery)
|
||||
{
|
||||
return (unsigned)
|
||||
DB_QueryCOUNT ("can not get number of centers with users",
|
||||
"SELECT COUNT(DISTINCT ctr_centers.CtrCod)"
|
||||
" FROM ins_instits,"
|
||||
"ctr_centers,"
|
||||
"deg_degrees,"
|
||||
"crs_courses,"
|
||||
"crs_users"
|
||||
" WHERE %s"
|
||||
"institutions.InsCod=ctr_centers.InsCod"
|
||||
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||
" AND crs_courses.CrsCod=crs_users.CrsCod"
|
||||
" AND crs_users.Role=%u",
|
||||
SubQuery,(unsigned) Role);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/************** Update database changing old place by new place **************/
|
||||
/*****************************************************************************/
|
||||
|
@ -379,6 +513,20 @@ void Ctr_DB_UpdateCtrWWW (long CtrCod,const char NewWWW[Cns_MAX_BYTES_WWW + 1])
|
|||
CtrCod);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/******************** Update status in table of centers **********************/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Ctr_DB_UpdateCtrStatus (long CtrCod,Ctr_Status_t Status)
|
||||
{
|
||||
DB_QueryUPDATE ("can not update the status of a center",
|
||||
"UPDATE ctr_centers"
|
||||
" SET Status=%u"
|
||||
" WHERE CtrCod=%ld",
|
||||
(unsigned) Status,
|
||||
CtrCod);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/****************************** Remove a center ******************************/
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -44,7 +44,7 @@
|
|||
/****************************** Public prototypes ****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
long Ctr_DB_CreateCenter (const struct Ctr_Center *Ctr,unsigned Status);
|
||||
long Ctr_DB_CreateCenter (const struct Ctr_Center *Ctr,Ctr_Status_t Status);
|
||||
|
||||
unsigned Ctr_DB_GetListOfCtrsInCurrentIns (MYSQL_RES **mysql_res);
|
||||
unsigned Ctr_DB_GetListOfCtrsFull (MYSQL_RES **mysql_res,long InsCod);
|
||||
|
@ -56,11 +56,20 @@ long Ctr_DB_GetInsCodOfCenterByCod (long CtrCod);
|
|||
void Ctr_DB_GetShortNameOfCenterByCod (long CtrCod,char ShrtName[Cns_HIERARCHY_MAX_BYTES_SHRT_NAME + 1]);
|
||||
bool Ctr_DB_CheckIfCtrNameExistsInIns (const char *FieldName,const char *Name,
|
||||
long CtrCod,long InsCod);
|
||||
unsigned Ctr_DB_GetNumCtrsInCty (long CtyCod);
|
||||
unsigned Ctr_DB_GetNumCtrsInIns (long InsCod);
|
||||
unsigned Ctr_DB_GetNumCtrsInPlc (long PlcCod);
|
||||
unsigned Ctr_DB_GetNumCtrsWithMap (void);
|
||||
unsigned Ctr_DB_GetNumCtrsWithMapInCty (long CtyCod);
|
||||
unsigned Ctr_DB_GetNumCtrsWithMapInIns (long InsCod);
|
||||
unsigned Ctr_DB_GetNumCtrsWithDegs (const char *SubQuery);
|
||||
unsigned Ctr_DB_GetNumCtrsWithCrss (const char *SubQuery);
|
||||
unsigned Ctr_DB_GetNumCtrsWithUsrs (Rol_Role_t Role,const char *SubQuery);
|
||||
|
||||
void Ctr_DB_UpdateCtrPlc (long CtrCod,long NewPlcCod);
|
||||
void Ctr_DB_UpdateCtrName (long CtrCod,const char *FieldName,const char *NewCtrName);
|
||||
void Ctr_DB_UpdateCtrWWW (long CtrCod,const char NewWWW[Cns_MAX_BYTES_WWW + 1]);
|
||||
void Ctr_DB_UpdateCtrStatus (long CtrCod,Ctr_Status_t Status);
|
||||
|
||||
void Ctr_DB_RemoveCenter (long CtrCod);
|
||||
|
||||
|
|
|
@ -609,6 +609,8 @@ TODO: En las encuestas, que los estudiantes no puedan ver los resultados hasta q
|
|||
TODO: Rename CENTRE to CENTER in help wiki.
|
||||
TODO: Rename ASSESSMENT.Announcements to ASSESSMENT.Calls_for_exams
|
||||
|
||||
Version 20.88.2: Jun 02, 2021 Queries moved to module swad_center_database.
|
||||
Fixed bug in visibility of exam results. Reported by Mancia Anguita López. (312738 lines)
|
||||
Version 20.88.1: Jun 02, 2021 Queries moved to module swad_center_database. (312668 lines)
|
||||
Version 20.88: Jun 02, 2021 New module swad_center_database for database queries related to centers. (312638 lines)
|
||||
Version 20.87.1: Jun 01, 2021 Database function moved from swad_calendar to swad_setting. (312549 lines)
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
#include <string.h> // For string functions
|
||||
|
||||
#include "swad_box.h"
|
||||
#include "swad_center_database.h"
|
||||
#include "swad_constant.h"
|
||||
#include "swad_database.h"
|
||||
#include "swad_error.h"
|
||||
|
|
|
@ -1430,8 +1430,7 @@ static void TstPrn_WriteIntAnsPrint (struct UsrData *UsrDat,
|
|||
|
||||
/***** Write the correct answer *****/
|
||||
HTM_TD_Begin ("class=\"ANS_0 CM\"");
|
||||
if (ICanView[TstVis_VISIBLE_QST_ANS_TXT] &&
|
||||
ICanView[TstVis_VISIBLE_CORRECT_ANSWER])
|
||||
if (ICanView[TstVis_VISIBLE_CORRECT_ANSWER])
|
||||
HTM_Long (Question->Answer.Integer);
|
||||
else
|
||||
Ico_PutIconNotVisible ();
|
||||
|
@ -1486,8 +1485,7 @@ static void TstPrn_WriteFltAnsPrint (struct UsrData *UsrDat,
|
|||
|
||||
/***** Write the correct answer *****/
|
||||
HTM_TD_Begin ("class=\"ANS_0 CM\"");
|
||||
if (ICanView[TstVis_VISIBLE_QST_ANS_TXT] &&
|
||||
ICanView[TstVis_VISIBLE_CORRECT_ANSWER])
|
||||
if (ICanView[TstVis_VISIBLE_CORRECT_ANSWER])
|
||||
{
|
||||
HTM_Txt ("[");
|
||||
HTM_Double (Question->Answer.FloatingPoint[0]);
|
||||
|
@ -1542,8 +1540,7 @@ static void TstPrn_WriteTF_AnsPrint (struct UsrData *UsrDat,
|
|||
|
||||
/***** Write the correct answer *****/
|
||||
HTM_TD_Begin ("class=\"ANS_0 CM\"");
|
||||
if (ICanView[TstVis_VISIBLE_QST_ANS_TXT] &&
|
||||
ICanView[TstVis_VISIBLE_CORRECT_ANSWER])
|
||||
if (ICanView[TstVis_VISIBLE_CORRECT_ANSWER])
|
||||
Tst_WriteAnsTF (Question->Answer.TF);
|
||||
else
|
||||
Ico_PutIconNotVisible ();
|
||||
|
@ -1760,8 +1757,7 @@ static void TstPrn_WriteTxtAnsPrint (struct UsrData *UsrDat,
|
|||
HTM_TD_End ();
|
||||
|
||||
/***** Write the correct answers *****/
|
||||
if (ICanView[TstVis_VISIBLE_QST_ANS_TXT] &&
|
||||
ICanView[TstVis_VISIBLE_CORRECT_ANSWER])
|
||||
if (ICanView[TstVis_VISIBLE_CORRECT_ANSWER])
|
||||
{
|
||||
HTM_TD_Begin ("class=\"CT\"");
|
||||
HTM_TABLE_BeginPadding (2);
|
||||
|
|
Loading…
Reference in New Issue