From 4f83e637c681f476bd8b78b69e9c57575859d119 Mon Sep 17 00:00:00 2001 From: acanas Date: Wed, 2 Jun 2021 20:47:31 +0200 Subject: [PATCH] =?UTF-8?q?Version=2020.88.2:=20=20Jun=2002,=202021=20=20Q?= =?UTF-8?q?ueries=20moved=20to=20module=20swad=5Fcenter=5Fdatabase.=20Fixe?= =?UTF-8?q?d=20bug=20in=20visibility=20of=20exam=20results.=20Reported=20b?= =?UTF-8?q?y=20Mancia=20Anguita=20L=C3=B3pez.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- swad_center.c | 102 ++++----------------------- swad_center_config.c | 1 + swad_center_database.c | 154 ++++++++++++++++++++++++++++++++++++++++- swad_center_database.h | 11 ++- swad_changelog.h | 2 + swad_place.c | 1 + swad_test_print.c | 12 ++-- 7 files changed, 184 insertions(+), 99 deletions(-) diff --git a/swad_center.c b/swad_center.c index a7897122..9ba28ebb 100644 --- a/swad_center.c +++ b/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); } diff --git a/swad_center_config.c b/swad_center_config.c index 22caa6f4..a4a2a364 100644 --- a/swad_center_config.c +++ b/swad_center_config.c @@ -34,6 +34,7 @@ #include // For unlink #include "swad_center.h" +#include "swad_center_database.h" #include "swad_database.h" #include "swad_error.h" #include "swad_figure_cache.h" diff --git a/swad_center_database.c b/swad_center_database.c index 694116ea..2f64269f 100644 --- a/swad_center_database.c +++ b/swad_center_database.c @@ -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 ******************************/ /*****************************************************************************/ diff --git a/swad_center_database.h b/swad_center_database.h index 9643808e..606cae43 100644 --- a/swad_center_database.h +++ b/swad_center_database.h @@ -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); diff --git a/swad_changelog.h b/swad_changelog.h index 9305fe5a..4da740c4 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -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) diff --git a/swad_place.c b/swad_place.c index 34c67506..df80b116 100644 --- a/swad_place.c +++ b/swad_place.c @@ -30,6 +30,7 @@ #include // For string functions #include "swad_box.h" +#include "swad_center_database.h" #include "swad_constant.h" #include "swad_database.h" #include "swad_error.h" diff --git a/swad_test_print.c b/swad_test_print.c index 98cb7e50..0e11938c 100644 --- a/swad_test_print.c +++ b/swad_test_print.c @@ -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);