Version19.112.16

This commit is contained in:
Antonio Cañas Vargas 2020-01-07 00:09:30 +01:00
parent 3cc0c2c779
commit c1c5b80044
24 changed files with 105 additions and 97 deletions

View File

@ -3062,7 +3062,7 @@ int swad__getNotifications (struct soap *soap,
/* Get institution (row[4]) */
Ins.InsCod = Str_ConvertStrCodToLongCod (row[4]);
Ins_GetDataOfInstitutionByCod (&Ins,Ins_GET_BASIC_DATA);
Ins_GetDataOfInstitutionByCod (&Ins);
/* Get centre (row[5]) */
Ctr.CtrCod = Str_ConvertStrCodToLongCod (row[5]);

View File

@ -294,7 +294,7 @@ static void Ctr_ListCentres (void)
{
Frm_StartForm (ActEdiCtr);
Btn_PutConfirmButton (Gbl.Hierarchy.Ins.Ctrs.Num ? Txt_Create_another_centre :
Txt_Create_centre);
Txt_Create_centre);
Frm_EndForm ();
}
@ -1843,14 +1843,31 @@ unsigned Ctr_GetNumCtrsInCty (long CtyCod)
/**************** Get number of centres in an institution ********************/
/*****************************************************************************/
void Ctr_FlushCacheNumCtrsInIns (void)
{
Gbl.Cache.NumCtrsInIns.InsCod = -1L;
Gbl.Cache.NumCtrsInIns.NumCtrs = 0;
}
unsigned Ctr_GetNumCtrsInIns (long InsCod)
{
/***** Get number of centres of an institution from database *****/
return
/***** 1. Fast check: Trivial case *****/
if (InsCod <= 0)
return 0;
/***** 2. Fast check: If cached... *****/
if (InsCod == Gbl.Cache.NumCtrsInIns.InsCod)
return Gbl.Cache.NumCtrsInIns.NumCtrs;
/***** 3. Slow: number of centres in an institution from database *****/
Gbl.Cache.NumCtrsInIns.InsCod = InsCod;
Gbl.Cache.NumCtrsInIns.NumCtrs =
(unsigned) DB_QueryCOUNT ("can not get number of centres in an institution",
"SELECT COUNT(*) FROM centres"
" WHERE InsCod=%ld",
InsCod);
return Gbl.Cache.NumCtrsInIns.NumCtrs;
}
/*****************************************************************************/

View File

@ -122,6 +122,7 @@ void Ctr_RecFormNewCtr (void);
unsigned Ctr_GetNumCtrsTotal (void);
unsigned Ctr_GetNumCtrsInCty (long CtyCod);
void Ctr_FlushCacheNumCtrsInIns (void);
unsigned Ctr_GetNumCtrsInIns (long InsCod);
unsigned Ctr_GetNumCtrsInPlc (long PlcCod);
unsigned Ctr_GetNumCtrsWithDegs (const char *SubQuery);

View File

@ -583,7 +583,7 @@ static void CtrCfg_Institution (bool PrintView,bool PutForm)
if (PutForm)
{
/* Get list of institutions of the current country */
Ins_GetListInstitutions (Gbl.Hierarchy.Cty.CtyCod,Ins_GET_BASIC_DATA);
Ins_GetListInstitutions (Gbl.Hierarchy.Cty.CtyCod);
/* Put form to select institution */
Frm_StartForm (ActChgCtrInsCfg);
@ -1061,7 +1061,7 @@ void CtrCfg_ChangeCtrIns (void)
if (NewIns.InsCod != Gbl.Hierarchy.Ctr.InsCod)
{
/***** Get data of new institution *****/
Ins_GetDataOfInstitutionByCod (&NewIns,Ins_GET_BASIC_DATA);
Ins_GetDataOfInstitutionByCod (&NewIns);
/***** Check if it already exists a centre with the same name in the new institution *****/
if (Ctr_CheckIfCtrNameExistsInIns ("ShortName",

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.112.15 (2020-01-06)"
#define Log_PLATFORM_VERSION "SWAD 19.112.16 (2020-01-06)"
#define CSS_FILE "swad19.112.css"
#define JS_FILE "swad19.91.1.js"
/*
@ -501,7 +501,9 @@ 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
// TODO: Quitar todos los EXTRA_DATA.
Optimize Ins_GetNumInssInCty
Version 19.112.16:Jan 06, 2020 Optimization in number of centres in an institution. (? lines)
Version 19.112.15:Jan 06, 2020 Optimization in number of degrees in an institution. (278567 lines)
Version 19.112.14:Jan 06, 2020 Optimization in number of courses in an institution. (278555 lines)
Version 19.112.13:Jan 06, 2020 Optimization in number of departments in an institution. (278535 lines)

View File

@ -335,7 +335,7 @@ static void CtyCfg_Map (void)
/* Get data of institution */
Ins.InsCod = Ctr.InsCod;
Ins_GetDataOfInstitutionByCod (&Ins,Ins_GET_BASIC_DATA);
Ins_GetDataOfInstitutionByCod (&Ins);
/* Add marker */
Map_AddMarker (&Ctr.Coord);

View File

@ -241,7 +241,7 @@ static void Crs_WriteListMyCoursesToSelectOne (void)
/***** Get data of this institution *****/
Ins.InsCod = Str_ConvertStrCodToLongCod (row[0]);
if (!Ins_GetDataOfInstitutionByCod (&Ins,Ins_GET_BASIC_DATA))
if (!Ins_GetDataOfInstitutionByCod (&Ins))
Lay_ShowErrorAndExit ("Institution not found.");
/***** Write link to institution *****/

View File

@ -260,7 +260,7 @@ static void Dpt_EditDepartmentsInternal (void)
return;
/***** Get list of institutions *****/
Ins_GetListInstitutions (Gbl.Hierarchy.Cty.CtyCod,Ins_GET_BASIC_DATA);
Ins_GetListInstitutions (Gbl.Hierarchy.Cty.CtyCod);
/***** Get list of departments *****/
Dpt_GetListDepartments (Gbl.Hierarchy.Ins.InsCod);
@ -510,7 +510,7 @@ static void Dpt_ListDepartmentsForEdition (void)
/* Get data of institution of this department */
Ins.InsCod = Dpt->InsCod;
Ins_GetDataOfInstitutionByCod (&Ins,Ins_GET_BASIC_DATA);
Ins_GetDataOfInstitutionByCod (&Ins);
HTM_TR_Begin (NULL);

View File

@ -978,7 +978,7 @@ static void Exa_ShowExamAnnouncement (long ExaCod,
/***** Get data of institution of this degree *****/
Ins.InsCod = Gbl.Hierarchy.Ins.InsCod;
Ins_GetDataOfInstitutionByCod (&Ins,Ins_GET_BASIC_DATA);
Ins_GetDataOfInstitutionByCod (&Ins);
/***** Build anchor string *****/
Frm_SetAnchorStr (ExaCod,&Anchor);
@ -1615,7 +1615,7 @@ static void Exa_GetNotifContentExamAnnouncement (char **ContentStr)
/***** Get data of institution *****/
Ins.InsCod = Deg_GetInsCodOfDegreeByCod (Deg.DegCod);
Ins_GetDataOfInstitutionByCod (&Ins,Ins_GET_BASIC_DATA);
Ins_GetDataOfInstitutionByCod (&Ins);
/***** Convert struct date to a date string *****/
Dat_ConvDateToDateStr (&Gbl.ExamAnns.ExaDat.ExamDate,StrExamDate);

View File

@ -1515,7 +1515,7 @@ static unsigned Fig_GetInsAndStat (struct Instit *Ins,MYSQL_RES *mysql_res)
/***** Get data of this institution (row[0]) *****/
Ins->InsCod = Str_ConvertStrCodToLongCod (row[0]);
if (!Ins_GetDataOfInstitutionByCod (Ins,Ins_GET_BASIC_DATA))
if (!Ins_GetDataOfInstitutionByCod (Ins))
Lay_ShowErrorAndExit ("Institution not found.");
/***** Get statistic (row[1]) *****/

View File

@ -6850,7 +6850,7 @@ static void Brw_WriteCurrentClipboard (void)
{
case Brw_ADMI_DOC_INS:
Ins.InsCod = Gbl.FileBrowser.Clipboard.Cod;
Ins_GetDataOfInstitutionByCod (&Ins,Ins_GET_BASIC_DATA);
Ins_GetDataOfInstitutionByCod (&Ins);
snprintf (TxtClipboardZone,sizeof (TxtClipboardZone),
"%s, %s <strong>%s</strong>",
Txt_documents_management_area,
@ -6858,7 +6858,7 @@ static void Brw_WriteCurrentClipboard (void)
break;
case Brw_ADMI_SHR_INS:
Ins.InsCod = Gbl.FileBrowser.Clipboard.Cod;
Ins_GetDataOfInstitutionByCod (&Ins,Ins_GET_BASIC_DATA);
Ins_GetDataOfInstitutionByCod (&Ins);
snprintf (TxtClipboardZone,sizeof (TxtClipboardZone),
"%s, %s <strong>%s</strong>",
Txt_shared_files_area,
@ -7865,7 +7865,7 @@ static void Brw_PasteClipboard (void)
case Brw_ADMI_DOC_INS:
case Brw_ADMI_SHR_INS:
Ins.InsCod = Gbl.FileBrowser.Clipboard.Cod;
if (Ins_GetDataOfInstitutionByCod (&Ins,Ins_GET_BASIC_DATA))
if (Ins_GetDataOfInstitutionByCod (&Ins))
snprintf (PathOrg,sizeof (PathOrg),
"%s/%02u/%u/%s",
Cfg_PATH_INS_PRIVATE,

View File

@ -2159,14 +2159,14 @@ void For_SetForumName (struct Forum *Forum,
break;
case For_FORUM_INSTIT_USRS:
Ins.InsCod = Forum->Location;
if (!Ins_GetDataOfInstitutionByCod (&Ins,Ins_GET_BASIC_DATA))
if (!Ins_GetDataOfInstitutionByCod (&Ins))
Lay_ShowErrorAndExit ("Institution not found.");
Str_Copy (ForumName,Ins.ShrtName,
For_MAX_BYTES_FORUM_NAME);
break;
case For_FORUM_INSTIT_TCHS:
Ins.InsCod = Forum->Location;
if (!Ins_GetDataOfInstitutionByCod (&Ins,Ins_GET_BASIC_DATA))
if (!Ins_GetDataOfInstitutionByCod (&Ins))
Lay_ShowErrorAndExit ("Institution not found.");
snprintf (ForumName,For_MAX_BYTES_FORUM_NAME + 1,
"%s%s",Ins.ShrtName,

View File

@ -217,11 +217,20 @@ void Gbl_InitializeGlobals (void)
/***** Reset current hierarchy *****/
Hie_ResetHierarchy ();
Gbl.Hierarchy.Sys.Ctys.Num = 0;
Gbl.Hierarchy.Sys.Ctys.Lst = NULL;
Gbl.Hierarchy.Sys.Ctys.SelectedOrder = Cty_ORDER_DEFAULT;
Gbl.Hierarchy.Cty.Inss.Num = 0;
Gbl.Hierarchy.Cty.Inss.Lst = NULL;
Gbl.Hierarchy.Cty.Inss.SelectedOrder = Ins_ORDER_DEFAULT;
Gbl.Hierarchy.Ins.ShrtName[0] = '\0';
Gbl.Hierarchy.Ins.FullName[0] = '\0';
Gbl.Hierarchy.Ins.WWW[0] = '\0';
Gbl.Hierarchy.Ins.Ctrs.Num = 0;
Gbl.Hierarchy.Ins.Ctrs.Lst = NULL;
Gbl.Hierarchy.Ins.Ctrs.SelectedOrder = Ctr_ORDER_DEFAULT;
Gbl.Hierarchy.Ctr.ShrtName[0] = '\0';
Gbl.Hierarchy.Ctr.FullName[0] = '\0';
@ -231,20 +240,6 @@ void Gbl_InitializeGlobals (void)
Gbl.Hierarchy.Deg.ShrtName[0] = Gbl.Hierarchy.Deg.FullName[0] = '\0';
Gbl.Hierarchy.Crs.ShrtName[0] = Gbl.Hierarchy.Crs.FullName[0] = '\0';
Gbl.Crs.Info.ShowMsgMustBeRead = 0;
Gbl.Crs.Notices.HighlightNotCod = -1L; // No notice highlighted
Gbl.Hierarchy.Cty.Inss.Num = 0;
Gbl.Hierarchy.Cty.Inss.Lst = NULL;
Gbl.Hierarchy.Cty.Inss.SelectedOrder = Ins_ORDER_DEFAULT;
Gbl.Hierarchy.Sys.Ctys.Num = 0;
Gbl.Hierarchy.Sys.Ctys.Lst = NULL;
Gbl.Hierarchy.Sys.Ctys.SelectedOrder = Cty_ORDER_DEFAULT;
Gbl.Hierarchy.Ins.Ctrs.Num = 0;
Gbl.Hierarchy.Ins.Ctrs.Lst = NULL;
Gbl.Hierarchy.Ins.Ctrs.SelectedOrder = Ctr_ORDER_DEFAULT;
Gbl.Dpts.Num = 0;
Gbl.Dpts.Lst = NULL;
@ -262,6 +257,8 @@ void Gbl_InitializeGlobals (void)
Gbl.DegTypes.Num = 0;
Gbl.DegTypes.Lst = NULL;
Gbl.Crs.Info.ShowMsgMustBeRead = 0;
Gbl.Crs.Notices.HighlightNotCod = -1L; // No notice highlighted
Gbl.Crs.Grps.NumGrps = 0;
Gbl.Crs.Grps.WhichGrps = Grp_WHICH_GROUPS_DEFAULT;
Gbl.Crs.Grps.GrpTypes.LstGrpTypes = NULL;
@ -280,13 +277,9 @@ void Gbl_InitializeGlobals (void)
Gbl.Crs.Grps.LstGrpsSel.GrpCods = NULL;
Gbl.Crs.Grps.LstGrpsSel.NumGrps = 0;
Gbl.Crs.Grps.LstGrpsSel.NestedCalls = 0;
Gbl.Usrs.ClassPhoto.AllGroups = true;
Gbl.Crs.Records.Field.Name[0] = '\0';
Gbl.Crs.Records.Field.NumLines = Rec_MIN_LINES_IN_EDITION_FIELD;
Gbl.Crs.Records.Field.Visibility = Rec_HIDDEN_FIELD;
Gbl.Crs.Records.LstFields.Lst = NULL;
Gbl.Crs.Records.LstFields.Num = 0;
Gbl.Crs.Records.LstFields.NestedCalls = 0;
@ -342,6 +335,7 @@ void Gbl_InitializeGlobals (void)
Gbl.Usrs.Listing.RecsPerPag = Rec_DEF_RECORDS_PER_PAGE;
Gbl.Usrs.Listing.WithPhotos = Usr_LIST_WITH_PHOTOS_DEF;
Gbl.Usrs.ClassPhoto.AllGroups = true;
Gbl.Usrs.ClassPhoto.Cols = Usr_CLASS_PHOTO_COLS_DEF;
/* Statistics */
@ -413,6 +407,8 @@ void Gbl_InitializeGlobals (void)
Ins_FlushCacheShortNameOfInstitution ();
Ins_FlushCacheFullNameAndCtyOfInstitution ();
Dpt_FlushCacheNumDptsInIns ();
Ctr_FlushCacheNumCtrsInIns ();
Deg_FlushCacheNumDegsInIns ();
Deg_FlushCacheNumDegsInCtr ();
Crs_FlushCacheNumCrssInIns ();
Crs_FlushCacheNumCrssInCtr ();

View File

@ -777,6 +777,11 @@ struct Globals
long InsCod;
unsigned NumDpts;
} NumDptsInIns;
struct
{
long InsCod;
unsigned NumCtrs;
} NumCtrsInIns;
struct
{
long InsCod;

View File

@ -555,8 +555,7 @@ void Hie_InitHierarchy (void)
/***** If institution code is available, get institution data *****/
if (Gbl.Hierarchy.Ins.InsCod > 0)
{
if (Ins_GetDataOfInstitutionByCod (&Gbl.Hierarchy.Ins, // Institution found
Ins_GET_EXTRA_DATA)) // Get extra data because they may be needed later
if (Ins_GetDataOfInstitutionByCod (&Gbl.Hierarchy.Ins)) // Institution found
Gbl.Hierarchy.Cty.CtyCod = Gbl.Hierarchy.Ins.CtyCod;
else
Hie_ResetHierarchy ();
@ -736,7 +735,7 @@ void Hie_GetAndWriteInsCtrDegAdminBy (long UsrCod,unsigned ColSpan)
if (Ins.InsCod > 0)
{
/* Get data of institution */
Ins_GetDataOfInstitutionByCod (&Ins,Ins_GET_BASIC_DATA);
Ins_GetDataOfInstitutionByCod (&Ins);
/* Write institution logo and name */
Ins_DrawInstitutionLogoAndNameWithLink (&Ins,ActSeeInsInf,

View File

@ -175,7 +175,7 @@ void Ins_SeeInsWithPendingCtrs (void)
Gbl.ColorRows[Gbl.RowEvenOdd];
/* Get data of institution */
Ins_GetDataOfInstitutionByCod (&Ins,Ins_GET_BASIC_DATA);
Ins_GetDataOfInstitutionByCod (&Ins);
/* Institution logo and name */
HTM_TR_Begin (NULL);
@ -265,7 +265,7 @@ void Ins_ShowInssOfCurrentCty (void)
Ins_GetParamInsOrder ();
/***** Get list of institutions *****/
Ins_GetListInstitutions (Gbl.Hierarchy.Cty.CtyCod,Ins_GET_EXTRA_DATA);
Ins_GetListInstitutions (Gbl.Hierarchy.Cty.CtyCod);
/***** Write menu to select country *****/
Hie_WriteMenuHierarchy ();
@ -407,7 +407,7 @@ static void Ins_ListOneInstitutionForSeeing (struct Instit *Ins,unsigned NumIns)
/* Number of centres in this institution */
HTM_TD_Begin ("class=\"%s RM %s\"",TxtClassNormal,BgColor);
HTM_Unsigned (Ins->Ctrs.Num);
HTM_Unsigned (Ctr_GetNumCtrsInIns (Ins->InsCod));
HTM_TD_End ();
/* Number of degrees in this institution */
@ -533,7 +533,7 @@ static void Ins_EditInstitutionsInternal (void)
extern const char *Txt_Institutions_of_COUNTRY_X;
/***** Get list of institutions *****/
Ins_GetListInstitutions (Gbl.Hierarchy.Cty.CtyCod,Ins_GET_EXTRA_DATA);
Ins_GetListInstitutions (Gbl.Hierarchy.Cty.CtyCod);
/***** Write menu to select country *****/
Hie_WriteMenuHierarchy ();
@ -549,7 +549,7 @@ static void Ins_EditInstitutionsInternal (void)
Ins_PutFormToCreateInstitution ();
/***** Forms to edit current institutions *****/
if (Gbl.Hierarchy.Cty.Inss.Num)
if (Ins_GetNumInssInCty (Gbl.Hierarchy.Cty.CtyCod))
Ins_ListInstitutionsForEdition ();
/***** End box *****/
@ -591,7 +591,7 @@ static void Ins_PutIconToViewInstitutions (void)
/*****************************************************************************/
// If CtyCod <= 0, get all institutions
void Ins_GetListInstitutions (long CtyCod,Ins_GetExtraData_t GetExtraData)
void Ins_GetListInstitutions (long CtyCod)
{
MYSQL_RES *mysql_res;
MYSQL_ROW row;
@ -693,18 +693,6 @@ void Ins_GetListInstitutions (long CtyCod,Ins_GetExtraData_t GetExtraData)
/* Get the URL of the institution (row[6]) */
Str_Copy (Ins->WWW,row[6],
Cns_MAX_BYTES_WWW);
/* Get extra data */
switch (GetExtraData)
{
case Ins_GET_BASIC_DATA:
Ins->Ctrs.Num = 0;
break;
case Ins_GET_EXTRA_DATA:
/* Get number of centres in this institution */
Ins->Ctrs.Num = Ctr_GetNumCtrsInIns (Ins->InsCod);
break;
}
}
}
else
@ -736,21 +724,23 @@ void Ins_WriteInstitutionNameAndCty (long InsCod)
/************************* Get data of an institution ************************/
/*****************************************************************************/
bool Ins_GetDataOfInstitutionByCod (struct Instit *Ins,
Ins_GetExtraData_t GetExtraData)
bool Ins_GetDataOfInstitutionByCod (struct Instit *Ins)
{
MYSQL_RES *mysql_res;
MYSQL_ROW row;
bool InsFound = false;
/***** Clear data *****/
Ins->CtyCod = -1L;
Ins->Status = (Ins_Status_t) 0;
Ins->RequesterUsrCod = -1L;
Ins->ShrtName[0] =
Ins->FullName[0] =
Ins->WWW[0] = '\0';
Ins->Ctrs.Num = 0;
Ins->CtyCod = -1L;
Ins->Status = (Ins_Status_t) 0;
Ins->RequesterUsrCod = -1L;
Ins->ShrtName[0] =
Ins->FullName[0] =
Ins->WWW[0] = '\0';
Ins->Ctrs.Num = 0;
Ins->Ctrs.Lst = NULL;
Ins->Ctrs.SelectedOrder = Ctr_ORDER_DEFAULT;
/***** Check if institution code is correct *****/
if (Ins->InsCod > 0)
@ -786,11 +776,6 @@ bool Ins_GetDataOfInstitutionByCod (struct Instit *Ins,
Str_Copy (Ins->WWW,row[5],
Cns_MAX_BYTES_WWW);
/* Get extra data */
if (GetExtraData == Ins_GET_EXTRA_DATA)
/* Get number of centres in this institution */
Ins->Ctrs.Num = Ctr_GetNumCtrsInIns (Ins->InsCod);
/* Set return value */
InsFound = true;
}
@ -1022,6 +1007,7 @@ static void Ins_ListInstitutionsForEdition (void)
char WWW[Cns_MAX_BYTES_WWW + 1];
struct UsrData UsrDat;
bool ICanEdit;
unsigned NumCtrss;
unsigned NumUsrsInCrssOfIns;
unsigned NumUsrsWhoClaimToBelongToIns;
Ins_StatusTxt_t StatusTxt;
@ -1042,6 +1028,7 @@ static void Ins_ListInstitutionsForEdition (void)
Ins = &Gbl.Hierarchy.Cty.Inss.Lst[NumIns];
ICanEdit = Ins_CheckIfICanEdit (Ins);
NumCtrss = Ctr_GetNumCtrsInIns (Ins->InsCod);
NumUsrsInCrssOfIns = Usr_GetNumUsrsInCrssOfIns (Rol_UNK,Ins->InsCod); // Here Rol_UNK means "all users"
NumUsrsWhoClaimToBelongToIns = Usr_GetNumUsrsWhoClaimToBelongToIns (Ins->InsCod);
@ -1050,7 +1037,7 @@ static void Ins_ListInstitutionsForEdition (void)
/* Put icon to remove institution */
HTM_TD_Begin ("class=\"BM\"");
if (!ICanEdit ||
Ins->Ctrs.Num || // Institution has centres
NumCtrss || // Institution has centres
NumUsrsInCrssOfIns || // Institution has users
NumUsrsWhoClaimToBelongToIns) // Institution has users
// Institution has centres or users ==> deletion forbidden
@ -1133,7 +1120,7 @@ static void Ins_ListInstitutionsForEdition (void)
/* Number of centres */
HTM_TD_Begin ("class=\"DAT RM\"");
HTM_Unsigned (Ins->Ctrs.Num);
HTM_Unsigned (NumCtrss);
HTM_TD_End ();
/* Number of users in courses of this institution */
@ -1298,12 +1285,12 @@ void Ins_RemoveInstitution (void)
Ins_EditingIns->InsCod = Ins_GetAndCheckParamOtherInsCod (1);
/***** Get data of the institution from database *****/
Ins_GetDataOfInstitutionByCod (Ins_EditingIns,Ins_GET_EXTRA_DATA);
Ins_GetDataOfInstitutionByCod (Ins_EditingIns);
/***** Check if this institution has users *****/
if (!Ins_CheckIfICanEdit (Ins_EditingIns))
Lay_NoPermissionExit ();
else if (Ins_EditingIns->Ctrs.Num)
else if (Ctr_GetNumCtrsInIns (Ins_EditingIns->InsCod))
// Institution has centres ==> don't remove
Ale_CreateAlert (Ale_WARNING,NULL,
Txt_To_remove_an_institution_you_must_first_remove_all_centres_and_users_in_the_institution);
@ -1343,6 +1330,8 @@ void Ins_RemoveInstitution (void)
Ins_FlushCacheShortNameOfInstitution ();
Ins_FlushCacheFullNameAndCtyOfInstitution ();
Dpt_FlushCacheNumDptsInIns ();
Ctr_FlushCacheNumCtrsInIns ();
Deg_FlushCacheNumDegsInIns ();
Crs_FlushCacheNumCrssInIns ();
Usr_FlushCacheNumUsrsWhoClaimToBelongToIns ();
Usr_FlushCacheNumUsrsInCrssOfIns ();
@ -1415,7 +1404,7 @@ void Ins_RenameInstitution (struct Instit *Ins,Cns_ShrtOrFullName_t ShrtOrFullNa
Par_GetParToText (ParamName,NewInsName,MaxBytes);
/***** Get from the database the old names of the institution *****/
Ins_GetDataOfInstitutionByCod (Ins,Ins_GET_BASIC_DATA);
Ins_GetDataOfInstitutionByCod (Ins);
/***** Check if new name is empty *****/
if (NewInsName[0])
@ -1507,7 +1496,7 @@ void Ins_ChangeInsWWW (void)
Par_GetParToText ("WWW",NewWWW,Cns_MAX_BYTES_WWW);
/***** Get data of institution *****/
Ins_GetDataOfInstitutionByCod (Ins_EditingIns,Ins_GET_BASIC_DATA);
Ins_GetDataOfInstitutionByCod (Ins_EditingIns);
/***** Check if new WWW is empty *****/
if (NewWWW[0])
@ -1568,7 +1557,7 @@ void Ins_ChangeInsStatus (void)
Status = Ins_GetStatusBitsFromStatusTxt (StatusTxt); // New status
/***** Get data of institution *****/
Ins_GetDataOfInstitutionByCod (Ins_EditingIns,Ins_GET_BASIC_DATA);
Ins_GetDataOfInstitutionByCod (Ins_EditingIns);
/***** Update status in table of institutions *****/
DB_QueryUPDATE ("can not update the status of an institution",
@ -1987,7 +1976,7 @@ void Ins_ListInssFound (MYSQL_RES **mysql_res,unsigned NumInss)
Ins.InsCod = Str_ConvertStrCodToLongCod (row[0]);
/* Get data of institution */
Ins_GetDataOfInstitutionByCod (&Ins,Ins_GET_EXTRA_DATA);
Ins_GetDataOfInstitutionByCod (&Ins);
/* Write data of this institution */
Ins_ListOneInstitutionForSeeing (&Ins,NumIns);

View File

@ -99,11 +99,10 @@ void Ins_DrawInstitutionLogoAndNameWithLink (struct Instit *Ins,Act_Action_t Act
void Ins_ShowInssOfCurrentCty (void);
void Ins_EditInstitutions (void);
void Ins_GetListInstitutions (long CtyCod,Ins_GetExtraData_t GetExtraData);
void Ins_GetListInstitutions (long CtyCod);
void Ins_WriteInstitutionNameAndCty (long InsCod);
bool Ins_GetDataOfInstitutionByCod (struct Instit *Ins,
Ins_GetExtraData_t GetExtraData);
bool Ins_GetDataOfInstitutionByCod (struct Instit *Ins);
void Ins_FlushCacheShortNameOfInstitution (void);
void Ins_GetShortNameOfInstitution (struct Instit *Ins);
void Ins_FlushCacheFullNameAndCtyOfInstitution (void);

View File

@ -1553,7 +1553,7 @@ void Lay_WriteHeaderClassPhoto (bool PrintView,bool DrawingClassPhoto,
/***** Get data of institution *****/
Ins.InsCod = InsCod;
Ins_GetDataOfInstitutionByCod (&Ins,Ins_GET_BASIC_DATA);
Ins_GetDataOfInstitutionByCod (&Ins);
/***** Get data of degree *****/
Deg.DegCod = DegCod;

View File

@ -403,7 +403,7 @@ void Ntf_ShowMyNotifications (void)
/* Get institution code (row[2]) */
Ins.InsCod = Str_ConvertStrCodToLongCod (row[2]);
Ins_GetDataOfInstitutionByCod (&Ins,Ins_GET_BASIC_DATA);
Ins_GetDataOfInstitutionByCod (&Ins);
/* Get centre code (row[3]) */
Ctr.CtrCod = Str_ConvertStrCodToLongCod (row[3]);
@ -1650,7 +1650,7 @@ static void Ntf_SendPendingNotifByEMailToOneUsr (struct UsrData *ToUsrDat,unsign
/* Get institution code (row[2]) */
Ins.InsCod = Str_ConvertStrCodToLongCod (row[2]);
Ins_GetDataOfInstitutionByCod (&Ins,Ins_GET_BASIC_DATA);
Ins_GetDataOfInstitutionByCod (&Ins);
/* Get centre code (row[3]) */
Ctr.CtrCod = Str_ConvertStrCodToLongCod (row[3]);

View File

@ -2199,7 +2199,7 @@ void Rec_ShowSharedUsrRecord (Rec_SharedRecordViewType_t TypeOfView,
Ins.InsCod = UsrDat->InsCod;
if (Ins.InsCod > 0)
Ins_GetDataOfInstitutionByCod (&Ins,Ins_GET_BASIC_DATA);
Ins_GetDataOfInstitutionByCod (&Ins);
/***** Begin box and table *****/
sprintf (StrRecordWidth,"%upx",Rec_RECORD_WIDTH);
@ -3994,7 +3994,7 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher)
/* Get list of institutions in this country */
Ins_FreeListInstitutions ();
if (Gbl.Usrs.Me.UsrDat.InsCtyCod > 0)
Ins_GetListInstitutions (Gbl.Usrs.Me.UsrDat.InsCtyCod,Ins_GET_BASIC_DATA);
Ins_GetListInstitutions (Gbl.Usrs.Me.UsrDat.InsCtyCod);
/* Begin form to select institution */
Frm_StartFormAnchor (ActChgMyIns,Rec_MY_INS_CTR_DPT_ID);
@ -4172,7 +4172,7 @@ void Rec_UpdateMyInstitution (void)
/* Get country of institution */
if (Ins.InsCod > 0)
{
Ins_GetDataOfInstitutionByCod (&Ins,Ins_GET_BASIC_DATA);
Ins_GetDataOfInstitutionByCod (&Ins);
if (Gbl.Usrs.Me.UsrDat.InsCtyCod != Ins.CtyCod)
Gbl.Usrs.Me.UsrDat.InsCtyCod = Ins.CtyCod;
}

View File

@ -563,7 +563,7 @@ static void Rep_WriteSectionUsrInfo (void)
/***** User's institution *****/
Ins.InsCod = Gbl.Usrs.Me.UsrDat.InsCod;
Ins_GetDataOfInstitutionByCod (&Ins,Ins_GET_BASIC_DATA);
Ins_GetDataOfInstitutionByCod (&Ins);
fprintf (Gbl.F.Rep,"<li>%s: %s</li>",
Txt_Institution,
Ins.FullName);

View File

@ -3368,7 +3368,7 @@ static void Sta_WriteInstitution (long InsCod)
{
/***** Get data of institution *****/
Ins.InsCod = InsCod;
Ins_GetDataOfInstitutionByCod (&Ins,Ins_GET_BASIC_DATA);
Ins_GetDataOfInstitutionByCod (&Ins);
/***** Title in cell *****/
HTM_TD_Begin ("class=\"LOG LM\" title=\"%s\"",Ins.FullName);

View File

@ -1611,7 +1611,7 @@ static void TL_WriteNote (const struct TL_Note *SocNot,
case TL_NOTE_INS_SHA_PUB_FILE:
/* Get institution data */
Ins.InsCod = SocNot->HieCod;
Ins_GetDataOfInstitutionByCod (&Ins,Ins_GET_BASIC_DATA);
Ins_GetDataOfInstitutionByCod (&Ins);
break;
case TL_NOTE_CTR_DOC_PUB_FILE:
case TL_NOTE_CTR_SHA_PUB_FILE:

View File

@ -3716,7 +3716,7 @@ void Usr_WriteRowUsrMainData (unsigned NumUsr,struct UsrData *UsrDat,
/***** Write rest of main user's data *****/
Ins.InsCod = UsrDat->InsCod;
Ins_GetDataOfInstitutionByCod (&Ins,Ins_GET_BASIC_DATA);
Ins_GetDataOfInstitutionByCod (&Ins);
Usr_WriteMainUsrDataExceptUsrID (UsrDat,BgColor);
HTM_TD_Begin ("class=\"LM %s\"",BgColor);
Ins_DrawInstitutionLogoWithLink (&Ins,25);
@ -3760,7 +3760,7 @@ static void Usr_WriteRowGstAllData (struct UsrData *UsrDat)
/***** Write rest of guest's main data *****/
Ins.InsCod = UsrDat->InsCod;
Ins_GetDataOfInstitutionByCod (&Ins,Ins_GET_BASIC_DATA);
Ins_GetDataOfInstitutionByCod (&Ins);
Usr_WriteMainUsrDataExceptUsrID (UsrDat,Gbl.ColorRows[Gbl.RowEvenOdd]);
Usr_WriteEmail (UsrDat,Gbl.ColorRows[Gbl.RowEvenOdd]);
Usr_WriteUsrData (Gbl.ColorRows[Gbl.RowEvenOdd],
@ -3864,7 +3864,7 @@ static void Usr_WriteRowStdAllData (struct UsrData *UsrDat,char *GroupNames)
/***** Write rest of main student's data *****/
Ins.InsCod = UsrDat->InsCod;
Ins_GetDataOfInstitutionByCod (&Ins,Ins_GET_BASIC_DATA);
Ins_GetDataOfInstitutionByCod (&Ins);
Usr_WriteMainUsrDataExceptUsrID (UsrDat,Gbl.ColorRows[Gbl.RowEvenOdd]);
Usr_WriteEmail (UsrDat,Gbl.ColorRows[Gbl.RowEvenOdd]);
Usr_WriteUsrData (Gbl.ColorRows[Gbl.RowEvenOdd],
@ -3983,7 +3983,7 @@ static void Usr_WriteRowTchAllData (struct UsrData *UsrDat)
/***** Write rest of main teacher's data *****/
Ins.InsCod = UsrDat->InsCod;
Ins_GetDataOfInstitutionByCod (&Ins,Ins_GET_BASIC_DATA);
Ins_GetDataOfInstitutionByCod (&Ins);
Usr_WriteMainUsrDataExceptUsrID (UsrDat,Gbl.ColorRows[Gbl.RowEvenOdd]);
Usr_WriteEmail (UsrDat,Gbl.ColorRows[Gbl.RowEvenOdd]);
Usr_WriteUsrData (Gbl.ColorRows[Gbl.RowEvenOdd],
@ -4061,7 +4061,7 @@ static void Usr_WriteRowAdmData (unsigned NumUsr,struct UsrData *UsrDat)
/***** Write rest of main administrator's data *****/
Ins.InsCod = UsrDat->InsCod;
Ins_GetDataOfInstitutionByCod (&Ins,Ins_GET_BASIC_DATA);
Ins_GetDataOfInstitutionByCod (&Ins);
Usr_WriteMainUsrDataExceptUsrID (UsrDat,Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_Begin ("class=\"LM %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);