diff --git a/Makefile b/Makefile
index 8ec3e415..c2314dd4 100644
--- a/Makefile
+++ b/Makefile
@@ -39,7 +39,8 @@ OBJS = swad_account.o swad_account_database.o swad_action.o swad_agenda.o \
swad_country_database.o swad_course.o swad_course_config.o \
swad_course_database.o swad_cryptography.o \
swad_database.o swad_date.o swad_degree.o swad_degree_config.o \
- swad_degree_type.o swad_department.o swad_duplicate.o \
+ swad_degree_database.o swad_degree_type.o swad_department.o \
+ swad_duplicate.o \
swad_enrolment.o swad_error.o swad_exam.o swad_exam_log.o \
swad_exam_print.o swad_exam_result.o swad_exam_session.o \
swad_exam_set.o \
diff --git a/swad_API.c b/swad_API.c
index f1ee9c80..9f8e6bed 100644
--- a/swad_API.c
+++ b/swad_API.c
@@ -110,6 +110,7 @@ cp -f /home/acanas/swad/swad/swad /var/www/cgi-bin/
#include "swad_forum.h"
#include "swad_global.h"
#include "swad_hierarchy.h"
+#include "swad_hierarchy_level.h"
#include "swad_ID.h"
#include "swad_match.h"
#include "swad_notice.h"
@@ -1754,7 +1755,7 @@ int swad__getUsers (struct soap *soap,
Grp_GetListGrpTypesInThisCrs (Grp_ONLY_GROUP_TYPES_WITH_GROUPS);
/***** Get list of users *****/
- Usr_GetListUsrs (Hie_Lvl_CRS,Role);
+ Usr_GetListUsrs (HieLvl_CRS,Role);
API_CopyListUsers (soap,
Role,getUsersOut);
Usr_FreeUsrsList (Role);
@@ -1794,7 +1795,7 @@ int swad__findUsers (struct soap *soap,
"Bad web service key",
"Web service key does not exist in database");
- if (Gbl.Hierarchy.Level == Hie_Lvl_CRS) // Course selected
+ if (Gbl.Hierarchy.Level == HieLvl_CRS) // Course selected
/***** Check course *****/
if ((ReturnCode = API_CheckCourseAndGroupCodes (soap,
Gbl.Hierarchy.Crs.CrsCod,
@@ -1809,7 +1810,7 @@ int swad__findUsers (struct soap *soap,
Gbl.Usrs.Me.Logged = true;
Gbl.Usrs.Me.Role.Logged = Gbl.Usrs.Me.UsrDat.Roles.InCurrentCrs;
- if (Gbl.Hierarchy.Level == Hie_Lvl_CRS) // Course selected
+ if (Gbl.Hierarchy.Level == HieLvl_CRS) // Course selected
/***** Check if I am a student, non-editing teacher or teacher in the course *****/
if (Gbl.Usrs.Me.UsrDat.Roles.InCurrentCrs != Rol_STD &&
Gbl.Usrs.Me.UsrDat.Roles.InCurrentCrs != Rol_NET &&
@@ -1818,7 +1819,7 @@ int swad__findUsers (struct soap *soap,
"Request forbidden",
"Requester must belong to course");
- if (Gbl.Hierarchy.Level == Hie_Lvl_CRS)
+ if (Gbl.Hierarchy.Level == HieLvl_CRS)
{
/***** Get degree of current course *****/
if ((ReturnCode = API_GetCurrentDegCodFromCurrentCrsCod ()) != SOAP_OK) // TODO: Is this necessary?
@@ -1838,8 +1839,8 @@ int swad__findUsers (struct soap *soap,
if (Gbl.Search.Str[0]) // Search some users
{
- Gbl.Scope.Current = (Gbl.Hierarchy.Level == Hie_Lvl_CRS) ? Hie_Lvl_CRS :
- Hie_Lvl_SYS;
+ Gbl.Scope.Current = (Gbl.Hierarchy.Level == HieLvl_CRS) ? HieLvl_CRS :
+ HieLvl_SYS;
if (Sch_BuildSearchQuery (SearchQuery,
"CONCAT_WS(' ',FirstName,Surname1,Surname2)",
NULL,NULL))
diff --git a/swad_ID.c b/swad_ID.c
index 04f6323a..6ac63a00 100644
--- a/swad_ID.c
+++ b/swad_ID.c
@@ -36,6 +36,7 @@
#include "swad_error.h"
#include "swad_form.h"
#include "swad_global.h"
+#include "swad_hierarchy_level.h"
#include "swad_HTML.h"
#include "swad_ID.h"
#include "swad_parameter.h"
@@ -1044,7 +1045,7 @@ void ID_ConfirmOtherUsrID (void)
{
/* If user is a student in current course,
check if he/she has accepted */
- if (Gbl.Hierarchy.Level == Hie_Lvl_CRS)
+ if (Gbl.Hierarchy.Level == HieLvl_CRS)
if (Gbl.Usrs.Other.UsrDat.Roles.InCurrentCrs == Rol_STD)
Gbl.Usrs.Other.UsrDat.Accepted = Usr_CheckIfUsrHasAcceptedInCurrentCrs (&Gbl.Usrs.Other.UsrDat);
diff --git a/swad_action.c b/swad_action.c
index 1afebc09..064f9585 100644
--- a/swad_action.c
+++ b/swad_action.c
@@ -347,11 +347,11 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
[ActRecCtrPho ] = {1161,-1,TabUnk,ActSeeCtrInf , 0, 0, 0,0x380, 0, 0, 0,Act_CONT_DATA,Act_BRW_1ST_TAB,NULL ,CtrCfg_ReceivePhoto ,NULL},
[ActChgCtrPhoAtt ] = {1159,-1,TabUnk,ActSeeCtrInf , 0, 0, 0,0x380, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,CtrCfg_ChangeCtrPhotoAttr ,NULL},
- [ActSeeDegTyp ] = {1013,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x3C7, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,DT_SeeDegreeTypesInDegTab ,NULL},
- [ActEdiDegTyp ] = { 573,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x200, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,DT_EditDegreeTypes ,NULL},
- [ActNewDegTyp ] = { 537,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x200, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,DT_ReceiveFormNewDegreeType ,DT_ContEditAfterChgDegTyp ,NULL},
- [ActRemDegTyp ] = { 545,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x200, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,DT_RemoveDegreeType ,DT_ContEditAfterChgDegTyp ,NULL},
- [ActRenDegTyp ] = { 538,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x200, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,DT_RenameDegreeType ,DT_ContEditAfterChgDegTyp ,NULL},
+ [ActSeeDegTyp ] = {1013,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x3C7, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,DegTyp_SeeDegreeTypesInDegTab ,NULL},
+ [ActEdiDegTyp ] = { 573,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x200, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,DegTyp_EditDegreeTypes ,NULL},
+ [ActNewDegTyp ] = { 537,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x200, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,DegTyp_ReceiveFormNewDegreeType ,DegTyp_ContEditAfterChgDegTyp ,NULL},
+ [ActRemDegTyp ] = { 545,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x200, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,DegTyp_RemoveDegreeType ,DegTyp_ContEditAfterChgDegTyp ,NULL},
+ [ActRenDegTyp ] = { 538,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x200, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,DegTyp_RenameDegreeType ,DegTyp_ContEditAfterChgDegTyp ,NULL},
[ActEdiDeg ] = { 536,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Deg_EditDegrees ,NULL},
[ActReqDeg ] = {1206,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Deg_ReceiveFormReqDeg ,Deg_ContEditAfterChgDeg ,NULL},
@@ -3810,22 +3810,22 @@ bool Act_CheckIfIHavePermissionToExecuteAction (Act_Action_t Action)
switch (Gbl.Hierarchy.Level)
{
- case Hie_Lvl_SYS: // System
+ case HieLvl_SYS: // System
Permission = Act_Actions[Action].PermissionSys;
break;
- case Hie_Lvl_CTY: // Country selected
+ case HieLvl_CTY: // Country selected
Permission = Act_Actions[Action].PermissionCty;
break;
- case Hie_Lvl_INS: // Institution selected
+ case HieLvl_INS: // Institution selected
Permission = Act_Actions[Action].PermissionIns;
break;
- case Hie_Lvl_CTR: // Center selected
+ case HieLvl_CTR: // Center selected
Permission = Act_Actions[Action].PermissionCtr;
break;
- case Hie_Lvl_DEG: // Degree selected
+ case HieLvl_DEG: // Degree selected
Permission = Act_Actions[Action].PermissionDeg;
break;
- case Hie_Lvl_CRS: // Course selected
+ case HieLvl_CRS: // Course selected
Permission = Gbl.Usrs.Me.IBelongToCurrentCrs ? Act_Actions[Action].PermissionCrsIfIBelong :
Act_Actions[Action].PermissionCrsIfIDontBelong;
break;
@@ -3946,18 +3946,18 @@ const char *Act_GetActionText (Act_Action_t Action)
void Act_AdjustActionWhenNoUsrLogged (void)
{
- static const Act_Action_t Actions[Hie_Lvl_NUM_LEVELS] =
+ static const Act_Action_t Actions[HieLvl_NUM_LEVELS] =
{
- [Hie_Lvl_UNK] = ActUnk, // Unknown
- [Hie_Lvl_SYS] = ActFrmLogIn, // System
- [Hie_Lvl_CTY] = ActSeeCtyInf, // Country
- [Hie_Lvl_INS] = ActSeeInsInf, // Institution
- [Hie_Lvl_CTR] = ActSeeCtrInf, // Center
- [Hie_Lvl_DEG] = ActSeeDegInf, // Degree
- [Hie_Lvl_CRS] = ActSeeCrsInf, // Course
+ [HieLvl_UNK] = ActUnk, // Unknown
+ [HieLvl_SYS] = ActFrmLogIn, // System
+ [HieLvl_CTY] = ActSeeCtyInf, // Country
+ [HieLvl_INS] = ActSeeInsInf, // Institution
+ [HieLvl_CTR] = ActSeeCtrInf, // Center
+ [HieLvl_DEG] = ActSeeDegInf, // Degree
+ [HieLvl_CRS] = ActSeeCrsInf, // Course
};
- if (Gbl.Hierarchy.Level >= Hie_Lvl_NUM_LEVELS)
+ if (Gbl.Hierarchy.Level >= HieLvl_NUM_LEVELS)
Gbl.Hierarchy.Level = ActUnk;
Gbl.Action.Act = Actions[Gbl.Hierarchy.Level];
diff --git a/swad_agenda_database.c b/swad_agenda_database.c
index a6f83eec..b1603f56 100644
--- a/swad_agenda_database.c
+++ b/swad_agenda_database.c
@@ -34,6 +34,7 @@
#include "swad_database.h"
#include "swad_error.h"
#include "swad_global.h"
+#include "swad_hierarchy_level.h"
/*****************************************************************************/
/************** External global variables from others modules ****************/
@@ -365,18 +366,18 @@ unsigned Agd_DB_GetNumEventsFromUsr (long UsrCod)
/*****************************************************************************/
// Returns the number of users with events in a given scope
-unsigned Agd_DB_GetNumUsrsWithEvents (Hie_Lvl_Level_t Scope)
+unsigned Agd_DB_GetNumUsrsWithEvents (HieLvl_Level_t Scope)
{
/***** Get number of users with events from database *****/
switch (Scope)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
return (unsigned)
DB_QueryCOUNT ("can not get number of users with events",
"SELECT COUNT(DISTINCT UsrCod)"
" FROM agd_agendas"
" WHERE UsrCod>0");
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
return (unsigned)
DB_QueryCOUNT ("can not get number of users with events",
"SELECT COUNT(DISTINCT agd_agendas.UsrCod)"
@@ -393,7 +394,7 @@ unsigned Agd_DB_GetNumUsrsWithEvents (Hie_Lvl_Level_t Scope)
" AND crs_courses.CrsCod=crs_users.CrsCod"
" AND crs_users.UsrCod=agd_agendas.UsrCod",
Gbl.Hierarchy.Cty.CtyCod);
- case Hie_Lvl_INS:
+ case HieLvl_INS:
return (unsigned)
DB_QueryCOUNT ("can not get number of users with events",
"SELECT COUNT(DISTINCT agd_agendas.UsrCod)"
@@ -408,7 +409,7 @@ unsigned Agd_DB_GetNumUsrsWithEvents (Hie_Lvl_Level_t Scope)
" AND crs_courses.CrsCod=crs_users.CrsCod"
" AND crs_users.UsrCod=agd_agendas.UsrCod",
Gbl.Hierarchy.Ins.InsCod);
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
return (unsigned)
DB_QueryCOUNT ("can not get number of users with events",
"SELECT COUNT(DISTINCT agd_agendas.UsrCod)"
@@ -421,7 +422,7 @@ unsigned Agd_DB_GetNumUsrsWithEvents (Hie_Lvl_Level_t Scope)
" AND crs_courses.CrsCod=crs_users.CrsCod"
" AND crs_users.UsrCod=agd_agendas.UsrCod",
Gbl.Hierarchy.Ctr.CtrCod);
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
return (unsigned)
DB_QueryCOUNT ("can not get number of users with events",
"SELECT COUNT(DISTINCT agd_agendas.UsrCod)"
@@ -432,7 +433,7 @@ unsigned Agd_DB_GetNumUsrsWithEvents (Hie_Lvl_Level_t Scope)
" AND crs_courses.CrsCod=crs_users.CrsCod"
" AND crs_users.UsrCod=agd_agendas.UsrCod",
Gbl.Hierarchy.Deg.DegCod);
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
return (unsigned)
DB_QueryCOUNT ("can not get number of users with events",
"SELECT COUNT(DISTINCT agd_agendas.UsrCod)"
@@ -452,18 +453,18 @@ unsigned Agd_DB_GetNumUsrsWithEvents (Hie_Lvl_Level_t Scope)
/*****************************************************************************/
// Returns the number of events in a given scope
-unsigned Agd_DB_GetNumEvents (Hie_Lvl_Level_t Scope)
+unsigned Agd_DB_GetNumEvents (HieLvl_Level_t Scope)
{
/***** Get number of events from database *****/
switch (Scope)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
return (unsigned)
DB_QueryCOUNT ("can not get number of events",
"SELECT COUNT(*)"
" FROM agd_agendas"
" WHERE UsrCod>0");
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
return (unsigned)
DB_QueryCOUNT ("can not get number of events",
"SELECT COUNT(*)"
@@ -481,7 +482,7 @@ unsigned Agd_DB_GetNumEvents (Hie_Lvl_Level_t Scope)
"agd_agendas"
" WHERE users.UsrCod=agd_agendas.UsrCod",
Gbl.Hierarchy.Cty.CtyCod);
- case Hie_Lvl_INS:
+ case HieLvl_INS:
return (unsigned)
DB_QueryCOUNT ("can not get number of events",
"SELECT COUNT(*)"
@@ -497,7 +498,7 @@ unsigned Agd_DB_GetNumEvents (Hie_Lvl_Level_t Scope)
"agd_agendas"
" WHERE users.UsrCod=agd_agendas.UsrCod",
Gbl.Hierarchy.Ins.InsCod);
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
return (unsigned)
DB_QueryCOUNT ("can not get number of events",
"SELECT COUNT(*)"
@@ -511,7 +512,7 @@ unsigned Agd_DB_GetNumEvents (Hie_Lvl_Level_t Scope)
"agd_agendas"
" WHERE users.UsrCod=agd_agendas.UsrCod",
Gbl.Hierarchy.Ctr.CtrCod);
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
return (unsigned)
DB_QueryCOUNT ("can not get number of events",
"SELECT COUNT(*)"
@@ -523,7 +524,7 @@ unsigned Agd_DB_GetNumEvents (Hie_Lvl_Level_t Scope)
"agd_agendas"
" WHERE users.UsrCod=agd_agendas.UsrCod",
Gbl.Hierarchy.Deg.DegCod);
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
return (unsigned)
DB_QueryCOUNT ("can not get number of events",
"SELECT COUNT(*)"
diff --git a/swad_agenda_database.h b/swad_agenda_database.h
index e5e90bca..33a14c3d 100644
--- a/swad_agenda_database.h
+++ b/swad_agenda_database.h
@@ -61,8 +61,8 @@ void Agd_DB_RemoveUsrEvents (long UsrCod);
unsigned Agd_DB_GetNumEventsFromUsr (long UsrCod);
-unsigned Agd_DB_GetNumUsrsWithEvents (Hie_Lvl_Level_t Scope);
+unsigned Agd_DB_GetNumUsrsWithEvents (HieLvl_Level_t Scope);
-unsigned Agd_DB_GetNumEvents (Hie_Lvl_Level_t Scope);
+unsigned Agd_DB_GetNumEvents (HieLvl_Level_t Scope);
#endif
diff --git a/swad_assignment.c b/swad_assignment.c
index 5531f59d..c3b8be88 100644
--- a/swad_assignment.c
+++ b/swad_assignment.c
@@ -1594,7 +1594,7 @@ static bool Asg_CheckIfIBelongToCrsOrGrpsThisAssignment (long AsgCod)
// Returns the number of assignments
// in this location (all the platform, current degree or current course)
-unsigned Asg_GetNumAssignments (Hie_Lvl_Level_t Scope,unsigned *NumNotif)
+unsigned Asg_GetNumAssignments (HieLvl_Level_t Scope,unsigned *NumNotif)
{
MYSQL_RES *mysql_res;
MYSQL_ROW row;
diff --git a/swad_assignment.h b/swad_assignment.h
index 8acd9162..bf4ae129 100644
--- a/swad_assignment.h
+++ b/swad_assignment.h
@@ -98,6 +98,6 @@ void Asg_UnhideAssignment (void);
void Asg_ReceiveFormAssignment (void);
void Asg_RemoveCrsAssignments (long CrsCod);
-unsigned Asg_GetNumAssignments (Hie_Lvl_Level_t Scope,unsigned *NumNotif);
+unsigned Asg_GetNumAssignments (HieLvl_Level_t Scope,unsigned *NumNotif);
#endif
diff --git a/swad_assignment_database.c b/swad_assignment_database.c
index f7d6cee2..3c0fb015 100644
--- a/swad_assignment_database.c
+++ b/swad_assignment_database.c
@@ -31,6 +31,7 @@
#include "swad_date.h"
#include "swad_error.h"
#include "swad_global.h"
+#include "swad_hierarchy_level.h"
/*****************************************************************************/
/************** External global variables from others modules ****************/
@@ -475,18 +476,18 @@ void Asg_DB_UpdateNumUsrsNotifiedByEMailAboutAssignment (long AsgCod,
// Returns the number of courses with assignments
// in this location (all the platform, current degree or current course)
-unsigned Asg_DB_GetNumCoursesWithAssignments (Hie_Lvl_Level_t Scope)
+unsigned Asg_DB_GetNumCoursesWithAssignments (HieLvl_Level_t Scope)
{
/***** Get number of courses with assignments from database *****/
switch (Scope)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
return (unsigned)
DB_QueryCOUNT ("can not get number of courses with assignments",
"SELECT COUNT(DISTINCT CrsCod)"
" FROM asg_assignments"
" WHERE CrsCod>0");
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
return (unsigned)
DB_QueryCOUNT ("can not get number of courses with assignments",
"SELECT COUNT(DISTINCT asg_assignments.CrsCod)"
@@ -501,7 +502,7 @@ unsigned Asg_DB_GetNumCoursesWithAssignments (Hie_Lvl_Level_t Scope)
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=asg_assignments.CrsCod",
Gbl.Hierarchy.Cty.CtyCod);
- case Hie_Lvl_INS:
+ case HieLvl_INS:
return (unsigned)
DB_QueryCOUNT ("can not get number of courses with assignments",
"SELECT COUNT(DISTINCT asg_assignments.CrsCod)"
@@ -514,7 +515,7 @@ unsigned Asg_DB_GetNumCoursesWithAssignments (Hie_Lvl_Level_t Scope)
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=asg_assignments.CrsCod",
Gbl.Hierarchy.Ins.InsCod);
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
return (unsigned)
DB_QueryCOUNT ("can not get number of courses with assignments",
"SELECT COUNT(DISTINCT asg_assignments.CrsCod)"
@@ -525,7 +526,7 @@ unsigned Asg_DB_GetNumCoursesWithAssignments (Hie_Lvl_Level_t Scope)
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=asg_assignments.CrsCod",
Gbl.Hierarchy.Ctr.CtrCod);
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
return (unsigned)
DB_QueryCOUNT ("can not get number of courses with assignments",
"SELECT COUNT(DISTINCT asg_assignments.CrsCod)"
@@ -534,7 +535,7 @@ unsigned Asg_DB_GetNumCoursesWithAssignments (Hie_Lvl_Level_t Scope)
" WHERE crs_courses.DegCod=%ld"
" AND crs_courses.CrsCod=asg_assignments.CrsCod",
Gbl.Hierarchy.Deg.DegCod);
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
return (unsigned)
DB_QueryCOUNT ("can not get number of courses with assignments",
"SELECT COUNT(DISTINCT CrsCod)"
@@ -553,19 +554,19 @@ unsigned Asg_DB_GetNumCoursesWithAssignments (Hie_Lvl_Level_t Scope)
// Returns the number of assignments
// in this location (all the platform, current degree or current course)
-unsigned Asg_DB_GetNumAssignments (MYSQL_RES **mysql_res,Hie_Lvl_Level_t Scope)
+unsigned Asg_DB_GetNumAssignments (MYSQL_RES **mysql_res,HieLvl_Level_t Scope)
{
/***** Get number of assignments from database *****/
switch (Scope)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get number of assignments",
"SELECT COUNT(*)," // row[0]
"SUM(NumNotif)" // row[1]
" FROM asg_assignments"
" WHERE CrsCod>0");
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get number of assignments",
"SELECT COUNT(*)," // row[0]
@@ -581,7 +582,7 @@ unsigned Asg_DB_GetNumAssignments (MYSQL_RES **mysql_res,Hie_Lvl_Level_t Scope)
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=asg_assignments.CrsCod",
Gbl.Hierarchy.Cty.CtyCod);
- case Hie_Lvl_INS:
+ case HieLvl_INS:
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get number of assignments",
"SELECT COUNT(*)," // row[0]
@@ -595,7 +596,7 @@ unsigned Asg_DB_GetNumAssignments (MYSQL_RES **mysql_res,Hie_Lvl_Level_t Scope)
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=asg_assignments.CrsCod",
Gbl.Hierarchy.Ins.InsCod);
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get number of assignments",
"SELECT COUNT(*)," // row[0]
@@ -607,7 +608,7 @@ unsigned Asg_DB_GetNumAssignments (MYSQL_RES **mysql_res,Hie_Lvl_Level_t Scope)
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=asg_assignments.CrsCod",
Gbl.Hierarchy.Ctr.CtrCod);
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get number of assignments",
"SELECT COUNT(*)," // row[0]
@@ -617,7 +618,7 @@ unsigned Asg_DB_GetNumAssignments (MYSQL_RES **mysql_res,Hie_Lvl_Level_t Scope)
" WHERE crs_courses.DegCod=%ld"
" AND crs_courses.CrsCod=asg_assignments.CrsCod",
Gbl.Hierarchy.Deg.DegCod);
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get number of assignments",
"SELECT COUNT(*)," // row[0]
diff --git a/swad_assignment_database.h b/swad_assignment_database.h
index aba60952..f3bbe545 100644
--- a/swad_assignment_database.h
+++ b/swad_assignment_database.h
@@ -76,9 +76,9 @@ void Asg_DB_RemoveCrsAssignments (long CrsCod);
void Asg_DB_UpdateNumUsrsNotifiedByEMailAboutAssignment (long AsgCod,
unsigned NumUsrsToBeNotifiedByEMail);
-unsigned Asg_DB_GetNumCoursesWithAssignments (Hie_Lvl_Level_t Scope);
+unsigned Asg_DB_GetNumCoursesWithAssignments (HieLvl_Level_t Scope);
-unsigned Asg_DB_GetNumAssignments (MYSQL_RES **mysql_res,Hie_Lvl_Level_t Scope);
+unsigned Asg_DB_GetNumAssignments (MYSQL_RES **mysql_res,HieLvl_Level_t Scope);
unsigned Asg_DB_GetNumAssignmentsInCrs (long CrsCod);
diff --git a/swad_attendance.c b/swad_attendance.c
index 848391b0..52d1ca85 100644
--- a/swad_attendance.c
+++ b/swad_attendance.c
@@ -41,6 +41,7 @@
#include "swad_form.h"
#include "swad_global.h"
#include "swad_group.h"
+#include "swad_hierarchy_level.h"
#include "swad_HTML.h"
#include "swad_ID.h"
#include "swad_pagination.h"
@@ -1416,7 +1417,7 @@ void Att_RemoveCrsAttEvents (long CrsCod)
// Returns the number of attendance events
// in this location (all the platform, current degree or current course)
-unsigned Att_GetNumAttEvents (Hie_Lvl_Level_t Scope,unsigned *NumNotif)
+unsigned Att_GetNumAttEvents (HieLvl_Level_t Scope,unsigned *NumNotif)
{
MYSQL_RES *mysql_res;
MYSQL_ROW row;
@@ -1588,7 +1589,7 @@ static void Att_ListAttStudents (struct Att_Events *Events,
Grp_GetParCodsSeveralGrpsToShowUsrs ();
/***** Get and order list of students in this course *****/
- Usr_GetListUsrs (Hie_Lvl_CRS,Rol_STD);
+ Usr_GetListUsrs (HieLvl_CRS,Rol_STD);
/***** Begin box *****/
Box_BoxBegin (NULL,Txt_Attendance,
@@ -1982,7 +1983,7 @@ void Att_RegisterStudentsInAttEvent (void)
/***** 1. Get list of students in the groups selected: Gbl.Usrs.LstUsrs[Rol_STD] *****/
/* Get list of students in the groups selected */
- Usr_GetListUsrs (Hie_Lvl_CRS,Rol_STD);
+ Usr_GetListUsrs (HieLvl_CRS,Rol_STD);
if (Gbl.Usrs.LstUsrs[Rol_STD].NumUsrs) // If there are students in the groups selected...
{
diff --git a/swad_attendance.h b/swad_attendance.h
index 85eea1d0..6a7842d2 100644
--- a/swad_attendance.h
+++ b/swad_attendance.h
@@ -103,7 +103,7 @@ void Att_UpdateAttEvent (struct Att_Event *Event,const char *Description);
void Att_RemoveCrsAttEvents (long CrsCod);
-unsigned Att_GetNumAttEvents (Hie_Lvl_Level_t Scope,unsigned *NumNotif);
+unsigned Att_GetNumAttEvents (HieLvl_Level_t Scope,unsigned *NumNotif);
void Att_SeeOneAttEvent (void);
diff --git a/swad_attendance_database.c b/swad_attendance_database.c
index 51efa468..475ac0a2 100644
--- a/swad_attendance_database.c
+++ b/swad_attendance_database.c
@@ -32,6 +32,7 @@
#include "swad_database.h"
#include "swad_error.h"
#include "swad_global.h"
+#include "swad_hierarchy_level.h"
/*****************************************************************************/
/*************** External global variables from others modules ***************/
@@ -642,16 +643,16 @@ unsigned Att_DB_GetNumAttEventsInCrs (long CrsCod)
// Returns the number of courses with attendance events
// in this location (all the platform, current degree or current course)
-unsigned Att_DB_GetNumCoursesWithAttEvents (Hie_Lvl_Level_t Scope)
+unsigned Att_DB_GetNumCoursesWithAttEvents (HieLvl_Level_t Scope)
{
switch (Scope)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
return DB_QueryCOUNT ("can not get number of courses with attendance events",
"SELECT COUNT(DISTINCT CrsCod)"
" FROM att_events"
" WHERE CrsCod>0");
- case Hie_Lvl_INS:
+ case HieLvl_INS:
return DB_QueryCOUNT ("can not get number of courses with attendance events",
"SELECT COUNT(DISTINCT att_events.CrsCod)"
" FROM ctr_centers,"
@@ -663,7 +664,7 @@ unsigned Att_DB_GetNumCoursesWithAttEvents (Hie_Lvl_Level_t Scope)
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=att_events.CrsCod",
Gbl.Hierarchy.Ins.InsCod);
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
return DB_QueryCOUNT ("can not get number of courses with attendance events",
"SELECT COUNT(DISTINCT att_events.CrsCod)"
" FROM deg_degrees,"
@@ -673,7 +674,7 @@ unsigned Att_DB_GetNumCoursesWithAttEvents (Hie_Lvl_Level_t Scope)
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=att_events.CrsCod",
Gbl.Hierarchy.Ctr.CtrCod);
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
return DB_QueryCOUNT ("can not get number of courses with attendance events",
"SELECT COUNT(DISTINCT att_events.CrsCod)"
" FROM crs_courses,"
@@ -681,7 +682,7 @@ unsigned Att_DB_GetNumCoursesWithAttEvents (Hie_Lvl_Level_t Scope)
" WHERE crs_courses.DegCod=%ld"
" AND crs_courses.CrsCod=att_events.CrsCod",
Gbl.Hierarchy.Deg.DegCod);
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
return DB_QueryCOUNT ("can not get number of courses with attendance events",
"SELECT COUNT(DISTINCT CrsCod)"
" FROM att_events"
@@ -697,18 +698,18 @@ unsigned Att_DB_GetNumCoursesWithAttEvents (Hie_Lvl_Level_t Scope)
/********************* Get number of attendance events ***********************/
/*****************************************************************************/
-unsigned Att_DB_GetNumAttEvents (MYSQL_RES **mysql_res,Hie_Lvl_Level_t Scope)
+unsigned Att_DB_GetNumAttEvents (MYSQL_RES **mysql_res,HieLvl_Level_t Scope)
{
switch (Scope)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get number of attendance events",
"SELECT COUNT(*)," // row[0]
"SUM(NumNotif)" // row[1]
" FROM att_events"
" WHERE CrsCod>0");
- case Hie_Lvl_INS:
+ case HieLvl_INS:
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get number of attendance events",
"SELECT COUNT(*)," // row[0]
@@ -722,7 +723,7 @@ unsigned Att_DB_GetNumAttEvents (MYSQL_RES **mysql_res,Hie_Lvl_Level_t Scope)
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=att_events.CrsCod",
Gbl.Hierarchy.Ins.InsCod);
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get number of attendance events",
"SELECT COUNT(*)," // row[0]
@@ -734,7 +735,7 @@ unsigned Att_DB_GetNumAttEvents (MYSQL_RES **mysql_res,Hie_Lvl_Level_t Scope)
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=att_events.CrsCod",
Gbl.Hierarchy.Ctr.CtrCod);
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get number of attendance events",
"SELECT COUNT(*)," // row[0]
@@ -744,7 +745,7 @@ unsigned Att_DB_GetNumAttEvents (MYSQL_RES **mysql_res,Hie_Lvl_Level_t Scope)
" WHERE crs_courses.DegCod=%ld"
" AND crs_courses.CrsCod=att_events.CrsCod",
Gbl.Hierarchy.Deg.DegCod);
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get number of attendance events",
"SELECT COUNT(*)," // row[0]
diff --git a/swad_attendance_database.h b/swad_attendance_database.h
index d08ed199..7ca5a7bf 100644
--- a/swad_attendance_database.h
+++ b/swad_attendance_database.h
@@ -86,8 +86,8 @@ void Att_DB_RemoveGrpsAssociatedToCrsAttEvents (long CrsCod);
void Att_DB_RemoveCrsAttEvents (long CrsCod);
unsigned Att_DB_GetNumAttEventsInCrs (long CrsCod);
-unsigned Att_DB_GetNumCoursesWithAttEvents (Hie_Lvl_Level_t Scope);
+unsigned Att_DB_GetNumCoursesWithAttEvents (HieLvl_Level_t Scope);
-unsigned Att_DB_GetNumAttEvents (MYSQL_RES **mysql_res,Hie_Lvl_Level_t Scope);
+unsigned Att_DB_GetNumAttEvents (MYSQL_RES **mysql_res,HieLvl_Level_t Scope);
#endif
diff --git a/swad_calendar.c b/swad_calendar.c
index 2475b79b..d2531ff0 100644
--- a/swad_calendar.c
+++ b/swad_calendar.c
@@ -34,6 +34,7 @@
#include "swad_figure.h"
#include "swad_form.h"
#include "swad_global.h"
+#include "swad_hierarchy_level.h"
#include "swad_holiday.h"
#include "swad_HTML.h"
#include "swad_parameter.h"
@@ -308,7 +309,7 @@ static void Cal_PutIconsCalendar (__attribute__((unused)) void *Args)
NULL,NULL);
/***** View holidays *****/
- if (Gbl.Hierarchy.Level == Hie_Lvl_INS) // Institution selected
+ if (Gbl.Hierarchy.Level == HieLvl_INS) // Institution selected
Hld_PutIconToSeeHlds ();
}
diff --git a/swad_call_for_exam.c b/swad_call_for_exam.c
index 70fd075a..6075e9f1 100644
--- a/swad_call_for_exam.c
+++ b/swad_call_for_exam.c
@@ -39,6 +39,7 @@
#include "swad_form.h"
#include "swad_global.h"
#include "swad_hierarchy.h"
+#include "swad_hierarchy_level.h"
#include "swad_HTML.h"
#include "swad_logo.h"
#include "swad_notification.h"
@@ -1186,7 +1187,7 @@ static void Cfe_ShowCallForExam (struct Cfe_CallsForExams *CallsForExams,
else
HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"EXAM_TIT\"",
Ins.WWW);
- Lgo_DrawLogo (Hie_Lvl_INS,Ins.InsCod,Ins.FullName,64,NULL,true);
+ Lgo_DrawLogo (HieLvl_INS,Ins.InsCod,Ins.FullName,64,NULL,true);
HTM_BR ();
HTM_Txt (Ins.FullName);
if (TypeViewCallForExam == Cfe_PRINT_VIEW)
diff --git a/swad_center.c b/swad_center.c
index ea679e16..d174f889 100644
--- a/swad_center.c
+++ b/swad_center.c
@@ -40,6 +40,7 @@
#include "swad_forum.h"
#include "swad_global.h"
#include "swad_hierarchy.h"
+#include "swad_hierarchy_level.h"
#include "swad_HTML.h"
#include "swad_logo.h"
#include "swad_message.h"
@@ -235,7 +236,7 @@ void Ctr_DrawCenterLogoAndNameWithLink (struct Ctr_Center *Ctr,Act_Action_t Acti
Hie_FreeGoToMsg ();
/***** Center logo and name *****/
- Lgo_DrawLogo (Hie_Lvl_CTR,Ctr->CtrCod,Ctr->ShrtName,16,ClassLogo,true);
+ Lgo_DrawLogo (HieLvl_CTR,Ctr->CtrCod,Ctr->ShrtName,16,ClassLogo,true);
HTM_TxtF (" %s",Ctr->FullName);
/***** End link *****/
@@ -426,7 +427,7 @@ static void Ctr_ListOneCenterForSeeing (struct Ctr_Center *Ctr,unsigned NumCtr)
/***** Number of users in courses of this center *****/
HTM_TD_Begin ("class=\"%s RM %s\"",TxtClassNormal,BgColor);
- HTM_Unsigned (Usr_GetCachedNumUsrsInCrss (Hie_Lvl_CTR,Ctr->CtrCod,
+ HTM_Unsigned (Usr_GetCachedNumUsrsInCrss (HieLvl_CTR,Ctr->CtrCod,
1 << Rol_STD |
1 << Rol_NET |
1 << Rol_TCH)); // Any user
@@ -937,7 +938,7 @@ static void Ctr_ListCentersForEdition (const struct Plc_Places *Places)
ICanEdit = Ctr_CheckIfICanEditACenter (Ctr);
NumDegs = Deg_GetNumDegsInCtr (Ctr->CtrCod);
NumUsrsCtr = Usr_GetNumUsrsWhoClaimToBelongToCtr (Ctr);
- NumUsrsInCrssOfCtr = Usr_GetNumUsrsInCrss (Hie_Lvl_CTR,Ctr->CtrCod,
+ NumUsrsInCrssOfCtr = Usr_GetNumUsrsInCrss (HieLvl_CTR,Ctr->CtrCod,
1 << Rol_STD |
1 << Rol_NET |
1 << Rol_TCH); // Any user
@@ -962,7 +963,7 @@ static void Ctr_ListCentersForEdition (const struct Plc_Places *Places)
/* Center logo */
HTM_TD_Begin ("title=\"%s\" class=\"HIE_LOGO\"",Ctr->FullName);
- Lgo_DrawLogo (Hie_Lvl_CTR,Ctr->CtrCod,Ctr->ShrtName,20,NULL,true);
+ Lgo_DrawLogo (HieLvl_CTR,Ctr->CtrCod,Ctr->ShrtName,20,NULL,true);
HTM_TD_End ();
/* Place */
@@ -1217,7 +1218,7 @@ void Ctr_RemoveCenter (void)
else if (Usr_GetNumUsrsWhoClaimToBelongToCtr (Ctr_EditingCtr)) // Center has users who claim to belong to it
Ale_ShowAlert (Ale_WARNING,
Txt_To_remove_a_center_you_must_first_remove_all_degrees_and_teachers_in_the_center);
- else if (Usr_GetNumUsrsInCrss (Hie_Lvl_CTR,Ctr_EditingCtr->CtrCod,
+ else if (Usr_GetNumUsrsInCrss (HieLvl_CTR,Ctr_EditingCtr->CtrCod,
1 << Rol_STD |
1 << Rol_NET |
1 << Rol_TCH)) // Center has users
@@ -1226,10 +1227,10 @@ void Ctr_RemoveCenter (void)
else // Center has no degrees or users ==> remove it
{
/***** Remove all the threads and posts in forums of the center *****/
- For_RemoveForums (Hie_Lvl_CTR,Ctr_EditingCtr->CtrCod);
+ For_RemoveForums (HieLvl_CTR,Ctr_EditingCtr->CtrCod);
/***** Remove surveys of the center *****/
- Svy_RemoveSurveys (Hie_Lvl_CTR,Ctr_EditingCtr->CtrCod);
+ Svy_RemoveSurveys (HieLvl_CTR,Ctr_EditingCtr->CtrCod);
/***** Remove information related to files in center *****/
Brw_DB_RemoveCtrFiles (Ctr_EditingCtr->CtrCod);
@@ -1626,7 +1627,7 @@ static void Ctr_PutFormToCreateCenter (const struct Plc_Places *Places)
/***** Center logo *****/
HTM_TD_Begin ("title=\"%s\" class=\"HIE_LOGO\"",Ctr_EditingCtr->FullName);
- Lgo_DrawLogo (Hie_Lvl_CTR,-1L,"",20,NULL,true);
+ Lgo_DrawLogo (HieLvl_CTR,-1L,"",20,NULL,true);
HTM_TD_End ();
/***** Place *****/
@@ -1913,12 +1914,12 @@ unsigned Ctr_GetCachedNumCtrsInSys (void)
unsigned NumCtrs;
/***** Get number of centers from cache *****/
- if (!FigCch_GetFigureFromCache (FigCch_NUM_CTRS,Hie_Lvl_SYS,-1L,
+ if (!FigCch_GetFigureFromCache (FigCch_NUM_CTRS,HieLvl_SYS,-1L,
FigCch_UNSIGNED,&NumCtrs))
{
/***** Get current number of centers from database and update cache *****/
NumCtrs = (unsigned) DB_GetNumRowsTable ("ctr_centers");
- FigCch_UpdateFigureIntoCache (FigCch_NUM_CTRS,Hie_Lvl_SYS,-1L,
+ FigCch_UpdateFigureIntoCache (FigCch_NUM_CTRS,HieLvl_SYS,-1L,
FigCch_UNSIGNED,&NumCtrs);
}
@@ -1955,7 +1956,7 @@ static unsigned Ctr_GetNumCtrsInCty (long CtyCod)
" WHERE ins_instits.CtyCod=%ld"
" AND ins_instits.InsCod=ctr_centers.InsCod",
CtyCod);
- FigCch_UpdateFigureIntoCache (FigCch_NUM_CTRS,Hie_Lvl_CTY,Gbl.Cache.NumCtrsInCty.CtyCod,
+ FigCch_UpdateFigureIntoCache (FigCch_NUM_CTRS,HieLvl_CTY,Gbl.Cache.NumCtrsInCty.CtyCod,
FigCch_UNSIGNED,&Gbl.Cache.NumCtrsInCty.NumCtrs);
return Gbl.Cache.NumCtrsInCty.NumCtrs;
}
@@ -1965,7 +1966,7 @@ unsigned Ctr_GetCachedNumCtrsInCty (long CtyCod)
unsigned NumCtrs;
/***** Get number of centers from cache *****/
- if (!FigCch_GetFigureFromCache (FigCch_NUM_CTRS,Hie_Lvl_CTY,CtyCod,
+ if (!FigCch_GetFigureFromCache (FigCch_NUM_CTRS,HieLvl_CTY,CtyCod,
FigCch_UNSIGNED,&NumCtrs))
/***** Get current number of centers from database and update cache *****/
NumCtrs = Ctr_GetNumCtrsInCty (CtyCod);
@@ -2001,7 +2002,7 @@ unsigned Ctr_GetNumCtrsInIns (long InsCod)
" FROM ctr_centers"
" WHERE InsCod=%ld",
InsCod);
- FigCch_UpdateFigureIntoCache (FigCch_NUM_CTRS,Hie_Lvl_INS,Gbl.Cache.NumCtrsInIns.InsCod,
+ FigCch_UpdateFigureIntoCache (FigCch_NUM_CTRS,HieLvl_INS,Gbl.Cache.NumCtrsInIns.InsCod,
FigCch_UNSIGNED,&Gbl.Cache.NumCtrsInIns.NumCtrs);
return Gbl.Cache.NumCtrsInIns.NumCtrs;
}
@@ -2011,7 +2012,7 @@ unsigned Ctr_GetCachedNumCtrsInIns (long InsCod)
unsigned NumCtrs;
/***** Get number of centers from cache *****/
- if (!FigCch_GetFigureFromCache (FigCch_NUM_CTRS,Hie_Lvl_INS,InsCod,
+ if (!FigCch_GetFigureFromCache (FigCch_NUM_CTRS,HieLvl_INS,InsCod,
FigCch_UNSIGNED,&NumCtrs))
/***** Get current number of centers from database and update cache *****/
NumCtrs = Ctr_GetNumCtrsInIns (InsCod);
@@ -2028,7 +2029,7 @@ unsigned Ctr_GetCachedNumCtrsWithMapInSys (void)
unsigned NumCtrsWithMap;
/***** Get number of centers with map from cache *****/
- if (!FigCch_GetFigureFromCache (FigCch_NUM_CTRS_WITH_MAP,Hie_Lvl_SYS,-1L,
+ if (!FigCch_GetFigureFromCache (FigCch_NUM_CTRS_WITH_MAP,HieLvl_SYS,-1L,
FigCch_UNSIGNED,&NumCtrsWithMap))
{
/***** Get current number of centers with map from database and update cache *****/
@@ -2039,7 +2040,7 @@ unsigned Ctr_GetCachedNumCtrsWithMapInSys (void)
" FROM ctr_centers"
" WHERE Latitude<>0"
" OR Longitude<>0");
- FigCch_UpdateFigureIntoCache (FigCch_NUM_CTRS_WITH_MAP,Hie_Lvl_SYS,-1L,
+ FigCch_UpdateFigureIntoCache (FigCch_NUM_CTRS_WITH_MAP,HieLvl_SYS,-1L,
FigCch_UNSIGNED,&NumCtrsWithMap);
}
@@ -2055,7 +2056,7 @@ unsigned Ctr_GetCachedNumCtrsWithMapInCty (long CtyCod)
unsigned NumCtrsWithMap;
/***** Get number of centers with map from cache *****/
- if (!FigCch_GetFigureFromCache (FigCch_NUM_CTRS_WITH_MAP,Hie_Lvl_CTY,CtyCod,
+ if (!FigCch_GetFigureFromCache (FigCch_NUM_CTRS_WITH_MAP,HieLvl_CTY,CtyCod,
FigCch_UNSIGNED,&NumCtrsWithMap))
{
/***** Get current number of centers with map from database and update cache *****/
@@ -2070,7 +2071,7 @@ unsigned Ctr_GetCachedNumCtrsWithMapInCty (long CtyCod)
" AND (ctr_centers.Latitude<>0"
" OR ctr_centers.Longitude<>0)",
CtyCod);
- FigCch_UpdateFigureIntoCache (FigCch_NUM_CTRS_WITH_MAP,Hie_Lvl_CTY,CtyCod,
+ FigCch_UpdateFigureIntoCache (FigCch_NUM_CTRS_WITH_MAP,HieLvl_CTY,CtyCod,
FigCch_UNSIGNED,&NumCtrsWithMap);
}
@@ -2086,7 +2087,7 @@ unsigned Ctr_GetCachedNumCtrsWithMapInIns (long InsCod)
unsigned NumCtrsWithMap;
/***** Get number of centers with map from cache *****/
- if (!FigCch_GetFigureFromCache (FigCch_NUM_CTRS_WITH_MAP,Hie_Lvl_INS,InsCod,
+ if (!FigCch_GetFigureFromCache (FigCch_NUM_CTRS_WITH_MAP,HieLvl_INS,InsCod,
FigCch_UNSIGNED,&NumCtrsWithMap))
{
/***** Get current number of centers with map from database and update cache *****/
@@ -2099,7 +2100,7 @@ unsigned Ctr_GetCachedNumCtrsWithMapInIns (long InsCod)
" AND (Latitude<>0"
" OR Longitude<>0)",
InsCod);
- FigCch_UpdateFigureIntoCache (FigCch_NUM_CTRS_WITH_MAP,Hie_Lvl_INS,InsCod,
+ FigCch_UpdateFigureIntoCache (FigCch_NUM_CTRS_WITH_MAP,HieLvl_INS,InsCod,
FigCch_UNSIGNED,&NumCtrsWithMap);
}
@@ -2128,7 +2129,7 @@ unsigned Ctr_GetNumCtrsInPlc (long PlcCod)
/*****************************************************************************/
unsigned Ctr_GetCachedNumCtrsWithDegs (const char *SubQuery,
- Hie_Lvl_Level_t Scope,long Cod)
+ HieLvl_Level_t Scope,long Cod)
{
unsigned NumCtrsWithDegs;
@@ -2158,7 +2159,7 @@ unsigned Ctr_GetCachedNumCtrsWithDegs (const char *SubQuery,
/*****************************************************************************/
unsigned Ctr_GetCachedNumCtrsWithCrss (const char *SubQuery,
- Hie_Lvl_Level_t Scope,long Cod)
+ HieLvl_Level_t Scope,long Cod)
{
unsigned NumCtrsWithCrss;
@@ -2190,7 +2191,7 @@ unsigned Ctr_GetCachedNumCtrsWithCrss (const char *SubQuery,
/*****************************************************************************/
unsigned Ctr_GetCachedNumCtrsWithUsrs (Rol_Role_t Role,const char *SubQuery,
- Hie_Lvl_Level_t Scope,long Cod)
+ HieLvl_Level_t Scope,long Cod)
{
static const FigCch_FigureCached_t FigureCtrs[Rol_NUM_ROLES] =
{
diff --git a/swad_center.h b/swad_center.h
index 96cfd22e..bcfc7bef 100644
--- a/swad_center.h
+++ b/swad_center.h
@@ -148,11 +148,11 @@ unsigned Ctr_GetCachedNumCtrsWithMapInIns (long InsCod);
unsigned Ctr_GetNumCtrsInPlc (long PlcCod);
unsigned Ctr_GetCachedNumCtrsWithDegs (const char *SubQuery,
- Hie_Lvl_Level_t Scope,long Cod);
+ HieLvl_Level_t Scope,long Cod);
unsigned Ctr_GetCachedNumCtrsWithCrss (const char *SubQuery,
- Hie_Lvl_Level_t Scope,long Cod);
+ HieLvl_Level_t Scope,long Cod);
unsigned Ctr_GetCachedNumCtrsWithUsrs (Rol_Role_t Role,const char *SubQuery,
- Hie_Lvl_Level_t Scope,long Cod);
+ HieLvl_Level_t Scope,long Cod);
void Ctr_ListCtrsFound (MYSQL_RES **mysql_res,unsigned NumCtrs);
diff --git a/swad_center_config.c b/swad_center_config.c
index e0560180..03f2215a 100644
--- a/swad_center_config.c
+++ b/swad_center_config.c
@@ -42,6 +42,7 @@
#include "swad_help.h"
#include "swad_hierarchy.h"
#include "swad_hierarchy_config.h"
+#include "swad_hierarchy_level.h"
#include "swad_HTML.h"
#include "swad_logo.h"
#include "swad_place.h"
@@ -212,10 +213,10 @@ static void CtrCfg_Configuration (bool PrintView)
CtrCfg_NumCrss ();
/***** Number of users in courses of this center *****/
- HieCfg_NumUsrsInCrss (Hie_Lvl_CTR,Gbl.Hierarchy.Ctr.CtrCod,Rol_TCH);
- HieCfg_NumUsrsInCrss (Hie_Lvl_CTR,Gbl.Hierarchy.Ctr.CtrCod,Rol_NET);
- HieCfg_NumUsrsInCrss (Hie_Lvl_CTR,Gbl.Hierarchy.Ctr.CtrCod,Rol_STD);
- HieCfg_NumUsrsInCrss (Hie_Lvl_CTR,Gbl.Hierarchy.Ctr.CtrCod,Rol_UNK);
+ HieCfg_NumUsrsInCrss (HieLvl_CTR,Gbl.Hierarchy.Ctr.CtrCod,Rol_TCH);
+ HieCfg_NumUsrsInCrss (HieLvl_CTR,Gbl.Hierarchy.Ctr.CtrCod,Rol_NET);
+ HieCfg_NumUsrsInCrss (HieLvl_CTR,Gbl.Hierarchy.Ctr.CtrCod,Rol_STD);
+ HieCfg_NumUsrsInCrss (HieLvl_CTR,Gbl.Hierarchy.Ctr.CtrCod,Rol_UNK);
}
/***** End table *****/
@@ -273,7 +274,7 @@ static void CtrCfg_PutIconsCtrConfig (__attribute__((unused)) void *Args)
// have permission to upload logo and photo of the center
{
/***** Put icon to upload logo of center *****/
- Lgo_PutIconToChangeLogo (Hie_Lvl_CTR);
+ Lgo_PutIconToChangeLogo (HieLvl_CTR);
/***** Put icon to upload photo of center *****/
CtrCfg_PutIconToChangePhoto ();
@@ -312,7 +313,7 @@ static void CtrCfg_PutIconToChangePhoto (void)
static void CtrCfg_Title (bool PutLink)
{
HieCfg_Title (PutLink,
- Hie_Lvl_CTR, // Logo scope
+ HieLvl_CTR, // Logo scope
Gbl.Hierarchy.Ctr.CtrCod, // Logo code
Gbl.Hierarchy.Ctr.ShrtName, // Logo short name
Gbl.Hierarchy.Ctr.FullName, // Logo full name
@@ -605,7 +606,7 @@ static void CtrCfg_Institution (bool PrintView,bool PutForm)
"BT_LINK LT DAT",NULL);
Hie_FreeGoToMsg ();
}
- Lgo_DrawLogo (Hie_Lvl_INS,Gbl.Hierarchy.Ins.InsCod,Gbl.Hierarchy.Ins.ShrtName,
+ Lgo_DrawLogo (HieLvl_INS,Gbl.Hierarchy.Ins.InsCod,Gbl.Hierarchy.Ins.ShrtName,
20,"LM",true);
HTM_NBSP ();
HTM_Txt (Gbl.Hierarchy.Ins.FullName);
@@ -810,7 +811,7 @@ static void CtrCfg_NumCrss (void)
void CtrCfg_RequestLogo (void)
{
- Lgo_RequestLogo (Hie_Lvl_CTR);
+ Lgo_RequestLogo (HieLvl_CTR);
}
/*****************************************************************************/
@@ -819,7 +820,7 @@ void CtrCfg_RequestLogo (void)
void CtrCfg_ReceiveLogo (void)
{
- Lgo_ReceiveLogo (Hie_Lvl_CTR);
+ Lgo_ReceiveLogo (HieLvl_CTR);
}
/*****************************************************************************/
@@ -828,7 +829,7 @@ void CtrCfg_ReceiveLogo (void)
void CtrCfg_RemoveLogo (void)
{
- Lgo_RemoveLogo (Hie_Lvl_CTR);
+ Lgo_RemoveLogo (HieLvl_CTR);
}
/*****************************************************************************/
diff --git a/swad_changelog.h b/swad_changelog.h
index 4ea44b1b..10bf116f 100644
--- a/swad_changelog.h
+++ b/swad_changelog.h
@@ -602,13 +602,14 @@ TODO: FIX BUG, URGENT! En las fechas como par
TODO: En las encuestas, que los estudiantes no puedan ver los resultados hasta que no finalice el plazo.
*/
-#define Log_PLATFORM_VERSION "SWAD 20.83.1 (2021-05-27)"
+#define Log_PLATFORM_VERSION "SWAD 20.84 (2021-05-27)"
#define CSS_FILE "swad20.45.css"
#define JS_FILE "swad20.69.1.js"
/*
TODO: Rename CENTRE to CENTER in help wiki.
TODO: Rename ASSESSMENT.Announcements to ASSESSMENT.Calls_for_exams
+ Version 20.84: May 27, 2021 New module swad_degree_database for database queries related to degrees. (312216 lines)
Version 20.83.1: May 27, 2021 Database function moved from swad_date to swad_setting. (311993 lines)
Version 20.83: May 27, 2021 New module swad_course_database for database queries related to courses. (311982 lines)
Version 20.82: May 23, 2021 Queries moved to module swad_country_database. (311702 lines)
diff --git a/swad_chat.c b/swad_chat.c
index 8eaa8416..f3e83bfd 100644
--- a/swad_chat.c
+++ b/swad_chat.c
@@ -37,6 +37,7 @@
#include "swad_error.h"
#include "swad_form.h"
#include "swad_global.h"
+#include "swad_hierarchy_level.h"
#include "swad_HTML.h"
#include "swad_language.h"
#include "swad_logo.h"
@@ -189,7 +190,7 @@ void Cht_ShowListOfAvailableChatRooms (void)
snprintf (ThisRoomFullName,sizeof (ThisRoomFullName),"%s %s",
Txt_Degree,Deg.ShrtName);
Cht_WriteLinkToChat1 (ThisRoomCode,ThisRoomShrtName,ThisRoomFullName,1,IsLastItemInLevel);
- Lgo_DrawLogo (Hie_Lvl_DEG,Deg.DegCod,Deg.ShrtName,16,NULL,true);
+ Lgo_DrawLogo (HieLvl_DEG,Deg.DegCod,Deg.ShrtName,16,NULL,true);
Cht_WriteLinkToChat2 (ThisRoomCode,ThisRoomFullName);
/* Get my courses in this degree from database */
diff --git a/swad_connected.c b/swad_connected.c
index 843d8ac2..6d47130a 100644
--- a/swad_connected.c
+++ b/swad_connected.c
@@ -124,7 +124,7 @@ void Con_ShowConnectedUsrs (void)
Con_ShowGlobalConnectedUsrs ();
/***** Show connected users in the current location *****/
- if (Gbl.Scope.Current != Hie_Lvl_UNK)
+ if (Gbl.Scope.Current != HieLvl_UNK)
Con_ShowConnectedUsrsBelongingToLocation ();
/***** End box *****/
@@ -237,13 +237,13 @@ static void Con_ShowGlobalConnectedUsrsRole (Rol_Role_t Role,unsigned UsrsTotal)
void Con_ComputeConnectedUsrsBelongingToCurrentCrs (void)
{
if ((Gbl.Prefs.SideCols & Lay_SHOW_RIGHT_COLUMN) && // Right column visible
- Gbl.Hierarchy.Level == Hie_Lvl_CRS && // Course selected
+ Gbl.Hierarchy.Level == HieLvl_CRS && // Course selected
(Gbl.Usrs.Me.IBelongToCurrentCrs || // I can view users
Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM))
{
Gbl.Usrs.Connected.NumUsrs = 0;
Gbl.Usrs.Connected.NumUsrsToList = 0;
- Gbl.Scope.Current = Hie_Lvl_CRS;
+ Gbl.Scope.Current = HieLvl_CRS;
/***** Number of teachers *****/
Con_ComputeConnectedUsrsWithARoleBelongingToCurrentCrs (Rol_TCH);
@@ -421,7 +421,7 @@ static void Con_ShowConnectedUsrsWithARoleBelongingToCurrentCrsOnRightColumn (Ro
Frm_BeginFormUnique (ActLstCon); // Must be unique because
// the list of connected users
// is dynamically updated via AJAX
- Sco_PutParamScope ("ScopeCon",Hie_Lvl_CRS);
+ Sco_PutParamScope ("ScopeCon",HieLvl_CRS);
HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,"ellipsis-h.svg",
Txt_Connected_users,"ICO16x16");
Frm_EndForm ();
@@ -660,8 +660,8 @@ static void Con_ShowConnectedUsrsCurrentLocationOneByOneOnMainZone (Rol_Role_t R
const char *ClassTxt;
const char *ClassLink;
struct UsrData UsrDat;
- bool PutLinkToRecord = (Gbl.Hierarchy.Level == Hie_Lvl_CRS && // Course selected
- Gbl.Scope.Current == Hie_Lvl_CRS && // Scope is current course
+ bool PutLinkToRecord = (Gbl.Hierarchy.Level == HieLvl_CRS && // Course selected
+ Gbl.Scope.Current == HieLvl_CRS && // Scope is current course
(Role == Rol_STD || // Role is student,...
Role == Rol_NET || // ...non-editing teacher...
Role == Rol_TCH)); // ...or teacher
diff --git a/swad_connected_database.c b/swad_connected_database.c
index eb1aaaaf..e1d6e51a 100644
--- a/swad_connected_database.c
+++ b/swad_connected_database.c
@@ -30,6 +30,7 @@
#include "swad_database.h"
#include "swad_error.h"
#include "swad_global.h"
+#include "swad_hierarchy_level.h"
/*****************************************************************************/
/*************************** Private constants *******************************/
@@ -72,7 +73,7 @@ unsigned Con_DB_GetNumConnectedFromCurrentLocation (MYSQL_RES **mysql_res,Rol_Ro
case Rol_UNK: // Here Rol_UNK means "any role"
switch (Gbl.Scope.Current)
{
- case Hie_Lvl_SYS: // Get connected users in the whole platform
+ case HieLvl_SYS: // Get connected users in the whole platform
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get number"
" of connected users"
@@ -83,7 +84,7 @@ unsigned Con_DB_GetNumConnectedFromCurrentLocation (MYSQL_RES **mysql_res,Rol_Ro
" FROM usr_connected,"
"usr_data"
" WHERE usr_connected.UsrCod=usr_data.UsrCod");
- case Hie_Lvl_CTY: // Get connected users in the current country
+ case HieLvl_CTY: // Get connected users in the current country
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get number"
" of connected users"
@@ -106,7 +107,7 @@ unsigned Con_DB_GetNumConnectedFromCurrentLocation (MYSQL_RES **mysql_res,Rol_Ro
" AND crs_users.UsrCod=usr_connected.UsrCod"
" AND usr_connected.UsrCod=usr_data.UsrCod",
Gbl.Hierarchy.Cty.CtyCod);
- case Hie_Lvl_INS: // Get connected users in the current institution
+ case HieLvl_INS: // Get connected users in the current institution
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get number"
" of connected users"
@@ -127,7 +128,7 @@ unsigned Con_DB_GetNumConnectedFromCurrentLocation (MYSQL_RES **mysql_res,Rol_Ro
" AND crs_users.UsrCod=usr_connected.UsrCod"
" AND usr_connected.UsrCod=usr_data.UsrCod",
Gbl.Hierarchy.Ins.InsCod);
- case Hie_Lvl_CTR: // Get connected users in the current center
+ case HieLvl_CTR: // Get connected users in the current center
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get number"
" of connected users"
@@ -146,7 +147,7 @@ unsigned Con_DB_GetNumConnectedFromCurrentLocation (MYSQL_RES **mysql_res,Rol_Ro
" AND crs_users.UsrCod=usr_connected.UsrCod"
" AND usr_connected.UsrCod=usr_data.UsrCod",
Gbl.Hierarchy.Ctr.CtrCod);
- case Hie_Lvl_DEG: // Get connected users in the current degree
+ case HieLvl_DEG: // Get connected users in the current degree
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get number"
" of connected users"
@@ -163,7 +164,7 @@ unsigned Con_DB_GetNumConnectedFromCurrentLocation (MYSQL_RES **mysql_res,Rol_Ro
" AND crs_users.UsrCod=usr_connected.UsrCod"
" AND usr_connected.UsrCod=usr_data.UsrCod",
Gbl.Hierarchy.Deg.DegCod);
- case Hie_Lvl_CRS: // Get connected users in the current course
+ case HieLvl_CRS: // Get connected users in the current course
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get number"
" of connected users"
@@ -201,7 +202,7 @@ unsigned Con_DB_GetNumConnectedFromCurrentLocation (MYSQL_RES **mysql_res,Rol_Ro
case Rol_TCH:
switch (Gbl.Scope.Current)
{
- case Hie_Lvl_SYS: // Get connected users in the whole platform
+ case HieLvl_SYS: // Get connected users in the whole platform
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get number"
" of connected users"
@@ -216,7 +217,7 @@ unsigned Con_DB_GetNumConnectedFromCurrentLocation (MYSQL_RES **mysql_res,Rol_Ro
" AND crs_users.Role=%u"
" AND usr_connected.UsrCod=usr_data.UsrCod",
(unsigned) Role);
- case Hie_Lvl_CTY: // Get connected users in the current country
+ case HieLvl_CTY: // Get connected users in the current country
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get number"
" of connected users"
@@ -241,7 +242,7 @@ unsigned Con_DB_GetNumConnectedFromCurrentLocation (MYSQL_RES **mysql_res,Rol_Ro
" AND usr_connected.UsrCod=usr_data.UsrCod",
Gbl.Hierarchy.Cty.CtyCod,
(unsigned) Role);
- case Hie_Lvl_INS: // Get connected users in the current institution
+ case HieLvl_INS: // Get connected users in the current institution
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get number"
" of connected users"
@@ -264,7 +265,7 @@ unsigned Con_DB_GetNumConnectedFromCurrentLocation (MYSQL_RES **mysql_res,Rol_Ro
" AND usr_connected.UsrCod=usr_data.UsrCod",
Gbl.Hierarchy.Ins.InsCod,
(unsigned) Role);
- case Hie_Lvl_CTR: // Get connected users in the current center
+ case HieLvl_CTR: // Get connected users in the current center
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get number"
" of connected users"
@@ -285,7 +286,7 @@ unsigned Con_DB_GetNumConnectedFromCurrentLocation (MYSQL_RES **mysql_res,Rol_Ro
" AND usr_connected.UsrCod=usr_data.UsrCod",
Gbl.Hierarchy.Ctr.CtrCod,
(unsigned) Role);
- case Hie_Lvl_DEG: // Get connected users in the current degree
+ case HieLvl_DEG: // Get connected users in the current degree
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get number"
" of connected users"
@@ -304,7 +305,7 @@ unsigned Con_DB_GetNumConnectedFromCurrentLocation (MYSQL_RES **mysql_res,Rol_Ro
" AND usr_connected.UsrCod=usr_data.UsrCod",
Gbl.Hierarchy.Deg.DegCod,
(unsigned) Role);
- case Hie_Lvl_CRS: // Get connected users in the current course
+ case HieLvl_CRS: // Get connected users in the current course
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get number"
" of connected users"
@@ -357,7 +358,7 @@ unsigned Con_DB_GetConnectedFromCurrentLocation (MYSQL_RES **mysql_res,Rol_Role_
case Rol_TCH:
switch (Gbl.Scope.Current)
{
- case Hie_Lvl_SYS: // Show connected users in the whole platform
+ case HieLvl_SYS: // Show connected users in the whole platform
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get list of connected users"
" who belong to this location",
@@ -372,7 +373,7 @@ unsigned Con_DB_GetConnectedFromCurrentLocation (MYSQL_RES **mysql_res,Rol_Role_
" AND crs_users.Role=%u"
" ORDER BY Dif",
(unsigned) Role);
- case Hie_Lvl_CTY: // Show connected users in the current country
+ case HieLvl_CTY: // Show connected users in the current country
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get list of connected users"
" who belong to this location",
@@ -397,7 +398,7 @@ unsigned Con_DB_GetConnectedFromCurrentLocation (MYSQL_RES **mysql_res,Rol_Role_
" ORDER BY Dif",
Gbl.Hierarchy.Cty.CtyCod,
(unsigned) Role);
- case Hie_Lvl_INS: // Show connected users in the current institution
+ case HieLvl_INS: // Show connected users in the current institution
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get list of connected users"
" who belong to this location",
@@ -420,7 +421,7 @@ unsigned Con_DB_GetConnectedFromCurrentLocation (MYSQL_RES **mysql_res,Rol_Role_
" ORDER BY Dif",
Gbl.Hierarchy.Ins.InsCod,
(unsigned) Role);
- case Hie_Lvl_CTR: // Show connected users in the current center
+ case HieLvl_CTR: // Show connected users in the current center
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get list of connected users"
" who belong to this location",
@@ -441,7 +442,7 @@ unsigned Con_DB_GetConnectedFromCurrentLocation (MYSQL_RES **mysql_res,Rol_Role_
" ORDER BY Dif",
Gbl.Hierarchy.Ctr.CtrCod,
(unsigned) Role);
- case Hie_Lvl_DEG: // Show connected users in the current degree
+ case HieLvl_DEG: // Show connected users in the current degree
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get list of connected users"
" who belong to this location",
@@ -460,7 +461,7 @@ unsigned Con_DB_GetConnectedFromCurrentLocation (MYSQL_RES **mysql_res,Rol_Role_
" ORDER BY Dif",
Gbl.Hierarchy.Deg.DegCod,
(unsigned) Role);
- case Hie_Lvl_CRS: // Show connected users in the current course
+ case HieLvl_CRS: // Show connected users in the current course
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get list of connected users"
" who belong to this location",
diff --git a/swad_country.c b/swad_country.c
index b05ef2d7..57a68b43 100644
--- a/swad_country.c
+++ b/swad_country.c
@@ -41,6 +41,7 @@
#include "swad_form.h"
#include "swad_global.h"
#include "swad_hierarchy.h"
+#include "swad_hierarchy_level.h"
#include "swad_HTML.h"
#include "swad_survey.h"
@@ -277,7 +278,7 @@ void Cty_ListCountries2 (void)
/* Number of users in courses of other countries */
HTM_TD_Begin ("class=\"DAT RM\"");
- HTM_Unsigned (Usr_GetCachedNumUsrsInCrss (Hie_Lvl_CTY,0,
+ HTM_Unsigned (Usr_GetCachedNumUsrsInCrss (HieLvl_CTY,0,
1 << Rol_STD |
1 << Rol_NET |
1 << Rol_TCH)); // Any user
@@ -449,7 +450,7 @@ static void Cty_ListOneCountryForSeeing (struct Cty_Countr *Cty,unsigned NumCty)
/***** Number of users in courses *****/
HTM_TD_Begin ("class=\"DAT RM %s\"",BgColor);
- HTM_Unsigned (Usr_GetCachedNumUsrsInCrss (Hie_Lvl_CTY,Cty->CtyCod,
+ HTM_Unsigned (Usr_GetCachedNumUsrsInCrss (HieLvl_CTY,Cty->CtyCod,
1 << Rol_STD |
1 << Rol_NET |
1 << Rol_TCH)); // Any user
@@ -1077,7 +1078,7 @@ static void Cty_ListCountriesForEdition (void)
NumUsrsCty) // Country has users
// Deletion forbidden
Ico_PutIconRemovalNotAllowed ();
- else if (Usr_GetNumUsrsInCrss (Hie_Lvl_CTY,Cty->CtyCod,
+ else if (Usr_GetNumUsrsInCrss (HieLvl_CTY,Cty->CtyCod,
1 << Rol_STD |
1 << Rol_NET |
1 << Rol_TCH)) // Country has users
@@ -1218,7 +1219,7 @@ void Cty_RemoveCountry (void)
else if (Usr_GetNumUsrsWhoClaimToBelongToCty (Cty_EditingCty)) // Country has users ==> don't remove
Ale_CreateAlert (Ale_WARNING,NULL,
Txt_You_can_not_remove_a_country_with_institutions_or_users);
- else if (Usr_GetNumUsrsInCrss (Hie_Lvl_CTY,Cty_EditingCty->CtyCod,
+ else if (Usr_GetNumUsrsInCrss (HieLvl_CTY,Cty_EditingCty->CtyCod,
1 << Rol_STD |
1 << Rol_NET |
1 << Rol_TCH)) // Country has users
@@ -1227,7 +1228,7 @@ void Cty_RemoveCountry (void)
else // Country has no users ==> remove it
{
/***** Remove surveys of the country *****/
- Svy_RemoveSurveys (Hie_Lvl_CTY,Cty_EditingCty->CtyCod);
+ Svy_RemoveSurveys (HieLvl_CTY,Cty_EditingCty->CtyCod);
/***** Remove country *****/
Cty_DB_RemoveCty (Cty_EditingCty->CtyCod);
@@ -1658,12 +1659,12 @@ unsigned Cty_GetCachedNumCtysInSys (void)
unsigned NumCtys;
/***** Get number of countries from cache *****/
- if (!FigCch_GetFigureFromCache (FigCch_NUM_CTYS,Hie_Lvl_SYS,-1L,
+ if (!FigCch_GetFigureFromCache (FigCch_NUM_CTYS,HieLvl_SYS,-1L,
FigCch_UNSIGNED,&NumCtys))
{
/***** Get current number of countries from database and update cache *****/
NumCtys = (unsigned) DB_GetNumRowsTable ("cty_countrs");
- FigCch_UpdateFigureIntoCache (FigCch_NUM_CTYS,Hie_Lvl_SYS,-1L,
+ FigCch_UpdateFigureIntoCache (FigCch_NUM_CTYS,HieLvl_SYS,-1L,
FigCch_UNSIGNED,&NumCtys);
}
@@ -1679,12 +1680,12 @@ unsigned Cty_GetCachedNumCtysWithInss (void)
unsigned NumCtysWithInss;
/***** Get number of countries with institutions from cache *****/
- if (!FigCch_GetFigureFromCache (FigCch_NUM_CTYS_WITH_INSS,Hie_Lvl_SYS,-1L,
+ if (!FigCch_GetFigureFromCache (FigCch_NUM_CTYS_WITH_INSS,HieLvl_SYS,-1L,
FigCch_UNSIGNED,&NumCtysWithInss))
{
/***** Get current number of countries with institutions from cache *****/
NumCtysWithInss = Cty_DB_GetNumCtysWithInss ();
- FigCch_UpdateFigureIntoCache (FigCch_NUM_CTYS_WITH_INSS,Hie_Lvl_SYS,-1L,
+ FigCch_UpdateFigureIntoCache (FigCch_NUM_CTYS_WITH_INSS,HieLvl_SYS,-1L,
FigCch_UNSIGNED,&NumCtysWithInss);
}
@@ -1700,12 +1701,12 @@ unsigned Cty_GetCachedNumCtysWithCtrs (void)
unsigned NumCtysWithCtrs;
/***** Get number of countries with centers from cache *****/
- if (!FigCch_GetFigureFromCache (FigCch_NUM_CTYS_WITH_CTRS,Hie_Lvl_SYS,-1L,
+ if (!FigCch_GetFigureFromCache (FigCch_NUM_CTYS_WITH_CTRS,HieLvl_SYS,-1L,
FigCch_UNSIGNED,&NumCtysWithCtrs))
{
/***** Get current number of countries with centers from database and update cache *****/
NumCtysWithCtrs = Cty_DB_GetNumCtysWithCtrs ();
- FigCch_UpdateFigureIntoCache (FigCch_NUM_CTYS_WITH_CTRS,Hie_Lvl_SYS,-1L,
+ FigCch_UpdateFigureIntoCache (FigCch_NUM_CTYS_WITH_CTRS,HieLvl_SYS,-1L,
FigCch_UNSIGNED,&NumCtysWithCtrs);
}
@@ -1721,12 +1722,12 @@ unsigned Cty_GetCachedNumCtysWithDegs (void)
unsigned NumCtysWithDegs;
/***** Get number of countries with degrees from cache *****/
- if (!FigCch_GetFigureFromCache (FigCch_NUM_CTYS_WITH_DEGS,Hie_Lvl_SYS,-1L,
+ if (!FigCch_GetFigureFromCache (FigCch_NUM_CTYS_WITH_DEGS,HieLvl_SYS,-1L,
FigCch_UNSIGNED,&NumCtysWithDegs))
{
/***** Get current number of countries with degrees from database and update cache *****/
NumCtysWithDegs = Cty_DB_GetNumCtysWithDegs ();
- FigCch_UpdateFigureIntoCache (FigCch_NUM_CTYS_WITH_DEGS,Hie_Lvl_SYS,-1L,
+ FigCch_UpdateFigureIntoCache (FigCch_NUM_CTYS_WITH_DEGS,HieLvl_SYS,-1L,
FigCch_UNSIGNED,&NumCtysWithDegs);
}
@@ -1742,12 +1743,12 @@ unsigned Cty_GetCachedNumCtysWithCrss (void)
unsigned NumCtysWithCrss;
/***** Get number of countries with courses from cache *****/
- if (!FigCch_GetFigureFromCache (FigCch_NUM_CTYS_WITH_CRSS,Hie_Lvl_SYS,-1L,
+ if (!FigCch_GetFigureFromCache (FigCch_NUM_CTYS_WITH_CRSS,HieLvl_SYS,-1L,
FigCch_UNSIGNED,&NumCtysWithCrss))
{
/***** Get current number of countries with courses from database and update cache *****/
NumCtysWithCrss = Cty_DB_GetNumCtysWithCrss ();
- FigCch_UpdateFigureIntoCache (FigCch_NUM_CTYS_WITH_CRSS,Hie_Lvl_SYS,-1L,
+ FigCch_UpdateFigureIntoCache (FigCch_NUM_CTYS_WITH_CRSS,HieLvl_SYS,-1L,
FigCch_UNSIGNED,&NumCtysWithCrss);
}
@@ -1759,7 +1760,7 @@ unsigned Cty_GetCachedNumCtysWithCrss (void)
/*****************************************************************************/
unsigned Cty_GetCachedNumCtysWithUsrs (Rol_Role_t Role,const char *SubQuery,
- Hie_Lvl_Level_t Scope,long Cod)
+ HieLvl_Level_t Scope,long Cod)
{
static const FigCch_FigureCached_t FigureCtys[Rol_NUM_ROLES] =
{
diff --git a/swad_country.h b/swad_country.h
index cf8345be..c0585d55 100644
--- a/swad_country.h
+++ b/swad_country.h
@@ -120,7 +120,7 @@ unsigned Cty_GetCachedNumCtysWithDegs (void);
unsigned Cty_GetCachedNumCtysWithCrss (void);
unsigned Cty_GetCachedNumCtysWithUsrs (Rol_Role_t Role,const char *SubQuery,
- Hie_Lvl_Level_t Scope,long Cod);
+ HieLvl_Level_t Scope,long Cod);
void Cty_ListCtysFound (MYSQL_RES **mysql_res,unsigned NumCtys);
diff --git a/swad_country_config.c b/swad_country_config.c
index ae8cb32a..b44f81e1 100644
--- a/swad_country_config.c
+++ b/swad_country_config.c
@@ -42,6 +42,7 @@
#include "swad_help.h"
#include "swad_hierarchy.h"
#include "swad_hierarchy_config.h"
+#include "swad_hierarchy_level.h"
#include "swad_HTML.h"
/*****************************************************************************/
@@ -173,10 +174,10 @@ static void CtyCfg_Configuration (bool PrintView)
CtyCfg_NumCrss ();
/* Number of users in courses of this country */
- HieCfg_NumUsrsInCrss (Hie_Lvl_CTY,Gbl.Hierarchy.Cty.CtyCod,Rol_TCH);
- HieCfg_NumUsrsInCrss (Hie_Lvl_CTY,Gbl.Hierarchy.Cty.CtyCod,Rol_NET);
- HieCfg_NumUsrsInCrss (Hie_Lvl_CTY,Gbl.Hierarchy.Cty.CtyCod,Rol_STD);
- HieCfg_NumUsrsInCrss (Hie_Lvl_CTY,Gbl.Hierarchy.Cty.CtyCod,Rol_UNK);
+ HieCfg_NumUsrsInCrss (HieLvl_CTY,Gbl.Hierarchy.Cty.CtyCod,Rol_TCH);
+ HieCfg_NumUsrsInCrss (HieLvl_CTY,Gbl.Hierarchy.Cty.CtyCod,Rol_NET);
+ HieCfg_NumUsrsInCrss (HieLvl_CTY,Gbl.Hierarchy.Cty.CtyCod,Rol_STD);
+ HieCfg_NumUsrsInCrss (HieLvl_CTY,Gbl.Hierarchy.Cty.CtyCod,Rol_UNK);
}
/* End table */
diff --git a/swad_course.c b/swad_course.c
index 3f1ef021..bd84a591 100644
--- a/swad_course.c
+++ b/swad_course.c
@@ -46,6 +46,7 @@
#include "swad_global.h"
#include "swad_help.h"
#include "swad_hierarchy.h"
+#include "swad_hierarchy_level.h"
#include "swad_HTML.h"
#include "swad_info.h"
#include "swad_logo.h"
@@ -264,7 +265,7 @@ static void Crs_WriteListMyCoursesToSelectOne (void)
Highlight ? ClassHighlight :
ClassNormal,
NULL);
- Lgo_DrawLogo (Hie_Lvl_INS,Hie.Ins.InsCod,Hie.Ins.ShrtName,16,NULL,true);
+ Lgo_DrawLogo (HieLvl_INS,Hie.Ins.InsCod,Hie.Ins.ShrtName,16,NULL,true);
HTM_TxtF (" %s",Hie.Ins.ShrtName);
HTM_BUTTON_End ();
Frm_EndForm ();
@@ -286,7 +287,7 @@ static void Crs_WriteListMyCoursesToSelectOne (void)
Err_WrongCenterExit ();
/***** Write link to center *****/
- Highlight = (Gbl.Hierarchy.Level == Hie_Lvl_CTR &&
+ Highlight = (Gbl.Hierarchy.Level == HieLvl_CTR &&
Gbl.Hierarchy.Ctr.CtrCod == Hie.Ctr.CtrCod);
HTM_LI_Begin ("class=\"%s\"",Highlight ? ClassHighlight :
ClassNormal);
@@ -298,7 +299,7 @@ static void Crs_WriteListMyCoursesToSelectOne (void)
Highlight ? ClassHighlight :
ClassNormal,
NULL);
- Lgo_DrawLogo (Hie_Lvl_CTR,Hie.Ctr.CtrCod,Hie.Ctr.ShrtName,16,NULL,true);
+ Lgo_DrawLogo (HieLvl_CTR,Hie.Ctr.CtrCod,Hie.Ctr.ShrtName,16,NULL,true);
HTM_TxtF (" %s",Hie.Ctr.ShrtName);
HTM_BUTTON_End ();
Frm_EndForm ();
@@ -320,7 +321,7 @@ static void Crs_WriteListMyCoursesToSelectOne (void)
Err_WrongDegreeExit ();
/***** Write link to degree *****/
- Highlight = (Gbl.Hierarchy.Level == Hie_Lvl_DEG &&
+ Highlight = (Gbl.Hierarchy.Level == HieLvl_DEG &&
Gbl.Hierarchy.Deg.DegCod == Hie.Deg.DegCod);
HTM_LI_Begin ("class=\"%s\"",Highlight ? ClassHighlight :
ClassNormal);
@@ -332,7 +333,7 @@ static void Crs_WriteListMyCoursesToSelectOne (void)
Highlight ? ClassHighlight :
ClassNormal,
NULL);
- Lgo_DrawLogo (Hie_Lvl_DEG,Hie.Deg.DegCod,Hie.Deg.ShrtName,16,NULL,true);
+ Lgo_DrawLogo (HieLvl_DEG,Hie.Deg.DegCod,Hie.Deg.ShrtName,16,NULL,true);
HTM_TxtF (" %s",Hie.Deg.ShrtName);
HTM_BUTTON_End ();
Frm_EndForm ();
@@ -354,7 +355,7 @@ static void Crs_WriteListMyCoursesToSelectOne (void)
Err_WrongCourseExit ();
/***** Write link to course *****/
- Highlight = (Gbl.Hierarchy.Level == Hie_Lvl_CRS &&
+ Highlight = (Gbl.Hierarchy.Level == HieLvl_CRS &&
Gbl.Hierarchy.Crs.CrsCod == Hie.Crs.CrsCod);
HTM_LI_Begin ("class=\"%s\"",Highlight ? ClassHighlight :
ClassNormal);
@@ -413,12 +414,12 @@ unsigned Crs_GetCachedNumCrssInSys (void)
unsigned NumCrss;
/***** Get number of courses from cache *****/
- if (!FigCch_GetFigureFromCache (FigCch_NUM_CRSS,Hie_Lvl_SYS,-1L,
+ if (!FigCch_GetFigureFromCache (FigCch_NUM_CRSS,HieLvl_SYS,-1L,
FigCch_UNSIGNED,&NumCrss))
{
/***** Get current number of courses from database and update cache *****/
NumCrss = (unsigned) DB_GetNumRowsTable ("crs_courses");
- FigCch_UpdateFigureIntoCache (FigCch_NUM_CRSS,Hie_Lvl_SYS,-1L,
+ FigCch_UpdateFigureIntoCache (FigCch_NUM_CRSS,HieLvl_SYS,-1L,
FigCch_UNSIGNED,&NumCrss);
}
@@ -448,7 +449,7 @@ unsigned Crs_GetNumCrssInCty (long CtyCod)
/***** 3. Slow: number of courses in a country from database *****/
Gbl.Cache.NumCrssInCty.CtyCod = CtyCod;
Gbl.Cache.NumCrssInCty.NumCrss = Crs_DB_GetNumCrssInCty (CtyCod);
- FigCch_UpdateFigureIntoCache (FigCch_NUM_CRSS,Hie_Lvl_CTY,Gbl.Cache.NumCrssInCty.CtyCod,
+ FigCch_UpdateFigureIntoCache (FigCch_NUM_CRSS,HieLvl_CTY,Gbl.Cache.NumCrssInCty.CtyCod,
FigCch_UNSIGNED,&Gbl.Cache.NumCrssInCty.NumCrss);
return Gbl.Cache.NumCrssInCty.NumCrss;
}
@@ -458,7 +459,7 @@ unsigned Crs_GetCachedNumCrssInCty (long CtyCod)
unsigned NumCrss;
/***** Get number of courses from cache *****/
- if (!FigCch_GetFigureFromCache (FigCch_NUM_CRSS,Hie_Lvl_CTY,CtyCod,
+ if (!FigCch_GetFigureFromCache (FigCch_NUM_CRSS,HieLvl_CTY,CtyCod,
FigCch_UNSIGNED,&NumCrss))
/***** Get current number of courses from database and update cache *****/
NumCrss = Crs_GetNumCrssInCty (CtyCod);
@@ -489,7 +490,7 @@ unsigned Crs_GetNumCrssInIns (long InsCod)
/***** 3. Slow: number of courses in an institution from database *****/
Gbl.Cache.NumCrssInIns.InsCod = InsCod;
Gbl.Cache.NumCrssInIns.NumCrss = Crs_DB_GetNumCrssInIns (InsCod);
- FigCch_UpdateFigureIntoCache (FigCch_NUM_CRSS,Hie_Lvl_INS,Gbl.Cache.NumCrssInIns.InsCod,
+ FigCch_UpdateFigureIntoCache (FigCch_NUM_CRSS,HieLvl_INS,Gbl.Cache.NumCrssInIns.InsCod,
FigCch_UNSIGNED,&Gbl.Cache.NumCrssInIns.NumCrss);
return Gbl.Cache.NumCrssInIns.NumCrss;
}
@@ -499,7 +500,7 @@ unsigned Crs_GetCachedNumCrssInIns (long InsCod)
unsigned NumCrss;
/***** Get number of courses from cache *****/
- if (!FigCch_GetFigureFromCache (FigCch_NUM_CRSS,Hie_Lvl_INS,InsCod,
+ if (!FigCch_GetFigureFromCache (FigCch_NUM_CRSS,HieLvl_INS,InsCod,
FigCch_UNSIGNED,&NumCrss))
/***** Get current number of courses from database and update cache *****/
NumCrss = Crs_GetNumCrssInIns (InsCod);
@@ -538,12 +539,12 @@ unsigned Crs_GetCachedNumCrssInCtr (long CtrCod)
unsigned NumCrss;
/***** Get number of courses from cache *****/
- if (!FigCch_GetFigureFromCache (FigCch_NUM_CRSS,Hie_Lvl_CTR,CtrCod,
+ if (!FigCch_GetFigureFromCache (FigCch_NUM_CRSS,HieLvl_CTR,CtrCod,
FigCch_UNSIGNED,&NumCrss))
{
/***** Get current number of courses from database and update cache *****/
NumCrss = Crs_GetNumCrssInCtr (CtrCod);
- FigCch_UpdateFigureIntoCache (FigCch_NUM_CRSS,Hie_Lvl_CTR,CtrCod,
+ FigCch_UpdateFigureIntoCache (FigCch_NUM_CRSS,HieLvl_CTR,CtrCod,
FigCch_UNSIGNED,&NumCrss);
}
@@ -573,7 +574,7 @@ unsigned Crs_GetNumCrssInDeg (long DegCod)
/***** 3. Slow: number of courses in a degree from database *****/
Gbl.Cache.NumCrssInDeg.DegCod = DegCod;
Gbl.Cache.NumCrssInDeg.NumCrss = Crs_DB_GetNumCrssInDeg (DegCod);
- FigCch_UpdateFigureIntoCache (FigCch_NUM_CRSS,Hie_Lvl_DEG,Gbl.Cache.NumCrssInDeg.DegCod,
+ FigCch_UpdateFigureIntoCache (FigCch_NUM_CRSS,HieLvl_DEG,Gbl.Cache.NumCrssInDeg.DegCod,
FigCch_UNSIGNED,&Gbl.Cache.NumCrssInDeg.NumCrss);
return Gbl.Cache.NumCrssInDeg.NumCrss;
}
@@ -583,7 +584,7 @@ unsigned Crs_GetCachedNumCrssInDeg (long DegCod)
unsigned NumCrss;
/***** Get number of courses from cache *****/
- if (!FigCch_GetFigureFromCache (FigCch_NUM_CRSS,Hie_Lvl_DEG,DegCod,
+ if (!FigCch_GetFigureFromCache (FigCch_NUM_CRSS,HieLvl_DEG,DegCod,
FigCch_UNSIGNED,&NumCrss))
/***** Get current number of courses from database and update cache *****/
NumCrss = Crs_GetNumCrssInDeg (DegCod);
@@ -596,7 +597,7 @@ unsigned Crs_GetCachedNumCrssInDeg (long DegCod)
/*****************************************************************************/
unsigned Crs_GetCachedNumCrssWithUsrs (Rol_Role_t Role,const char *SubQuery,
- Hie_Lvl_Level_t Scope,long Cod)
+ HieLvl_Level_t Scope,long Cod)
{
static const FigCch_FigureCached_t FigureCrss[Rol_NUM_ROLES] =
{
@@ -665,7 +666,7 @@ void Crs_WriteSelectorOfCourse (void)
/* Write option */
HTM_OPTION (HTM_Type_LONG,&CrsCod,
- Gbl.Hierarchy.Level == Hie_Lvl_CRS && // Course selected
+ Gbl.Hierarchy.Level == HieLvl_CRS && // Course selected
CrsCod == Gbl.Hierarchy.Crs.CrsCod,false,
"%s",row[1]); // Short name (row[1])
}
@@ -819,7 +820,7 @@ void Crs_WriteSelectorMyCoursesInBreadcrumb (void)
/***** Write an option with the current course
when I don't belong to it *****/
- if (Gbl.Hierarchy.Level == Hie_Lvl_CRS && // Course selected
+ if (Gbl.Hierarchy.Level == HieLvl_CRS && // Course selected
!Gbl.Usrs.Me.IBelongToCurrentCrs) // I do not belong to it
HTM_OPTION (HTM_Type_LONG,&Gbl.Hierarchy.Crs.CrsCod,true,true,
"%s",Gbl.Hierarchy.Crs.ShrtName);
@@ -966,9 +967,9 @@ static bool Crs_ListCoursesOfAYearForSeeing (unsigned Year)
HTM_TR_Begin (NULL);
/* Get number of users */
- NumUsrs[Rol_STD] = Usr_GetCachedNumUsrsInCrss (Hie_Lvl_CRS,Crs->CrsCod,1 << Rol_STD);
- NumUsrs[Rol_NET] = Usr_GetCachedNumUsrsInCrss (Hie_Lvl_CRS,Crs->CrsCod,1 << Rol_NET);
- NumUsrs[Rol_TCH] = Usr_GetCachedNumUsrsInCrss (Hie_Lvl_CRS,Crs->CrsCod,1 << Rol_TCH);
+ NumUsrs[Rol_STD] = Usr_GetCachedNumUsrsInCrss (HieLvl_CRS,Crs->CrsCod,1 << Rol_STD);
+ NumUsrs[Rol_NET] = Usr_GetCachedNumUsrsInCrss (HieLvl_CRS,Crs->CrsCod,1 << Rol_NET);
+ NumUsrs[Rol_TCH] = Usr_GetCachedNumUsrsInCrss (HieLvl_CRS,Crs->CrsCod,1 << Rol_TCH);
NumUsrs[Rol_UNK] = NumUsrs[Rol_STD] +
NumUsrs[Rol_NET] +
NumUsrs[Rol_TCH];
@@ -1166,9 +1167,9 @@ static void Crs_ListCoursesOfAYearForEdition (unsigned Year)
ICanEdit = Crs_CheckIfICanEdit (Crs);
/* Get number of users */
- NumUsrs[Rol_STD] = Usr_GetNumUsrsInCrss (Hie_Lvl_CRS,Crs->CrsCod,1 << Rol_STD);
- NumUsrs[Rol_NET] = Usr_GetNumUsrsInCrss (Hie_Lvl_CRS,Crs->CrsCod,1 << Rol_NET);
- NumUsrs[Rol_TCH] = Usr_GetNumUsrsInCrss (Hie_Lvl_CRS,Crs->CrsCod,1 << Rol_TCH);
+ NumUsrs[Rol_STD] = Usr_GetNumUsrsInCrss (HieLvl_CRS,Crs->CrsCod,1 << Rol_STD);
+ NumUsrs[Rol_NET] = Usr_GetNumUsrsInCrss (HieLvl_CRS,Crs->CrsCod,1 << Rol_NET);
+ NumUsrs[Rol_TCH] = Usr_GetNumUsrsInCrss (HieLvl_CRS,Crs->CrsCod,1 << Rol_TCH);
NumUsrs[Rol_UNK] = NumUsrs[Rol_STD] +
NumUsrs[Rol_NET] +
NumUsrs[Rol_TCH];
@@ -1647,7 +1648,7 @@ void Crs_RemoveCourse (void)
if (Crs_CheckIfICanEdit (Crs_EditingCrs))
{
/***** Check if this course has users *****/
- if (Usr_GetNumUsrsInCrss (Hie_Lvl_CRS,Crs_EditingCrs->CrsCod,
+ if (Usr_GetNumUsrsInCrss (HieLvl_CRS,Crs_EditingCrs->CrsCod,
1 << Rol_STD |
1 << Rol_NET |
1 << Rol_TCH)) // Course has users ==> don't remove
@@ -1819,10 +1820,10 @@ static void Crs_EmptyCourseCompletely (long CrsCod)
Not_DB_RemoveCrsNotices (CrsCod);
/***** Remove all the threads and posts in forums of the course *****/
- For_RemoveForums (Hie_Lvl_CRS,CrsCod);
+ For_RemoveForums (HieLvl_CRS,CrsCod);
/***** Remove all surveys in the course *****/
- Svy_RemoveSurveys (Hie_Lvl_CRS,CrsCod);
+ Svy_RemoveSurveys (HieLvl_CRS,CrsCod);
/***** Remove all games in the course *****/
Gam_RemoveCrsGames (CrsCod);
@@ -2520,9 +2521,9 @@ static void Crs_WriteRowCrsData (unsigned NumCrs,MYSQL_ROW row,bool WriteColumnA
Err_WrongCourseExit ();
/***** Get number of teachers and students in this course *****/
- NumStds = Usr_GetNumUsrsInCrss (Hie_Lvl_CRS,CrsCod,1 << Rol_STD);
- NumNETs = Usr_GetNumUsrsInCrss (Hie_Lvl_CRS,CrsCod,1 << Rol_NET);
- NumTchs = Usr_GetNumUsrsInCrss (Hie_Lvl_CRS,CrsCod,1 << Rol_TCH);
+ NumStds = Usr_GetNumUsrsInCrss (HieLvl_CRS,CrsCod,1 << Rol_STD);
+ NumNETs = Usr_GetNumUsrsInCrss (HieLvl_CRS,CrsCod,1 << Rol_NET);
+ NumTchs = Usr_GetNumUsrsInCrss (HieLvl_CRS,CrsCod,1 << Rol_TCH);
NumUsrs = NumStds + NumNETs + NumTchs;
if (NumUsrs)
{
@@ -2565,7 +2566,7 @@ static void Crs_WriteRowCrsData (unsigned NumCrs,MYSQL_ROW row,bool WriteColumnA
Deg_PutParamDegCod (Deg.DegCod);
HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (row[2]),ClassLink,NULL);
Hie_FreeGoToMsg ();
- Lgo_DrawLogo (Hie_Lvl_DEG,Deg.DegCod,Deg.ShrtName,20,"CT",true);
+ Lgo_DrawLogo (HieLvl_DEG,Deg.DegCod,Deg.ShrtName,20,"CT",true);
HTM_TxtF (" %s (%s)",row[2],row[6]);
HTM_BUTTON_End ();
Frm_EndForm ();
@@ -2613,7 +2614,7 @@ static void Crs_WriteRowCrsData (unsigned NumCrs,MYSQL_ROW row,bool WriteColumnA
void Crs_UpdateCrsLast (void)
{
- if (Gbl.Hierarchy.Level == Hie_Lvl_CRS && // Course selected
+ if (Gbl.Hierarchy.Level == HieLvl_CRS && // Course selected
Gbl.Usrs.Me.Role.Logged >= Rol_STD)
/***** Update last access to current course *****/
Crs_DB_UpdateCrsLastClick ();
diff --git a/swad_course.h b/swad_course.h
index c3421c7a..563575f5 100644
--- a/swad_course.h
+++ b/swad_course.h
@@ -114,7 +114,7 @@ unsigned Crs_GetNumCrssInDeg (long DegCod);
unsigned Crs_GetCachedNumCrssInDeg (long DegCod);
unsigned Crs_GetCachedNumCrssWithUsrs (Rol_Role_t Role,const char *SubQuery,
- Hie_Lvl_Level_t Scope,long Cod);
+ HieLvl_Level_t Scope,long Cod);
void Crs_WriteSelectorOfCourse (void);
void Crs_ShowCrssOfCurrentDeg (void);
diff --git a/swad_course_config.c b/swad_course_config.c
index 955aabea..8c1f7d6c 100644
--- a/swad_course_config.c
+++ b/swad_course_config.c
@@ -39,6 +39,7 @@
#include "swad_global.h"
#include "swad_hierarchy.h"
#include "swad_hierarchy_config.h"
+#include "swad_hierarchy_level.h"
#include "swad_HTML.h"
#include "swad_indicator.h"
#include "swad_logo.h"
@@ -159,10 +160,10 @@ void CrsCfg_Configuration (bool PrintView)
else
{
/***** Number of users *****/
- HieCfg_NumUsrsInCrss (Hie_Lvl_CRS,Gbl.Hierarchy.Crs.CrsCod,Rol_TCH);
- HieCfg_NumUsrsInCrss (Hie_Lvl_CRS,Gbl.Hierarchy.Crs.CrsCod,Rol_NET);
- HieCfg_NumUsrsInCrss (Hie_Lvl_CRS,Gbl.Hierarchy.Crs.CrsCod,Rol_STD);
- HieCfg_NumUsrsInCrss (Hie_Lvl_CRS,Gbl.Hierarchy.Crs.CrsCod,Rol_UNK);
+ HieCfg_NumUsrsInCrss (HieLvl_CRS,Gbl.Hierarchy.Crs.CrsCod,Rol_TCH);
+ HieCfg_NumUsrsInCrss (HieLvl_CRS,Gbl.Hierarchy.Crs.CrsCod,Rol_NET);
+ HieCfg_NumUsrsInCrss (HieLvl_CRS,Gbl.Hierarchy.Crs.CrsCod,Rol_STD);
+ HieCfg_NumUsrsInCrss (HieLvl_CRS,Gbl.Hierarchy.Crs.CrsCod,Rol_UNK);
/***** Indicators *****/
CrsCfg_Indicators ();
@@ -204,7 +205,7 @@ void CrsCfg_PrintConfiguration (void)
static void CrsCfg_Title (bool PutLink)
{
HieCfg_Title (PutLink,
- Hie_Lvl_DEG, // Logo scope
+ HieLvl_DEG, // Logo scope
Gbl.Hierarchy.Deg.DegCod, // Logo code
Gbl.Hierarchy.Deg.ShrtName, // Logo short name
Gbl.Hierarchy.Deg.FullName, // Logo full name
@@ -263,7 +264,7 @@ static void CrsCfg_Degree (bool PrintView,bool PutForm)
"BT_LINK LT DAT",NULL);
Hie_FreeGoToMsg ();
}
- Lgo_DrawLogo (Hie_Lvl_DEG,Gbl.Hierarchy.Deg.DegCod,Gbl.Hierarchy.Deg.ShrtName,
+ Lgo_DrawLogo (HieLvl_DEG,Gbl.Hierarchy.Deg.DegCod,Gbl.Hierarchy.Deg.ShrtName,
20,"LM",true);
HTM_NBSP ();
HTM_Txt (Gbl.Hierarchy.Deg.FullName);
diff --git a/swad_degree.c b/swad_degree.c
index a716d1ef..ac85aad5 100644
--- a/swad_degree.c
+++ b/swad_degree.c
@@ -33,6 +33,7 @@
#include "swad_database.h"
#include "swad_degree.h"
#include "swad_degree_config.h"
+#include "swad_degree_database.h"
#include "swad_error.h"
#include "swad_figure.h"
#include "swad_figure_cache.h"
@@ -82,7 +83,6 @@ static Deg_Status_t Deg_GetStatusBitsFromStatusTxt (Deg_StatusTxt_t StatusTxt);
static void Deg_PutFormToCreateDegree (void);
static void Deg_PutHeadDegreesForSeeing (void);
static void Deg_PutHeadDegreesForEdition (void);
-static void Deg_CreateDegree (unsigned Status);
static void Deg_ListDegrees (void);
static bool Deg_CheckIfICanCreateDegrees (void);
@@ -98,7 +98,7 @@ static void Deg_PutParamOtherDegCod (void *DegCod);
static void Deg_GetDataOfDegreeFromRow (struct Deg_Degree *Deg,MYSQL_ROW row);
-static void Deg_UpdateDegNameDB (long DegCod,const char *FieldName,const char *NewDegName);
+static void Deg_DB_UpdateDegNameDB (long DegCod,const char *FieldName,const char *NewDegName);
static void Deg_ShowAlertAndButtonToGoToDeg (void);
static void Deg_PutParamGoToDeg (void *DegCod);
@@ -125,93 +125,54 @@ void Deg_SeeDegWithPendingCrss (void)
const char *BgColor;
/***** Get degrees with pending courses *****/
- switch (Gbl.Usrs.Me.Role.Logged)
- {
- case Rol_DEG_ADM:
- NumDegs = (unsigned)
- DB_QuerySELECT (&mysql_res,"can not get degrees with pending courses",
- "SELECT crs_courses.DegCod," // row[0]
- "COUNT(*)" // row[1]
- " FROM usr_admins,"
- "crs_courses,"
- "deg_degrees"
- " WHERE usr_admins.UsrCod=%ld"
- " AND usr_admins.Scope='%s'"
- " AND usr_admins.Cod=crs_courses.DegCod"
- " AND (crs_courses.Status & %u)<>0"
- " AND crs_courses.DegCod=deg_degrees.DegCod"
- " GROUP BY crs_courses.DegCod"
- " ORDER BY deg_degrees.ShortName",
- Gbl.Usrs.Me.UsrDat.UsrCod,
- Sco_GetDBStrFromScope (Hie_Lvl_DEG),
- (unsigned) Crs_STATUS_BIT_PENDING);
- break;
- case Rol_SYS_ADM:
- NumDegs = (unsigned)
- DB_QuerySELECT (&mysql_res,"can not get degrees with pending courses",
- "SELECT crs_courses.DegCod," // row[0]
- "COUNT(*)" // row[1]
- " FROM crs_courses,"
- "deg_degrees"
- " WHERE (crs_courses.Status & %u)<>0"
- " AND crs_courses.DegCod=deg_degrees.DegCod"
- " GROUP BY crs_courses.DegCod"
- " ORDER BY deg_degrees.ShortName",
- (unsigned) Crs_STATUS_BIT_PENDING);
- break;
- default: // Forbidden for other users
- return;
- }
-
- /***** Get degrees *****/
- if (NumDegs)
+ if ((NumDegs = Deg_DB_GetDegsWithPendingCrss (&mysql_res)))
{
/***** Begin box and table *****/
Box_BoxTableBegin (NULL,Txt_Degrees_with_pending_courses,
NULL,NULL,
Hlp_SYSTEM_Pending,Box_NOT_CLOSABLE,2);
- /***** Write heading *****/
- HTM_TR_Begin (NULL);
+ /***** Write heading *****/
+ HTM_TR_Begin (NULL);
- HTM_TH (1,1,"LM",Txt_Degree);
- HTM_TH (1,1,"RM",Txt_Courses_ABBREVIATION);
+ HTM_TH (1,1,"LM",Txt_Degree);
+ HTM_TH (1,1,"RM",Txt_Courses_ABBREVIATION);
- HTM_TR_End ();
+ HTM_TR_End ();
- /***** List the degrees *****/
- for (NumDeg = 0;
- NumDeg < NumDegs;
- NumDeg++)
- {
- /* Get next degree */
- row = mysql_fetch_row (mysql_res);
+ /***** List the degrees *****/
+ for (NumDeg = 0;
+ NumDeg < NumDegs;
+ NumDeg++, Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd)
+ {
+ /* Get next degree */
+ row = mysql_fetch_row (mysql_res);
- /* Get degree code (row[0]) */
- Deg.DegCod = Str_ConvertStrCodToLongCod (row[0]);
- BgColor = (Deg.DegCod == Gbl.Hierarchy.Deg.DegCod) ? "LIGHT_BLUE" :
- Gbl.ColorRows[Gbl.RowEvenOdd];
+ /* Get degree code (row[0]) */
+ Deg.DegCod = Str_ConvertStrCodToLongCod (row[0]);
+ BgColor = (Deg.DegCod == Gbl.Hierarchy.Deg.DegCod) ? "LIGHT_BLUE" :
+ Gbl.ColorRows[Gbl.RowEvenOdd];
- /* Get data of degree */
- Deg_GetDataOfDegreeByCod (&Deg);
+ /* Get data of degree */
+ Deg_GetDataOfDegreeByCod (&Deg);
- HTM_TR_Begin (NULL);
+ /* Begin table row */
+ HTM_TR_Begin (NULL);
- /* Degree logo and full name */
- HTM_TD_Begin ("class=\"LM %s\"",BgColor);
- Deg_DrawDegreeLogoAndNameWithLink (&Deg,ActSeeCrs,
- "BT_LINK DAT_NOBR","CM");
- HTM_TD_End ();
+ /* Degree logo and full name */
+ HTM_TD_Begin ("class=\"LM %s\"",BgColor);
+ Deg_DrawDegreeLogoAndNameWithLink (&Deg,ActSeeCrs,
+ "BT_LINK DAT_NOBR","CM");
+ HTM_TD_End ();
- /* Number of pending courses (row[1]) */
- HTM_TD_Begin ("class=\"DAT RM %s\"",BgColor);
- HTM_Txt (row[1]);
- HTM_TD_End ();
+ /* Number of pending courses (row[1]) */
+ HTM_TD_Begin ("class=\"DAT RM %s\"",BgColor);
+ HTM_Txt (row[1]);
+ HTM_TD_End ();
- HTM_TR_End ();
-
- Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
- }
+ /* End table row */
+ HTM_TR_End ();
+ }
/***** End table and box *****/
Box_BoxTableEnd ();
@@ -234,16 +195,16 @@ void Deg_DrawDegreeLogoAndNameWithLink (struct Deg_Degree *Deg,Act_Action_t Acti
Frm_BeginFormGoTo (Action);
Deg_PutParamDegCod (Deg->DegCod);
- /***** Link to action *****/
- HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (Deg->FullName),ClassLink,NULL);
- Hie_FreeGoToMsg ();
+ /***** Link to action *****/
+ HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (Deg->FullName),ClassLink,NULL);
+ Hie_FreeGoToMsg ();
- /***** Degree logo and name *****/
- Lgo_DrawLogo (Hie_Lvl_DEG,Deg->DegCod,Deg->ShrtName,16,ClassLogo,true);
- HTM_TxtF (" %s",Deg->FullName);
+ /***** Degree logo and name *****/
+ Lgo_DrawLogo (HieLvl_DEG,Deg->DegCod,Deg->ShrtName,16,ClassLogo,true);
+ HTM_TxtF (" %s",Deg->FullName);
- /***** End link *****/
- HTM_BUTTON_End ();
+ /***** End link *****/
+ HTM_BUTTON_End ();
/***** End form *****/
Frm_EndForm ();
@@ -264,54 +225,51 @@ void Deg_WriteSelectorOfDegree (void)
/***** Begin form *****/
Frm_BeginFormGoTo (ActSeeCrs);
- if (Gbl.Hierarchy.Ctr.CtrCod > 0)
- HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
- "id=\"deg\" name=\"deg\" class=\"HIE_SEL\"");
- else
- HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
- "id=\"deg\" name=\"deg\" class=\"HIE_SEL\""
- " disabled=\"disabled\"");
- HTM_OPTION (HTM_Type_STRING,"",
- Gbl.Hierarchy.Deg.DegCod < 0,true,
- "[%s]",Txt_Degree);
- if (Gbl.Hierarchy.Ctr.CtrCod > 0)
- {
- /***** Get degrees belonging to the current center from database *****/
- NumDegs = (unsigned)
- DB_QuerySELECT (&mysql_res,"can not get degrees of a center",
- "SELECT DegCod," // row[0]
- "ShortName" // row[1]
- " FROM deg_degrees"
- " WHERE CtrCod=%ld"
- " ORDER BY ShortName",
- Gbl.Hierarchy.Ctr.CtrCod);
+ /***** Begin selector of degree *****/
+ if (Gbl.Hierarchy.Ctr.CtrCod > 0)
+ HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
+ "id=\"deg\" name=\"deg\" class=\"HIE_SEL\"");
+ else
+ HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
+ "id=\"deg\" name=\"deg\" class=\"HIE_SEL\""
+ " disabled=\"disabled\"");
+ HTM_OPTION (HTM_Type_STRING,"",
+ Gbl.Hierarchy.Deg.DegCod < 0,true,
+ "[%s]",Txt_Degree);
- /***** Get degrees of this center *****/
- for (NumDeg = 0;
- NumDeg < NumDegs;
- NumDeg++)
- {
- /* Get next degree */
- row = mysql_fetch_row (mysql_res);
+ if (Gbl.Hierarchy.Ctr.CtrCod > 0)
+ {
+ /***** Get degrees belonging to the current center from database *****/
+ NumDegs = Deg_DB_GetDegsOfCurrentCtr (&mysql_res);
- /* Get degree code (row[0]) */
- if ((DegCod = Str_ConvertStrCodToLongCod (row[0])) <= 0)
- Err_WrongDegreeExit ();
+ /***** Get degrees of this center *****/
+ for (NumDeg = 0;
+ NumDeg < NumDegs;
+ NumDeg++)
+ {
+ /* Get next degree */
+ row = mysql_fetch_row (mysql_res);
- /* Write option */
- HTM_OPTION (HTM_Type_LONG,&DegCod,
- Gbl.Hierarchy.Deg.DegCod > 0 &&
- DegCod == Gbl.Hierarchy.Deg.DegCod,false,
- "%s",row[1]);
- }
+ /* Get degree code (row[0]) */
+ if ((DegCod = Str_ConvertStrCodToLongCod (row[0])) <= 0)
+ Err_WrongDegreeExit ();
- /***** Free structure that stores the query result *****/
- DB_FreeMySQLResult (&mysql_res);
- }
+ /* Write option */
+ HTM_OPTION (HTM_Type_LONG,&DegCod,
+ Gbl.Hierarchy.Deg.DegCod > 0 &&
+ DegCod == Gbl.Hierarchy.Deg.DegCod,false,
+ "%s",row[1]);
+ }
+
+ /***** Free structure that stores the query result *****/
+ DB_FreeMySQLResult (&mysql_res);
+ }
+
+ /***** End selector of degree *****/
+ HTM_SELECT_End ();
/***** End form *****/
- HTM_SELECT_End ();
Frm_EndForm ();
}
@@ -362,173 +320,175 @@ static void Deg_ListDegreesForEdition (void)
/***** Initialize structure with user's data *****/
Usr_UsrDataConstructor (&UsrDat);
- /***** Write heading *****/
+ /***** Begin table of degrees *****/
HTM_TABLE_BeginWidePadding (2);
- Deg_PutHeadDegreesForEdition ();
- /***** List the degrees *****/
- for (NumDeg = 0;
- NumDeg < Gbl.Hierarchy.Degs.Num;
- NumDeg++)
- {
- Deg = &(Gbl.Hierarchy.Degs.Lst[NumDeg]);
+ /***** Write heading *****/
+ Deg_PutHeadDegreesForEdition ();
- ICanEdit = Deg_CheckIfICanEditADegree (Deg);
- NumCrss = Crs_GetNumCrssInDeg (Deg->DegCod);
- NumUsrsInCrssOfDeg = Usr_GetNumUsrsInCrss (Hie_Lvl_DEG,Deg->DegCod,
- 1 << Rol_STD |
- 1 << Rol_NET |
- 1 << Rol_TCH); // Any user
-
- HTM_TR_Begin (NULL);
-
- /* Put icon to remove degree */
- HTM_TD_Begin ("class=\"BM\"");
- if (!ICanEdit ||
- NumCrss || // Degree has courses ==> deletion forbidden
- NumUsrsInCrssOfDeg)
- Ico_PutIconRemovalNotAllowed ();
- else
- Ico_PutContextualIconToRemove (ActRemDeg,NULL,
- Deg_PutParamOtherDegCod,&Deg->DegCod);
- HTM_TD_End ();
-
- /* Degree code */
- HTM_TD_Begin ("class=\"DAT CODE\"");
- HTM_Long (Deg->DegCod);
- HTM_TD_End ();
-
- /* Degree logo */
- HTM_TD_Begin ("title=\"%s\" class=\"HIE_LOGO\"",Deg->FullName);
- Lgo_DrawLogo (Hie_Lvl_DEG,Deg->DegCod,Deg->ShrtName,20,NULL,true);
- HTM_TD_End ();
-
- /* Degree short name */
- HTM_TD_Begin ("class=\"DAT LM\"");
- if (ICanEdit)
+ /***** List the degrees *****/
+ for (NumDeg = 0;
+ NumDeg < Gbl.Hierarchy.Degs.Num;
+ NumDeg++)
{
- Frm_BeginForm (ActRenDegSho);
- Deg_PutParamOtherDegCod (&Deg->DegCod);
- HTM_INPUT_TEXT ("ShortName",Cns_HIERARCHY_MAX_CHARS_SHRT_NAME,Deg->ShrtName,
- HTM_SUBMIT_ON_CHANGE,
- "class=\"INPUT_SHORT_NAME\"");
- Frm_EndForm ();
+ Deg = &(Gbl.Hierarchy.Degs.Lst[NumDeg]);
+
+ ICanEdit = Deg_CheckIfICanEditADegree (Deg);
+ NumCrss = Crs_GetNumCrssInDeg (Deg->DegCod);
+ NumUsrsInCrssOfDeg = Usr_GetNumUsrsInCrss (HieLvl_DEG,Deg->DegCod,
+ 1 << Rol_STD |
+ 1 << Rol_NET |
+ 1 << Rol_TCH); // Any user
+
+ HTM_TR_Begin (NULL);
+
+ /* Put icon to remove degree */
+ HTM_TD_Begin ("class=\"BM\"");
+ if (!ICanEdit ||
+ NumCrss || // Degree has courses ==> deletion forbidden
+ NumUsrsInCrssOfDeg)
+ Ico_PutIconRemovalNotAllowed ();
+ else
+ Ico_PutContextualIconToRemove (ActRemDeg,NULL,
+ Deg_PutParamOtherDegCod,&Deg->DegCod);
+ HTM_TD_End ();
+
+ /* Degree code */
+ HTM_TD_Begin ("class=\"DAT CODE\"");
+ HTM_Long (Deg->DegCod);
+ HTM_TD_End ();
+
+ /* Degree logo */
+ HTM_TD_Begin ("title=\"%s\" class=\"HIE_LOGO\"",Deg->FullName);
+ Lgo_DrawLogo (HieLvl_DEG,Deg->DegCod,Deg->ShrtName,20,NULL,true);
+ HTM_TD_End ();
+
+ /* Degree short name */
+ HTM_TD_Begin ("class=\"DAT LM\"");
+ if (ICanEdit)
+ {
+ Frm_BeginForm (ActRenDegSho);
+ Deg_PutParamOtherDegCod (&Deg->DegCod);
+ HTM_INPUT_TEXT ("ShortName",Cns_HIERARCHY_MAX_CHARS_SHRT_NAME,Deg->ShrtName,
+ HTM_SUBMIT_ON_CHANGE,
+ "class=\"INPUT_SHORT_NAME\"");
+ Frm_EndForm ();
+ }
+ else
+ HTM_Txt (Deg->ShrtName);
+ HTM_TD_End ();
+
+ /* Degree full name */
+ HTM_TD_Begin ("class=\"DAT LM\"");
+ if (ICanEdit)
+ {
+ Frm_BeginForm (ActRenDegFul);
+ Deg_PutParamOtherDegCod (&Deg->DegCod);
+ HTM_INPUT_TEXT ("FullName",Cns_HIERARCHY_MAX_CHARS_FULL_NAME,Deg->FullName,
+ HTM_SUBMIT_ON_CHANGE,
+ "class=\"INPUT_FULL_NAME\"");
+ Frm_EndForm ();
+ }
+ else
+ HTM_Txt (Deg->FullName);
+ HTM_TD_End ();
+
+ /* Degree type */
+ HTM_TD_Begin ("class=\"DAT LM\"");
+ if (ICanEdit)
+ {
+ Frm_BeginForm (ActChgDegTyp);
+ Deg_PutParamOtherDegCod (&Deg->DegCod);
+ HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
+ "name=\"OthDegTypCod\" class=\"HIE_SEL_NARROW\"");
+ for (NumDegTyp = 0;
+ NumDegTyp < Gbl.DegTypes.Num;
+ NumDegTyp++)
+ {
+ DegTyp = &Gbl.DegTypes.Lst[NumDegTyp];
+ HTM_OPTION (HTM_Type_LONG,&DegTyp->DegTypCod,
+ // Gbl.Hierarchy.Deg.DegCod > 0 &&
+ DegTyp->DegTypCod == Deg->DegTypCod,false,
+ "%s",DegTyp->DegTypName);
+ }
+ HTM_SELECT_End ();
+ Frm_EndForm ();
+ }
+ else
+ for (NumDegTyp = 0;
+ NumDegTyp < Gbl.DegTypes.Num;
+ NumDegTyp++)
+ if (Gbl.DegTypes.Lst[NumDegTyp].DegTypCod == Deg->DegTypCod)
+ HTM_Txt (Gbl.DegTypes.Lst[NumDegTyp].DegTypName);
+ HTM_TD_End ();
+
+ /* Degree WWW */
+ HTM_TD_Begin ("class=\"DAT LM\"");
+ if (ICanEdit)
+ {
+ Frm_BeginForm (ActChgDegWWW);
+ Deg_PutParamOtherDegCod (&Deg->DegCod);
+ HTM_INPUT_URL ("WWW",Deg->WWW,HTM_SUBMIT_ON_CHANGE,
+ "class=\"INPUT_WWW_NARROW\" required=\"required\"");
+ Frm_EndForm ();
+ }
+ else
+ {
+ Str_Copy (WWW,Deg->WWW,sizeof (WWW) - 1);
+ HTM_DIV_Begin ("class=\"EXTERNAL_WWW_SHORT\"");
+ HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"DAT\" title=\"%s\"",
+ Deg->WWW,Deg->WWW);
+ HTM_Txt (WWW);
+ HTM_A_End ();
+ HTM_DIV_End ();
+ }
+ HTM_TD_End ();
+
+ /* Number of courses in this degree */
+ HTM_TD_Begin ("class=\"DAT RM\"");
+ HTM_Unsigned (NumCrss);
+ HTM_TD_End ();
+
+ /* Number of users in courses of this degree */
+ HTM_TD_Begin ("class=\"DAT RM\"");
+ HTM_Unsigned (NumUsrsInCrssOfDeg);
+ HTM_TD_End ();
+
+ /* Degree requester */
+ UsrDat.UsrCod = Deg->RequesterUsrCod;
+ Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat,
+ Usr_DONT_GET_PREFS,
+ Usr_DONT_GET_ROLE_IN_CURRENT_CRS);
+ HTM_TD_Begin ("class=\"DAT INPUT_REQUESTER LT\"");
+ Msg_WriteMsgAuthor (&UsrDat,true,NULL);
+ HTM_TD_End ();
+
+ /* Degree status */
+ StatusTxt = Deg_GetStatusTxtFromStatusBits (Deg->Status);
+ HTM_TD_Begin ("class=\"DAT LM\"");
+ if (Gbl.Usrs.Me.Role.Logged >= Rol_CTR_ADM &&
+ StatusTxt == Deg_STATUS_PENDING)
+ {
+ Frm_BeginForm (ActChgDegSta);
+ Deg_PutParamOtherDegCod (&Deg->DegCod);
+ HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
+ "name=\"Status\" class=\"INPUT_STATUS\"");
+ StatusUnsigned = (unsigned) Deg_GetStatusBitsFromStatusTxt (Deg_STATUS_PENDING);
+ HTM_OPTION (HTM_Type_UNSIGNED,&StatusUnsigned,true,false,
+ "%s",Txt_DEGREE_STATUS[Deg_STATUS_PENDING]);
+ StatusUnsigned = (unsigned) Deg_GetStatusBitsFromStatusTxt (Deg_STATUS_ACTIVE);
+ HTM_OPTION (HTM_Type_UNSIGNED,&StatusUnsigned,false,false,
+ "%s",Txt_DEGREE_STATUS[Deg_STATUS_ACTIVE]);
+ HTM_SELECT_End ();
+ Frm_EndForm ();
+ }
+ else if (StatusTxt != Deg_STATUS_ACTIVE) // If active ==> do not show anything
+ HTM_Txt (Txt_DEGREE_STATUS[StatusTxt]);
+ HTM_TD_End ();
+ HTM_TR_End ();
}
- else
- HTM_Txt (Deg->ShrtName);
- HTM_TD_End ();
- /* Degree full name */
- HTM_TD_Begin ("class=\"DAT LM\"");
- if (ICanEdit)
- {
- Frm_BeginForm (ActRenDegFul);
- Deg_PutParamOtherDegCod (&Deg->DegCod);
- HTM_INPUT_TEXT ("FullName",Cns_HIERARCHY_MAX_CHARS_FULL_NAME,Deg->FullName,
- HTM_SUBMIT_ON_CHANGE,
- "class=\"INPUT_FULL_NAME\"");
- Frm_EndForm ();
- }
- else
- HTM_Txt (Deg->FullName);
- HTM_TD_End ();
-
- /* Degree type */
- HTM_TD_Begin ("class=\"DAT LM\"");
- if (ICanEdit)
- {
- Frm_BeginForm (ActChgDegTyp);
- Deg_PutParamOtherDegCod (&Deg->DegCod);
- HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
- "name=\"OthDegTypCod\" class=\"HIE_SEL_NARROW\"");
- for (NumDegTyp = 0;
- NumDegTyp < Gbl.DegTypes.Num;
- NumDegTyp++)
- {
- DegTyp = &Gbl.DegTypes.Lst[NumDegTyp];
- HTM_OPTION (HTM_Type_LONG,&DegTyp->DegTypCod,
- // Gbl.Hierarchy.Deg.DegCod > 0 &&
- DegTyp->DegTypCod == Deg->DegTypCod,false,
- "%s",DegTyp->DegTypName);
- }
- HTM_SELECT_End ();
- Frm_EndForm ();
- }
- else
- for (NumDegTyp = 0;
- NumDegTyp < Gbl.DegTypes.Num;
- NumDegTyp++)
- if (Gbl.DegTypes.Lst[NumDegTyp].DegTypCod == Deg->DegTypCod)
- HTM_Txt (Gbl.DegTypes.Lst[NumDegTyp].DegTypName);
- HTM_TD_End ();
-
- /* Degree WWW */
- HTM_TD_Begin ("class=\"DAT LM\"");
- if (ICanEdit)
- {
- Frm_BeginForm (ActChgDegWWW);
- Deg_PutParamOtherDegCod (&Deg->DegCod);
- HTM_INPUT_URL ("WWW",Deg->WWW,HTM_SUBMIT_ON_CHANGE,
- "class=\"INPUT_WWW_NARROW\" required=\"required\"");
- Frm_EndForm ();
- }
- else
- {
- Str_Copy (WWW,Deg->WWW,sizeof (WWW) - 1);
- HTM_DIV_Begin ("class=\"EXTERNAL_WWW_SHORT\"");
- HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"DAT\" title=\"%s\"",
- Deg->WWW,Deg->WWW);
- HTM_Txt (WWW);
- HTM_A_End ();
- HTM_DIV_End ();
- }
- HTM_TD_End ();
-
- /* Number of courses in this degree */
- HTM_TD_Begin ("class=\"DAT RM\"");
- HTM_Unsigned (NumCrss);
- HTM_TD_End ();
-
- /* Number of users in courses of this degree */
- HTM_TD_Begin ("class=\"DAT RM\"");
- HTM_Unsigned (NumUsrsInCrssOfDeg);
- HTM_TD_End ();
-
- /* Degree requester */
- UsrDat.UsrCod = Deg->RequesterUsrCod;
- Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat,
- Usr_DONT_GET_PREFS,
- Usr_DONT_GET_ROLE_IN_CURRENT_CRS);
- HTM_TD_Begin ("class=\"DAT INPUT_REQUESTER LT\"");
- Msg_WriteMsgAuthor (&UsrDat,true,NULL);
- HTM_TD_End ();
-
- /* Degree status */
- StatusTxt = Deg_GetStatusTxtFromStatusBits (Deg->Status);
- HTM_TD_Begin ("class=\"DAT LM\"");
- if (Gbl.Usrs.Me.Role.Logged >= Rol_CTR_ADM &&
- StatusTxt == Deg_STATUS_PENDING)
- {
- Frm_BeginForm (ActChgDegSta);
- Deg_PutParamOtherDegCod (&Deg->DegCod);
- HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
- "name=\"Status\" class=\"INPUT_STATUS\"");
- StatusUnsigned = (unsigned) Deg_GetStatusBitsFromStatusTxt (Deg_STATUS_PENDING);
- HTM_OPTION (HTM_Type_UNSIGNED,&StatusUnsigned,true,false,
- "%s",Txt_DEGREE_STATUS[Deg_STATUS_PENDING]);
- StatusUnsigned = (unsigned) Deg_GetStatusBitsFromStatusTxt (Deg_STATUS_ACTIVE);
- HTM_OPTION (HTM_Type_UNSIGNED,&StatusUnsigned,false,false,
- "%s",Txt_DEGREE_STATUS[Deg_STATUS_ACTIVE]);
- HTM_SELECT_End ();
- Frm_EndForm ();
- }
- else if (StatusTxt != Deg_STATUS_ACTIVE) // If active ==> do not show anything
- HTM_Txt (Txt_DEGREE_STATUS[StatusTxt]);
- HTM_TD_End ();
- HTM_TR_End ();
- }
-
- /***** End table *****/
+ /***** End table of degrees *****/
HTM_TABLE_End ();
/***** Free memory used for user's data *****/
@@ -612,80 +572,80 @@ static void Deg_PutFormToCreateDegree (void)
NULL,NULL,
NULL,Box_NOT_CLOSABLE,2);
- /***** Write heading *****/
- Deg_PutHeadDegreesForEdition ();
+ /***** Write heading *****/
+ Deg_PutHeadDegreesForEdition ();
- HTM_TR_Begin (NULL);
+ HTM_TR_Begin (NULL);
- /***** Column to remove degree, disabled here *****/
- HTM_TD_Begin ("class=\"BM\"");
- HTM_TD_End ();
+ /***** Column to remove degree, disabled here *****/
+ HTM_TD_Begin ("class=\"BM\"");
+ HTM_TD_End ();
- /***** Degree code *****/
- HTM_TD_Begin ("class=\"CODE\"");
- HTM_TD_End ();
+ /***** Degree code *****/
+ HTM_TD_Begin ("class=\"CODE\"");
+ HTM_TD_End ();
- /***** Degree logo *****/
- HTM_TD_Begin ("title=\"%s\" class=\"HIE_LOGO\"",Deg_EditingDeg->FullName);
- Lgo_DrawLogo (Hie_Lvl_DEG,-1L,"",20,NULL,true);
- HTM_TD_End ();
+ /***** Degree logo *****/
+ HTM_TD_Begin ("title=\"%s\" class=\"HIE_LOGO\"",Deg_EditingDeg->FullName);
+ Lgo_DrawLogo (HieLvl_DEG,-1L,"",20,NULL,true);
+ HTM_TD_End ();
- /***** Degree short name *****/
- HTM_TD_Begin ("class=\"LM\"");
- HTM_INPUT_TEXT ("ShortName",Cns_HIERARCHY_MAX_CHARS_SHRT_NAME,Deg_EditingDeg->ShrtName,
- HTM_DONT_SUBMIT_ON_CHANGE,
- "class=\"INPUT_SHORT_NAME\" required=\"required\"");
- HTM_TD_End ();
+ /***** Degree short name *****/
+ HTM_TD_Begin ("class=\"LM\"");
+ HTM_INPUT_TEXT ("ShortName",Cns_HIERARCHY_MAX_CHARS_SHRT_NAME,Deg_EditingDeg->ShrtName,
+ HTM_DONT_SUBMIT_ON_CHANGE,
+ "class=\"INPUT_SHORT_NAME\" required=\"required\"");
+ HTM_TD_End ();
- /***** Degree full name *****/
- HTM_TD_Begin ("class=\"LM\"");
- HTM_INPUT_TEXT ("FullName",Cns_HIERARCHY_MAX_CHARS_FULL_NAME,Deg_EditingDeg->FullName,
- HTM_DONT_SUBMIT_ON_CHANGE,
- "class=\"INPUT_FULL_NAME\" required=\"required\"");
- HTM_TD_End ();
+ /***** Degree full name *****/
+ HTM_TD_Begin ("class=\"LM\"");
+ HTM_INPUT_TEXT ("FullName",Cns_HIERARCHY_MAX_CHARS_FULL_NAME,Deg_EditingDeg->FullName,
+ HTM_DONT_SUBMIT_ON_CHANGE,
+ "class=\"INPUT_FULL_NAME\" required=\"required\"");
+ HTM_TD_End ();
- /***** Degree type *****/
- HTM_TD_Begin ("class=\"LM\"");
- HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
- "name=\"OthDegTypCod\" class=\"HIE_SEL_NARROW\"");
- for (NumDegTyp = 0;
- NumDegTyp < Gbl.DegTypes.Num;
- NumDegTyp++)
- {
- DegTyp = &Gbl.DegTypes.Lst[NumDegTyp];
- HTM_OPTION (HTM_Type_LONG,&DegTyp->DegTypCod,
- DegTyp->DegTypCod == Deg_EditingDeg->DegTypCod,false,
- "%s",DegTyp->DegTypName);
- }
- HTM_SELECT_End ();
- HTM_TD_End ();
+ /***** Degree type *****/
+ HTM_TD_Begin ("class=\"LM\"");
+ HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
+ "name=\"OthDegTypCod\" class=\"HIE_SEL_NARROW\"");
+ for (NumDegTyp = 0;
+ NumDegTyp < Gbl.DegTypes.Num;
+ NumDegTyp++)
+ {
+ DegTyp = &Gbl.DegTypes.Lst[NumDegTyp];
+ HTM_OPTION (HTM_Type_LONG,&DegTyp->DegTypCod,
+ DegTyp->DegTypCod == Deg_EditingDeg->DegTypCod,false,
+ "%s",DegTyp->DegTypName);
+ }
+ HTM_SELECT_End ();
+ HTM_TD_End ();
- /***** Degree WWW *****/
- HTM_TD_Begin ("class=\"LM\"");
- HTM_INPUT_URL ("WWW",Deg_EditingDeg->WWW,HTM_DONT_SUBMIT_ON_CHANGE,
- "class=\"INPUT_WWW_NARROW\" required=\"required\"");
- HTM_TD_End ();
+ /***** Degree WWW *****/
+ HTM_TD_Begin ("class=\"LM\"");
+ HTM_INPUT_URL ("WWW",Deg_EditingDeg->WWW,HTM_DONT_SUBMIT_ON_CHANGE,
+ "class=\"INPUT_WWW_NARROW\" required=\"required\"");
+ HTM_TD_End ();
- /***** Number of courses in this degree *****/
- HTM_TD_Begin ("class=\"DAT RM\"");
- HTM_Unsigned (0);
- HTM_TD_End ();
+ /***** Number of courses in this degree *****/
+ HTM_TD_Begin ("class=\"DAT RM\"");
+ HTM_Unsigned (0);
+ HTM_TD_End ();
- /***** Number of users in courses of this degree *****/
- HTM_TD_Begin ("class=\"DAT RM\"");
- HTM_Unsigned (0);
- HTM_TD_End ();
+ /***** Number of users in courses of this degree *****/
+ HTM_TD_Begin ("class=\"DAT RM\"");
+ HTM_Unsigned (0);
+ HTM_TD_End ();
- /***** Degree requester *****/
- HTM_TD_Begin ("class=\"DAT INPUT_REQUESTER LT\"");
- Msg_WriteMsgAuthor (&Gbl.Usrs.Me.UsrDat,true,NULL);
- HTM_TD_End ();
+ /***** Degree requester *****/
+ HTM_TD_Begin ("class=\"DAT INPUT_REQUESTER LT\"");
+ Msg_WriteMsgAuthor (&Gbl.Usrs.Me.UsrDat,true,NULL);
+ HTM_TD_End ();
- /***** Degree status *****/
- HTM_TD_Begin ("class=\"DAT LM\"");
- HTM_TD_End ();
+ /***** Degree status *****/
+ HTM_TD_Begin ("class=\"DAT LM\"");
+ HTM_TD_End ();
- HTM_TR_End ();
+ HTM_TR_End ();
/***** End table, send button and end box *****/
Box_BoxTableWithButtonEnd (Btn_CREATE_BUTTON,Txt_Create_degree);
@@ -707,17 +667,17 @@ static void Deg_PutHeadDegreesForSeeing (void)
HTM_TR_Begin (NULL);
- HTM_TH (1,1,"BM",NULL);
- HTM_TH_Empty (1);
- HTM_TH (1,1,"LM",Txt_Degree);
- HTM_TH (1,1,"LM",Txt_Type);
- HTM_TH (1,1,"RM",Txt_Courses_ABBREVIATION);
- HTM_TH_Begin (1,1,"RM");
- HTM_TxtF ("%s+",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH]);
- HTM_BR ();
- HTM_Txt (Txt_ROLES_PLURAL_BRIEF_Abc[Rol_STD]);
- HTM_TH_End ();
- HTM_TH_Empty (1);
+ HTM_TH (1,1,"BM",NULL);
+ HTM_TH_Empty (1);
+ HTM_TH (1,1,"LM",Txt_Degree);
+ HTM_TH (1,1,"LM",Txt_Type);
+ HTM_TH (1,1,"RM",Txt_Courses_ABBREVIATION);
+ HTM_TH_Begin (1,1,"RM");
+ HTM_TxtF ("%s+",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH]);
+ HTM_BR ();
+ HTM_Txt (Txt_ROLES_PLURAL_BRIEF_Abc[Rol_STD]);
+ HTM_TH_End ();
+ HTM_TH_Empty (1);
HTM_TR_End ();
}
@@ -739,21 +699,21 @@ static void Deg_PutHeadDegreesForEdition (void)
HTM_TR_Begin (NULL);
- HTM_TH (1,1,"BM",NULL);
- HTM_TH (1,1,"RM",Txt_Code);
- HTM_TH_Empty (1);
- HTM_TH (1,1,"LM",Txt_Short_name_of_the_degree);
- HTM_TH (1,1,"LM",Txt_Full_name_of_the_degree);
- HTM_TH (1,1,"LM",Txt_Type);
- HTM_TH (1,1,"LM",Txt_WWW);
- HTM_TH (1,1,"RM",Txt_Courses_ABBREVIATION);
- HTM_TH_Begin (1,1,"RM");
- HTM_TxtF ("%s+",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH]);
- HTM_BR ();
- HTM_Txt (Txt_ROLES_PLURAL_BRIEF_Abc[Rol_STD]);
- HTM_TH_End ();
- HTM_TH (1,1,"LM",Txt_Requester);
- HTM_TH_Empty (1);
+ HTM_TH (1,1,"BM",NULL);
+ HTM_TH (1,1,"RM",Txt_Code);
+ HTM_TH_Empty (1);
+ HTM_TH (1,1,"LM",Txt_Short_name_of_the_degree);
+ HTM_TH (1,1,"LM",Txt_Full_name_of_the_degree);
+ HTM_TH (1,1,"LM",Txt_Type);
+ HTM_TH (1,1,"LM",Txt_WWW);
+ HTM_TH (1,1,"RM",Txt_Courses_ABBREVIATION);
+ HTM_TH_Begin (1,1,"RM");
+ HTM_TxtF ("%s+",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH]);
+ HTM_BR ();
+ HTM_Txt (Txt_ROLES_PLURAL_BRIEF_Abc[Rol_STD]);
+ HTM_TH_End ();
+ HTM_TH (1,1,"LM",Txt_Requester);
+ HTM_TH_Empty (1);
HTM_TR_End ();
}
@@ -775,30 +735,6 @@ unsigned Deg_ConvStrToYear (const char *StrYear)
return (unsigned) Year;
}
-/*****************************************************************************/
-/***************************** Create a new degree ***************************/
-/*****************************************************************************/
-
-static void Deg_CreateDegree (unsigned Status)
- {
- /***** Create a new degree *****/
- Deg_EditingDeg->DegCod =
- DB_QueryINSERTandReturnCode ("can not create a new degree",
- "INSERT INTO deg_degrees"
- " (CtrCod,DegTypCod,Status,"
- "RequesterUsrCod,ShortName,FullName,WWW)"
- " VALUES"
- " (%ld,%ld,%u,"
- "%ld,'%s','%s','%s')",
- Deg_EditingDeg->CtrCod,
- Deg_EditingDeg->DegTypCod,
- Status,
- Gbl.Usrs.Me.UsrDat.UsrCod,
- Deg_EditingDeg->ShrtName,
- Deg_EditingDeg->FullName,
- Deg_EditingDeg->WWW);
- }
-
/*****************************************************************************/
/************** List degrees belonging to the current center *****************/
/*****************************************************************************/
@@ -819,32 +755,34 @@ static void Deg_ListDegrees (void)
Hlp_CENTER_Degrees,Box_NOT_CLOSABLE);
Str_FreeString ();
- if (Gbl.Hierarchy.Degs.Num) // There are degrees in the current center
- {
- /***** Write heading *****/
- HTM_TABLE_BeginWideMarginPadding (2);
- Deg_PutHeadDegreesForSeeing ();
+ if (Gbl.Hierarchy.Degs.Num) // There are degrees in the current center
+ {
+ /***** Begin table *****/
+ HTM_TABLE_BeginWideMarginPadding (2);
- /***** List the degrees *****/
- for (NumDeg = 0;
- NumDeg < Gbl.Hierarchy.Degs.Num;
- NumDeg++)
- Deg_ListOneDegreeForSeeing (&(Gbl.Hierarchy.Degs.Lst[NumDeg]),NumDeg + 1);
+ /***** Write heading *****/
+ Deg_PutHeadDegreesForSeeing ();
- /***** End table *****/
- HTM_TABLE_End ();
- }
- else // No degrees created in the current center
- Ale_ShowAlert (Ale_INFO,Txt_No_degrees);
+ /***** List the degrees *****/
+ for (NumDeg = 0;
+ NumDeg < Gbl.Hierarchy.Degs.Num;
+ NumDeg++)
+ Deg_ListOneDegreeForSeeing (&(Gbl.Hierarchy.Degs.Lst[NumDeg]),NumDeg + 1);
- /***** Button to create degree *****/
- if (Deg_CheckIfICanCreateDegrees ())
- {
- Frm_BeginForm (ActEdiDeg);
- Btn_PutConfirmButton (Gbl.Hierarchy.Degs.Num ? Txt_Create_another_degree :
- Txt_Create_degree);
- Frm_EndForm ();
- }
+ /***** End table *****/
+ HTM_TABLE_End ();
+ }
+ else // No degrees created in the current center
+ Ale_ShowAlert (Ale_INFO,Txt_No_degrees);
+
+ /***** Button to create degree *****/
+ if (Deg_CheckIfICanCreateDegrees ())
+ {
+ Frm_BeginForm (ActEdiDeg);
+ Btn_PutConfirmButton (Gbl.Hierarchy.Degs.Num ? Txt_Create_another_degree :
+ Txt_Create_degree);
+ Frm_EndForm ();
+ }
/***** End box *****/
Box_BoxEnd ();
@@ -870,7 +808,7 @@ static void Deg_PutIconsListingDegrees (__attribute__((unused)) void *Args)
Deg_PutIconToEditDegrees ();
/***** Put icon to view degree types *****/
- DT_PutIconToViewDegreeTypes ();
+ DegTyp_PutIconToViewDegreeTypes ();
/***** Put icon to show a figure *****/
Fig_PutIconToShowFigure (Fig_HIERARCHY);
@@ -904,7 +842,7 @@ static void Deg_ListOneDegreeForSeeing (struct Deg_Degree *Deg,unsigned NumDeg)
/***** Get data of type of degree of this degree *****/
DegTyp.DegTypCod = Deg->DegTypCod;
- if (!DT_GetDataOfDegreeTypeByCod (&DegTyp))
+ if (!DegTyp_GetDataOfDegreeTypeByCod (&DegTyp))
Err_WrongDegTypExit ();
if (Deg->Status & Deg_STATUS_BIT_PENDING)
@@ -920,53 +858,55 @@ static void Deg_ListOneDegreeForSeeing (struct Deg_Degree *Deg,unsigned NumDeg)
BgColor = (Deg->DegCod == Gbl.Hierarchy.Deg.DegCod) ? "LIGHT_BLUE" :
Gbl.ColorRows[Gbl.RowEvenOdd];
+ /***** Begin table row *****/
HTM_TR_Begin (NULL);
- /***** Put tip if degree has courses *****/
- HTM_TD_Begin ("class=\"%s CM %s\" title=\"%s\"",
- TxtClassNormal,BgColor,
- NumCrss ? Txt_DEGREE_With_courses :
- Txt_DEGREE_Without_courses);
- HTM_Txt (NumCrss ? "✓" :
- " ");
- HTM_TD_End ();
+ /***** Put tip if degree has courses *****/
+ HTM_TD_Begin ("class=\"%s CM %s\" title=\"%s\"",
+ TxtClassNormal,BgColor,
+ NumCrss ? Txt_DEGREE_With_courses :
+ Txt_DEGREE_Without_courses);
+ HTM_Txt (NumCrss ? "✓" :
+ " ");
+ HTM_TD_End ();
- /***** Number of degree in this list *****/
- HTM_TD_Begin ("class=\"%s RM %s\"",TxtClassNormal,BgColor);
- HTM_Unsigned (NumDeg);
- HTM_TD_End ();
+ /***** Number of degree in this list *****/
+ HTM_TD_Begin ("class=\"%s RM %s\"",TxtClassNormal,BgColor);
+ HTM_Unsigned (NumDeg);
+ HTM_TD_End ();
- /***** Degree logo and name *****/
- HTM_TD_Begin ("class=\"LM %s\"",BgColor);
- Deg_DrawDegreeLogoAndNameWithLink (Deg,ActSeeCrs,
- TxtClassStrong,"CM");
- HTM_TD_End ();
+ /***** Degree logo and name *****/
+ HTM_TD_Begin ("class=\"LM %s\"",BgColor);
+ Deg_DrawDegreeLogoAndNameWithLink (Deg,ActSeeCrs,
+ TxtClassStrong,"CM");
+ HTM_TD_End ();
- /***** Type of degree *****/
- HTM_TD_Begin ("class=\"%s LM %s\"",TxtClassNormal,BgColor);
- HTM_Txt (DegTyp.DegTypName);
- HTM_TD_End ();
+ /***** Type of degree *****/
+ HTM_TD_Begin ("class=\"%s LM %s\"",TxtClassNormal,BgColor);
+ HTM_Txt (DegTyp.DegTypName);
+ HTM_TD_End ();
- /***** Current number of courses in this degree *****/
- HTM_TD_Begin ("class=\"%s RM %s\"",TxtClassNormal,BgColor);
- HTM_Unsigned (NumCrss);
- HTM_TD_End ();
+ /***** Current number of courses in this degree *****/
+ HTM_TD_Begin ("class=\"%s RM %s\"",TxtClassNormal,BgColor);
+ HTM_Unsigned (NumCrss);
+ HTM_TD_End ();
- /***** Number of users in courses of this degree *****/
- HTM_TD_Begin ("class=\"%s RM %s\"",TxtClassNormal,BgColor);
- HTM_Unsigned (Usr_GetCachedNumUsrsInCrss (Hie_Lvl_DEG,Deg->DegCod,
- 1 << Rol_STD |
- 1 << Rol_NET |
- 1 << Rol_TCH)); // Any user
- HTM_TD_End ();
+ /***** Number of users in courses of this degree *****/
+ HTM_TD_Begin ("class=\"%s RM %s\"",TxtClassNormal,BgColor);
+ HTM_Unsigned (Usr_GetCachedNumUsrsInCrss (HieLvl_DEG,Deg->DegCod,
+ 1 << Rol_STD |
+ 1 << Rol_NET |
+ 1 << Rol_TCH)); // Any user
+ HTM_TD_End ();
- /***** Degree status *****/
- StatusTxt = Deg_GetStatusTxtFromStatusBits (Deg->Status);
- HTM_TD_Begin ("class=\"%s LM %s\"",TxtClassNormal,BgColor);
- if (StatusTxt != Deg_STATUS_ACTIVE) // If active ==> do not show anything
- HTM_Txt (Txt_DEGREE_STATUS[StatusTxt]);
- HTM_TD_End ();
+ /***** Degree status *****/
+ StatusTxt = Deg_GetStatusTxtFromStatusBits (Deg->Status);
+ HTM_TD_Begin ("class=\"%s LM %s\"",TxtClassNormal,BgColor);
+ if (StatusTxt != Deg_STATUS_ACTIVE) // If active ==> do not show anything
+ HTM_Txt (Txt_DEGREE_STATUS[StatusTxt]);
+ HTM_TD_End ();
+ /***** End table row *****/
HTM_TR_End ();
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
@@ -998,7 +938,7 @@ static void Deg_EditDegreesInternal (void)
Deg_GetListDegsInCurrentCtr ();
/***** Get list of degree types *****/
- DT_GetListDegreeTypes (Hie_Lvl_SYS,DT_ORDER_BY_DEGREE_TYPE);
+ DegTyp_GetListDegreeTypes (HieLvl_SYS,DegTyp_ORDER_BY_DEGREE_TYPE);
/***** Write menu to select country, institution and center *****/
Hie_WriteMenuHierarchy ();
@@ -1010,30 +950,30 @@ static void Deg_EditDegreesInternal (void)
Hlp_CENTER_Degrees,Box_NOT_CLOSABLE);
Str_FreeString ();
- if (Gbl.DegTypes.Num)
- {
- /***** Put a form to create a new degree *****/
- Deg_PutFormToCreateDegree ();
+ if (Gbl.DegTypes.Num)
+ {
+ /***** Put a form to create a new degree *****/
+ Deg_PutFormToCreateDegree ();
- /***** Forms to edit current degrees *****/
- if (Gbl.Hierarchy.Degs.Num)
- Deg_ListDegreesForEdition ();
- }
- else // No degree types
- {
- /***** Warning message *****/
- Ale_ShowAlert (Ale_WARNING,Txt_No_types_of_degree);
+ /***** Forms to edit current degrees *****/
+ if (Gbl.Hierarchy.Degs.Num)
+ Deg_ListDegreesForEdition ();
+ }
+ else // No degree types
+ {
+ /***** Warning message *****/
+ Ale_ShowAlert (Ale_WARNING,Txt_No_types_of_degree);
- /***** Form to create the first degree type *****/
- if (DT_CheckIfICanCreateDegreeTypes ())
- DT_EditDegreeTypes ();
- }
+ /***** Form to create the first degree type *****/
+ if (DegTyp_CheckIfICanCreateDegreeTypes ())
+ DegTyp_EditDegreeTypes ();
+ }
/***** End box *****/
Box_BoxEnd ();
/***** Free list of degree types *****/
- DT_FreeListDegreeTypes ();
+ DegTyp_FreeListDegreeTypes ();
/***** Free list of degrees in the current center *****/
Deg_FreeListDegs (&Gbl.Hierarchy.Degs);
@@ -1049,7 +989,7 @@ static void Deg_PutIconsEditingDegrees (__attribute__((unused)) void *Args)
Deg_PutIconToViewDegrees ();
/***** Put icon to view types of degree *****/
- DT_PutIconToViewDegreeTypes ();
+ DegTyp_PutIconToViewDegreeTypes ();
/***** Put icon to show a figure *****/
Fig_PutIconToShowFigure (Fig_HIERARCHY);
@@ -1237,7 +1177,7 @@ static void Deg_ReceiveFormRequestOrCreateDeg (unsigned Status)
Par_GetParToText ("FullName",Deg_EditingDeg->FullName,Cns_HIERARCHY_MAX_BYTES_FULL_NAME);
/* Get degree type */
- Deg_EditingDeg->DegTypCod = DT_GetAndCheckParamOtherDegTypCod (1);
+ Deg_EditingDeg->DegTypCod = DegTyp_GetAndCheckParamOtherDegTypCod (1);
/* Get degree WWW */
Par_GetParToText ("WWW",Deg_EditingDeg->WWW,Cns_MAX_BYTES_WWW);
@@ -1248,19 +1188,19 @@ static void Deg_ReceiveFormRequestOrCreateDeg (unsigned Status)
if (Deg_EditingDeg->WWW[0])
{
/***** If name of degree was in database... *****/
- if (Deg_CheckIfDegNameExistsInCtr ("ShortName",Deg_EditingDeg->ShrtName,
- -1L,Deg_EditingDeg->CtrCod))
+ if (Deg_DB_CheckIfDegNameExistsInCtr ("ShortName",Deg_EditingDeg->ShrtName,
+ -1L,Deg_EditingDeg->CtrCod))
Ale_CreateAlert (Ale_WARNING,NULL,
Txt_The_degree_X_already_exists,
Deg_EditingDeg->ShrtName);
- else if (Deg_CheckIfDegNameExistsInCtr ("FullName",Deg_EditingDeg->FullName,
- -1L,Deg_EditingDeg->CtrCod))
+ else if (Deg_DB_CheckIfDegNameExistsInCtr ("FullName",Deg_EditingDeg->FullName,
+ -1L,Deg_EditingDeg->CtrCod))
Ale_CreateAlert (Ale_WARNING,NULL,
Txt_The_degree_X_already_exists,
Deg_EditingDeg->FullName);
else // Add new degree to database
{
- Deg_CreateDegree (Status);
+ Deg_DB_CreateDegree (Deg_EditingDeg,Status);
Ale_CreateAlert (Ale_SUCCESS,NULL,
Txt_Created_new_degree_X,
Deg_EditingDeg->FullName);
@@ -1369,18 +1309,7 @@ bool Deg_GetDataOfDegreeByCod (struct Deg_Degree *Deg)
if (Deg->DegCod > 0)
{
/***** Get data of a degree from database *****/
- if (DB_QuerySELECT (&mysql_res,"can not get data of a degree",
- "SELECT DegCod," // row[0]
- "CtrCod," // row[1]
- "DegTypCod," // row[2]
- "Status," // row[3]
- "RequesterUsrCod," // row[4]
- "ShortName," // row[5]
- "FullName," // row[6]
- "WWW" // row[7]
- " FROM deg_degrees"
- " WHERE DegCod=%ld",
- Deg->DegCod)) // Degree found...
+ if (Deg_DB_GetDataOfDegreeByCod (&mysql_res,Deg->DegCod)) // Degree found...
{
/***** Get data of degree *****/
row = mysql_fetch_row (mysql_res);
@@ -1426,46 +1355,6 @@ static void Deg_GetDataOfDegreeFromRow (struct Deg_Degree *Deg,MYSQL_ROW row)
Str_Copy (Deg->WWW ,row[7],sizeof (Deg->WWW ) - 1);
}
-/*****************************************************************************/
-/************* Get the short name of a degree from its code ******************/
-/*****************************************************************************/
-
-void Deg_GetShortNameOfDegreeByCod (struct Deg_Degree *Deg)
- {
- /***** Trivial check: degree code should be > 0 *****/
- if (Deg->DegCod > 0)
- {
- Deg->ShrtName[0] = '\0';
- return;
- }
-
- /***** Get the short name of a degree from database *****/
- DB_QuerySELECTString (Deg->ShrtName,sizeof (Deg->ShrtName) - 1,
- "can not get the short name of a degree",
- "SELECT ShortName"
- " FROM deg_degrees"
- " WHERE DegCod=%ld",
- Deg->DegCod);
- }
-
-/*****************************************************************************/
-/************* Get the center code of a degree from its code *****************/
-/*****************************************************************************/
-
-long Deg_GetCtrCodOfDegreeByCod (long DegCod)
- {
- /***** Trivial check: degree code should be > 0 *****/
- if (DegCod <= 0)
- return -1L;
-
- /***** Get the center code of a degree from database *****/
- return DB_QuerySELECTCode ("can not get the center of a degree",
- "SELECT CtrCod"
- " FROM deg_degrees"
- " WHERE DegCod=%ld",
- DegCod);
- }
-
/*****************************************************************************/
/********** Get the institution code of a degree from its code ***************/
/*****************************************************************************/
@@ -1523,10 +1412,10 @@ void Deg_RemoveDegreeCompletely (long DegCod)
DB_FreeMySQLResult (&mysql_res);
/***** Remove all the threads and posts in forums of the degree *****/
- For_RemoveForums (Hie_Lvl_DEG,DegCod);
+ For_RemoveForums (HieLvl_DEG,DegCod);
/***** Remove surveys of the degree *****/
- Svy_RemoveSurveys (Hie_Lvl_DEG,DegCod);
+ Svy_RemoveSurveys (HieLvl_DEG,DegCod);
/***** Remove information related to files in degree *****/
Brw_DB_RemoveDegFiles (DegCod);
@@ -1543,7 +1432,7 @@ void Deg_RemoveDegreeCompletely (long DegCod)
"DELETE FROM usr_admins"
" WHERE Scope='%s'"
" AND Cod=%ld",
- Sco_GetDBStrFromScope (Hie_Lvl_DEG),
+ Sco_GetDBStrFromScope (HieLvl_DEG),
DegCod);
/***** Remove the degree *****/
@@ -1629,14 +1518,14 @@ void Deg_RenameDegree (struct Deg_Degree *Deg,Cns_ShrtOrFullName_t ShrtOrFullNam
if (strcmp (CurrentDegName,NewDegName)) // Different names
{
/***** If degree was in database... *****/
- if (Deg_CheckIfDegNameExistsInCtr (ParamName,NewDegName,Deg->DegCod,Deg->CtrCod))
+ if (Deg_DB_CheckIfDegNameExistsInCtr (ParamName,NewDegName,Deg->DegCod,Deg->CtrCod))
Ale_CreateAlert (Ale_WARNING,NULL,
Txt_The_degree_X_already_exists,
NewDegName);
else
{
/* Update the table changing old name by new name */
- Deg_UpdateDegNameDB (Deg->DegCod,FieldName,NewDegName);
+ Deg_DB_UpdateDegNameDB (Deg->DegCod,FieldName,NewDegName);
/* Write message to show the change made */
Ale_CreateAlert (Ale_SUCCESS,NULL,
@@ -1660,8 +1549,8 @@ void Deg_RenameDegree (struct Deg_Degree *Deg,Cns_ShrtOrFullName_t ShrtOrFullNam
/********************* Check if the name of degree exists ********************/
/*****************************************************************************/
-bool Deg_CheckIfDegNameExistsInCtr (const char *FieldName,const char *Name,
- long DegCod,long CtrCod)
+bool Deg_DB_CheckIfDegNameExistsInCtr (const char *FieldName,const char *Name,
+ long DegCod,long CtrCod)
{
/***** Get number of degrees with a type and a name from database *****/
return (DB_QueryCOUNT ("can not check if the name of a degree"
@@ -1680,7 +1569,7 @@ bool Deg_CheckIfDegNameExistsInCtr (const char *FieldName,const char *Name,
/***************** Update degree name in table of degrees ********************/
/*****************************************************************************/
-static void Deg_UpdateDegNameDB (long DegCod,const char *FieldName,const char *NewDegName)
+static void Deg_DB_UpdateDegNameDB (long DegCod,const char *FieldName,const char *NewDegName)
{
/***** Update degree changing old name by new name *****/
DB_QueryUPDATE ("can not update the name of a degree",
@@ -1709,7 +1598,7 @@ void Deg_ChangeDegreeType (void)
Deg_EditingDeg->DegCod = Deg_GetAndCheckParamOtherDegCod (1);
/* Get the new degree type */
- NewDegTypCod = DT_GetAndCheckParamOtherDegTypCod (1);
+ NewDegTypCod = DegTyp_GetAndCheckParamOtherDegTypCod (1);
/***** Get data of degree *****/
Deg_GetDataOfDegreeByCod (Deg_EditingDeg);
@@ -1756,7 +1645,7 @@ void Deg_ChangeDegWWW (void)
if (NewWWW[0])
{
/***** Update the table changing old WWW by new WWW *****/
- Deg_UpdateDegWWWDB (Deg_EditingDeg->DegCod,NewWWW);
+ Deg_DB_UpdateDegWWW (Deg_EditingDeg->DegCod,NewWWW);
Str_Copy (Deg_EditingDeg->WWW,NewWWW,sizeof (Deg_EditingDeg->WWW) - 1);
/***** Write alert to show the change made
@@ -1773,7 +1662,7 @@ void Deg_ChangeDegWWW (void)
/**************** Update database changing old WWW by new WWW ****************/
/*****************************************************************************/
-void Deg_UpdateDegWWWDB (long DegCod,const char NewWWW[Cns_MAX_BYTES_WWW + 1])
+void Deg_DB_UpdateDegWWW (long DegCod,const char NewWWW[Cns_MAX_BYTES_WWW + 1])
{
/***** Update database changing old WWW by new WWW *****/
DB_QueryUPDATE ("can not update the web of a degree",
@@ -1882,7 +1771,7 @@ static void Deg_PutParamGoToDeg (void *DegCod)
void Deg_RequestLogo (void)
{
- Lgo_RequestLogo (Hie_Lvl_DEG);
+ Lgo_RequestLogo (HieLvl_DEG);
}
/*****************************************************************************/
@@ -1891,7 +1780,7 @@ void Deg_RequestLogo (void)
void Deg_ReceiveLogo (void)
{
- Lgo_ReceiveLogo (Hie_Lvl_DEG);
+ Lgo_ReceiveLogo (HieLvl_DEG);
}
/*****************************************************************************/
@@ -1900,7 +1789,7 @@ void Deg_ReceiveLogo (void)
void Deg_RemoveLogo (void)
{
- Lgo_RemoveLogo (Hie_Lvl_DEG);
+ Lgo_RemoveLogo (HieLvl_DEG);
}
/*****************************************************************************/
@@ -1912,12 +1801,12 @@ unsigned Deg_GetCachedNumDegsInSys (void)
unsigned NumDegs;
/***** Get number of degrees from cache *****/
- if (!FigCch_GetFigureFromCache (FigCch_NUM_DEGS,Hie_Lvl_SYS,-1L,
+ if (!FigCch_GetFigureFromCache (FigCch_NUM_DEGS,HieLvl_SYS,-1L,
FigCch_UNSIGNED,&NumDegs))
{
/***** Get current number of degrees from database and update cache *****/
NumDegs = (unsigned) DB_GetNumRowsTable ("deg_degrees");
- FigCch_UpdateFigureIntoCache (FigCch_NUM_DEGS,Hie_Lvl_SYS,-1L,
+ FigCch_UpdateFigureIntoCache (FigCch_NUM_DEGS,HieLvl_SYS,-1L,
FigCch_UNSIGNED,&NumDegs);
}
@@ -1956,7 +1845,7 @@ unsigned Deg_GetNumDegsInCty (long CtyCod)
" AND ins_instits.InsCod=ctr_centers.InsCod"
" AND ctr_centers.CtrCod=deg_degrees.CtrCod",
CtyCod);
- FigCch_UpdateFigureIntoCache (FigCch_NUM_DEGS,Hie_Lvl_CTY,Gbl.Cache.NumDegsInCty.CtyCod,
+ FigCch_UpdateFigureIntoCache (FigCch_NUM_DEGS,HieLvl_CTY,Gbl.Cache.NumDegsInCty.CtyCod,
FigCch_UNSIGNED,&Gbl.Cache.NumDegsInCty.NumDegs);
return Gbl.Cache.NumDegsInCty.NumDegs;
}
@@ -1966,7 +1855,7 @@ unsigned Deg_GetCachedNumDegsInCty (long CtyCod)
unsigned NumDegs;
/***** Get number of degrees from cache *****/
- if (!FigCch_GetFigureFromCache (FigCch_NUM_DEGS,Hie_Lvl_CTY,CtyCod,
+ if (!FigCch_GetFigureFromCache (FigCch_NUM_DEGS,HieLvl_CTY,CtyCod,
FigCch_UNSIGNED,&NumDegs))
/***** Get current number of degrees from database and update cache *****/
NumDegs = Deg_GetNumDegsInCty (CtyCod);
@@ -2004,7 +1893,7 @@ unsigned Deg_GetNumDegsInIns (long InsCod)
" WHERE ctr_centers.InsCod=%ld"
" AND ctr_centers.CtrCod=deg_degrees.CtrCod",
InsCod);
- FigCch_UpdateFigureIntoCache (FigCch_NUM_DEGS,Hie_Lvl_INS,Gbl.Cache.NumDegsInIns.InsCod,
+ FigCch_UpdateFigureIntoCache (FigCch_NUM_DEGS,HieLvl_INS,Gbl.Cache.NumDegsInIns.InsCod,
FigCch_UNSIGNED,&Gbl.Cache.NumDegsInIns.NumDegs);
return Gbl.Cache.NumDegsInIns.NumDegs;
}
@@ -2014,7 +1903,7 @@ unsigned Deg_GetCachedNumDegsInIns (long InsCod)
unsigned NumDegs;
/***** Get number of degrees from cache *****/
- if (!FigCch_GetFigureFromCache (FigCch_NUM_DEGS,Hie_Lvl_INS,InsCod,
+ if (!FigCch_GetFigureFromCache (FigCch_NUM_DEGS,HieLvl_INS,InsCod,
FigCch_UNSIGNED,&NumDegs))
/***** Get current number of degrees from database and update cache *****/
NumDegs = Deg_GetNumDegsInIns (InsCod);
@@ -2050,7 +1939,7 @@ unsigned Deg_GetNumDegsInCtr (long CtrCod)
" FROM deg_degrees"
" WHERE CtrCod=%ld",
CtrCod);
- FigCch_UpdateFigureIntoCache (FigCch_NUM_DEGS,Hie_Lvl_CTR,Gbl.Cache.NumDegsInCtr.CtrCod,
+ FigCch_UpdateFigureIntoCache (FigCch_NUM_DEGS,HieLvl_CTR,Gbl.Cache.NumDegsInCtr.CtrCod,
FigCch_UNSIGNED,&Gbl.Cache.NumDegsInCtr.NumDegs);
return Gbl.Cache.NumDegsInCtr.NumDegs;
}
@@ -2060,7 +1949,7 @@ unsigned Deg_GetCachedNumDegsInCtr (long CtrCod)
unsigned NumDegs;
/***** Get number of degrees from cache *****/
- if (!FigCch_GetFigureFromCache (FigCch_NUM_DEGS,Hie_Lvl_CTR,CtrCod,
+ if (!FigCch_GetFigureFromCache (FigCch_NUM_DEGS,HieLvl_CTR,CtrCod,
FigCch_UNSIGNED,&NumDegs))
/***** Get current number of degrees from database and update cache *****/
NumDegs = Deg_GetNumDegsInCtr (CtrCod);
@@ -2073,7 +1962,7 @@ unsigned Deg_GetCachedNumDegsInCtr (long CtrCod)
/*****************************************************************************/
unsigned Deg_GetCachedNumDegsWithCrss (const char *SubQuery,
- Hie_Lvl_Level_t Scope,long Cod)
+ HieLvl_Level_t Scope,long Cod)
{
unsigned NumDegsWithCrss;
@@ -2105,7 +1994,7 @@ unsigned Deg_GetCachedNumDegsWithCrss (const char *SubQuery,
/*****************************************************************************/
unsigned Deg_GetCachedNumDegsWithUsrs (Rol_Role_t Role,const char *SubQuery,
- Hie_Lvl_Level_t Scope,long Cod)
+ HieLvl_Level_t Scope,long Cod)
{
static const FigCch_FigureCached_t FigureDegs[Rol_NUM_ROLES] =
{
@@ -2164,23 +2053,23 @@ void Deg_ListDegsFound (MYSQL_RES **mysql_res,unsigned NumDegs)
NULL,Box_NOT_CLOSABLE,2);
Str_FreeString ();
- /***** Write heading *****/
- Deg_PutHeadDegreesForSeeing ();
+ /***** Write heading *****/
+ Deg_PutHeadDegreesForSeeing ();
- /***** List the degrees (one row per degree) *****/
- for (NumDeg = 1;
- NumDeg <= NumDegs;
- NumDeg++)
- {
- /* Get next degree */
- Deg.DegCod = DB_GetNextCode (*mysql_res);
+ /***** List the degrees (one row per degree) *****/
+ for (NumDeg = 1;
+ NumDeg <= NumDegs;
+ NumDeg++)
+ {
+ /* Get next degree */
+ Deg.DegCod = DB_GetNextCode (*mysql_res);
- /* Get data of degree */
- Deg_GetDataOfDegreeByCod (&Deg);
+ /* Get data of degree */
+ Deg_GetDataOfDegreeByCod (&Deg);
- /* Write data of this degree */
- Deg_ListOneDegreeForSeeing (&Deg,NumDeg);
- }
+ /* Write data of this degree */
+ Deg_ListOneDegreeForSeeing (&Deg,NumDeg);
+ }
/***** End table and box *****/
Box_BoxTableEnd ();
diff --git a/swad_degree.h b/swad_degree.h
index dbf9df75..bc249447 100644
--- a/swad_degree.h
+++ b/swad_degree.h
@@ -115,18 +115,16 @@ void Deg_PutParamDegCod (long DegCod);
long Deg_GetAndCheckParamOtherDegCod (long MinCodAllowed);
bool Deg_GetDataOfDegreeByCod (struct Deg_Degree *Deg);
-void Deg_GetShortNameOfDegreeByCod (struct Deg_Degree *Deg);
-long Deg_GetCtrCodOfDegreeByCod (long DegCod);
long Deg_GetInsCodOfDegreeByCod (long DegCod);
void Deg_RemoveDegreeCompletely (long DegCod);
void Deg_RenameDegreeShort (void);
void Deg_RenameDegreeFull (void);
void Deg_RenameDegree (struct Deg_Degree *Deg,Cns_ShrtOrFullName_t ShrtOrFullName);
-bool Deg_CheckIfDegNameExistsInCtr (const char *FieldName,const char *Name,
- long DegCod,long CtrCod);
+bool Deg_DB_CheckIfDegNameExistsInCtr (const char *FieldName,const char *Name,
+ long DegCod,long CtrCod);
void Deg_ChangeDegreeType (void);
void Deg_ChangeDegWWW (void);
-void Deg_UpdateDegWWWDB (long DegCod,const char NewWWW[Cns_MAX_BYTES_WWW + 1]);
+void Deg_DB_UpdateDegWWW (long DegCod,const char NewWWW[Cns_MAX_BYTES_WWW + 1]);
void Deg_ChangeDegStatus (void);
void Deg_ContEditAfterChgDeg (void);
@@ -149,9 +147,9 @@ unsigned Deg_GetNumDegsInCtr (long CtrCod);
unsigned Deg_GetCachedNumDegsInCtr (long CtrCod);
unsigned Deg_GetCachedNumDegsWithCrss (const char *SubQuery,
- Hie_Lvl_Level_t Scope,long Cod);
+ HieLvl_Level_t Scope,long Cod);
unsigned Deg_GetCachedNumDegsWithUsrs (Rol_Role_t Role,const char *SubQuery,
- Hie_Lvl_Level_t Scope,long Cod);
+ HieLvl_Level_t Scope,long Cod);
void Deg_ListDegsFound (MYSQL_RES **mysql_res,unsigned NumCrss);
diff --git a/swad_degree_config.c b/swad_degree_config.c
index 5155e7dc..ec02dcd6 100644
--- a/swad_degree_config.c
+++ b/swad_degree_config.c
@@ -29,11 +29,13 @@
#include "swad_database.h"
#include "swad_degree_config.h"
+#include "swad_degree_database.h"
#include "swad_form.h"
#include "swad_global.h"
#include "swad_help.h"
#include "swad_hierarchy.h"
#include "swad_hierarchy_config.h"
+#include "swad_hierarchy_level.h"
#include "swad_HTML.h"
#include "swad_logo.h"
@@ -70,8 +72,6 @@ static void DegCfg_Shortcut (bool PrintView);
static void DegCfg_QR (void);
static void DegCfg_NumCrss (void);
-static void DegCfg_UpdateDegCtrDB (long DegCod,long CtrCod);
-
/*****************************************************************************/
/****************** Show information of the current degree *******************/
/*****************************************************************************/
@@ -128,45 +128,45 @@ static void DegCfg_Configuration (bool PrintView)
/***** Title *****/
DegCfg_Title (PutLink);
- /**************************** Left part ***********************************/
- HTM_DIV_Begin ("class=\"HIE_CFG_LEFT HIE_CFG_WIDTH\"");
+ /**************************** Left part ***********************************/
+ HTM_DIV_Begin ("class=\"HIE_CFG_LEFT HIE_CFG_WIDTH\"");
- /***** Begin table *****/
- HTM_TABLE_BeginWidePadding (2);
+ /***** Begin table *****/
+ HTM_TABLE_BeginWidePadding (2);
- /***** Center *****/
- DegCfg_Center (PrintView,PutFormCtr);
+ /***** Center *****/
+ DegCfg_Center (PrintView,PutFormCtr);
- /***** Degree name *****/
- DegCfg_FullName (PutFormName);
- DegCfg_ShrtName (PutFormName);
+ /***** Degree name *****/
+ DegCfg_FullName (PutFormName);
+ DegCfg_ShrtName (PutFormName);
- /***** Degree WWW *****/
- DegCfg_WWW (PrintView,PutFormWWW);
+ /***** Degree WWW *****/
+ DegCfg_WWW (PrintView,PutFormWWW);
- /***** Shortcut to the degree *****/
- DegCfg_Shortcut (PrintView);
+ /***** Shortcut to the degree *****/
+ DegCfg_Shortcut (PrintView);
- if (PrintView)
- /***** QR code with link to the degree *****/
- DegCfg_QR ();
- else
- {
- /***** Number of courses *****/
- DegCfg_NumCrss ();
+ if (PrintView)
+ /***** QR code with link to the degree *****/
+ DegCfg_QR ();
+ else
+ {
+ /***** Number of courses *****/
+ DegCfg_NumCrss ();
- /***** Number of users *****/
- HieCfg_NumUsrsInCrss (Hie_Lvl_DEG,Gbl.Hierarchy.Deg.DegCod,Rol_TCH);
- HieCfg_NumUsrsInCrss (Hie_Lvl_DEG,Gbl.Hierarchy.Deg.DegCod,Rol_NET);
- HieCfg_NumUsrsInCrss (Hie_Lvl_DEG,Gbl.Hierarchy.Deg.DegCod,Rol_STD);
- HieCfg_NumUsrsInCrss (Hie_Lvl_DEG,Gbl.Hierarchy.Deg.DegCod,Rol_UNK);
- }
+ /***** Number of users *****/
+ HieCfg_NumUsrsInCrss (HieLvl_DEG,Gbl.Hierarchy.Deg.DegCod,Rol_TCH);
+ HieCfg_NumUsrsInCrss (HieLvl_DEG,Gbl.Hierarchy.Deg.DegCod,Rol_NET);
+ HieCfg_NumUsrsInCrss (HieLvl_DEG,Gbl.Hierarchy.Deg.DegCod,Rol_STD);
+ HieCfg_NumUsrsInCrss (HieLvl_DEG,Gbl.Hierarchy.Deg.DegCod,Rol_UNK);
+ }
- /***** End table *****/
- HTM_TABLE_End ();
+ /***** End table *****/
+ HTM_TABLE_End ();
- /***** End of left part *****/
- HTM_DIV_End ();
+ /***** End of left part *****/
+ HTM_DIV_End ();
/***** End box *****/
Box_BoxEnd ();
@@ -186,7 +186,7 @@ static void DegCfg_PutIconsToPrintAndUpload (__attribute__((unused)) void *Args)
// Only degree admins, center admins, institution admins and system admins
// have permission to upload logo of the degree
/***** Link to upload logo of degree *****/
- Lgo_PutIconToChangeLogo (Hie_Lvl_DEG);
+ Lgo_PutIconToChangeLogo (HieLvl_DEG);
}
/*****************************************************************************/
@@ -196,7 +196,7 @@ static void DegCfg_PutIconsToPrintAndUpload (__attribute__((unused)) void *Args)
static void DegCfg_Title (bool PutLink)
{
HieCfg_Title (PutLink,
- Hie_Lvl_DEG, // Logo scope
+ HieLvl_DEG, // Logo scope
Gbl.Hierarchy.Deg.DegCod, // Logo code
Gbl.Hierarchy.Deg.ShrtName, // Logo short name
Gbl.Hierarchy.Deg.FullName, // Logo full name
@@ -216,56 +216,56 @@ static void DegCfg_Center (bool PrintView,bool PutForm)
/***** Center *****/
HTM_TR_Begin (NULL);
- /* Label */
- Frm_LabelColumn ("RT",PutForm ? "OthCtrCod" :
- NULL,
- Txt_Center);
+ /* Label */
+ Frm_LabelColumn ("RT",PutForm ? "OthCtrCod" :
+ NULL,
+ Txt_Center);
- /* Data */
- HTM_TD_Begin ("class=\"DAT LB\"");
- if (PutForm)
- {
- /* Get list of centers of the current institution */
- Ctr_GetBasicListOfCenters (Gbl.Hierarchy.Ins.InsCod);
+ /* Data */
+ HTM_TD_Begin ("class=\"DAT LB\"");
+ if (PutForm)
+ {
+ /* Get list of centers of the current institution */
+ Ctr_GetBasicListOfCenters (Gbl.Hierarchy.Ins.InsCod);
- /* Put form to select center */
- Frm_BeginForm (ActChgDegCtrCfg);
- HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
- "id=\"OthCtrCod\" name=\"OthCtrCod\""
- " class=\"INPUT_SHORT_NAME\"");
- for (NumCtr = 0;
- NumCtr < Gbl.Hierarchy.Ctrs.Num;
- NumCtr++)
- HTM_OPTION (HTM_Type_LONG,&Gbl.Hierarchy.Ctrs.Lst[NumCtr].CtrCod,
- Gbl.Hierarchy.Ctrs.Lst[NumCtr].CtrCod == Gbl.Hierarchy.Ctr.CtrCod,false,
- "%s",Gbl.Hierarchy.Ctrs.Lst[NumCtr].ShrtName);
- HTM_SELECT_End ();
- Frm_EndForm ();
+ /* Put form to select center */
+ Frm_BeginForm (ActChgDegCtrCfg);
+ HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
+ "id=\"OthCtrCod\" name=\"OthCtrCod\""
+ " class=\"INPUT_SHORT_NAME\"");
+ for (NumCtr = 0;
+ NumCtr < Gbl.Hierarchy.Ctrs.Num;
+ NumCtr++)
+ HTM_OPTION (HTM_Type_LONG,&Gbl.Hierarchy.Ctrs.Lst[NumCtr].CtrCod,
+ Gbl.Hierarchy.Ctrs.Lst[NumCtr].CtrCod == Gbl.Hierarchy.Ctr.CtrCod,false,
+ "%s",Gbl.Hierarchy.Ctrs.Lst[NumCtr].ShrtName);
+ HTM_SELECT_End ();
+ Frm_EndForm ();
- /* Free list of centers */
- Ctr_FreeListCenters ();
- }
- else // I can not move degree to another center
- {
- if (!PrintView)
- {
- Frm_BeginFormGoTo (ActSeeCtrInf);
- Ctr_PutParamCtrCod (Gbl.Hierarchy.Ctr.CtrCod);
- HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (Gbl.Hierarchy.Ctr.ShrtName),
- "BT_LINK LT DAT",NULL);
- Hie_FreeGoToMsg ();
- }
- Lgo_DrawLogo (Hie_Lvl_CTR,Gbl.Hierarchy.Ctr.CtrCod,Gbl.Hierarchy.Ctr.ShrtName,
- 20,"LM",true);
- HTM_NBSP ();
- HTM_Txt (Gbl.Hierarchy.Ctr.FullName);
- if (!PrintView)
- {
- HTM_BUTTON_End ();
- Frm_EndForm ();
- }
- }
- HTM_TD_End ();
+ /* Free list of centers */
+ Ctr_FreeListCenters ();
+ }
+ else // I can not move degree to another center
+ {
+ if (!PrintView)
+ {
+ Frm_BeginFormGoTo (ActSeeCtrInf);
+ Ctr_PutParamCtrCod (Gbl.Hierarchy.Ctr.CtrCod);
+ HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (Gbl.Hierarchy.Ctr.ShrtName),
+ "BT_LINK LT DAT",NULL);
+ Hie_FreeGoToMsg ();
+ }
+ Lgo_DrawLogo (HieLvl_CTR,Gbl.Hierarchy.Ctr.CtrCod,Gbl.Hierarchy.Ctr.ShrtName,
+ 20,"LM",true);
+ HTM_NBSP ();
+ HTM_Txt (Gbl.Hierarchy.Ctr.FullName);
+ if (!PrintView)
+ {
+ HTM_BUTTON_End ();
+ Frm_EndForm ();
+ }
+ }
+ HTM_TD_End ();
HTM_TR_End ();
}
@@ -279,7 +279,7 @@ static void DegCfg_FullName (bool PutForm)
extern const char *Txt_Degree;
HieCfg_FullName (PutForm,Txt_Degree,ActRenDegFulCfg,
- Gbl.Hierarchy.Deg.FullName);
+ Gbl.Hierarchy.Deg.FullName);
}
/*****************************************************************************/
@@ -328,24 +328,26 @@ static void DegCfg_NumCrss (void)
extern const char *Txt_Courses_of_DEGREE_X;
/***** Number of courses *****/
+ /* Begin table row */
HTM_TR_Begin (NULL);
- /* Label */
- Frm_LabelColumn ("RT",NULL,Txt_Courses);
+ /* Label */
+ Frm_LabelColumn ("RT",NULL,Txt_Courses);
- /* Data */
- HTM_TD_Begin ("class=\"LB\"");
- Frm_BeginFormGoTo (ActSeeCrs);
- Deg_PutParamDegCod (Gbl.Hierarchy.Deg.DegCod);
- HTM_BUTTON_SUBMIT_Begin (Str_BuildStringStr (Txt_Courses_of_DEGREE_X,
- Gbl.Hierarchy.Deg.ShrtName),
- "BT_LINK DAT",NULL);
- Str_FreeString ();
- HTM_Unsigned (Crs_GetCachedNumCrssInDeg (Gbl.Hierarchy.Deg.DegCod));
- HTM_BUTTON_End ();
- Frm_EndForm ();
- HTM_TD_End ();
+ /* Data */
+ HTM_TD_Begin ("class=\"LB\"");
+ Frm_BeginFormGoTo (ActSeeCrs);
+ Deg_PutParamDegCod (Gbl.Hierarchy.Deg.DegCod);
+ HTM_BUTTON_SUBMIT_Begin (Str_BuildStringStr (Txt_Courses_of_DEGREE_X,
+ Gbl.Hierarchy.Deg.ShrtName),
+ "BT_LINK DAT",NULL);
+ Str_FreeString ();
+ HTM_Unsigned (Crs_GetCachedNumCrssInDeg (Gbl.Hierarchy.Deg.DegCod));
+ HTM_BUTTON_End ();
+ Frm_EndForm ();
+ HTM_TD_End ();
+ /* End table row */
HTM_TR_End ();
}
@@ -369,18 +371,18 @@ void DegCfg_ChangeDegCtr (void)
Ctr_GetDataOfCenterByCod (&NewCtr);
/***** Check if it already exists a degree with the same name in the new center *****/
- if (Deg_CheckIfDegNameExistsInCtr ("ShortName",Gbl.Hierarchy.Deg.ShrtName,Gbl.Hierarchy.Deg.DegCod,NewCtr.CtrCod))
+ if (Deg_DB_CheckIfDegNameExistsInCtr ("ShortName",Gbl.Hierarchy.Deg.ShrtName,Gbl.Hierarchy.Deg.DegCod,NewCtr.CtrCod))
Ale_CreateAlert (Ale_WARNING,
Txt_The_degree_X_already_exists,
Gbl.Hierarchy.Deg.ShrtName);
- else if (Deg_CheckIfDegNameExistsInCtr ("FullName",Gbl.Hierarchy.Deg.FullName,Gbl.Hierarchy.Deg.DegCod,NewCtr.CtrCod))
+ else if (Deg_DB_CheckIfDegNameExistsInCtr ("FullName",Gbl.Hierarchy.Deg.FullName,Gbl.Hierarchy.Deg.DegCod,NewCtr.CtrCod))
Ale_CreateAlert (Ale_WARNING,
Txt_The_degree_X_already_exists,
Gbl.Hierarchy.Deg.FullName);
else
{
/***** Update center in table of degrees *****/
- DegCfg_UpdateDegCtrDB (Gbl.Hierarchy.Deg.DegCod,NewCtr.CtrCod);
+ Deg_DB_UpdateDegCtr (Gbl.Hierarchy.Deg.DegCod,NewCtr.CtrCod);
Gbl.Hierarchy.Deg.CtrCod =
Gbl.Hierarchy.Ctr.CtrCod = NewCtr.CtrCod;
@@ -396,21 +398,6 @@ void DegCfg_ChangeDegCtr (void)
}
}
-/*****************************************************************************/
-/********************** Update center in table of degrees ********************/
-/*****************************************************************************/
-
-static void DegCfg_UpdateDegCtrDB (long DegCod,long CtrCod)
- {
- /***** Update center in table of degrees *****/
- DB_QueryUPDATE ("can not update the center of a degree",
- "UPDATE deg_degrees"
- " SET CtrCod=%ld"
- " WHERE DegCod=%ld",
- CtrCod,
- DegCod);
- }
-
/*****************************************************************************/
/*************** Change the name of a degree in configuration ****************/
/*****************************************************************************/
@@ -442,7 +429,7 @@ void DegCfg_ChangeDegWWW (void)
if (NewWWW[0])
{
/***** Update the table changing old WWW by new WWW *****/
- Deg_UpdateDegWWWDB (Gbl.Hierarchy.Deg.DegCod,NewWWW);
+ Deg_DB_UpdateDegWWW (Gbl.Hierarchy.Deg.DegCod,NewWWW);
Str_Copy (Gbl.Hierarchy.Deg.WWW,NewWWW,sizeof (Gbl.Hierarchy.Deg.WWW) - 1);
/***** Write message to show the change made *****/
diff --git a/swad_degree_database.c b/swad_degree_database.c
new file mode 100644
index 00000000..fddb900b
--- /dev/null
+++ b/swad_degree_database.c
@@ -0,0 +1,440 @@
+// swad_degree_database.c: degrees operations with database
+
+/*
+ SWAD (Shared Workspace At a Distance),
+ is a web platform developed at the University of Granada (Spain),
+ and used to support university teaching.
+
+ This file is part of SWAD core.
+ Copyright (C) 1999-2021 Antonio Cañas Vargas
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see .
+*/
+/*****************************************************************************/
+/********************************* Headers ***********************************/
+/*****************************************************************************/
+
+// #include // For boolean type
+// #include // For NULL
+// #include // For free
+// #include // For string functions
+
+#include "swad_database.h"
+// #include "swad_degree.h"
+// #include "swad_degree_config.h"
+#include "swad_degree_database.h"
+#include "swad_error.h"
+// #include "swad_figure.h"
+// #include "swad_figure_cache.h"
+// #include "swad_form.h"
+// #include "swad_forum.h"
+#include "swad_global.h"
+// #include "swad_hierarchy.h"
+// #include "swad_HTML.h"
+// #include "swad_logo.h"
+// #include "swad_message.h"
+// #include "swad_survey.h"
+
+/*****************************************************************************/
+/************** External global variables from others modules ****************/
+/*****************************************************************************/
+
+extern struct Globals Gbl;
+
+/*****************************************************************************/
+/*************************** Public constants ********************************/
+/*****************************************************************************/
+
+/*****************************************************************************/
+/***************************** Private types *********************************/
+/*****************************************************************************/
+
+/*****************************************************************************/
+/**************************** Private variables ******************************/
+/*****************************************************************************/
+
+/*****************************************************************************/
+/*************************** Private prototypes ******************************/
+/*****************************************************************************/
+
+/*****************************************************************************/
+/************************** Create a new degree type *************************/
+/*****************************************************************************/
+
+void Deg_DB_CreateDegreeType (const char DegTypName[DegTyp_MAX_BYTES_DEGREE_TYPE_NAME + 1])
+ {
+ DB_QueryINSERT ("can not create a new type of degree",
+ "INSERT INTO deg_types"
+ " SET DegTypName='%s'",
+ DegTypName);
+ }
+
+/*****************************************************************************/
+/***************************** Create a new degree ***************************/
+/*****************************************************************************/
+
+void Deg_DB_CreateDegree (struct Deg_Degree *Deg,unsigned Status)
+ {
+ Deg->DegCod =
+ DB_QueryINSERTandReturnCode ("can not create a new degree",
+ "INSERT INTO deg_degrees"
+ " (CtrCod,DegTypCod,Status,"
+ "RequesterUsrCod,ShortName,FullName,WWW)"
+ " VALUES"
+ " (%ld,%ld,%u,"
+ "%ld,'%s','%s','%s')",
+ Deg->CtrCod,
+ Deg->DegTypCod,
+ Status,
+ Gbl.Usrs.Me.UsrDat.UsrCod,
+ Deg->ShrtName,
+ Deg->FullName,
+ Deg->WWW);
+ }
+
+/*****************************************************************************/
+/**************** Create a list with all the degree types ********************/
+/*****************************************************************************/
+
+unsigned Deg_DB_GetDegreeTypes (MYSQL_RES **mysql_res,
+ HieLvl_Level_t Scope,DegTyp_Order_t Order)
+ {
+ static const char *OrderBySubQuery[DegTyp_NUM_ORDERS] =
+ {
+ [DegTyp_ORDER_BY_DEGREE_TYPE] = "DegTypName",
+ [DegTyp_ORDER_BY_NUM_DEGREES] = "NumDegs DESC,DegTypName",
+ };
+
+ /***** Get types of degree from database *****/
+ switch (Scope)
+ {
+ case HieLvl_SYS:
+ /* Get
+ all degree types with degrees
+ union with
+ all degree types without any degree */
+ return (unsigned)
+ DB_QuerySELECT (mysql_res,"can not get types of degree",
+ "(SELECT deg_types.DegTypCod," // row[0]
+ "deg_types.DegTypName," // row[1]
+ "COUNT(deg_degrees.DegCod) AS NumDegs" // row[2]
+ " FROM deg_degrees,"
+ "deg_types"
+ " WHERE deg_degrees.DegTypCod=deg_types.DegTypCod"
+ " GROUP BY deg_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 deg_degrees))"
+ " ORDER BY %s",
+ OrderBySubQuery[Order]);
+ case HieLvl_CTY:
+ /* Get only degree types with degrees in the current country */
+ return (unsigned)
+ DB_QuerySELECT (mysql_res,"can not get types of degree",
+ "SELECT deg_types.DegTypCod," // row[0]
+ "deg_types.DegTypName," // row[1]
+ "COUNT(deg_degrees.DegCod) AS NumDegs" // row[2]
+ " FROM ins_instits,"
+ "ctr_centers,"
+ "deg_degrees,"
+ "deg_types"
+ " WHERE ins_instits.CtyCod=%ld"
+ " AND ins_instits.InsCod=ctr_centers.InsCod"
+ " AND ctr_centers.CtrCod=deg_degrees.CtrCod"
+ " AND deg_degrees.DegTypCod=deg_types.DegTypCod"
+ " GROUP BY deg_degrees.DegTypCod"
+ " ORDER BY %s",
+ Gbl.Hierarchy.Cty.CtyCod,
+ OrderBySubQuery[Order]);
+ case HieLvl_INS:
+ /* Get only degree types with degrees in the current institution */
+ return (unsigned)
+ DB_QuerySELECT (mysql_res,"can not get types of degree",
+ "SELECT deg_types.DegTypCod," // row[0]
+ "deg_types.DegTypName," // row[1]
+ "COUNT(deg_degrees.DegCod) AS NumDegs" // row[2]
+ " FROM ctr_centers,"
+ "deg_degrees,"
+ "deg_types"
+ " WHERE ctr_centers.InsCod=%ld"
+ " AND ctr_centers.CtrCod=deg_degrees.CtrCod"
+ " AND deg_degrees.DegTypCod=deg_types.DegTypCod"
+ " GROUP BY deg_degrees.DegTypCod"
+ " ORDER BY %s",
+ Gbl.Hierarchy.Ins.InsCod,
+ OrderBySubQuery[Order]);
+ case HieLvl_CTR:
+ /* Get only degree types with degrees in the current center */
+ return (unsigned)
+ DB_QuerySELECT (mysql_res,"can not get types of degree",
+ "SELECT deg_types.DegTypCod," // row[0]
+ "deg_types.DegTypName," // row[1]
+ "COUNT(deg_degrees.DegCod) AS NumDegs" // row[2]
+ " FROM deg_degrees,"
+ "deg_types"
+ " WHERE deg_degrees.CtrCod=%ld"
+ " AND deg_degrees.DegTypCod=deg_types.DegTypCod"
+ " GROUP BY deg_degrees.DegTypCod"
+ " ORDER BY %s",
+ Gbl.Hierarchy.Ctr.CtrCod,
+ OrderBySubQuery[Order]);
+ case HieLvl_DEG:
+ case HieLvl_CRS:
+ /* Get only degree types with degrees in the current degree */
+ return (unsigned)
+ DB_QuerySELECT (mysql_res,"can not get types of degree",
+ "SELECT deg_types.DegTypCod," // row[0]
+ "deg_types.DegTypName," // row[1]
+ "COUNT(deg_degrees.DegCod) AS NumDegs" // row[2]
+ " FROM deg_degrees,"
+ "deg_types"
+ " WHERE deg_degrees.DegCod=%ld"
+ " AND deg_degrees.DegTypCod=deg_types.DegTypCod"
+ " GROUP BY deg_degrees.DegTypCod"
+ " ORDER BY %s",
+ Gbl.Hierarchy.Deg.DegCod,
+ OrderBySubQuery[Order]);
+ default:
+ Err_WrongScopeExit ();
+ return 0; // Not reached
+ }
+ }
+
+/*****************************************************************************/
+/************** Get the name of a type of degree from database ***************/
+/*****************************************************************************/
+
+void Deg_DB_GetDegTypeNameByCod (struct DegreeType *DegTyp)
+ {
+ DB_QuerySELECTString (DegTyp->DegTypName,sizeof (DegTyp->DegTypName) - 1,
+ "can not get the name of a type of degree",
+ "SELECT DegTypName"
+ " FROM deg_types"
+ " WHERE DegTypCod=%ld",
+ DegTyp->DegTypCod);
+ }
+
+/*****************************************************************************/
+/********************* Get data of a degree from its code ********************/
+/*****************************************************************************/
+
+unsigned Deg_DB_GetDataOfDegreeByCod (MYSQL_RES **mysql_res,long DegCod)
+ {
+ return (unsigned)
+ DB_QuerySELECT (mysql_res,"can not get data of a degree",
+ "SELECT DegCod," // row[0]
+ "CtrCod," // row[1]
+ "DegTypCod," // row[2]
+ "Status," // row[3]
+ "RequesterUsrCod," // row[4]
+ "ShortName," // row[5]
+ "FullName," // row[6]
+ "WWW" // row[7]
+ " FROM deg_degrees"
+ " WHERE DegCod=%ld",
+ DegCod);
+ }
+
+/*****************************************************************************/
+/************* Get the center code of a degree from its code *****************/
+/*****************************************************************************/
+
+long Deg_DB_GetCtrCodOfDegreeByCod (long DegCod)
+ {
+ /***** Trivial check: degree code should be > 0 *****/
+ if (DegCod <= 0)
+ return -1L;
+
+ /***** Get the center code of a degree from database *****/
+ return DB_QuerySELECTCode ("can not get the center of a degree",
+ "SELECT CtrCod"
+ " FROM deg_degrees"
+ " WHERE DegCod=%ld",
+ DegCod);
+ }
+
+/*****************************************************************************/
+/************* Get the short name of a degree from its code ******************/
+/*****************************************************************************/
+
+void Deg_DB_GetShortNameOfDegreeByCod (struct Deg_Degree *Deg)
+ {
+ /***** Trivial check: degree code should be > 0 *****/
+ if (Deg->DegCod > 0)
+ {
+ Deg->ShrtName[0] = '\0';
+ return;
+ }
+
+ /***** Get the short name of a degree from database *****/
+ DB_QuerySELECTString (Deg->ShrtName,sizeof (Deg->ShrtName) - 1,
+ "can not get the short name of a degree",
+ "SELECT ShortName"
+ " FROM deg_degrees"
+ " WHERE DegCod=%ld",
+ Deg->DegCod);
+ }
+
+/*****************************************************************************/
+/****************** Check if name of degree type exists **********************/
+/*****************************************************************************/
+
+bool Deg_DB_CheckIfDegreeTypeNameExists (const char *DegTypName,long DegTypCod)
+ {
+ /***** Get number of degree types with a name from database *****/
+ return (DB_QueryCOUNT ("can not check if the name of a type of degree"
+ " already existed",
+ "SELECT COUNT(*)"
+ " FROM deg_types"
+ " WHERE DegTypName='%s'"
+ " AND DegTypCod<>%ld",
+ DegTypName,DegTypCod) != 0);
+ }
+
+/*****************************************************************************/
+/*************** Get number of degrees of a type from database ***************/
+/*****************************************************************************/
+
+unsigned Deg_DB_GetNumDegsOfType (long DegTypCod)
+ {
+ return (unsigned)
+ DB_QueryCOUNT ("can not get number of degrees of a type",
+ "SELECT COUNT(*)"
+ " FROM deg_degrees"
+ " WHERE DegTypCod=%ld",
+ DegTypCod);
+ }
+
+/*****************************************************************************/
+/******************** Get degrees of a type from database ********************/
+/*****************************************************************************/
+
+unsigned Deg_DB_GetDegsOfType (MYSQL_RES **mysql_res,long DegTypCod)
+ {
+ return (unsigned)
+ DB_QuerySELECT (mysql_res,"can not get degrees of a type",
+ "SELECT DegCod"
+ " FROM deg_degrees"
+ " WHERE DegTypCod=%ld",
+ DegTypCod);
+ }
+
+/*****************************************************************************/
+/********* Get degrees belonging to the current center from database *********/
+/*****************************************************************************/
+
+unsigned Deg_DB_GetDegsOfCurrentCtr (MYSQL_RES **mysql_res)
+ {
+ return (unsigned)
+ DB_QuerySELECT (mysql_res,"can not get degrees of a center",
+ "SELECT DegCod," // row[0]
+ "ShortName" // row[1]
+ " FROM deg_degrees"
+ " WHERE CtrCod=%ld"
+ " ORDER BY ShortName",
+ Gbl.Hierarchy.Ctr.CtrCod);
+ }
+
+/*****************************************************************************/
+/******************** Get degrees with pending courses ***********************/
+/*****************************************************************************/
+
+unsigned Deg_DB_GetDegsWithPendingCrss (MYSQL_RES **mysql_res)
+ {
+ /***** Get degrees with pending courses *****/
+ switch (Gbl.Usrs.Me.Role.Logged)
+ {
+ case Rol_DEG_ADM:
+ return (unsigned)
+ DB_QuerySELECT (mysql_res,"can not get degrees with pending courses",
+ "SELECT crs_courses.DegCod," // row[0]
+ "COUNT(*)" // row[1]
+ " FROM usr_admins,"
+ "crs_courses,"
+ "deg_degrees"
+ " WHERE usr_admins.UsrCod=%ld"
+ " AND usr_admins.Scope='%s'"
+ " AND usr_admins.Cod=crs_courses.DegCod"
+ " AND (crs_courses.Status & %u)<>0"
+ " AND crs_courses.DegCod=deg_degrees.DegCod"
+ " GROUP BY crs_courses.DegCod"
+ " ORDER BY deg_degrees.ShortName",
+ Gbl.Usrs.Me.UsrDat.UsrCod,
+ Sco_GetDBStrFromScope (HieLvl_DEG),
+ (unsigned) Crs_STATUS_BIT_PENDING);
+ case Rol_SYS_ADM:
+ return (unsigned)
+ DB_QuerySELECT (mysql_res,"can not get degrees with pending courses",
+ "SELECT crs_courses.DegCod," // row[0]
+ "COUNT(*)" // row[1]
+ " FROM crs_courses,"
+ "deg_degrees"
+ " WHERE (crs_courses.Status & %u)<>0"
+ " AND crs_courses.DegCod=deg_degrees.DegCod"
+ " GROUP BY crs_courses.DegCod"
+ " ORDER BY deg_degrees.ShortName",
+ (unsigned) Crs_STATUS_BIT_PENDING);
+ default: // Forbidden for other users
+ Err_WrongRoleExit ();
+ return 0; // Not reached
+ }
+ }
+
+/*****************************************************************************/
+/************************* Update degree type name ***************************/
+/*****************************************************************************/
+
+void Deg_DB_UpdateDegTypName (long DegTypCod,const char NewNameDegTyp[DegTyp_MAX_BYTES_DEGREE_TYPE_NAME + 1])
+ {
+ DB_QueryUPDATE ("can not update the type of a degree",
+ "UPDATE deg_types"
+ " SET DegTypName='%s'"
+ " WHERE DegTypCod=%ld",
+ NewNameDegTyp,
+ DegTypCod);
+ }
+
+/*****************************************************************************/
+/**************** Update degree center in table of degrees *******************/
+/*****************************************************************************/
+
+void Deg_DB_UpdateDegCtr (long DegCod,long CtrCod)
+ {
+ DB_QueryUPDATE ("can not update the center of a degree",
+ "UPDATE deg_degrees"
+ " SET CtrCod=%ld"
+ " WHERE DegCod=%ld",
+ CtrCod,
+ DegCod);
+ }
+
+/*****************************************************************************/
+/*************************** Remove the degree type **************************/
+/*****************************************************************************/
+
+void Deg_DB_RemoveDegTyp (long DegTypCod)
+ {
+ DB_QueryDELETE ("can not remove a type of degree",
+ "DELETE FROM deg_types"
+ " WHERE DegTypCod=%ld",
+ DegTypCod);
+ }
diff --git a/swad_degree_database.h b/swad_degree_database.h
new file mode 100644
index 00000000..33840ed1
--- /dev/null
+++ b/swad_degree_database.h
@@ -0,0 +1,71 @@
+// swad_degree_database.h: degrees operations with database
+
+#ifndef _SWAD_DEG_DB
+#define _SWAD_DEG_DB
+/*
+ SWAD (Shared Workspace At a Distance in Spanish),
+ is a web platform developed at the University of Granada (Spain),
+ and used to support university teaching.
+
+ This file is part of SWAD core.
+ Copyright (C) 1999-2021 Antonio Cañas Vargas
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see .
+*/
+/*****************************************************************************/
+/********************************* Headers ***********************************/
+/*****************************************************************************/
+
+#include // To access MySQL databases
+
+// #include "swad_action.h"
+// #include "swad_constant.h"
+#include "swad_degree_type.h"
+// #include "swad_hierarchy_level.h"
+// #include "swad_role_type.h"
+// #include "swad_string.h"
+
+/*****************************************************************************/
+/***************************** Public constants ******************************/
+/*****************************************************************************/
+
+/*****************************************************************************/
+/******************************* Public types ********************************/
+/*****************************************************************************/
+
+/*****************************************************************************/
+/***************************** Public prototypes *****************************/
+/*****************************************************************************/
+
+void Deg_DB_CreateDegreeType (const char DegTypName[DegTyp_MAX_BYTES_DEGREE_TYPE_NAME + 1]);
+void Deg_DB_CreateDegree (struct Deg_Degree *Deg,unsigned Status);
+
+unsigned Deg_DB_GetDegreeTypes (MYSQL_RES **mysql_res,
+ HieLvl_Level_t Scope,DegTyp_Order_t Order);
+void Deg_DB_GetDegTypeNameByCod (struct DegreeType *DegTyp);
+unsigned Deg_DB_GetDataOfDegreeByCod (MYSQL_RES **mysql_res,long DegCod);
+long Deg_DB_GetCtrCodOfDegreeByCod (long DegCod);
+void Deg_DB_GetShortNameOfDegreeByCod (struct Deg_Degree *Deg);
+bool Deg_DB_CheckIfDegreeTypeNameExists (const char *DegTypName,long DegTypCod);
+unsigned Deg_DB_GetNumDegsOfType (long DegTypCod);
+unsigned Deg_DB_GetDegsOfType (MYSQL_RES **mysql_res,long DegTypCod);
+unsigned Deg_DB_GetDegsOfCurrentCtr (MYSQL_RES **mysql_res);
+unsigned Deg_DB_GetDegsWithPendingCrss (MYSQL_RES **mysql_res);
+
+void Deg_DB_UpdateDegTypName (long DegTypCod,const char NewNameDegTyp[DegTyp_MAX_BYTES_DEGREE_TYPE_NAME + 1]);
+void Deg_DB_UpdateDegCtr (long DegCod,long CtrCod);
+
+void Deg_DB_RemoveDegTyp (long DegTypCod);
+
+#endif
diff --git a/swad_degree_type.c b/swad_degree_type.c
index c145c1ff..4b626705 100644
--- a/swad_degree_type.c
+++ b/swad_degree_type.c
@@ -36,11 +36,13 @@
#include "swad_config.h"
#include "swad_database.h"
#include "swad_degree.h"
+#include "swad_degree_database.h"
#include "swad_degree_type.h"
#include "swad_error.h"
#include "swad_figure.h"
#include "swad_form.h"
#include "swad_global.h"
+#include "swad_hierarchy_level.h"
#include "swad_HTML.h"
#include "swad_parameter.h"
@@ -62,120 +64,117 @@ extern struct Globals Gbl;
/**************************** Private variables ******************************/
/*****************************************************************************/
-static struct DegreeType *DT_EditingDegTyp = NULL; // Static variable to keep the degree type being edited
+static struct DegreeType *DegTyp_EditingDegTyp = NULL; // Static variable to keep the degree type being edited
/*****************************************************************************/
/*************************** Private prototypes ******************************/
/*****************************************************************************/
-static void DT_SeeDegreeTypes (Act_Action_t NextAction,Hie_Lvl_Level_t Scope,
- DT_Order_t DefaultOrder);
-static DT_Order_t DT_GetParamDegTypOrder (DT_Order_t DefaultOrder);
+static void DegTyp_SeeDegreeTypes (Act_Action_t NextAction,HieLvl_Level_t Scope,
+ DegTyp_Order_t DefaultOrder);
+static DegTyp_Order_t DegTyp_GetParamDegTypOrder (DegTyp_Order_t DefaultOrder);
-static void DT_ListDegreeTypes (Act_Action_t NextAction,
- Hie_Lvl_Level_t Scope,
- DT_Order_t SelectedOrder);
+static void DegTyp_ListDegreeTypes (Act_Action_t NextAction,
+ HieLvl_Level_t Scope,
+ DegTyp_Order_t SelectedOrder);
-static void DT_EditDegreeTypesInternal (void);
-static void DT_PutIconsEditingDegreeTypes (__attribute__((unused)) void *Args);
+static void DegTyp_EditDegreeTypesInternal (void);
+static void DegTyp_PutIconsEditingDegreeTypes (__attribute__((unused)) void *Args);
-static void DT_ListDegreeTypesForSeeing (void);
-static void DT_PutIconsListingDegTypes (__attribute__((unused)) void *Args);
-static void DT_PutIconToEditDegTypes (__attribute__((unused)) void *Args);
-static void DT_ListDegreeTypesForEdition (void);
+static void DegTyp_ListDegreeTypesForSeeing (void);
+static void DegTyp_PutIconsListingDegTypes (__attribute__((unused)) void *Args);
+static void DegTyp_PutIconToEditDegTypes (__attribute__((unused)) void *Args);
+static void DegTyp_ListDegreeTypesForEdition (void);
-static void DT_PutFormToCreateDegreeType (void);
+static void DegTyp_PutFormToCreateDegreeType (void);
-static void DT_PutHeadDegreeTypesForSeeing (Act_Action_t NextAction,
- Hie_Lvl_Level_t Scope,
- DT_Order_t SelectedOrder);
-static void DT_PutHeadDegreeTypesForEdition (void);
-static void DT_CreateDegreeType (struct DegreeType *DegTyp);
+static void DegTyp_PutHeadDegreeTypesForSeeing (Act_Action_t NextAction,
+ HieLvl_Level_t Scope,
+ DegTyp_Order_t SelectedOrder);
+static void DegTyp_PutHeadDegreeTypesForEdition (void);
-static void DT_PutParamOtherDegTypCod (void *DegTypCod);
+static void DegTyp_PutParamOtherDegTypCod (void *DegTypCod);
-static unsigned DT_CountNumDegsOfType (long DegTypCod);
-static void DT_RemoveDegreeTypeCompletely (long DegTypCod);
-static bool DT_CheckIfDegreeTypeNameExists (const char *DegTypName,long DegTypCod);
+static void DegTyp_RemoveDegreeTypeCompletely (long DegTypCod);
-static void DT_EditingDegreeTypeConstructor (void);
-static void DT_EditingDegreeTypeDestructor (void);
+static void DegTyp_EditingDegreeTypeConstructor (void);
+static void DegTyp_EditingDegreeTypeDestructor (void);
/*****************************************************************************/
/************** Show selector of degree types for statistics *****************/
/*****************************************************************************/
-void DT_WriteSelectorDegreeTypes (long SelectedDegTypCod)
+void DegTyp_WriteSelectorDegreeTypes (long SelectedDegTypCod)
{
extern const char *Txt_Any_type_of_degree;
unsigned NumDegTyp;
/***** Form to select degree types *****/
/* Get list of degree types */
- DT_GetListDegreeTypes (Hie_Lvl_SYS,DT_ORDER_BY_DEGREE_TYPE);
+ DegTyp_GetListDegreeTypes (HieLvl_SYS,DegTyp_ORDER_BY_DEGREE_TYPE);
/* List degree types */
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
"id=\"OthDegTypCod\" name=\"OthDegTypCod\"");
- HTM_OPTION (HTM_Type_STRING,"-1",
- SelectedDegTypCod == -1L,false,
- "%s",Txt_Any_type_of_degree);
- for (NumDegTyp = 0;
- NumDegTyp < Gbl.DegTypes.Num;
- NumDegTyp++)
- HTM_OPTION (HTM_Type_LONG,&Gbl.DegTypes.Lst[NumDegTyp].DegTypCod,
- Gbl.DegTypes.Lst[NumDegTyp].DegTypCod == SelectedDegTypCod,false,
- "%s",Gbl.DegTypes.Lst[NumDegTyp].DegTypName);
+ HTM_OPTION (HTM_Type_STRING,"-1",
+ SelectedDegTypCod == -1L,false,
+ "%s",Txt_Any_type_of_degree);
+ for (NumDegTyp = 0;
+ NumDegTyp < Gbl.DegTypes.Num;
+ NumDegTyp++)
+ HTM_OPTION (HTM_Type_LONG,&Gbl.DegTypes.Lst[NumDegTyp].DegTypCod,
+ Gbl.DegTypes.Lst[NumDegTyp].DegTypCod == SelectedDegTypCod,false,
+ "%s",Gbl.DegTypes.Lst[NumDegTyp].DegTypName);
HTM_SELECT_End ();
/***** Free list of degree types *****/
- DT_FreeListDegreeTypes ();
+ DegTyp_FreeListDegreeTypes ();
}
/*****************************************************************************/
/***************************** Show degree types *****************************/
/*****************************************************************************/
-void DT_SeeDegreeTypesInDegTab (void)
+void DegTyp_SeeDegreeTypesInDegTab (void)
{
- DT_SeeDegreeTypes (ActSeeDegTyp,Hie_Lvl_SYS,
- DT_ORDER_BY_DEGREE_TYPE); // Default order if not specified
+ DegTyp_SeeDegreeTypes (ActSeeDegTyp,HieLvl_SYS,
+ DegTyp_ORDER_BY_DEGREE_TYPE); // Default order if not specified
}
-void DT_SeeDegreeTypesInStaTab (void)
+void DegTyp_SeeDegreeTypesInStaTab (void)
{
- DT_SeeDegreeTypes (ActSeeUseGbl,Gbl.Scope.Current,
- DT_ORDER_BY_NUM_DEGREES); // Default order if not specified
+ DegTyp_SeeDegreeTypes (ActSeeUseGbl,Gbl.Scope.Current,
+ DegTyp_ORDER_BY_NUM_DEGREES); // Default order if not specified
}
-static void DT_SeeDegreeTypes (Act_Action_t NextAction,Hie_Lvl_Level_t Scope,
- DT_Order_t DefaultOrder)
+static void DegTyp_SeeDegreeTypes (Act_Action_t NextAction,HieLvl_Level_t Scope,
+ DegTyp_Order_t DefaultOrder)
{
- DT_Order_t SelectedOrder;
+ DegTyp_Order_t SelectedOrder;
/***** Get parameter with the type of order in the list of degree types *****/
- SelectedOrder = DT_GetParamDegTypOrder (DefaultOrder);
+ SelectedOrder = DegTyp_GetParamDegTypOrder (DefaultOrder);
/***** Get list of degree types *****/
- DT_GetListDegreeTypes (Scope,SelectedOrder);
+ DegTyp_GetListDegreeTypes (Scope,SelectedOrder);
/***** List degree types *****/
- DT_ListDegreeTypes (NextAction,Scope,SelectedOrder);
+ DegTyp_ListDegreeTypes (NextAction,Scope,SelectedOrder);
/***** Free list of degree types *****/
- DT_FreeListDegreeTypes ();
+ DegTyp_FreeListDegreeTypes ();
}
/*****************************************************************************/
/******* Get parameter with the type or order in list of degree types ********/
/*****************************************************************************/
-static DT_Order_t DT_GetParamDegTypOrder (DT_Order_t DefaultOrder)
+static DegTyp_Order_t DegTyp_GetParamDegTypOrder (DegTyp_Order_t DefaultOrder)
{
- return (DT_Order_t) Par_GetParToUnsignedLong ("Order",
- 0,
- DT_NUM_ORDERS - 1,
- (unsigned long) DefaultOrder);
+ return (DegTyp_Order_t) Par_GetParToUnsignedLong ("Order",
+ 0,
+ DegTyp_NUM_ORDERS - 1,
+ (unsigned long) DefaultOrder);
}
/*****************************************************************************/
@@ -185,9 +184,9 @@ static DT_Order_t DT_GetParamDegTypOrder (DT_Order_t DefaultOrder)
// - center tab => NextAction = ActSeeDegTyp
// - statistic tab => NextAction = ActSeeUseGbl
-static void DT_ListDegreeTypes (Act_Action_t NextAction,
- Hie_Lvl_Level_t Scope,
- DT_Order_t SelectedOrder)
+static void DegTyp_ListDegreeTypes (Act_Action_t NextAction,
+ HieLvl_Level_t Scope,
+ DegTyp_Order_t SelectedOrder)
{
extern const char *Hlp_CENTER_DegreeTypes;
extern const char *Hlp_ANALYTICS_Figures_types_of_degree;
@@ -201,12 +200,12 @@ static void DT_ListDegreeTypes (Act_Action_t NextAction,
{
case ActSeeDegTyp:
Box_BoxBegin (NULL,Txt_Types_of_degree,
- DT_PutIconsListingDegTypes,NULL,
+ DegTyp_PutIconsListingDegTypes,NULL,
Hlp_CENTER_DegreeTypes,Box_NOT_CLOSABLE);
break;
case ActSeeUseGbl:
Box_BoxBegin (NULL,Txt_Types_of_degree,
- DT_PutIconToEditDegTypes,NULL,
+ DegTyp_PutIconToEditDegTypes,NULL,
Hlp_ANALYTICS_Figures_types_of_degree,Box_NOT_CLOSABLE);
break;
default: // Bad call
@@ -215,12 +214,14 @@ static void DT_ListDegreeTypes (Act_Action_t NextAction,
if (Gbl.DegTypes.Num)
{
- /***** Write heading *****/
+ /***** Begin table *****/
HTM_TABLE_BeginWideMarginPadding (2);
- DT_PutHeadDegreeTypesForSeeing (NextAction,Scope,SelectedOrder);
- /***** List current degree types for seeing *****/
- DT_ListDegreeTypesForSeeing ();
+ /***** Write heading *****/
+ DegTyp_PutHeadDegreeTypesForSeeing (NextAction,Scope,SelectedOrder);
+
+ /***** List current degree types for seeing *****/
+ DegTyp_ListDegreeTypesForSeeing ();
/***** End table *****/
HTM_TABLE_End ();
@@ -229,11 +230,11 @@ static void DT_ListDegreeTypes (Act_Action_t NextAction,
Ale_ShowAlert (Ale_INFO,Txt_No_types_of_degree);
/***** Button to create degree type *****/
- if (DT_CheckIfICanCreateDegreeTypes ())
+ if (DegTyp_CheckIfICanCreateDegreeTypes ())
{
Frm_BeginForm (ActEdiDegTyp);
- Btn_PutConfirmButton (Gbl.DegTypes.Num ? Txt_Create_another_type_of_degree :
- Txt_Create_type_of_degree);
+ Btn_PutConfirmButton (Gbl.DegTypes.Num ? Txt_Create_another_type_of_degree :
+ Txt_Create_type_of_degree);
Frm_EndForm ();
}
@@ -245,53 +246,53 @@ static void DT_ListDegreeTypes (Act_Action_t NextAction,
/************************ Put forms to edit degree types *********************/
/*****************************************************************************/
-void DT_EditDegreeTypes (void)
+void DegTyp_EditDegreeTypes (void)
{
/***** Degree type constructor *****/
- DT_EditingDegreeTypeConstructor ();
+ DegTyp_EditingDegreeTypeConstructor ();
/***** Edit degree types *****/
- DT_EditDegreeTypesInternal ();
+ DegTyp_EditDegreeTypesInternal ();
/***** Degree type destructor *****/
- DT_EditingDegreeTypeDestructor ();
+ DegTyp_EditingDegreeTypeDestructor ();
}
-static void DT_EditDegreeTypesInternal (void)
+static void DegTyp_EditDegreeTypesInternal (void)
{
extern const char *Hlp_CENTER_DegreeTypes_edit;
extern const char *Txt_Types_of_degree;
/***** Get list of degree types *****/
- DT_GetListDegreeTypes (Hie_Lvl_SYS,DT_ORDER_BY_DEGREE_TYPE);
+ DegTyp_GetListDegreeTypes (HieLvl_SYS,DegTyp_ORDER_BY_DEGREE_TYPE);
/***** Begin box *****/
Box_BoxBegin (NULL,Txt_Types_of_degree,
- DT_PutIconsEditingDegreeTypes,NULL,
+ DegTyp_PutIconsEditingDegreeTypes,NULL,
Hlp_CENTER_DegreeTypes_edit,Box_NOT_CLOSABLE);
- /***** Put a form to create a new degree type *****/
- DT_PutFormToCreateDegreeType ();
+ /***** Put a form to create a new degree type *****/
+ DegTyp_PutFormToCreateDegreeType ();
- /***** Forms to edit current degree types *****/
- if (Gbl.DegTypes.Num)
- DT_ListDegreeTypesForEdition ();
+ /***** Forms to edit current degree types *****/
+ if (Gbl.DegTypes.Num)
+ DegTyp_ListDegreeTypesForEdition ();
/***** End box *****/
Box_BoxEnd ();
/***** Free list of degree types *****/
- DT_FreeListDegreeTypes ();
+ DegTyp_FreeListDegreeTypes ();
}
/*****************************************************************************/
/************ Put contextual icons when editing degree types *****************/
/*****************************************************************************/
-static void DT_PutIconsEditingDegreeTypes (__attribute__((unused)) void *Args)
+static void DegTyp_PutIconsEditingDegreeTypes (__attribute__((unused)) void *Args)
{
/***** Put icon to view degree types *****/
- DT_PutIconToViewDegreeTypes ();
+ DegTyp_PutIconToViewDegreeTypes ();
/***** Put icon to view degrees *****/
Deg_PutIconToViewDegrees ();
@@ -304,7 +305,7 @@ static void DT_PutIconsEditingDegreeTypes (__attribute__((unused)) void *Args)
/******************* Put link (form) to view degree types ********************/
/*****************************************************************************/
-void DT_PutIconToViewDegreeTypes (void)
+void DegTyp_PutIconToViewDegreeTypes (void)
{
extern const char *Txt_Types_of_degree;
@@ -318,7 +319,7 @@ void DT_PutIconToViewDegreeTypes (void)
/******************* List current degree types for seeing ********************/
/*****************************************************************************/
-static void DT_ListDegreeTypesForSeeing (void)
+static void DegTyp_ListDegreeTypesForSeeing (void)
{
unsigned NumDegTyp;
const char *BgColor;
@@ -326,32 +327,32 @@ static void DT_ListDegreeTypesForSeeing (void)
/***** List degree types with forms for edition *****/
for (NumDegTyp = 0;
NumDegTyp < Gbl.DegTypes.Num;
- NumDegTyp++)
+ NumDegTyp++, Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd)
{
BgColor = (Gbl.DegTypes.Lst[NumDegTyp].DegTypCod ==
Gbl.Hierarchy.Deg.DegTypCod) ? "LIGHT_BLUE" :
Gbl.ColorRows[Gbl.RowEvenOdd];
+ /* Begin table row */
HTM_TR_Begin (NULL);
- /* Number of degree type in this list */
- HTM_TD_Begin ("class=\"DAT_N RM %s\"",BgColor);
- HTM_Unsigned (NumDegTyp + 1);
- HTM_TD_End ();
+ /* Number of degree type in this list */
+ HTM_TD_Begin ("class=\"DAT_N RM %s\"",BgColor);
+ HTM_Unsigned (NumDegTyp + 1);
+ HTM_TD_End ();
- /* Name of degree type */
- HTM_TD_Begin ("class=\"DAT_N LM %s\"",BgColor);
- HTM_Txt (Gbl.DegTypes.Lst[NumDegTyp].DegTypName);
- HTM_TD_End ();
+ /* Name of degree type */
+ HTM_TD_Begin ("class=\"DAT_N LM %s\"",BgColor);
+ HTM_Txt (Gbl.DegTypes.Lst[NumDegTyp].DegTypName);
+ HTM_TD_End ();
- /* Number of degrees of this type */
- HTM_TD_Begin ("class=\"DAT_N RM %s\"",BgColor);
- HTM_Unsigned (Gbl.DegTypes.Lst[NumDegTyp].NumDegs);
- HTM_TD_End ();
+ /* Number of degrees of this type */
+ HTM_TD_Begin ("class=\"DAT_N RM %s\"",BgColor);
+ HTM_Unsigned (Gbl.DegTypes.Lst[NumDegTyp].NumDegs);
+ HTM_TD_End ();
+ /* End table row */
HTM_TR_End ();
-
- Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
}
}
@@ -359,10 +360,10 @@ static void DT_ListDegreeTypesForSeeing (void)
/************** Put contextual icons in list of degree types *****************/
/*****************************************************************************/
-static void DT_PutIconsListingDegTypes (__attribute__((unused)) void *Args)
+static void DegTyp_PutIconsListingDegTypes (__attribute__((unused)) void *Args)
{
/***** Put icon to edit degree types *****/
- DT_PutIconToEditDegTypes (NULL);
+ DegTyp_PutIconToEditDegTypes (NULL);
/***** Put icon to view degrees *****/
Deg_PutIconToViewDegrees ();
@@ -375,10 +376,10 @@ static void DT_PutIconsListingDegTypes (__attribute__((unused)) void *Args)
/******************* Put link (form) to edit degree types ********************/
/*****************************************************************************/
-static void DT_PutIconToEditDegTypes (__attribute__((unused)) void *Args)
+static void DegTyp_PutIconToEditDegTypes (__attribute__((unused)) void *Args)
{
- if (Gbl.Hierarchy.Level == Hie_Lvl_CTR && // Only editable if center tab is visible
- DT_CheckIfICanCreateDegreeTypes ())
+ if (Gbl.Hierarchy.Level == HieLvl_CTR && // Only editable if center tab is visible
+ DegTyp_CheckIfICanCreateDegreeTypes ())
Ico_PutContextualIconToEdit (ActEdiDegTyp,NULL,
NULL,NULL);
}
@@ -387,53 +388,57 @@ static void DT_PutIconToEditDegTypes (__attribute__((unused)) void *Args)
/******************* List current degree types for edition *******************/
/*****************************************************************************/
-static void DT_ListDegreeTypesForEdition (void)
+static void DegTyp_ListDegreeTypesForEdition (void)
{
unsigned NumDegTyp;
- /***** Write heading *****/
+ /***** Begin table *****/
HTM_TABLE_BeginWidePadding (2);
- DT_PutHeadDegreeTypesForEdition ();
- /***** List degree types with forms for edition *****/
- for (NumDegTyp = 0;
- NumDegTyp < Gbl.DegTypes.Num;
- NumDegTyp++)
- {
- HTM_TR_Begin (NULL);
+ /***** Write heading *****/
+ DegTyp_PutHeadDegreeTypesForEdition ();
- /* Put icon to remove degree type */
- HTM_TD_Begin ("class=\"BM\"");
- if (Gbl.DegTypes.Lst[NumDegTyp].NumDegs) // Degree type has degrees => deletion forbidden
- Ico_PutIconRemovalNotAllowed ();
- else
- Ico_PutContextualIconToRemove (ActRemDegTyp,NULL,
- DT_PutParamOtherDegTypCod,&Gbl.DegTypes.Lst[NumDegTyp].DegTypCod);
- HTM_TD_End ();
+ /***** List degree types with forms for edition *****/
+ for (NumDegTyp = 0;
+ NumDegTyp < Gbl.DegTypes.Num;
+ NumDegTyp++)
+ {
+ /* Begin table row */
+ HTM_TR_Begin (NULL);
- /* Degree type code */
- HTM_TD_Begin ("class=\"DAT CODE\"");
- HTM_Long (Gbl.DegTypes.Lst[NumDegTyp].DegTypCod);
- HTM_TD_End ();
+ /* Put icon to remove degree type */
+ HTM_TD_Begin ("class=\"BM\"");
+ if (Gbl.DegTypes.Lst[NumDegTyp].NumDegs) // Degree type has degrees => deletion forbidden
+ Ico_PutIconRemovalNotAllowed ();
+ else
+ Ico_PutContextualIconToRemove (ActRemDegTyp,NULL,
+ DegTyp_PutParamOtherDegTypCod,&Gbl.DegTypes.Lst[NumDegTyp].DegTypCod);
+ HTM_TD_End ();
- /* Name of degree type */
- HTM_TD_Begin ("class=\"LM\"");
- Frm_BeginForm (ActRenDegTyp);
- DT_PutParamOtherDegTypCod (&Gbl.DegTypes.Lst[NumDegTyp].DegTypCod);
- HTM_INPUT_TEXT ("DegTypName",Deg_MAX_CHARS_DEGREE_TYPE_NAME,
- Gbl.DegTypes.Lst[NumDegTyp].DegTypName,
- HTM_SUBMIT_ON_CHANGE,
- "size=\"25\" required=\"required\"");
- Frm_EndForm ();
- HTM_TD_End ();
+ /* Degree type code */
+ HTM_TD_Begin ("class=\"DAT CODE\"");
+ HTM_Long (Gbl.DegTypes.Lst[NumDegTyp].DegTypCod);
+ HTM_TD_End ();
- /* Number of degrees of this type */
- HTM_TD_Begin ("class=\"DAT RM\"");
- HTM_Unsigned (Gbl.DegTypes.Lst[NumDegTyp].NumDegs);
- HTM_TD_End ();
+ /* Name of degree type */
+ HTM_TD_Begin ("class=\"LM\"");
+ Frm_BeginForm (ActRenDegTyp);
+ DegTyp_PutParamOtherDegTypCod (&Gbl.DegTypes.Lst[NumDegTyp].DegTypCod);
+ HTM_INPUT_TEXT ("DegTypName",DegTyp_MAX_CHARS_DEGREE_TYPE_NAME,
+ Gbl.DegTypes.Lst[NumDegTyp].DegTypName,
+ HTM_SUBMIT_ON_CHANGE,
+ "size=\"25\" required=\"required\"");
+ Frm_EndForm ();
+ HTM_TD_End ();
- HTM_TR_End ();
- }
+ /* Number of degrees of this type */
+ HTM_TD_Begin ("class=\"DAT RM\"");
+ HTM_Unsigned (Gbl.DegTypes.Lst[NumDegTyp].NumDegs);
+ HTM_TD_End ();
+
+ /* End table row */
+ HTM_TR_End ();
+ }
/***** End table *****/
HTM_TABLE_End ();
@@ -443,7 +448,7 @@ static void DT_ListDegreeTypesForEdition (void)
/******************** Check if I can create degree types *********************/
/*****************************************************************************/
-bool DT_CheckIfICanCreateDegreeTypes (void)
+bool DegTyp_CheckIfICanCreateDegreeTypes (void)
{
return (Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM);
}
@@ -452,7 +457,7 @@ bool DT_CheckIfICanCreateDegreeTypes (void)
/******************** Put a form to create a new degree type *****************/
/*****************************************************************************/
-static void DT_PutFormToCreateDegreeType (void)
+static void DegTyp_PutFormToCreateDegreeType (void)
{
extern const char *Txt_New_type_of_degree;
extern const char *Txt_Create_type_of_degree;
@@ -460,40 +465,42 @@ static void DT_PutFormToCreateDegreeType (void)
/***** Begin form *****/
Frm_BeginForm (ActNewDegTyp);
- /***** Begin box and table *****/
- Box_BoxTableBegin (NULL,Txt_New_type_of_degree,
- NULL,NULL,
- NULL,Box_NOT_CLOSABLE,2);
+ /***** Begin box and table *****/
+ Box_BoxTableBegin (NULL,Txt_New_type_of_degree,
+ NULL,NULL,
+ NULL,Box_NOT_CLOSABLE,2);
- /***** Write heading *****/
- DT_PutHeadDegreeTypesForEdition ();
+ /***** Write heading *****/
+ DegTyp_PutHeadDegreeTypesForEdition ();
- HTM_TR_Begin (NULL);
+ /***** Begin table row *****/
+ HTM_TR_Begin (NULL);
- /***** Column to remove degree type, disabled here *****/
- HTM_TD_Begin ("class=\"BM\"");
- HTM_TD_End ();
+ /***** Column to remove degree type, disabled here *****/
+ HTM_TD_Begin ("class=\"BM\"");
+ HTM_TD_End ();
- /***** Degree type code *****/
- HTM_TD_Begin ("class=\"CODE\"");
- HTM_TD_End ();
+ /***** Degree type code *****/
+ HTM_TD_Begin ("class=\"CODE\"");
+ HTM_TD_End ();
- /***** Degree type name *****/
- HTM_TD_Begin ("class=\"LM\"");
- HTM_INPUT_TEXT ("DegTypName",Deg_MAX_CHARS_DEGREE_TYPE_NAME,DT_EditingDegTyp->DegTypName,
- HTM_DONT_SUBMIT_ON_CHANGE,
- "size=\"25\" required=\"required\"");
- HTM_TD_End ();
+ /***** Degree type name *****/
+ HTM_TD_Begin ("class=\"LM\"");
+ HTM_INPUT_TEXT ("DegTypName",DegTyp_MAX_CHARS_DEGREE_TYPE_NAME,DegTyp_EditingDegTyp->DegTypName,
+ HTM_DONT_SUBMIT_ON_CHANGE,
+ "size=\"25\" required=\"required\"");
+ HTM_TD_End ();
- /***** Number of degrees of this degree type ****/
- HTM_TD_Begin ("class=\"DAT RM\"");
- HTM_Unsigned (0);
- HTM_TD_End ();
+ /***** Number of degrees of this degree type ****/
+ HTM_TD_Begin ("class=\"DAT RM\"");
+ HTM_Unsigned (0);
+ HTM_TD_End ();
- HTM_TR_End ();
+ /***** End table row *****/
+ HTM_TR_End ();
- /***** End table, send button and end box *****/
- Box_BoxTableWithButtonEnd (Btn_CREATE_BUTTON,Txt_Create_type_of_degree);
+ /***** End table, send button and end box *****/
+ Box_BoxTableWithButtonEnd (Btn_CREATE_BUTTON,Txt_Create_type_of_degree);
/***** End form *****/
Frm_EndForm ();
@@ -503,55 +510,60 @@ static void DT_PutFormToCreateDegreeType (void)
/***************** Write header with fields of a degree type *****************/
/*****************************************************************************/
-static void DT_PutHeadDegreeTypesForSeeing (Act_Action_t NextAction,
- Hie_Lvl_Level_t Scope,
- DT_Order_t SelectedOrder)
+static void DegTyp_PutHeadDegreeTypesForSeeing (Act_Action_t NextAction,
+ HieLvl_Level_t Scope,
+ DegTyp_Order_t SelectedOrder)
{
- extern const char *Txt_DEGREE_TYPES_HELP_ORDER[DT_NUM_ORDERS];
- extern const char *Txt_DEGREE_TYPES_ORDER[DT_NUM_ORDERS];
- DT_Order_t Order;
+ extern const char *Txt_DEGREE_TYPES_HELP_ORDER[DegTyp_NUM_ORDERS];
+ extern const char *Txt_DEGREE_TYPES_ORDER[DegTyp_NUM_ORDERS];
+ DegTyp_Order_t Order;
struct Fig_Figures Figures;
HTM_TR_Begin (NULL);
- HTM_TH_Empty (1);
- for (Order = DT_ORDER_BY_DEGREE_TYPE;
- Order <= DT_ORDER_BY_NUM_DEGREES;
- Order++)
- {
- HTM_TH_Begin (1,1,Order == DT_ORDER_BY_DEGREE_TYPE ? "LM" :
- "RM");
- /* Begin form to change order */
- Frm_BeginForm (NextAction);
- if (NextAction == ActSeeUseGbl)
+ HTM_TH_Empty (1);
+
+ for (Order = DegTyp_ORDER_BY_DEGREE_TYPE;
+ Order <= DegTyp_ORDER_BY_NUM_DEGREES;
+ Order++)
{
- Figures.Scope = Scope;
- Figures.FigureType = Fig_DEGREE_TYPES;
- Fig_PutHiddenParamFigures (&Figures);
+ HTM_TH_Begin (1,1,Order == DegTyp_ORDER_BY_DEGREE_TYPE ? "LM" :
+ "RM");
+
+ /* Begin form to change order */
+ Frm_BeginForm (NextAction);
+ if (NextAction == ActSeeUseGbl)
+ {
+ Figures.Scope = Scope;
+ Figures.FigureType = Fig_DEGREE_TYPES;
+ Fig_PutHiddenParamFigures (&Figures);
+ }
+ Par_PutHiddenParamUnsigned (NULL,"Order",(unsigned) Order);
+
+ /* Link with the head of this column */
+ HTM_BUTTON_SUBMIT_Begin (Txt_DEGREE_TYPES_HELP_ORDER[Order],
+ "BT_LINK TIT_TBL",NULL);
+ if (Order == SelectedOrder)
+ HTM_U_Begin ();
+ HTM_Txt (Txt_DEGREE_TYPES_ORDER[Order]);
+ if (Order == SelectedOrder)
+ HTM_U_End ();
+ HTM_BUTTON_End ();
+
+ /* End form */
+ Frm_EndForm ();
+
+ HTM_TH_End ();
}
- Par_PutHiddenParamUnsigned (NULL,"Order",(unsigned) Order);
- /* Link with the head of this column */
- HTM_BUTTON_SUBMIT_Begin (Txt_DEGREE_TYPES_HELP_ORDER[Order],"BT_LINK TIT_TBL",NULL);
- if (Order == SelectedOrder)
- HTM_U_Begin ();
- HTM_Txt (Txt_DEGREE_TYPES_ORDER[Order]);
- if (Order == SelectedOrder)
- HTM_U_End ();
- HTM_BUTTON_End ();
-
- /* End form */
- Frm_EndForm ();
-
- HTM_TH_End ();
- }
+ HTM_TR_End ();
}
/*****************************************************************************/
/***************** Write header with fields of a degree type *****************/
/*****************************************************************************/
-static void DT_PutHeadDegreeTypesForEdition (void)
+static void DegTyp_PutHeadDegreeTypesForEdition (void)
{
extern const char *Txt_Code;
extern const char *Txt_Type_of_degree;
@@ -559,148 +571,26 @@ static void DT_PutHeadDegreeTypesForEdition (void)
HTM_TR_Begin (NULL);
- HTM_TH (1,1,"BM",NULL);
- HTM_TH (1,1,"CM",Txt_Code);
- HTM_TH (1,1,"CM",Txt_Type_of_degree);
- HTM_TH (1,1,"RM",Txt_Degrees);
+ HTM_TH (1,1,"BM",NULL);
+ HTM_TH (1,1,"CM",Txt_Code);
+ HTM_TH (1,1,"CM",Txt_Type_of_degree);
+ HTM_TH (1,1,"RM",Txt_Degrees);
HTM_TR_End ();
}
-/*****************************************************************************/
-/************************** Create a new degree type *************************/
-/*****************************************************************************/
-
-static void DT_CreateDegreeType (struct DegreeType *DegTyp)
- {
- /***** Create a new degree type *****/
- DB_QueryINSERT ("can not create a new type of degree",
- "INSERT INTO deg_types"
- " SET DegTypName='%s'",
- DegTyp->DegTypName);
- }
-
/*****************************************************************************/
/**************** Create a list with all the degree types ********************/
/*****************************************************************************/
-void DT_GetListDegreeTypes (Hie_Lvl_Level_t Scope,DT_Order_t Order)
+void DegTyp_GetListDegreeTypes (HieLvl_Level_t Scope,DegTyp_Order_t Order)
{
- static const char *OrderBySubQuery[DT_NUM_ORDERS] =
- {
- [DT_ORDER_BY_DEGREE_TYPE] = "DegTypName",
- [DT_ORDER_BY_NUM_DEGREES] = "NumDegs DESC,DegTypName",
- };
MYSQL_RES *mysql_res;
MYSQL_ROW row;
unsigned NumTyp;
/***** Get types of degree from database *****/
- switch (Scope)
- {
- case Hie_Lvl_SYS:
- /* Get
- 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," // row[0]
- "deg_types.DegTypName," // row[1]
- "COUNT(deg_degrees.DegCod) AS NumDegs" // row[2]
- " FROM deg_degrees,"
- "deg_types"
- " WHERE deg_degrees.DegTypCod=deg_types.DegTypCod"
- " GROUP BY deg_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 deg_degrees))"
- " ORDER BY %s",
- OrderBySubQuery[Order]);
- break;
- case Hie_Lvl_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," // row[0]
- "deg_types.DegTypName," // row[1]
- "COUNT(deg_degrees.DegCod) AS NumDegs" // row[2]
- " FROM ins_instits,"
- "ctr_centers,"
- "deg_degrees,"
- "deg_types"
- " WHERE ins_instits.CtyCod=%ld"
- " AND ins_instits.InsCod=ctr_centers.InsCod"
- " AND ctr_centers.CtrCod=deg_degrees.CtrCod"
- " AND deg_degrees.DegTypCod=deg_types.DegTypCod"
- " GROUP BY deg_degrees.DegTypCod"
- " ORDER BY %s",
- Gbl.Hierarchy.Cty.CtyCod,
- OrderBySubQuery[Order]);
- break;
- case Hie_Lvl_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," // row[0]
- "deg_types.DegTypName," // row[1]
- "COUNT(deg_degrees.DegCod) AS NumDegs" // row[2]
- " FROM ctr_centers,"
- "deg_degrees,"
- "deg_types"
- " WHERE ctr_centers.InsCod=%ld"
- " AND ctr_centers.CtrCod=deg_degrees.CtrCod"
- " AND deg_degrees.DegTypCod=deg_types.DegTypCod"
- " GROUP BY deg_degrees.DegTypCod"
- " ORDER BY %s",
- Gbl.Hierarchy.Ins.InsCod,
- OrderBySubQuery[Order]);
- break;
- case Hie_Lvl_CTR:
- /* Get only degree types with degrees in the current center */
- 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(deg_degrees.DegCod) AS NumDegs" // row[2]
- " FROM deg_degrees,"
- "deg_types"
- " WHERE deg_degrees.CtrCod=%ld"
- " AND deg_degrees.DegTypCod=deg_types.DegTypCod"
- " GROUP BY deg_degrees.DegTypCod"
- " ORDER BY %s",
- Gbl.Hierarchy.Ctr.CtrCod,
- OrderBySubQuery[Order]);
- break;
- case Hie_Lvl_DEG:
- case Hie_Lvl_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," // row[0]
- "deg_types.DegTypName," // row[1]
- "COUNT(deg_degrees.DegCod) AS NumDegs" // row[2]
- " FROM deg_degrees,"
- "deg_types"
- " WHERE deg_degrees.DegCod=%ld"
- " AND deg_degrees.DegTypCod=deg_types.DegTypCod"
- " GROUP BY deg_degrees.DegTypCod"
- " ORDER BY %s",
- Gbl.Hierarchy.Deg.DegCod,
- OrderBySubQuery[Order]);
- break;
- default:
- Err_WrongScopeExit ();
- break;
- }
+ Gbl.DegTypes.Num = Deg_DB_GetDegreeTypes (&mysql_res,Scope,Order);
/***** Get degree types *****/
if (Gbl.DegTypes.Num)
@@ -740,7 +630,7 @@ void DT_GetListDegreeTypes (Hie_Lvl_Level_t Scope,DT_Order_t Order)
/********* Free list of degree types and list of degrees of each type ********/
/*****************************************************************************/
-void DT_FreeListDegreeTypes (void)
+void DegTyp_FreeListDegreeTypes (void)
{
/***** Free memory used by the list of degree types *****/
if (Gbl.DegTypes.Lst)
@@ -755,32 +645,32 @@ void DT_FreeListDegreeTypes (void)
/***************** Receive form to create a new degree type ******************/
/*****************************************************************************/
-void DT_ReceiveFormNewDegreeType (void)
+void DegTyp_ReceiveFormNewDegreeType (void)
{
extern const char *Txt_The_type_of_degree_X_already_exists;
extern const char *Txt_Created_new_type_of_degree_X;
extern const char *Txt_You_must_specify_the_name_of_the_new_type_of_degree;
/***** Degree type constructor *****/
- DT_EditingDegreeTypeConstructor ();
+ DegTyp_EditingDegreeTypeConstructor ();
/***** Get parameters from form *****/
/* Get the name of degree type */
- Par_GetParToText ("DegTypName",DT_EditingDegTyp->DegTypName,Deg_MAX_BYTES_DEGREE_TYPE_NAME);
+ Par_GetParToText ("DegTypName",DegTyp_EditingDegTyp->DegTypName,DegTyp_MAX_BYTES_DEGREE_TYPE_NAME);
- if (DT_EditingDegTyp->DegTypName[0]) // If there's a degree type name
+ if (DegTyp_EditingDegTyp->DegTypName[0]) // If there's a degree type name
{
/***** If name of degree type was in database... *****/
- if (DT_CheckIfDegreeTypeNameExists (DT_EditingDegTyp->DegTypName,-1L))
+ if (Deg_DB_CheckIfDegreeTypeNameExists (DegTyp_EditingDegTyp->DegTypName,-1L))
Ale_CreateAlert (Ale_WARNING,NULL,
Txt_The_type_of_degree_X_already_exists,
- DT_EditingDegTyp->DegTypName);
+ DegTyp_EditingDegTyp->DegTypName);
else // Add new degree type to database
{
- DT_CreateDegreeType (DT_EditingDegTyp);
+ Deg_DB_CreateDegreeType (DegTyp_EditingDegTyp->DegTypName);
Ale_CreateAlert (Ale_SUCCESS,NULL,
Txt_Created_new_type_of_degree_X,
- DT_EditingDegTyp->DegTypName);
+ DegTyp_EditingDegTyp->DegTypName);
}
}
else // If there is not a degree type name
@@ -792,34 +682,34 @@ void DT_ReceiveFormNewDegreeType (void)
/**************************** Remove a degree type ***************************/
/*****************************************************************************/
-void DT_RemoveDegreeType (void)
+void DegTyp_RemoveDegreeType (void)
{
extern const char *Txt_To_remove_a_type_of_degree_you_must_first_remove_all_degrees_of_that_type;
extern const char *Txt_Type_of_degree_X_removed;
/***** Degree type constructor *****/
- DT_EditingDegreeTypeConstructor ();
+ DegTyp_EditingDegreeTypeConstructor ();
/***** Get the code of the degree type *****/
- DT_EditingDegTyp->DegTypCod = DT_GetAndCheckParamOtherDegTypCod (1);
+ DegTyp_EditingDegTyp->DegTypCod = DegTyp_GetAndCheckParamOtherDegTypCod (1);
/***** Get data of the degree type from database *****/
- if (!DT_GetDataOfDegreeTypeByCod (DT_EditingDegTyp))
+ if (!DegTyp_GetDataOfDegreeTypeByCod (DegTyp_EditingDegTyp))
Err_WrongDegTypExit ();
/***** Check if this degree type has degrees *****/
- if (DT_EditingDegTyp->NumDegs) // Degree type has degrees => don't remove
+ if (DegTyp_EditingDegTyp->NumDegs) // Degree type has degrees => don't remove
Ale_CreateAlert (Ale_WARNING,NULL,
Txt_To_remove_a_type_of_degree_you_must_first_remove_all_degrees_of_that_type);
else // Degree type has no degrees => remove it
{
/***** Remove degree type *****/
- DT_RemoveDegreeTypeCompletely (DT_EditingDegTyp->DegTypCod);
+ DegTyp_RemoveDegreeTypeCompletely (DegTyp_EditingDegTyp->DegTypCod);
/***** Write message to show the change made *****/
Ale_CreateAlert (Ale_SUCCESS,NULL,
Txt_Type_of_degree_X_removed,
- DT_EditingDegTyp->DegTypName);
+ DegTyp_EditingDegTyp->DegTypName);
}
}
@@ -827,7 +717,7 @@ void DT_RemoveDegreeType (void)
/***************** Write parameter with code of degree type ******************/
/*****************************************************************************/
-static void DT_PutParamOtherDegTypCod (void *DegTypCod)
+static void DegTyp_PutParamOtherDegTypCod (void *DegTypCod)
{
if (DegTypCod)
Par_PutHiddenParamLong (NULL,"OthDegTypCod",*((long *) DegTypCod));
@@ -837,7 +727,7 @@ static void DT_PutParamOtherDegTypCod (void *DegTypCod)
/******************* Get parameter with code of degree type ******************/
/*****************************************************************************/
-long DT_GetAndCheckParamOtherDegTypCod (long MinCodAllowed)
+long DegTyp_GetAndCheckParamOtherDegTypCod (long MinCodAllowed)
{
long DegTypCod;
@@ -848,26 +738,11 @@ long DT_GetAndCheckParamOtherDegTypCod (long MinCodAllowed)
return DegTypCod;
}
-/*****************************************************************************/
-/**************** Count number of degrees in a degree type ******************/
-/*****************************************************************************/
-
-static unsigned DT_CountNumDegsOfType (long DegTypCod)
- {
- /***** Get number of degrees of a type from database *****/
- return (unsigned)
- DB_QueryCOUNT ("can not get number of degrees of a type",
- "SELECT COUNT(*)"
- " FROM deg_degrees"
- " WHERE DegTypCod=%ld",
- DegTypCod);
- }
-
/*****************************************************************************/
/****************** Get data of a degree type from its code ******************/
/*****************************************************************************/
-bool DT_GetDataOfDegreeTypeByCod (struct DegreeType *DegTyp)
+bool DegTyp_GetDataOfDegreeTypeByCod (struct DegreeType *DegTyp)
{
/***** Trivial check: code of degree type should be >= 0 *****/
if (DegTyp->DegTypCod <= 0)
@@ -878,16 +753,11 @@ bool DT_GetDataOfDegreeTypeByCod (struct DegreeType *DegTyp)
}
/***** Get the name of a type of degree from database *****/
- DB_QuerySELECTString (DegTyp->DegTypName,sizeof (DegTyp->DegTypName) - 1,
- "can not get the name of a type of degree",
- "SELECT DegTypName"
- " FROM deg_types"
- " WHERE DegTypCod=%ld",
- DegTyp->DegTypCod);
+ Deg_DB_GetDegTypeNameByCod (DegTyp);
if (DegTyp->DegTypName[0])
{
/* Count number of degrees of this type */
- DegTyp->NumDegs = DT_CountNumDegsOfType (DegTyp->DegTypCod);
+ DegTyp->NumDegs = Deg_DB_GetNumDegsOfType (DegTyp->DegTypCod);
return true;
}
@@ -900,7 +770,7 @@ bool DT_GetDataOfDegreeTypeByCod (struct DegreeType *DegTyp)
/******************** Remove a degree type and its degrees *******************/
/*****************************************************************************/
-static void DT_RemoveDegreeTypeCompletely (long DegTypCod)
+static void DegTyp_RemoveDegreeTypeCompletely (long DegTypCod)
{
MYSQL_RES *mysql_res;
unsigned NumDegs;
@@ -908,14 +778,9 @@ static void DT_RemoveDegreeTypeCompletely (long DegTypCod)
long DegCod;
/***** Get degrees of a type from database *****/
- NumDegs = (unsigned)
- DB_QuerySELECT (&mysql_res,"can not get degrees of a type",
- "SELECT DegCod"
- " FROM deg_degrees"
- " WHERE DegTypCod=%ld",
- DegTypCod);
+ NumDegs = Deg_DB_GetDegsOfType (&mysql_res,DegTypCod);
- /* Get degrees of this type */
+ /***** Remove degrees ******/
for (NumDeg = 0;
NumDeg < NumDegs;
NumDeg++)
@@ -932,35 +797,32 @@ static void DT_RemoveDegreeTypeCompletely (long DegTypCod)
DB_FreeMySQLResult (&mysql_res);
/***** Remove the degree type *****/
- DB_QueryDELETE ("can not remove a type of degree",
- "DELETE FROM deg_types"
- " WHERE DegTypCod=%ld",
- DegTypCod);
+ Deg_DB_RemoveDegTyp (DegTypCod);
}
/*****************************************************************************/
/**************************** Rename a degree type ***************************/
/*****************************************************************************/
-void DT_RenameDegreeType (void)
+void DegTyp_RenameDegreeType (void)
{
extern const char *Txt_The_type_of_degree_X_already_exists;
extern const char *Txt_The_type_of_degree_X_has_been_renamed_as_Y;
extern const char *Txt_The_name_of_the_type_of_degree_X_has_not_changed;
- char NewNameDegTyp[Deg_MAX_BYTES_DEGREE_TYPE_NAME + 1];
+ char NewNameDegTyp[DegTyp_MAX_BYTES_DEGREE_TYPE_NAME + 1];
/***** Degree type constructor *****/
- DT_EditingDegreeTypeConstructor ();
+ DegTyp_EditingDegreeTypeConstructor ();
/***** Get parameters from form *****/
/* Get the code of the degree type */
- DT_EditingDegTyp->DegTypCod = DT_GetAndCheckParamOtherDegTypCod (1);
+ DegTyp_EditingDegTyp->DegTypCod = DegTyp_GetAndCheckParamOtherDegTypCod (1);
/* Get the new name for the degree type */
- Par_GetParToText ("DegTypName",NewNameDegTyp,Deg_MAX_BYTES_DEGREE_TYPE_NAME);
+ Par_GetParToText ("DegTypName",NewNameDegTyp,DegTyp_MAX_BYTES_DEGREE_TYPE_NAME);
/***** Get from the database the old name of the degree type *****/
- if (!DT_GetDataOfDegreeTypeByCod (DT_EditingDegTyp))
+ if (!DegTyp_GetDataOfDegreeTypeByCod (DegTyp_EditingDegTyp))
Err_WrongDegTypExit ();
/***** Check if new name is empty *****/
@@ -968,27 +830,22 @@ void DT_RenameDegreeType (void)
{
/***** Check if old and new names are the same
(this happens when return is pressed without changes) *****/
- if (strcmp (DT_EditingDegTyp->DegTypName,NewNameDegTyp)) // Different names
+ if (strcmp (DegTyp_EditingDegTyp->DegTypName,NewNameDegTyp)) // Different names
{
/***** If degree type was in database... *****/
- if (DT_CheckIfDegreeTypeNameExists (NewNameDegTyp,DT_EditingDegTyp->DegTypCod))
+ if (Deg_DB_CheckIfDegreeTypeNameExists (NewNameDegTyp,DegTyp_EditingDegTyp->DegTypCod))
Ale_CreateAlert (Ale_WARNING,NULL,
Txt_The_type_of_degree_X_already_exists,
NewNameDegTyp);
else
{
/* Update the table changing old name by new name */
- DB_QueryUPDATE ("can not update the type of a degree",
- "UPDATE deg_types"
- " SET DegTypName='%s'"
- " WHERE DegTypCod=%ld",
- NewNameDegTyp,
- DT_EditingDegTyp->DegTypCod);
+ Deg_DB_UpdateDegTypName (DegTyp_EditingDegTyp->DegTypCod,NewNameDegTyp);
/* Write message to show the change made */
Ale_CreateAlert (Ale_SUCCESS,NULL,
Txt_The_type_of_degree_X_has_been_renamed_as_Y,
- DT_EditingDegTyp->DegTypName,NewNameDegTyp);
+ DegTyp_EditingDegTyp->DegTypName,NewNameDegTyp);
}
@@ -1002,68 +859,52 @@ void DT_RenameDegreeType (void)
Ale_CreateAlertYouCanNotLeaveFieldEmpty ();
/***** Set degree type name *****/
- Str_Copy (DT_EditingDegTyp->DegTypName,NewNameDegTyp,
- sizeof (DT_EditingDegTyp->DegTypName) - 1);
- }
-
-/*****************************************************************************/
-/****************** Check if name of degree type exists **********************/
-/*****************************************************************************/
-
-static bool DT_CheckIfDegreeTypeNameExists (const char *DegTypName,long DegTypCod)
- {
- /***** Get number of degree types with a name from database *****/
- return (DB_QueryCOUNT ("can not check if the name of a type of degree"
- " already existed",
- "SELECT COUNT(*)"
- " FROM deg_types"
- " WHERE DegTypName='%s'"
- " AND DegTypCod<>%ld",
- DegTypName,DegTypCod) != 0);
+ Str_Copy (DegTyp_EditingDegTyp->DegTypName,NewNameDegTyp,
+ sizeof (DegTyp_EditingDegTyp->DegTypName) - 1);
}
/*****************************************************************************/
/********** Show message of success after changing a degree type *************/
/*****************************************************************************/
-void DT_ContEditAfterChgDegTyp (void)
+void DegTyp_ContEditAfterChgDegTyp (void)
{
/***** Show possible delayed alerts *****/
Ale_ShowAlerts (NULL);
/***** Show the form again *****/
- DT_EditDegreeTypesInternal ();
+ DegTyp_EditDegreeTypesInternal ();
/***** Degree type destructor *****/
- DT_EditingDegreeTypeDestructor ();
+ DegTyp_EditingDegreeTypeDestructor ();
}
/*****************************************************************************/
/********************* Degree type constructor/destructor ********************/
/*****************************************************************************/
-static void DT_EditingDegreeTypeConstructor (void)
+static void DegTyp_EditingDegreeTypeConstructor (void)
{
/***** Pointer must be NULL *****/
- if (DT_EditingDegTyp != NULL)
+ if (DegTyp_EditingDegTyp != NULL)
Err_WrongDegTypExit ();
/***** Allocate memory for degree type *****/
- if ((DT_EditingDegTyp = malloc (sizeof (*DT_EditingDegTyp))) == NULL)
+ if ((DegTyp_EditingDegTyp = malloc (sizeof (*DegTyp_EditingDegTyp))) == NULL)
Err_NotEnoughMemoryExit ();
/***** Reset degree type *****/
- DT_EditingDegTyp->DegTypCod = -1L;
- DT_EditingDegTyp->DegTypName[0] = '\0';
- DT_EditingDegTyp->NumDegs = 0;
+ DegTyp_EditingDegTyp->DegTypCod = -1L;
+ DegTyp_EditingDegTyp->DegTypName[0] = '\0';
+ DegTyp_EditingDegTyp->NumDegs = 0;
}
-static void DT_EditingDegreeTypeDestructor (void)
+static void DegTyp_EditingDegreeTypeDestructor (void)
{
/***** Free memory used for degree type *****/
- if (DT_EditingDegTyp != NULL)
+ if (DegTyp_EditingDegTyp != NULL)
{
- free (DT_EditingDegTyp);
- DT_EditingDegTyp = NULL;
+ free (DegTyp_EditingDegTyp);
+ DegTyp_EditingDegTyp = NULL;
}
}
diff --git a/swad_degree_type.h b/swad_degree_type.h
index 0a5c4bcd..9b1dd648 100644
--- a/swad_degree_type.h
+++ b/swad_degree_type.h
@@ -1,7 +1,7 @@
// swad_degree_type.h: degree types
-#ifndef _SWAD_DT
-#define _SWAD_DT
+#ifndef _SWAD_DEG_TYP
+#define _SWAD_DEG_TYP
/*
SWAD (Shared Workspace At a Distance in Spanish),
is a web platform developed at the University of Granada (Spain),
@@ -33,8 +33,8 @@
/***************************** Public constants ******************************/
/*****************************************************************************/
-#define Deg_MAX_CHARS_DEGREE_TYPE_NAME (32 - 1) // 31
-#define Deg_MAX_BYTES_DEGREE_TYPE_NAME ((Deg_MAX_CHARS_DEGREE_TYPE_NAME + 1) * Str_MAX_BYTES_PER_CHAR - 1) // 511
+#define DegTyp_MAX_CHARS_DEGREE_TYPE_NAME (32 - 1) // 31
+#define DegTyp_MAX_BYTES_DEGREE_TYPE_NAME ((DegTyp_MAX_CHARS_DEGREE_TYPE_NAME + 1) * Str_MAX_BYTES_PER_CHAR - 1) // 511
/*****************************************************************************/
/******************************* Public types ********************************/
@@ -42,44 +42,44 @@
struct DegreeType
{
- long DegTypCod; // Degree type code
- char DegTypName[Deg_MAX_BYTES_DEGREE_TYPE_NAME + 1]; // Degree type name
- unsigned NumDegs; // Number of degrees of this type
+ long DegTypCod; // Degree type code
+ char DegTypName[DegTyp_MAX_BYTES_DEGREE_TYPE_NAME + 1]; // Degree type name
+ unsigned NumDegs; // Number of degrees of this type
};
-#define DT_NUM_ORDERS 2
+#define DegTyp_NUM_ORDERS 2
typedef enum
{
- DT_ORDER_BY_DEGREE_TYPE = 0,
- DT_ORDER_BY_NUM_DEGREES = 1,
- } DT_Order_t;
+ DegTyp_ORDER_BY_DEGREE_TYPE = 0,
+ DegTyp_ORDER_BY_NUM_DEGREES = 1,
+ } DegTyp_Order_t;
/*****************************************************************************/
/***************************** Public prototypes *****************************/
/*****************************************************************************/
-void DT_WriteSelectorDegreeTypes (long SelectedDegTypCod);
+void DegTyp_WriteSelectorDegreeTypes (long SelectedDegTypCod);
-void DT_SeeDegreeTypesInDegTab (void);
-void DT_SeeDegreeTypesInStaTab (void);
-void DT_EditDegreeTypes (void);
+void DegTyp_SeeDegreeTypesInDegTab (void);
+void DegTyp_SeeDegreeTypesInStaTab (void);
+void DegTyp_EditDegreeTypes (void);
-void DT_PutIconToViewDegreeTypes (void);
+void DegTyp_PutIconToViewDegreeTypes (void);
-bool DT_CheckIfICanCreateDegreeTypes (void);
+bool DegTyp_CheckIfICanCreateDegreeTypes (void);
-void DT_GetListDegreeTypes (Hie_Lvl_Level_t Scope,DT_Order_t Order);
-void DT_FreeListDegreeTypes (void);
+void DegTyp_GetListDegreeTypes (HieLvl_Level_t Scope,DegTyp_Order_t Order);
+void DegTyp_FreeListDegreeTypes (void);
-void DT_ReceiveFormNewDegreeType (void);
+void DegTyp_ReceiveFormNewDegreeType (void);
-void DT_RemoveDegreeType (void);
+void DegTyp_RemoveDegreeType (void);
-long DT_GetAndCheckParamOtherDegTypCod (long MinCodAllowed);
+long DegTyp_GetAndCheckParamOtherDegTypCod (long MinCodAllowed);
-bool DT_GetDataOfDegreeTypeByCod (struct DegreeType *DegTyp);
-void DT_RenameDegreeType (void);
+bool DegTyp_GetDataOfDegreeTypeByCod (struct DegreeType *DegTyp);
+void DegTyp_RenameDegreeType (void);
-void DT_ContEditAfterChgDegTyp (void);
+void DegTyp_ContEditAfterChgDegTyp (void);
#endif
diff --git a/swad_enrolment.c b/swad_enrolment.c
index 11593ab9..77f2deeb 100644
--- a/swad_enrolment.c
+++ b/swad_enrolment.c
@@ -161,26 +161,26 @@ static void Enr_AskIfRegRemUsr (struct ListUsrCods *ListUsrCods,Rol_Role_t Role)
static void Enr_ShowFormToEditOtherUsr (void);
-static void Enr_AddAdm (Hie_Lvl_Level_t Scope,long Cod,const char *InsCtrDegName);
-static void Enr_RegisterAdmin (struct UsrData *UsrDat,Hie_Lvl_Level_t Scope,
+static void Enr_AddAdm (HieLvl_Level_t Scope,long Cod,const char *InsCtrDegName);
+static void Enr_RegisterAdmin (struct UsrData *UsrDat,HieLvl_Level_t Scope,
long Cod,const char *InsCtrDegName);
static bool Enr_CheckIfICanRemUsrFromCrs (void);
static void Enr_ReqRemAdmOfDeg (void);
-static void Enr_ReqRemOrRemAdm (Enr_ReqDelOrDelUsr_t ReqDelOrDelUsr,Hie_Lvl_Level_t Scope,
+static void Enr_ReqRemOrRemAdm (Enr_ReqDelOrDelUsr_t ReqDelOrDelUsr,HieLvl_Level_t Scope,
long Cod,const char *InsCtrDegName);
-static void Enr_ReqAddAdm (Hie_Lvl_Level_t Scope,long Cod,const char *InsCtrDegName);
+static void Enr_ReqAddAdm (HieLvl_Level_t Scope,long Cod,const char *InsCtrDegName);
static void Enr_AskIfRemoveUsrFromCrs (struct UsrData *UsrDat);
static void Enr_EffectivelyRemUsrFromCrs (struct UsrData *UsrDat,
struct Crs_Course *Crs,
Enr_RemoveUsrProduction_t RemoveUsrWorks,
Cns_QuietOrVerbose_t QuietOrVerbose);
-static void Enr_AskIfRemAdm (bool ItsMe,Hie_Lvl_Level_t Scope,
+static void Enr_AskIfRemAdm (bool ItsMe,HieLvl_Level_t Scope,
const char *InsCtrDegName);
-static void Enr_EffectivelyRemAdm (struct UsrData *UsrDat,Hie_Lvl_Level_t Scope,
+static void Enr_EffectivelyRemAdm (struct UsrData *UsrDat,HieLvl_Level_t Scope,
long Cod,const char *InsCtrDegName);
/*****************************************************************************/
@@ -191,7 +191,7 @@ void Enr_CheckStdsAndPutButtonToRegisterStdsInCurrentCrs (void)
{
/***** Put link to register students *****/
if (Gbl.Usrs.Me.Role.Logged == Rol_TCH) // Course selected and I am logged as teacher
- if (!Usr_GetNumUsrsInCrss (Hie_Lvl_CRS,Gbl.Hierarchy.Crs.CrsCod,
+ if (!Usr_GetNumUsrsInCrss (HieLvl_CRS,Gbl.Hierarchy.Crs.CrsCod,
1 << Rol_STD)) // No students in course
Usr_ShowWarningNoUsersFound (Rol_STD);
}
@@ -205,7 +205,7 @@ void Enr_PutButtonInlineToRegisterStds (long CrsCod)
extern const char *Txt_Register_students;
if (Gbl.Usrs.Me.Role.Logged == Rol_TCH) // Course selected and I am logged as teacher
- if (!Usr_GetNumUsrsInCrss (Hie_Lvl_CRS,CrsCod,
+ if (!Usr_GetNumUsrsInCrss (HieLvl_CRS,CrsCod,
1 << Rol_STD)) // No students in course
{
Frm_BeginForm (ActReqEnrSevStd);
@@ -658,7 +658,7 @@ static void Enr_ReqAdminUsrs (Rol_Role_t Role)
Enr_AskIfRegRemMe (Role);
break;
case Rol_TCH:
- if (Gbl.Hierarchy.Level == Hie_Lvl_CRS && Role == Rol_STD)
+ if (Gbl.Hierarchy.Level == HieLvl_CRS && Role == Rol_STD)
Enr_ShowFormRegRemSeveralUsrs (Rol_STD);
else
Enr_AskIfRegRemMe (Rol_TCH);
@@ -667,7 +667,7 @@ static void Enr_ReqAdminUsrs (Rol_Role_t Role)
case Rol_CTR_ADM:
case Rol_INS_ADM:
case Rol_SYS_ADM:
- if (Gbl.Hierarchy.Level == Hie_Lvl_CRS)
+ if (Gbl.Hierarchy.Level == HieLvl_CRS)
Enr_ShowFormRegRemSeveralUsrs (Role);
else
Enr_ReqAnotherUsrIDToRegisterRemove (Role);
@@ -701,7 +701,7 @@ static void Enr_ShowFormRegRemSeveralUsrs (Rol_Role_t Role)
const char *Title;
/***** Contextual menu *****/
- if (Gbl.Hierarchy.Level == Hie_Lvl_CRS) // Course selected
+ if (Gbl.Hierarchy.Level == HieLvl_CRS) // Course selected
{
Mnu_ContextMenuBegin ();
@@ -712,7 +712,7 @@ static void Enr_ShowFormRegRemSeveralUsrs (Rol_Role_t Role)
Enr_PutLinkToAdminOneUsr (ActReqMdfOneStd);
/* Put link to remove all the students in the current course */
- if (Usr_GetNumUsrsInCrss (Hie_Lvl_CRS,Gbl.Hierarchy.Crs.CrsCod,
+ if (Usr_GetNumUsrsInCrss (HieLvl_CRS,Gbl.Hierarchy.Crs.CrsCod,
1 << Rol_STD)) // This course has students
Enr_PutLinkToRemAllStdsThisCrs ();
break;
@@ -780,7 +780,7 @@ static void Enr_ShowFormRegRemSeveralUsrs (Rol_Role_t Role)
HTM_DIV_Begin ("class=\"%s LM\"",The_ClassTitle[Gbl.Prefs.Theme]);
HTM_Txt (Txt_Step_3_Optionally_select_groups);
HTM_DIV_End ();
- if (Gbl.Hierarchy.Level == Hie_Lvl_CRS) // Course selected
+ if (Gbl.Hierarchy.Level == HieLvl_CRS) // Course selected
{
if (Gbl.Crs.Grps.NumGrps) // This course has groups?
{
@@ -994,7 +994,7 @@ static void Enr_PutActionsRegRemSeveralUsrs (void)
HTM_UL_Begin ("class=\"LIST_LEFT %s\"",The_ClassFormInBox[Gbl.Prefs.Theme]);
/***** Register / remove users listed or not listed *****/
- if (Gbl.Hierarchy.Level == Hie_Lvl_CRS) // Course selected
+ if (Gbl.Hierarchy.Level == HieLvl_CRS) // Course selected
{
HTM_LI_Begin (NULL);
HTM_LABEL_Begin (NULL);
@@ -1217,7 +1217,7 @@ static void Enr_ReceiveFormUsrsCrs (Rol_Role_t Role)
if (WhatToDo.RemoveUsrs)
{
/***** Get list of users in current course *****/
- Usr_GetListUsrs (Hie_Lvl_CRS,Role);
+ Usr_GetListUsrs (HieLvl_CRS,Role);
if (Gbl.Usrs.LstUsrs[Role].NumUsrs)
{
@@ -1504,27 +1504,27 @@ bool Enr_PutActionsRegRemOneUsr (bool ItsMe)
bool OptionChecked = false;
/***** Check if the other user belongs to the current course *****/
- if (Gbl.Hierarchy.Level == Hie_Lvl_CRS)
+ if (Gbl.Hierarchy.Level == HieLvl_CRS)
UsrBelongsToCrs = Usr_CheckIfUsrBelongsToCurrentCrs (&Gbl.Usrs.Other.UsrDat);
if (Gbl.Hierarchy.Ins.InsCod > 0)
{
/***** Check if the other user is administrator of the current institution *****/
UsrIsInsAdmin = Usr_CheckIfUsrIsAdm (Gbl.Usrs.Other.UsrDat.UsrCod,
- Hie_Lvl_INS,
+ HieLvl_INS,
Gbl.Hierarchy.Ins.InsCod);
if (Gbl.Hierarchy.Ctr.CtrCod > 0)
{
/***** Check if the other user is administrator of the current center *****/
UsrIsCtrAdmin = Usr_CheckIfUsrIsAdm (Gbl.Usrs.Other.UsrDat.UsrCod,
- Hie_Lvl_CTR,
+ HieLvl_CTR,
Gbl.Hierarchy.Ctr.CtrCod);
if (Gbl.Hierarchy.Deg.DegCod > 0)
/***** Check if the other user is administrator of the current degree *****/
UsrIsDegAdmin = Usr_CheckIfUsrIsAdm (Gbl.Usrs.Other.UsrDat.UsrCod,
- Hie_Lvl_DEG,
+ HieLvl_DEG,
Gbl.Hierarchy.Deg.DegCod);
}
}
@@ -1533,7 +1533,7 @@ bool Enr_PutActionsRegRemOneUsr (bool ItsMe)
HTM_UL_Begin ("class=\"LIST_LEFT %s\"",The_ClassFormInBox[Gbl.Prefs.Theme]);
/***** Register user in course / Modify user's data *****/
- if (Gbl.Hierarchy.Level == Hie_Lvl_CRS && Gbl.Usrs.Me.Role.Logged >= Rol_STD)
+ if (Gbl.Hierarchy.Level == HieLvl_CRS && Gbl.Usrs.Me.Role.Logged >= Rol_STD)
{
Enr_PutActionModifyOneUsr (&OptionChecked,UsrBelongsToCrs,ItsMe);
OptionsShown = true;
@@ -1831,7 +1831,7 @@ static void Enr_RegisterUsr (struct UsrData *UsrDat,Rol_Role_t RegRemRole,
}
/***** Register user in current course in database *****/
- if (Gbl.Hierarchy.Level == Hie_Lvl_CRS) // Course selected
+ if (Gbl.Hierarchy.Level == HieLvl_CRS) // Course selected
{
if (Usr_CheckIfUsrBelongsToCurrentCrs (UsrDat))
{
@@ -1876,7 +1876,7 @@ void Enr_AskRemAllStdsThisCrs (void)
extern const char *Hlp_USERS_Administration_remove_all_students;
extern const char *Txt_Remove_all_students;
extern const char *Txt_Do_you_really_want_to_remove_the_X_students_from_the_course_Y_;
- unsigned NumStds = Usr_GetNumUsrsInCrss (Hie_Lvl_CRS,Gbl.Hierarchy.Crs.CrsCod,
+ unsigned NumStds = Usr_GetNumUsrsInCrss (HieLvl_CRS,Gbl.Hierarchy.Crs.CrsCod,
1 << Rol_STD); // This course has students
/***** Begin box *****/
@@ -1944,7 +1944,7 @@ unsigned Enr_RemAllStdsInCrs (struct Crs_Course *Crs)
/***** Get list of students in current course *****/
Gbl.Usrs.ClassPhoto.AllGroups = true; // Get all the students of the current course
- Usr_GetListUsrs (Hie_Lvl_CRS,Rol_STD);
+ Usr_GetListUsrs (HieLvl_CRS,Rol_STD);
NumStdsInCrs = Gbl.Usrs.LstUsrs[Rol_STD].NumUsrs;
/***** Remove all the students *****/
@@ -2063,7 +2063,7 @@ void Enr_SignUpInCrs (void)
if (RoleFromForm == Rol_TCH)
Notify = true;
else
- Notify = (Usr_GetNumUsrsInCrss (Hie_Lvl_CRS,Gbl.Hierarchy.Crs.CrsCod,
+ Notify = (Usr_GetNumUsrsInCrss (HieLvl_CRS,Gbl.Hierarchy.Crs.CrsCod,
1 << Rol_TCH) != 0); // This course has teachers
if (Notify)
Ntf_StoreNotifyEventsToAllUsrs (Ntf_EVENT_ENROLMENT_REQUEST,ReqCod);
@@ -2305,13 +2305,13 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
Enr_RemoveExpiredEnrolmentRequests ();
/***** Get scope *****/
- Gbl.Scope.Allowed = 1 << Hie_Lvl_SYS |
- 1 << Hie_Lvl_CTY |
- 1 << Hie_Lvl_INS |
- 1 << Hie_Lvl_CTR |
- 1 << Hie_Lvl_DEG |
- 1 << Hie_Lvl_CRS;
- Gbl.Scope.Default = Hie_Lvl_CRS;
+ Gbl.Scope.Allowed = 1 << HieLvl_SYS |
+ 1 << HieLvl_CTY |
+ 1 << HieLvl_INS |
+ 1 << HieLvl_CTR |
+ 1 << HieLvl_DEG |
+ 1 << HieLvl_CRS;
+ Gbl.Scope.Default = HieLvl_CRS;
Sco_GetScope ("ScopeEnr");
/***** Begin box *****/
@@ -2359,7 +2359,7 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
/***** Build query *****/
switch (Gbl.Scope.Current)
{
- case Hie_Lvl_SYS: // Show requesters for the whole platform
+ case HieLvl_SYS: // Show requesters for the whole platform
switch (Gbl.Usrs.Me.Role.Logged)
{
case Rol_TCH:
@@ -2400,7 +2400,7 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
" AND crs_courses.CrsCod=crs_requests.CrsCod"
" AND ((1<0"
" ORDER BY crs_requests.RequestTime DESC",
- Gbl.Usrs.Me.UsrDat.UsrCod,Sco_GetDBStrFromScope (Hie_Lvl_DEG),
+ Gbl.Usrs.Me.UsrDat.UsrCod,Sco_GetDBStrFromScope (HieLvl_DEG),
RolesSelected);
break;
case Rol_CTR_ADM:
@@ -2423,7 +2423,7 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
" AND crs_courses.CrsCod=crs_requests.CrsCod"
" AND ((1<0"
" ORDER BY crs_requests.RequestTime DESC",
- Gbl.Usrs.Me.UsrDat.UsrCod,Sco_GetDBStrFromScope (Hie_Lvl_CTR),
+ Gbl.Usrs.Me.UsrDat.UsrCod,Sco_GetDBStrFromScope (HieLvl_CTR),
RolesSelected);
break;
case Rol_INS_ADM:
@@ -2448,7 +2448,7 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
" AND crs_courses.CrsCod=crs_requests.CrsCod"
" AND ((1<0"
" ORDER BY crs_requests.RequestTime DESC",
- Gbl.Usrs.Me.UsrDat.UsrCod,Sco_GetDBStrFromScope (Hie_Lvl_INS),
+ Gbl.Usrs.Me.UsrDat.UsrCod,Sco_GetDBStrFromScope (HieLvl_INS),
RolesSelected);
break;
case Rol_SYS_ADM:
@@ -2470,7 +2470,7 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
break;
}
break;
- case Hie_Lvl_CTY: // Show requesters for the current country
+ case HieLvl_CTY: // Show requesters for the current country
switch (Gbl.Usrs.Me.Role.Logged)
{
case Rol_TCH:
@@ -2529,7 +2529,7 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
" AND ((1<0"
" ORDER BY crs_requests.RequestTime DESC",
Gbl.Usrs.Me.UsrDat.UsrCod,
- Sco_GetDBStrFromScope (Hie_Lvl_DEG),
+ Sco_GetDBStrFromScope (HieLvl_DEG),
Gbl.Hierarchy.Cty.CtyCod,
RolesSelected);
break;
@@ -2559,7 +2559,7 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
" AND ((1<0"
" ORDER BY crs_requests.RequestTime DESC",
Gbl.Usrs.Me.UsrDat.UsrCod,
- Sco_GetDBStrFromScope (Hie_Lvl_CTR),
+ Sco_GetDBStrFromScope (HieLvl_CTR),
Gbl.Hierarchy.Cty.CtyCod,
RolesSelected);
break;
@@ -2589,7 +2589,7 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
" AND ((1<0"
" ORDER BY crs_requests.RequestTime DESC",
Gbl.Usrs.Me.UsrDat.UsrCod,
- Sco_GetDBStrFromScope (Hie_Lvl_INS),
+ Sco_GetDBStrFromScope (HieLvl_INS),
Gbl.Hierarchy.Cty.CtyCod,
RolesSelected);
break;
@@ -2622,7 +2622,7 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
break;
}
break;
- case Hie_Lvl_INS: // Show requesters for the current institution
+ case HieLvl_INS: // Show requesters for the current institution
switch (Gbl.Usrs.Me.Role.Logged)
{
case Rol_TCH:
@@ -2677,7 +2677,7 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
" AND ((1<0"
" ORDER BY crs_requests.RequestTime DESC",
Gbl.Usrs.Me.UsrDat.UsrCod,
- Sco_GetDBStrFromScope (Hie_Lvl_DEG),
+ Sco_GetDBStrFromScope (HieLvl_DEG),
Gbl.Hierarchy.Ins.InsCod,
RolesSelected);
break;
@@ -2704,7 +2704,7 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
" AND crs_courses.CrsCod=crs_requests.CrsCod"
" AND ((1<0"
" ORDER BY crs_requests.RequestTime DESC",
- Gbl.Usrs.Me.UsrDat.UsrCod,Sco_GetDBStrFromScope (Hie_Lvl_CTR),
+ Gbl.Usrs.Me.UsrDat.UsrCod,Sco_GetDBStrFromScope (HieLvl_CTR),
Gbl.Hierarchy.Ins.InsCod,
RolesSelected);
break;
@@ -2736,7 +2736,7 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
break;
}
break;
- case Hie_Lvl_CTR: // Show requesters for the current center
+ case HieLvl_CTR: // Show requesters for the current center
switch (Gbl.Usrs.Me.Role.Logged)
{
case Rol_TCH:
@@ -2787,7 +2787,7 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
" AND ((1<0"
" ORDER BY crs_requests.RequestTime DESC",
Gbl.Usrs.Me.UsrDat.UsrCod,
- Sco_GetDBStrFromScope (Hie_Lvl_DEG),
+ Sco_GetDBStrFromScope (HieLvl_DEG),
Gbl.Hierarchy.Ctr.CtrCod,
RolesSelected);
break;
@@ -2818,7 +2818,7 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
break;
}
break;
- case Hie_Lvl_DEG: // Show requesters for the current degree
+ case HieLvl_DEG: // Show requesters for the current degree
switch (Gbl.Usrs.Me.Role.Logged)
{
case Rol_TCH:
@@ -2871,7 +2871,7 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
break;
}
break;
- case Hie_Lvl_CRS: // Show requesters for the current course
+ case HieLvl_CRS: // Show requesters for the current course
switch (Gbl.Usrs.Me.Role.Logged)
{
case Rol_TCH: // If I am logged as teacher of this course , I can view all the requesters from this course
@@ -2988,7 +2988,7 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
/***** Number of teachers in the course *****/
HTM_TD_Begin ("class=\"DAT RT\"");
- HTM_Unsigned (Usr_GetNumUsrsInCrss (Hie_Lvl_CRS,Crs.CrsCod,
+ HTM_Unsigned (Usr_GetNumUsrsInCrss (HieLvl_CRS,Crs.CrsCod,
1 << Rol_TCH));
HTM_TD_End ();
@@ -3398,7 +3398,7 @@ static void Enr_ShowFormToEditOtherUsr (void)
if (Usr_ChkIfUsrCodExists (Gbl.Usrs.Other.UsrDat.UsrCod))
{
/***** Show form to edit user *****/
- if (Gbl.Hierarchy.Level == Hie_Lvl_CRS) // Course selected
+ if (Gbl.Hierarchy.Level == HieLvl_CRS) // Course selected
{
/* Check if this user belongs to the current course */
if (Usr_CheckIfUsrBelongsToCurrentCrs (&Gbl.Usrs.Other.UsrDat))
@@ -3440,7 +3440,7 @@ static void Enr_ShowFormToEditOtherUsr (void)
void Enr_AddAdmToIns (void)
{
- Enr_AddAdm (Hie_Lvl_INS,Gbl.Hierarchy.Ins.InsCod,Gbl.Hierarchy.Ins.FullName);
+ Enr_AddAdm (HieLvl_INS,Gbl.Hierarchy.Ins.InsCod,Gbl.Hierarchy.Ins.FullName);
}
/*****************************************************************************/
@@ -3449,7 +3449,7 @@ void Enr_AddAdmToIns (void)
void Enr_AddAdmToCtr (void)
{
- Enr_AddAdm (Hie_Lvl_CTR,Gbl.Hierarchy.Ctr.CtrCod,Gbl.Hierarchy.Ctr.FullName);
+ Enr_AddAdm (HieLvl_CTR,Gbl.Hierarchy.Ctr.CtrCod,Gbl.Hierarchy.Ctr.FullName);
}
/*****************************************************************************/
@@ -3458,14 +3458,14 @@ void Enr_AddAdmToCtr (void)
void Enr_AddAdmToDeg (void)
{
- Enr_AddAdm (Hie_Lvl_DEG,Gbl.Hierarchy.Deg.DegCod,Gbl.Hierarchy.Deg.FullName);
+ Enr_AddAdm (HieLvl_DEG,Gbl.Hierarchy.Deg.DegCod,Gbl.Hierarchy.Deg.FullName);
}
/*****************************************************************************/
/******************* Add an administrator to current degree ******************/
/*****************************************************************************/
-static void Enr_AddAdm (Hie_Lvl_Level_t Scope,long Cod,const char *InsCtrDegName)
+static void Enr_AddAdm (HieLvl_Level_t Scope,long Cod,const char *InsCtrDegName)
{
bool ICanRegister;
@@ -3475,9 +3475,9 @@ static void Enr_AddAdm (Hie_Lvl_Level_t Scope,long Cod,const char *InsCtrDegName
if (Usr_GetParamOtherUsrCodEncryptedAndGetUsrData ())
{
/* Check if I am allowed to register user as administrator in institution/center/degree */
- ICanRegister = ((Scope == Hie_Lvl_DEG && Gbl.Usrs.Me.Role.Logged >= Rol_CTR_ADM) ||
- (Scope == Hie_Lvl_CTR && Gbl.Usrs.Me.Role.Logged >= Rol_INS_ADM) ||
- (Scope == Hie_Lvl_INS && Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM));
+ ICanRegister = ((Scope == HieLvl_DEG && Gbl.Usrs.Me.Role.Logged >= Rol_CTR_ADM) ||
+ (Scope == HieLvl_CTR && Gbl.Usrs.Me.Role.Logged >= Rol_INS_ADM) ||
+ (Scope == HieLvl_INS && Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM));
if (ICanRegister)
{
/***** Register administrator in current institution/center/degree in database *****/
@@ -3499,7 +3499,7 @@ static void Enr_AddAdm (Hie_Lvl_Level_t Scope,long Cod,const char *InsCtrDegName
/**************** Register administrator in current institution **************/
/*****************************************************************************/
-static void Enr_RegisterAdmin (struct UsrData *UsrDat,Hie_Lvl_Level_t Scope,long Cod,const char *InsCtrDegName)
+static void Enr_RegisterAdmin (struct UsrData *UsrDat,HieLvl_Level_t Scope,long Cod,const char *InsCtrDegName)
{
extern const char *Txt_THE_USER_X_is_already_an_administrator_of_Y;
extern const char *Txt_THE_USER_X_has_been_enroled_as_administrator_of_Y;
@@ -3617,7 +3617,7 @@ static bool Enr_CheckIfICanRemUsrFromCrs (void)
static void Enr_ReqRemAdmOfIns (void)
{
- Enr_ReqRemOrRemAdm (Enr_REQUEST_REMOVE_USR,Hie_Lvl_INS,
+ Enr_ReqRemOrRemAdm (Enr_REQUEST_REMOVE_USR,HieLvl_INS,
Gbl.Hierarchy.Ins.InsCod,Gbl.Hierarchy.Ins.FullName);
}
@@ -3627,7 +3627,7 @@ static void Enr_ReqRemAdmOfIns (void)
static void Enr_ReqRemAdmOfCtr (void)
{
- Enr_ReqRemOrRemAdm (Enr_REQUEST_REMOVE_USR,Hie_Lvl_CTR,
+ Enr_ReqRemOrRemAdm (Enr_REQUEST_REMOVE_USR,HieLvl_CTR,
Gbl.Hierarchy.Ctr.CtrCod,Gbl.Hierarchy.Ctr.FullName);
}
@@ -3637,7 +3637,7 @@ static void Enr_ReqRemAdmOfCtr (void)
static void Enr_ReqRemAdmOfDeg (void)
{
- Enr_ReqRemOrRemAdm (Enr_REQUEST_REMOVE_USR,Hie_Lvl_DEG,
+ Enr_ReqRemOrRemAdm (Enr_REQUEST_REMOVE_USR,HieLvl_DEG,
Gbl.Hierarchy.Deg.DegCod,Gbl.Hierarchy.Deg.FullName);
}
@@ -3647,7 +3647,7 @@ static void Enr_ReqRemAdmOfDeg (void)
void Enr_RemAdmIns (void)
{
- Enr_ReqRemOrRemAdm (Enr_REMOVE_USR,Hie_Lvl_INS,
+ Enr_ReqRemOrRemAdm (Enr_REMOVE_USR,HieLvl_INS,
Gbl.Hierarchy.Ins.InsCod,Gbl.Hierarchy.Ins.FullName);
}
@@ -3657,7 +3657,7 @@ void Enr_RemAdmIns (void)
void Enr_RemAdmCtr (void)
{
- Enr_ReqRemOrRemAdm (Enr_REMOVE_USR,Hie_Lvl_CTR,
+ Enr_ReqRemOrRemAdm (Enr_REMOVE_USR,HieLvl_CTR,
Gbl.Hierarchy.Ctr.CtrCod,Gbl.Hierarchy.Ctr.FullName);
}
@@ -3667,7 +3667,7 @@ void Enr_RemAdmCtr (void)
void Enr_RemAdmDeg (void)
{
- Enr_ReqRemOrRemAdm (Enr_REMOVE_USR,Hie_Lvl_DEG,
+ Enr_ReqRemOrRemAdm (Enr_REMOVE_USR,HieLvl_DEG,
Gbl.Hierarchy.Deg.DegCod,Gbl.Hierarchy.Deg.FullName);
}
@@ -3675,7 +3675,7 @@ void Enr_RemAdmDeg (void)
/***************** Remove an admin from current institution ******************/
/*****************************************************************************/
-static void Enr_ReqRemOrRemAdm (Enr_ReqDelOrDelUsr_t ReqDelOrDelUsr,Hie_Lvl_Level_t Scope,
+static void Enr_ReqRemOrRemAdm (Enr_ReqDelOrDelUsr_t ReqDelOrDelUsr,HieLvl_Level_t Scope,
long Cod,const char *InsCtrDegName)
{
extern const char *Txt_THE_USER_X_is_not_an_administrator_of_Y;
@@ -3690,9 +3690,9 @@ static void Enr_ReqRemOrRemAdm (Enr_ReqDelOrDelUsr_t ReqDelOrDelUsr,Hie_Lvl_Leve
/* Check if it's forbidden to remove an administrator */
ItsMe = Usr_ItsMe (Gbl.Usrs.Other.UsrDat.UsrCod);
ICanRemove = (ItsMe ||
- (Scope == Hie_Lvl_DEG && Gbl.Usrs.Me.Role.Logged >= Rol_CTR_ADM) ||
- (Scope == Hie_Lvl_CTR && Gbl.Usrs.Me.Role.Logged >= Rol_INS_ADM) ||
- (Scope == Hie_Lvl_INS && Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM));
+ (Scope == HieLvl_DEG && Gbl.Usrs.Me.Role.Logged >= Rol_CTR_ADM) ||
+ (Scope == HieLvl_CTR && Gbl.Usrs.Me.Role.Logged >= Rol_INS_ADM) ||
+ (Scope == HieLvl_INS && Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM));
if (ICanRemove)
{
/* Check if the other user is an admin of the current institution/center/degree */
@@ -3725,20 +3725,20 @@ static void Enr_ReqRemOrRemAdm (Enr_ReqDelOrDelUsr_t ReqDelOrDelUsr,Hie_Lvl_Leve
/**** Ask if really wanted to add an administrator to current institution ****/
/*****************************************************************************/
-static void Enr_ReqAddAdm (Hie_Lvl_Level_t Scope,long Cod,const char *InsCtrDegName)
+static void Enr_ReqAddAdm (HieLvl_Level_t Scope,long Cod,const char *InsCtrDegName)
{
extern const char *Txt_THE_USER_X_is_already_an_administrator_of_Y;
extern const char *Txt_Do_you_really_want_to_register_the_following_user_as_an_administrator_of_X;
extern const char *Txt_Register_user_IN_A_COURSE_OR_DEGREE;
- static const Act_Action_t Enr_ActNewAdm[Hie_Lvl_NUM_LEVELS] =
+ static const Act_Action_t Enr_ActNewAdm[HieLvl_NUM_LEVELS] =
{
- [Hie_Lvl_UNK] = ActUnk,
- [Hie_Lvl_SYS] = ActUnk,
- [Hie_Lvl_CTY] = ActUnk,
- [Hie_Lvl_INS] = ActNewAdmIns,
- [Hie_Lvl_CTR] = ActNewAdmCtr,
- [Hie_Lvl_DEG] = ActNewAdmDeg,
- [Hie_Lvl_CRS] = ActUnk,
+ [HieLvl_UNK] = ActUnk,
+ [HieLvl_SYS] = ActUnk,
+ [HieLvl_CTY] = ActUnk,
+ [HieLvl_INS] = ActNewAdmIns,
+ [HieLvl_CTR] = ActNewAdmCtr,
+ [HieLvl_DEG] = ActNewAdmDeg,
+ [HieLvl_CRS] = ActUnk,
};
bool ICanRegister;
@@ -3748,9 +3748,9 @@ static void Enr_ReqAddAdm (Hie_Lvl_Level_t Scope,long Cod,const char *InsCtrDegN
if (Usr_GetParamOtherUsrCodEncryptedAndGetUsrData ())
{
/* Check if I am allowed to register user as administrator in institution/center/degree */
- ICanRegister = ((Scope == Hie_Lvl_DEG && Gbl.Usrs.Me.Role.Logged >= Rol_CTR_ADM) ||
- (Scope == Hie_Lvl_CTR && Gbl.Usrs.Me.Role.Logged >= Rol_INS_ADM) ||
- (Scope == Hie_Lvl_INS && Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM));
+ ICanRegister = ((Scope == HieLvl_DEG && Gbl.Usrs.Me.Role.Logged >= Rol_CTR_ADM) ||
+ (Scope == HieLvl_CTR && Gbl.Usrs.Me.Role.Logged >= Rol_INS_ADM) ||
+ (Scope == HieLvl_INS && Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM));
if (ICanRegister)
{
if (Usr_CheckIfUsrIsAdm (Gbl.Usrs.Other.UsrDat.UsrCod,Scope,Cod)) // User is already an administrator of current institution/center/degree
@@ -3838,7 +3838,7 @@ void Enr_CreateNewUsr1 (void)
false); // I am NOT creating my own account
/***** Register user in current course in database *****/
- if (Gbl.Hierarchy.Level == Hie_Lvl_CRS) // Course selected
+ if (Gbl.Hierarchy.Level == HieLvl_CRS) // Course selected
{
if (Usr_CheckIfUsrBelongsToCurrentCrs (&Gbl.Usrs.Other.UsrDat))
{
@@ -3953,7 +3953,7 @@ void Enr_ModifyUsr1 (void)
/***** Update user's data in database *****/
Enr_UpdateUsrData (&Gbl.Usrs.Other.UsrDat);
- if (Gbl.Hierarchy.Level == Hie_Lvl_CRS) // Course selected
+ if (Gbl.Hierarchy.Level == HieLvl_CRS) // Course selected
{
/***** Get new role from record form *****/
NewRole = Rec_GetRoleFromRecordForm ();
@@ -4097,15 +4097,15 @@ void Enr_ModifyUsr2 (void)
Enr_ShowFormToEditOtherUsr ();
break;
case Enr_REGISTER_ONE_DEGREE_ADMIN:
- Enr_ReqAddAdm (Hie_Lvl_DEG,Gbl.Hierarchy.Deg.DegCod,
+ Enr_ReqAddAdm (HieLvl_DEG,Gbl.Hierarchy.Deg.DegCod,
Gbl.Hierarchy.Deg.FullName);
break;
case Enr_REGISTER_ONE_CENTER_ADMIN:
- Enr_ReqAddAdm (Hie_Lvl_CTR,Gbl.Hierarchy.Ctr.CtrCod,
+ Enr_ReqAddAdm (HieLvl_CTR,Gbl.Hierarchy.Ctr.CtrCod,
Gbl.Hierarchy.Ctr.FullName);
break;
case Enr_REGISTER_ONE_INSTITUTION_ADMIN:
- Enr_ReqAddAdm (Hie_Lvl_INS,Gbl.Hierarchy.Ins.InsCod,
+ Enr_ReqAddAdm (HieLvl_INS,Gbl.Hierarchy.Ins.InsCod,
Gbl.Hierarchy.Ins.FullName);
break;
case Enr_REPORT_USR_AS_POSSIBLE_DUPLICATE:
@@ -4372,22 +4372,22 @@ void Enr_DB_RemUsrFromAllCrss (long UsrCod)
/** Ask if really wanted to remove an administrator from current institution */
/*****************************************************************************/
-static void Enr_AskIfRemAdm (bool ItsMe,Hie_Lvl_Level_t Scope,
+static void Enr_AskIfRemAdm (bool ItsMe,HieLvl_Level_t Scope,
const char *InsCtrDegName)
{
extern const char *Txt_Do_you_really_want_to_be_removed_as_an_administrator_of_X;
extern const char *Txt_Do_you_really_want_to_remove_the_following_user_as_an_administrator_of_X;
extern const char *Txt_Remove_me_as_an_administrator;
extern const char *Txt_Remove_USER_as_an_administrator;
- static const Act_Action_t Enr_ActRemAdm[Hie_Lvl_NUM_LEVELS] =
+ static const Act_Action_t Enr_ActRemAdm[HieLvl_NUM_LEVELS] =
{
- [Hie_Lvl_UNK] = ActUnk,
- [Hie_Lvl_SYS] = ActUnk,
- [Hie_Lvl_CTY] = ActUnk,
- [Hie_Lvl_INS] = ActRemAdmIns,
- [Hie_Lvl_CTR] = ActRemAdmCtr,
- [Hie_Lvl_DEG] = ActRemAdmDeg,
- [Hie_Lvl_CRS] = ActUnk,
+ [HieLvl_UNK] = ActUnk,
+ [HieLvl_SYS] = ActUnk,
+ [HieLvl_CTY] = ActUnk,
+ [HieLvl_INS] = ActRemAdmIns,
+ [HieLvl_CTR] = ActRemAdmCtr,
+ [HieLvl_DEG] = ActRemAdmDeg,
+ [HieLvl_CRS] = ActUnk,
};
if (Usr_ChkIfUsrCodExists (Gbl.Usrs.Other.UsrDat.UsrCod))
@@ -4416,7 +4416,7 @@ static void Enr_AskIfRemAdm (bool ItsMe,Hie_Lvl_Level_t Scope,
/**** Remove an administrator from current institution, center or degree *****/
/*****************************************************************************/
-static void Enr_EffectivelyRemAdm (struct UsrData *UsrDat,Hie_Lvl_Level_t Scope,
+static void Enr_EffectivelyRemAdm (struct UsrData *UsrDat,HieLvl_Level_t Scope,
long Cod,const char *InsCtrDegName)
{
extern const char *Txt_THE_USER_X_has_been_removed_as_administrator_of_Y;
diff --git a/swad_exam.c b/swad_exam.c
index 3e8485cc..0d0f1199 100644
--- a/swad_exam.c
+++ b/swad_exam.c
@@ -45,6 +45,7 @@
#include "swad_figure.h"
#include "swad_form.h"
#include "swad_global.h"
+#include "swad_hierarchy_level.h"
#include "swad_HTML.h"
#include "swad_match.h"
#include "swad_match_result.h"
@@ -1748,16 +1749,16 @@ bool Exa_CheckIfEditable (const struct Exa_Exam *Exam)
/*****************************************************************************/
// Returns the number of courses with exams in this location
-unsigned Exa_GetNumCoursesWithExams (Hie_Lvl_Level_t Scope)
+unsigned Exa_GetNumCoursesWithExams (HieLvl_Level_t Scope)
{
/***** Get number of courses with exams from database *****/
switch (Scope)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
return DB_QueryCOUNT ("can not get number of courses with exams",
"SELECT COUNT(DISTINCT CrsCod)"
" FROM exa_exams");
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
return DB_QueryCOUNT ("can not get number of courses with exams",
"SELECT COUNT(DISTINCT exa_exams.CrsCod)"
" FROM ins_instits,"
@@ -1771,7 +1772,7 @@ unsigned Exa_GetNumCoursesWithExams (Hie_Lvl_Level_t Scope)
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=exa_exams.CrsCod",
Gbl.Hierarchy.Ins.InsCod);
- case Hie_Lvl_INS:
+ case HieLvl_INS:
return DB_QueryCOUNT ("can not get number of courses with exams",
"SELECT COUNT(DISTINCT exa_exams.CrsCod)"
" FROM ctr_centers,"
@@ -1783,7 +1784,7 @@ unsigned Exa_GetNumCoursesWithExams (Hie_Lvl_Level_t Scope)
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=exa_exams.CrsCod",
Gbl.Hierarchy.Ins.InsCod);
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
return DB_QueryCOUNT ("can not get number of courses with exams",
"SELECT COUNT(DISTINCT exa_exams.CrsCod)"
" FROM deg_degrees,"
@@ -1793,7 +1794,7 @@ unsigned Exa_GetNumCoursesWithExams (Hie_Lvl_Level_t Scope)
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=exa_exams.CrsCod",
Gbl.Hierarchy.Ctr.CtrCod);
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
return DB_QueryCOUNT ("can not get number of courses with exams",
"SELECT COUNT(DISTINCT exa_exams.CrsCod)"
" FROM crs_courses,"
@@ -1801,7 +1802,7 @@ unsigned Exa_GetNumCoursesWithExams (Hie_Lvl_Level_t Scope)
" WHERE crs_courses.DegCod=%ld"
" AND crs_courses.CrsCod=exa_exams.CrsCod",
Gbl.Hierarchy.Deg.DegCod);
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
return DB_QueryCOUNT ("can not get number of courses with exams",
"SELECT COUNT(DISTINCT CrsCod)"
" FROM exa_exams"
@@ -1818,16 +1819,16 @@ unsigned Exa_GetNumCoursesWithExams (Hie_Lvl_Level_t Scope)
/*****************************************************************************/
// Returns the number of exams in this location
-unsigned Exa_GetNumExams (Hie_Lvl_Level_t Scope)
+unsigned Exa_GetNumExams (HieLvl_Level_t Scope)
{
/***** Get number of exams from database *****/
switch (Scope)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
return DB_QueryCOUNT ("can not get number of exams",
"SELECT COUNT(*)"
" FROM exa_exams");
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
return DB_QueryCOUNT ("can not get number of exams",
"SELECT COUNT(*)"
" FROM ins_instits,"
@@ -1841,7 +1842,7 @@ unsigned Exa_GetNumExams (Hie_Lvl_Level_t Scope)
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=exa_exams.CrsCod",
Gbl.Hierarchy.Cty.CtyCod);
- case Hie_Lvl_INS:
+ case HieLvl_INS:
return DB_QueryCOUNT ("can not get number of exams",
"SELECT COUNT(*)"
" FROM ctr_centers,"
@@ -1853,7 +1854,7 @@ unsigned Exa_GetNumExams (Hie_Lvl_Level_t Scope)
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=exa_exams.CrsCod",
Gbl.Hierarchy.Ins.InsCod);
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
return DB_QueryCOUNT ("can not get number of exams",
"SELECT COUNT(*)"
" FROM deg_degrees,"
@@ -1863,7 +1864,7 @@ unsigned Exa_GetNumExams (Hie_Lvl_Level_t Scope)
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=exa_exams.CrsCod",
Gbl.Hierarchy.Ctr.CtrCod);
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
return DB_QueryCOUNT ("can not get number of exams",
"SELECT COUNT(*)"
" FROM crs_courses,"
@@ -1871,7 +1872,7 @@ unsigned Exa_GetNumExams (Hie_Lvl_Level_t Scope)
" WHERE crs_courses.DegCod=%ld"
" AND crs_courses.CrsCod=exa_exams.CrsCod",
Gbl.Hierarchy.Deg.DegCod);
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
return DB_QueryCOUNT ("can not get number of exams",
"SELECT COUNT(*)"
" FROM exa_exams"
@@ -1887,12 +1888,12 @@ unsigned Exa_GetNumExams (Hie_Lvl_Level_t Scope)
/************* Get average number of questions per course exam ***************/
/*****************************************************************************/
-double Exa_GetNumQstsPerCrsExam (Hie_Lvl_Level_t Scope)
+double Exa_GetNumQstsPerCrsExam (HieLvl_Level_t Scope)
{
/***** Get number of questions per exam from database *****/
switch (Scope)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
return DB_QuerySELECTDouble ("can not get number of questions per exam",
"SELECT AVG(NumQsts)"
" FROM (SELECT COUNT(exa_set_questions.QstCod) AS NumQsts"
@@ -1900,7 +1901,7 @@ double Exa_GetNumQstsPerCrsExam (Hie_Lvl_Level_t Scope)
"exa_set_questions"
" WHERE exa_exams.ExaCod=exa_set_questions.ExaCod"
" GROUP BY exa_set_questions.ExaCod) AS NumQstsTable");
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
return DB_QuerySELECTDouble ("can not get number of questions per exam",
"SELECT AVG(NumQsts)"
" FROM (SELECT COUNT(exa_set_questions.QstCod) AS NumQsts"
@@ -1918,7 +1919,7 @@ double Exa_GetNumQstsPerCrsExam (Hie_Lvl_Level_t Scope)
" AND exa_exams.ExaCod=exa_set_questions.ExaCod"
" GROUP BY exa_set_questions.ExaCod) AS NumQstsTable",
Gbl.Hierarchy.Cty.CtyCod);
- case Hie_Lvl_INS:
+ case HieLvl_INS:
return DB_QuerySELECTDouble ("can not get number of questions per exam",
"SELECT AVG(NumQsts)"
" FROM (SELECT COUNT(exa_set_questions.QstCod) AS NumQsts"
@@ -1934,7 +1935,7 @@ double Exa_GetNumQstsPerCrsExam (Hie_Lvl_Level_t Scope)
" AND exa_exams.ExaCod=exa_set_questions.ExaCod"
" GROUP BY exa_set_questions.ExaCod) AS NumQstsTable",
Gbl.Hierarchy.Ins.InsCod);
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
return DB_QuerySELECTDouble ("can not get number of questions per exam",
"SELECT AVG(NumQsts)"
" FROM (SELECT COUNT(exa_set_questions.QstCod) AS NumQsts"
@@ -1948,7 +1949,7 @@ double Exa_GetNumQstsPerCrsExam (Hie_Lvl_Level_t Scope)
" AND exa_exams.ExaCod=exa_set_questions.ExaCod"
" GROUP BY exa_set_questions.ExaCod) AS NumQstsTable",
Gbl.Hierarchy.Ctr.CtrCod);
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
return DB_QuerySELECTDouble ("can not get number of questions per exam",
"SELECT AVG(NumQsts)"
" FROM (SELECT COUNT(exa_set_questions.QstCod) AS NumQsts"
@@ -1960,7 +1961,7 @@ double Exa_GetNumQstsPerCrsExam (Hie_Lvl_Level_t Scope)
" AND exa_exams.ExaCod=exa_set_questions.ExaCod"
" GROUP BY exa_set_questions.ExaCod) AS NumQstsTable",
Gbl.Hierarchy.Deg.DegCod);
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
return DB_QuerySELECTDouble ("can not get number of questions per exam",
"SELECT AVG(NumQsts)"
" FROM (SELECT COUNT(exa_set_questions.QstCod) AS NumQsts"
diff --git a/swad_exam.h b/swad_exam.h
index 93dc4f70..407503e8 100644
--- a/swad_exam.h
+++ b/swad_exam.h
@@ -91,8 +91,8 @@ void Exa_ReceiveFormExam (void);
bool Exa_CheckIfEditable (const struct Exa_Exam *Exam);
-unsigned Exa_GetNumCoursesWithExams (Hie_Lvl_Level_t Scope);
-unsigned Exa_GetNumExams (Hie_Lvl_Level_t Scope);
-double Exa_GetNumQstsPerCrsExam (Hie_Lvl_Level_t Scope);
+unsigned Exa_GetNumCoursesWithExams (HieLvl_Level_t Scope);
+unsigned Exa_GetNumExams (HieLvl_Level_t Scope);
+double Exa_GetNumQstsPerCrsExam (HieLvl_Level_t Scope);
#endif
diff --git a/swad_figure.c b/swad_figure.c
index d9e0c320..b8f2c432 100644
--- a/swad_figure.c
+++ b/swad_figure.c
@@ -104,7 +104,7 @@ struct Fig_FiguresForum
static void Fig_ReqShowFigure (Fig_FigureType_t SelectedFigureType);
static void Fig_PutHiddenParamFigureType (Fig_FigureType_t FigureType);
-static void Fig_PutHiddenParamScopeFig (Hie_Lvl_Level_t ScopeFig);
+static void Fig_PutHiddenParamScopeFig (HieLvl_Level_t ScopeFig);
static void Fig_GetAndShowHierarchyStats (void);
static void Fig_WriteHeadHierarchy (void);
@@ -142,7 +142,7 @@ static void Fig_GetAndShowNumUsrsNotBelongingToAnyCrs (void);
static void Fig_GetAndShowUsersRanking (void);
static void Fig_GetAndShowFileBrowsersStats (void);
-static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope,
+static void Fig_GetSizeOfFileZoneFromDB (HieLvl_Level_t Scope,
Brw_FileBrowser_t FileBrowser,
struct Fig_SizeOfFileZones *SizeOfFileZones);
static void Fig_WriteStatsExpTreesTableHead1 (void);
@@ -159,7 +159,7 @@ static void Fig_WriteRowStatsFileBrowsers3 (const char *NameOfFileZones,
struct Fig_SizeOfFileZones *SizeOfFileZones);
static void Fig_GetAndShowOERsStats (void);
-static void Fig_GetNumberOfOERsFromDB (Hie_Lvl_Level_t Scope,
+static void Fig_GetNumberOfOERsFromDB (HieLvl_Level_t Scope,
Brw_License_t License,
unsigned long NumFiles[2]);
@@ -237,13 +237,13 @@ static void Fig_ReqShowFigure (Fig_FigureType_t SelectedFigureType)
/***** Compute stats for anywhere, degree or course? *****/
HTM_LABEL_Begin ("class=\"%s\"",The_ClassFormInBox[Gbl.Prefs.Theme]);
HTM_TxtColonNBSP (Txt_Scope);
- Gbl.Scope.Allowed = 1 << Hie_Lvl_SYS |
- 1 << Hie_Lvl_CTY |
- 1 << Hie_Lvl_INS |
- 1 << Hie_Lvl_CTR |
- 1 << Hie_Lvl_DEG |
- 1 << Hie_Lvl_CRS;
- Gbl.Scope.Default = Hie_Lvl_SYS;
+ Gbl.Scope.Allowed = 1 << HieLvl_SYS |
+ 1 << HieLvl_CTY |
+ 1 << HieLvl_INS |
+ 1 << HieLvl_CTR |
+ 1 << HieLvl_DEG |
+ 1 << HieLvl_CRS;
+ Gbl.Scope.Default = HieLvl_SYS;
Sco_GetScope ("ScopeFig");
Sco_PutSelectorScope ("ScopeFig",HTM_DONT_SUBMIT_ON_CHANGE);
HTM_LABEL_End ();
@@ -283,7 +283,7 @@ void Fig_PutIconToShowFigure (Fig_FigureType_t FigureType)
struct Fig_Figures Figures;
/***** Set default scope (used only if Gbl.Scope.Current is unknown) *****/
- Gbl.Scope.Default = Hie_Lvl_CRS;
+ Gbl.Scope.Default = HieLvl_CRS;
Sco_AdjustScope ();
/***** Put icon to show figure *****/
@@ -321,7 +321,7 @@ static void Fig_PutHiddenParamFigureType (Fig_FigureType_t FigureType)
/********* Put hidden parameter for the type of figure (statistic) ***********/
/*****************************************************************************/
-static void Fig_PutHiddenParamScopeFig (Hie_Lvl_Level_t ScopeFig)
+static void Fig_PutHiddenParamScopeFig (HieLvl_Level_t ScopeFig)
{
Sco_PutParamScope ("ScopeFig",ScopeFig);
}
@@ -434,11 +434,11 @@ static void Fig_GetAndShowNumUsrsInCrss (Rol_Role_t Role)
{
extern const char *Txt_Total;
extern const char *Txt_ROLES_PLURAL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
- long Cod = (Gbl.Scope.Current == Hie_Lvl_CTY ? Gbl.Hierarchy.Cty.CtyCod :
- (Gbl.Scope.Current == Hie_Lvl_INS ? Gbl.Hierarchy.Ins.InsCod :
- (Gbl.Scope.Current == Hie_Lvl_CTR ? Gbl.Hierarchy.Ctr.CtrCod :
- (Gbl.Scope.Current == Hie_Lvl_DEG ? Gbl.Hierarchy.Deg.DegCod :
- (Gbl.Scope.Current == Hie_Lvl_CRS ? Gbl.Hierarchy.Crs.CrsCod :
+ long Cod = (Gbl.Scope.Current == HieLvl_CTY ? Gbl.Hierarchy.Cty.CtyCod :
+ (Gbl.Scope.Current == HieLvl_INS ? Gbl.Hierarchy.Ins.InsCod :
+ (Gbl.Scope.Current == HieLvl_CTR ? Gbl.Hierarchy.Ctr.CtrCod :
+ (Gbl.Scope.Current == HieLvl_DEG ? Gbl.Hierarchy.Deg.DegCod :
+ (Gbl.Scope.Current == HieLvl_CRS ? Gbl.Hierarchy.Crs.CrsCod :
-1L)))));
char *Class = (Role == Rol_UNK) ? "DAT_N LINE_TOP RB" :
"DAT RB";
@@ -666,14 +666,14 @@ static void Fig_GetAndShowHierarchyWithInss (void)
/***** Get number of elements with institutions *****/
switch (Gbl.Scope.Current)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
NumCtysWithInss = Cty_GetCachedNumCtysWithInss ();
break;
- case Hie_Lvl_CTY:
- case Hie_Lvl_INS:
- case Hie_Lvl_CTR:
- case Hie_Lvl_DEG:
- case Hie_Lvl_CRS:
+ case HieLvl_CTY:
+ case HieLvl_INS:
+ case HieLvl_CTR:
+ case HieLvl_DEG:
+ case HieLvl_CRS:
break;
default:
Err_WrongScopeExit ();
@@ -705,18 +705,18 @@ static void Fig_GetAndShowHierarchyWithCtrs (void)
/***** Get number of elements with centers *****/
switch (Gbl.Scope.Current)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
NumCtysWithCtrs = Cty_GetCachedNumCtysWithCtrs ();
- NumInssWithCtrs = Ins_GetCachedNumInssWithCtrs ("",Hie_Lvl_SYS,-1L);
+ NumInssWithCtrs = Ins_GetCachedNumInssWithCtrs ("",HieLvl_SYS,-1L);
break;
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
sprintf (SubQuery,"ins_instits.CtyCod=%ld AND ",Gbl.Hierarchy.Cty.CtyCod);
- NumInssWithCtrs = Ins_GetCachedNumInssWithCtrs (SubQuery,Hie_Lvl_CTY,Gbl.Hierarchy.Cty.CtyCod);
+ NumInssWithCtrs = Ins_GetCachedNumInssWithCtrs (SubQuery,HieLvl_CTY,Gbl.Hierarchy.Cty.CtyCod);
break;
- case Hie_Lvl_INS:
- case Hie_Lvl_CTR:
- case Hie_Lvl_DEG:
- case Hie_Lvl_CRS:
+ case HieLvl_INS:
+ case HieLvl_CTR:
+ case HieLvl_DEG:
+ case HieLvl_CRS:
break;
default:
Err_WrongScopeExit ();
@@ -749,23 +749,23 @@ static void Fig_GetAndShowHierarchyWithDegs (void)
/***** Get number of elements with degrees *****/
switch (Gbl.Scope.Current)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
NumCtysWithDegs = Cty_GetCachedNumCtysWithDegs ();
- NumInssWithDegs = Ins_GetCachedNumInssWithDegs ("",Hie_Lvl_SYS,-1L);
- NumCtrsWithDegs = Ctr_GetCachedNumCtrsWithDegs ("",Hie_Lvl_SYS,-1L);
+ NumInssWithDegs = Ins_GetCachedNumInssWithDegs ("",HieLvl_SYS,-1L);
+ NumCtrsWithDegs = Ctr_GetCachedNumCtrsWithDegs ("",HieLvl_SYS,-1L);
break;
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
sprintf (SubQuery,"ins_instits.CtyCod=%ld AND ",Gbl.Hierarchy.Cty.CtyCod);
- NumInssWithDegs = Ins_GetCachedNumInssWithDegs (SubQuery,Hie_Lvl_CTY,Gbl.Hierarchy.Cty.CtyCod);
- NumCtrsWithDegs = Ctr_GetCachedNumCtrsWithDegs (SubQuery,Hie_Lvl_CTY,Gbl.Hierarchy.Cty.CtyCod);
+ NumInssWithDegs = Ins_GetCachedNumInssWithDegs (SubQuery,HieLvl_CTY,Gbl.Hierarchy.Cty.CtyCod);
+ NumCtrsWithDegs = Ctr_GetCachedNumCtrsWithDegs (SubQuery,HieLvl_CTY,Gbl.Hierarchy.Cty.CtyCod);
break;
- case Hie_Lvl_INS:
+ case HieLvl_INS:
sprintf (SubQuery,"ctr_centers.InsCod=%ld AND ",Gbl.Hierarchy.Ins.InsCod);
- NumCtrsWithDegs = Ctr_GetCachedNumCtrsWithDegs (SubQuery,Hie_Lvl_INS,Gbl.Hierarchy.Ins.InsCod);
+ NumCtrsWithDegs = Ctr_GetCachedNumCtrsWithDegs (SubQuery,HieLvl_INS,Gbl.Hierarchy.Ins.InsCod);
break;
- case Hie_Lvl_CTR:
- case Hie_Lvl_DEG:
- case Hie_Lvl_CRS:
+ case HieLvl_CTR:
+ case HieLvl_DEG:
+ case HieLvl_CRS:
break;
default:
Err_WrongScopeExit ();
@@ -799,30 +799,30 @@ static void Fig_GetAndShowHierarchyWithCrss (void)
/***** Get number of elements with courses *****/
switch (Gbl.Scope.Current)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
NumCtysWithCrss = Cty_GetCachedNumCtysWithCrss ();
- NumInssWithCrss = Ins_GetCachedNumInssWithCrss ("",Hie_Lvl_SYS,-1L);
- NumCtrsWithCrss = Ctr_GetCachedNumCtrsWithCrss ("",Hie_Lvl_SYS,-1L);
- NumDegsWithCrss = Deg_GetCachedNumDegsWithCrss ("",Hie_Lvl_SYS,-1L);
+ NumInssWithCrss = Ins_GetCachedNumInssWithCrss ("",HieLvl_SYS,-1L);
+ NumCtrsWithCrss = Ctr_GetCachedNumCtrsWithCrss ("",HieLvl_SYS,-1L);
+ NumDegsWithCrss = Deg_GetCachedNumDegsWithCrss ("",HieLvl_SYS,-1L);
break;
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
sprintf (SubQuery,"ins_instits.CtyCod=%ld AND ",Gbl.Hierarchy.Cty.CtyCod);
- NumInssWithCrss = Ins_GetCachedNumInssWithCrss (SubQuery,Hie_Lvl_CTY,Gbl.Hierarchy.Cty.CtyCod);
- NumCtrsWithCrss = Ctr_GetCachedNumCtrsWithCrss (SubQuery,Hie_Lvl_CTY,Gbl.Hierarchy.Cty.CtyCod);
- NumDegsWithCrss = Deg_GetCachedNumDegsWithCrss (SubQuery,Hie_Lvl_CTY,Gbl.Hierarchy.Cty.CtyCod);
+ NumInssWithCrss = Ins_GetCachedNumInssWithCrss (SubQuery,HieLvl_CTY,Gbl.Hierarchy.Cty.CtyCod);
+ NumCtrsWithCrss = Ctr_GetCachedNumCtrsWithCrss (SubQuery,HieLvl_CTY,Gbl.Hierarchy.Cty.CtyCod);
+ NumDegsWithCrss = Deg_GetCachedNumDegsWithCrss (SubQuery,HieLvl_CTY,Gbl.Hierarchy.Cty.CtyCod);
break;
- case Hie_Lvl_INS:
+ case HieLvl_INS:
sprintf (SubQuery,"ctr_centers.InsCod=%ld AND ",Gbl.Hierarchy.Ins.InsCod);
- NumCtrsWithCrss = Ctr_GetCachedNumCtrsWithCrss (SubQuery,Hie_Lvl_INS,Gbl.Hierarchy.Ins.InsCod);
- NumDegsWithCrss = Deg_GetCachedNumDegsWithCrss (SubQuery,Hie_Lvl_INS,Gbl.Hierarchy.Ins.InsCod);
+ NumCtrsWithCrss = Ctr_GetCachedNumCtrsWithCrss (SubQuery,HieLvl_INS,Gbl.Hierarchy.Ins.InsCod);
+ NumDegsWithCrss = Deg_GetCachedNumDegsWithCrss (SubQuery,HieLvl_INS,Gbl.Hierarchy.Ins.InsCod);
break;
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
sprintf (SubQuery,"deg_degrees.CtrCod=%ld AND ",
Gbl.Hierarchy.Ctr.CtrCod);
- NumDegsWithCrss = Deg_GetCachedNumDegsWithCrss (SubQuery,Hie_Lvl_CTR,Gbl.Hierarchy.Ctr.CtrCod);
+ NumDegsWithCrss = Deg_GetCachedNumDegsWithCrss (SubQuery,HieLvl_CTR,Gbl.Hierarchy.Ctr.CtrCod);
break;
- case Hie_Lvl_DEG:
- case Hie_Lvl_CRS:
+ case HieLvl_DEG:
+ case HieLvl_CRS:
break;
default:
Err_WrongScopeExit ();
@@ -857,53 +857,53 @@ static void Fig_GetAndShowHierarchyWithUsrs (Rol_Role_t Role)
/***** Get number of elements with students *****/
switch (Gbl.Scope.Current)
{
- case Hie_Lvl_SYS:
- NumCtysWithUsrs = Cty_GetCachedNumCtysWithUsrs (Role,"",Hie_Lvl_SYS,-1L);
- NumInssWithUsrs = Ins_GetCachedNumInssWithUsrs (Role,"",Hie_Lvl_SYS,-1L);
- NumCtrsWithUsrs = Ctr_GetCachedNumCtrsWithUsrs (Role,"",Hie_Lvl_SYS,-1L);
- NumDegsWithUsrs = Deg_GetCachedNumDegsWithUsrs (Role,"",Hie_Lvl_SYS,-1L);
- NumCrssWithUsrs = Crs_GetCachedNumCrssWithUsrs (Role,"",Hie_Lvl_SYS,-1L);
+ case HieLvl_SYS:
+ NumCtysWithUsrs = Cty_GetCachedNumCtysWithUsrs (Role,"",HieLvl_SYS,-1L);
+ NumInssWithUsrs = Ins_GetCachedNumInssWithUsrs (Role,"",HieLvl_SYS,-1L);
+ NumCtrsWithUsrs = Ctr_GetCachedNumCtrsWithUsrs (Role,"",HieLvl_SYS,-1L);
+ NumDegsWithUsrs = Deg_GetCachedNumDegsWithUsrs (Role,"",HieLvl_SYS,-1L);
+ NumCrssWithUsrs = Crs_GetCachedNumCrssWithUsrs (Role,"",HieLvl_SYS,-1L);
break;
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
sprintf (SubQuery,"ins_instits.CtyCod=%ld AND ",Gbl.Hierarchy.Cty.CtyCod);
- NumCtysWithUsrs = Cty_GetCachedNumCtysWithUsrs (Role,SubQuery,Hie_Lvl_CTY,Gbl.Hierarchy.Cty.CtyCod);
- NumInssWithUsrs = Ins_GetCachedNumInssWithUsrs (Role,SubQuery,Hie_Lvl_CTY,Gbl.Hierarchy.Cty.CtyCod);
- NumCtrsWithUsrs = Ctr_GetCachedNumCtrsWithUsrs (Role,SubQuery,Hie_Lvl_CTY,Gbl.Hierarchy.Cty.CtyCod);
- NumDegsWithUsrs = Deg_GetCachedNumDegsWithUsrs (Role,SubQuery,Hie_Lvl_CTY,Gbl.Hierarchy.Cty.CtyCod);
- NumCrssWithUsrs = Crs_GetCachedNumCrssWithUsrs (Role,SubQuery,Hie_Lvl_CTY,Gbl.Hierarchy.Cty.CtyCod);
+ NumCtysWithUsrs = Cty_GetCachedNumCtysWithUsrs (Role,SubQuery,HieLvl_CTY,Gbl.Hierarchy.Cty.CtyCod);
+ NumInssWithUsrs = Ins_GetCachedNumInssWithUsrs (Role,SubQuery,HieLvl_CTY,Gbl.Hierarchy.Cty.CtyCod);
+ NumCtrsWithUsrs = Ctr_GetCachedNumCtrsWithUsrs (Role,SubQuery,HieLvl_CTY,Gbl.Hierarchy.Cty.CtyCod);
+ NumDegsWithUsrs = Deg_GetCachedNumDegsWithUsrs (Role,SubQuery,HieLvl_CTY,Gbl.Hierarchy.Cty.CtyCod);
+ NumCrssWithUsrs = Crs_GetCachedNumCrssWithUsrs (Role,SubQuery,HieLvl_CTY,Gbl.Hierarchy.Cty.CtyCod);
break;
- case Hie_Lvl_INS:
+ case HieLvl_INS:
sprintf (SubQuery,"ctr_centers.InsCod=%ld AND ",Gbl.Hierarchy.Ins.InsCod);
- NumCtysWithUsrs = Cty_GetCachedNumCtysWithUsrs (Role,SubQuery,Hie_Lvl_INS,Gbl.Hierarchy.Ins.InsCod);
- NumInssWithUsrs = Ins_GetCachedNumInssWithUsrs (Role,SubQuery,Hie_Lvl_INS,Gbl.Hierarchy.Ins.InsCod);
- NumCtrsWithUsrs = Ctr_GetCachedNumCtrsWithUsrs (Role,SubQuery,Hie_Lvl_INS,Gbl.Hierarchy.Ins.InsCod);
- NumDegsWithUsrs = Deg_GetCachedNumDegsWithUsrs (Role,SubQuery,Hie_Lvl_INS,Gbl.Hierarchy.Ins.InsCod);
- NumCrssWithUsrs = Crs_GetCachedNumCrssWithUsrs (Role,SubQuery,Hie_Lvl_INS,Gbl.Hierarchy.Ins.InsCod);
+ NumCtysWithUsrs = Cty_GetCachedNumCtysWithUsrs (Role,SubQuery,HieLvl_INS,Gbl.Hierarchy.Ins.InsCod);
+ NumInssWithUsrs = Ins_GetCachedNumInssWithUsrs (Role,SubQuery,HieLvl_INS,Gbl.Hierarchy.Ins.InsCod);
+ NumCtrsWithUsrs = Ctr_GetCachedNumCtrsWithUsrs (Role,SubQuery,HieLvl_INS,Gbl.Hierarchy.Ins.InsCod);
+ NumDegsWithUsrs = Deg_GetCachedNumDegsWithUsrs (Role,SubQuery,HieLvl_INS,Gbl.Hierarchy.Ins.InsCod);
+ NumCrssWithUsrs = Crs_GetCachedNumCrssWithUsrs (Role,SubQuery,HieLvl_INS,Gbl.Hierarchy.Ins.InsCod);
break;
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
sprintf (SubQuery,"deg_degrees.CtrCod=%ld AND ",
Gbl.Hierarchy.Ctr.CtrCod);
- NumCtysWithUsrs = Cty_GetCachedNumCtysWithUsrs (Role,SubQuery,Hie_Lvl_CTR,Gbl.Hierarchy.Ctr.CtrCod);
- NumInssWithUsrs = Ins_GetCachedNumInssWithUsrs (Role,SubQuery,Hie_Lvl_CTR,Gbl.Hierarchy.Ctr.CtrCod);
- NumCtrsWithUsrs = Ctr_GetCachedNumCtrsWithUsrs (Role,SubQuery,Hie_Lvl_CTR,Gbl.Hierarchy.Ctr.CtrCod);
- NumDegsWithUsrs = Deg_GetCachedNumDegsWithUsrs (Role,SubQuery,Hie_Lvl_CTR,Gbl.Hierarchy.Ctr.CtrCod);
- NumCrssWithUsrs = Crs_GetCachedNumCrssWithUsrs (Role,SubQuery,Hie_Lvl_CTR,Gbl.Hierarchy.Ctr.CtrCod);
+ NumCtysWithUsrs = Cty_GetCachedNumCtysWithUsrs (Role,SubQuery,HieLvl_CTR,Gbl.Hierarchy.Ctr.CtrCod);
+ NumInssWithUsrs = Ins_GetCachedNumInssWithUsrs (Role,SubQuery,HieLvl_CTR,Gbl.Hierarchy.Ctr.CtrCod);
+ NumCtrsWithUsrs = Ctr_GetCachedNumCtrsWithUsrs (Role,SubQuery,HieLvl_CTR,Gbl.Hierarchy.Ctr.CtrCod);
+ NumDegsWithUsrs = Deg_GetCachedNumDegsWithUsrs (Role,SubQuery,HieLvl_CTR,Gbl.Hierarchy.Ctr.CtrCod);
+ NumCrssWithUsrs = Crs_GetCachedNumCrssWithUsrs (Role,SubQuery,HieLvl_CTR,Gbl.Hierarchy.Ctr.CtrCod);
break;
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
sprintf (SubQuery,"crs_courses.DegCod=%ld AND ",Gbl.Hierarchy.Deg.DegCod);
- NumCtysWithUsrs = Cty_GetCachedNumCtysWithUsrs (Role,SubQuery,Hie_Lvl_DEG,Gbl.Hierarchy.Deg.DegCod);
- NumInssWithUsrs = Ins_GetCachedNumInssWithUsrs (Role,SubQuery,Hie_Lvl_DEG,Gbl.Hierarchy.Deg.DegCod);
- NumCtrsWithUsrs = Ctr_GetCachedNumCtrsWithUsrs (Role,SubQuery,Hie_Lvl_DEG,Gbl.Hierarchy.Deg.DegCod);
- NumDegsWithUsrs = Deg_GetCachedNumDegsWithUsrs (Role,SubQuery,Hie_Lvl_DEG,Gbl.Hierarchy.Deg.DegCod);
- NumCrssWithUsrs = Crs_GetCachedNumCrssWithUsrs (Role,SubQuery,Hie_Lvl_DEG,Gbl.Hierarchy.Deg.DegCod);
+ NumCtysWithUsrs = Cty_GetCachedNumCtysWithUsrs (Role,SubQuery,HieLvl_DEG,Gbl.Hierarchy.Deg.DegCod);
+ NumInssWithUsrs = Ins_GetCachedNumInssWithUsrs (Role,SubQuery,HieLvl_DEG,Gbl.Hierarchy.Deg.DegCod);
+ NumCtrsWithUsrs = Ctr_GetCachedNumCtrsWithUsrs (Role,SubQuery,HieLvl_DEG,Gbl.Hierarchy.Deg.DegCod);
+ NumDegsWithUsrs = Deg_GetCachedNumDegsWithUsrs (Role,SubQuery,HieLvl_DEG,Gbl.Hierarchy.Deg.DegCod);
+ NumCrssWithUsrs = Crs_GetCachedNumCrssWithUsrs (Role,SubQuery,HieLvl_DEG,Gbl.Hierarchy.Deg.DegCod);
break;
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
sprintf (SubQuery,"crs_users.CrsCod=%ld AND ",Gbl.Hierarchy.Crs.CrsCod);
- NumCtysWithUsrs = Cty_GetCachedNumCtysWithUsrs (Role,SubQuery,Hie_Lvl_CRS,Gbl.Hierarchy.Crs.CrsCod);
- NumInssWithUsrs = Ins_GetCachedNumInssWithUsrs (Role,SubQuery,Hie_Lvl_CRS,Gbl.Hierarchy.Crs.CrsCod);
- NumCtrsWithUsrs = Ctr_GetCachedNumCtrsWithUsrs (Role,SubQuery,Hie_Lvl_CRS,Gbl.Hierarchy.Crs.CrsCod);
- NumDegsWithUsrs = Deg_GetCachedNumDegsWithUsrs (Role,SubQuery,Hie_Lvl_CRS,Gbl.Hierarchy.Crs.CrsCod);
- NumCrssWithUsrs = Crs_GetCachedNumCrssWithUsrs (Role,SubQuery,Hie_Lvl_CRS,Gbl.Hierarchy.Crs.CrsCod);
+ NumCtysWithUsrs = Cty_GetCachedNumCtysWithUsrs (Role,SubQuery,HieLvl_CRS,Gbl.Hierarchy.Crs.CrsCod);
+ NumInssWithUsrs = Ins_GetCachedNumInssWithUsrs (Role,SubQuery,HieLvl_CRS,Gbl.Hierarchy.Crs.CrsCod);
+ NumCtrsWithUsrs = Ctr_GetCachedNumCtrsWithUsrs (Role,SubQuery,HieLvl_CRS,Gbl.Hierarchy.Crs.CrsCod);
+ NumDegsWithUsrs = Deg_GetCachedNumDegsWithUsrs (Role,SubQuery,HieLvl_CRS,Gbl.Hierarchy.Crs.CrsCod);
+ NumCrssWithUsrs = Crs_GetCachedNumCrssWithUsrs (Role,SubQuery,HieLvl_CRS,Gbl.Hierarchy.Crs.CrsCod);
break;
default:
Err_WrongScopeExit ();
@@ -936,32 +936,32 @@ static void Fig_GetAndShowHierarchyTotal (void)
/***** Get total number of elements *****/
switch (Gbl.Scope.Current)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
NumCtysTotal = Cty_GetCachedNumCtysInSys ();
NumInssTotal = Ins_GetCachedNumInssInSys ();
NumCtrsTotal = Ctr_GetCachedNumCtrsInSys ();
NumDegsTotal = Deg_GetCachedNumDegsInSys ();
NumCrssTotal = Crs_GetCachedNumCrssInSys ();
break;
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
NumInssTotal = Ins_GetCachedNumInssInCty (Gbl.Hierarchy.Cty.CtyCod);
NumCtrsTotal = Ctr_GetCachedNumCtrsInCty (Gbl.Hierarchy.Cty.CtyCod);
NumDegsTotal = Deg_GetCachedNumDegsInCty (Gbl.Hierarchy.Cty.CtyCod);
NumCrssTotal = Crs_GetCachedNumCrssInCty (Gbl.Hierarchy.Cty.CtyCod);
break;
- case Hie_Lvl_INS:
+ case HieLvl_INS:
NumCtrsTotal = Ctr_GetCachedNumCtrsInIns (Gbl.Hierarchy.Ins.InsCod);
NumDegsTotal = Deg_GetCachedNumDegsInIns (Gbl.Hierarchy.Ins.InsCod);
NumCrssTotal = Crs_GetCachedNumCrssInIns (Gbl.Hierarchy.Ins.InsCod);
break;
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
NumDegsTotal = Deg_GetCachedNumDegsInCtr (Gbl.Hierarchy.Ctr.CtrCod);
NumCrssTotal = Crs_GetCachedNumCrssInCtr (Gbl.Hierarchy.Ctr.CtrCod);
break;
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
NumCrssTotal = Crs_GetCachedNumCrssInDeg (Gbl.Hierarchy.Deg.DegCod);
break;
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
break;
default:
Err_WrongScopeExit ();
@@ -1080,7 +1080,7 @@ static void Fig_GetAndShowInssOrderedByNumCtrs (void)
/***** Get institutions ordered by number of centers *****/
switch (Gbl.Scope.Current)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
NumInss = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get institutions",
"SELECT InsCod," // row[0]
@@ -1089,7 +1089,7 @@ static void Fig_GetAndShowInssOrderedByNumCtrs (void)
" GROUP BY InsCod"
" ORDER BY N DESC");
break;
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
NumInss = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get institutions",
"SELECT ctr_centers.InsCod," // row[0]
@@ -1102,10 +1102,10 @@ static void Fig_GetAndShowInssOrderedByNumCtrs (void)
" ORDER BY N DESC",
Gbl.Hierarchy.Cty.CtyCod);
break;
- case Hie_Lvl_INS:
- case Hie_Lvl_CTR:
- case Hie_Lvl_DEG:
- case Hie_Lvl_CRS:
+ case HieLvl_INS:
+ case HieLvl_CTR:
+ case HieLvl_DEG:
+ case HieLvl_CRS:
NumInss = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get institutions",
"SELECT InsCod," // row[0]
@@ -1150,7 +1150,7 @@ static void Fig_GetAndShowInssOrderedByNumDegs (void)
/***** Get institutions ordered by number of degrees *****/
switch (Gbl.Scope.Current)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
NumInss = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get institutions",
"SELECT ctr_centers.InsCod," // row[0]
@@ -1161,7 +1161,7 @@ static void Fig_GetAndShowInssOrderedByNumDegs (void)
" GROUP BY InsCod"
" ORDER BY N DESC");
break;
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
NumInss = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get institutions",
"SELECT ctr_centers.InsCod," // row[0]
@@ -1176,10 +1176,10 @@ static void Fig_GetAndShowInssOrderedByNumDegs (void)
" ORDER BY N DESC",
Gbl.Hierarchy.Cty.CtyCod);
break;
- case Hie_Lvl_INS:
- case Hie_Lvl_CTR:
- case Hie_Lvl_DEG:
- case Hie_Lvl_CRS:
+ case HieLvl_INS:
+ case HieLvl_CTR:
+ case HieLvl_DEG:
+ case HieLvl_CRS:
NumInss = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get institutions",
"SELECT ctr_centers.InsCod," // row[0]
@@ -1226,7 +1226,7 @@ static void Fig_GetAndShowInssOrderedByNumCrss (void)
/***** Get institutions ordered by number of courses *****/
switch (Gbl.Scope.Current)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
NumInss = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get institutions",
"SELECT ctr_centers.InsCod," // row[0]
@@ -1239,7 +1239,7 @@ static void Fig_GetAndShowInssOrderedByNumCrss (void)
" GROUP BY InsCod"
" ORDER BY N DESC");
break;
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
NumInss = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get institutions",
"SELECT ctr_centers.InsCod," // row[0]
@@ -1256,10 +1256,10 @@ static void Fig_GetAndShowInssOrderedByNumCrss (void)
" ORDER BY N DESC",
Gbl.Hierarchy.Cty.CtyCod);
break;
- case Hie_Lvl_INS:
- case Hie_Lvl_CTR:
- case Hie_Lvl_DEG:
- case Hie_Lvl_CRS:
+ case HieLvl_INS:
+ case HieLvl_CTR:
+ case HieLvl_DEG:
+ case HieLvl_CRS:
NumInss = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get institutions",
"SELECT ctr_centers.InsCod," // row[0]
@@ -1308,7 +1308,7 @@ static void Fig_GetAndShowInssOrderedByNumUsrsInCrss (void)
/***** Get institutions ordered by number of users in courses *****/
switch (Gbl.Scope.Current)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
NumInss = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get institutions",
"SELECT ctr_centers.InsCod," // row[0]
@@ -1323,7 +1323,7 @@ static void Fig_GetAndShowInssOrderedByNumUsrsInCrss (void)
" GROUP BY InsCod"
" ORDER BY N DESC");
break;
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
NumInss = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get institutions",
"SELECT ctr_centers.InsCod," // row[0]
@@ -1342,10 +1342,10 @@ static void Fig_GetAndShowInssOrderedByNumUsrsInCrss (void)
" ORDER BY N DESC",
Gbl.Hierarchy.Cty.CtyCod);
break;
- case Hie_Lvl_INS:
- case Hie_Lvl_CTR:
- case Hie_Lvl_DEG:
- case Hie_Lvl_CRS:
+ case HieLvl_INS:
+ case HieLvl_CTR:
+ case HieLvl_DEG:
+ case HieLvl_CRS:
NumInss = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get institutions",
"SELECT ctr_centers.InsCod," // row[0]
@@ -1397,7 +1397,7 @@ static void Fig_GetAndShowInssOrderedByNumUsrsWhoClaimToBelongToThem (void)
/***** Get institutions ordered by number of users who claim to belong to them *****/
switch (Gbl.Scope.Current)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
NumInss = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get institutions",
"SELECT InsCod," // row[0]
@@ -1407,7 +1407,7 @@ static void Fig_GetAndShowInssOrderedByNumUsrsWhoClaimToBelongToThem (void)
" GROUP BY InsCod"
" ORDER BY N DESC");
break;
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
NumInss = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get institutions",
"SELECT usr_data.InsCod," // row[0]
@@ -1419,10 +1419,10 @@ static void Fig_GetAndShowInssOrderedByNumUsrsWhoClaimToBelongToThem (void)
" ORDER BY N DESC",
Gbl.Hierarchy.Cty.CtyCod);
break;
- case Hie_Lvl_INS:
- case Hie_Lvl_CTR:
- case Hie_Lvl_DEG:
- case Hie_Lvl_CRS:
+ case HieLvl_INS:
+ case HieLvl_CTR:
+ case HieLvl_DEG:
+ case HieLvl_CRS:
NumInss = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get institutions",
"SELECT InsCod," // row[0]
@@ -1539,7 +1539,7 @@ static void Fig_ShowInss (MYSQL_RES **mysql_res,unsigned NumInss,
HTM_BUTTON_SUBMIT_Begin (Ins.ShrtName,The_ClassFormLinkInBox[Gbl.Prefs.Theme],NULL);
if (Gbl.Usrs.Listing.WithPhotos)
{
- Lgo_DrawLogo (Hie_Lvl_INS,Ins.InsCod,Ins.ShrtName,
+ Lgo_DrawLogo (HieLvl_INS,Ins.InsCod,Ins.ShrtName,
40,NULL,true);
HTM_NBSP ();
}
@@ -1595,7 +1595,7 @@ static unsigned Fig_GetInsAndStat (struct Ins_Instit *Ins,MYSQL_RES *mysql_res)
static void Fig_GetAndShowDegreeTypesStats (void)
{
/***** Show statistic about number of degrees in each type of degree *****/
- DT_SeeDegreeTypesInStaTab ();
+ DegTyp_SeeDegreeTypesInStaTab ();
}
/*****************************************************************************/
@@ -1680,7 +1680,7 @@ static void Fig_GetAndShowFileBrowsersStats (void)
/**************** Get the size of a file zone from database ******************/
/*****************************************************************************/
-static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope,
+static void Fig_GetSizeOfFileZoneFromDB (HieLvl_Level_t Scope,
Brw_FileBrowser_t FileBrowser,
struct Fig_SizeOfFileZones *SizeOfFileZones)
{
@@ -1691,7 +1691,7 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope,
switch (Scope)
{
/* Scope = the whole platform */
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
switch (FileBrowser)
{
case Brw_UNKNOWN:
@@ -1807,7 +1807,7 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope,
}
break;
/* Scope = the current country */
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
switch (FileBrowser)
{
case Brw_UNKNOWN:
@@ -1985,7 +1985,7 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope,
}
break;
/* Scope = the current institution */
- case Hie_Lvl_INS:
+ case HieLvl_INS:
switch (FileBrowser)
{
case Brw_UNKNOWN:
@@ -2151,7 +2151,7 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope,
}
break;
/* Scope = the current center */
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
switch (FileBrowser)
{
case Brw_UNKNOWN:
@@ -2305,7 +2305,7 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope,
}
break;
/* Scope = the current degree */
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
switch (FileBrowser)
{
case Brw_UNKNOWN:
@@ -2447,7 +2447,7 @@ static void Fig_GetSizeOfFileZoneFromDB (Hie_Lvl_Level_t Scope,
}
break;
/* Scope = the current course */
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
switch (FileBrowser)
{
case Brw_UNKNOWN:
@@ -2962,7 +2962,7 @@ static void Fig_GetAndShowOERsStats (void)
/**************** Get the size of a file zone from database ******************/
/*****************************************************************************/
-static void Fig_GetNumberOfOERsFromDB (Hie_Lvl_Level_t Scope,
+static void Fig_GetNumberOfOERsFromDB (HieLvl_Level_t Scope,
Brw_License_t License,
unsigned long NumFiles[2])
{
@@ -2975,7 +2975,7 @@ static void Fig_GetNumberOfOERsFromDB (Hie_Lvl_Level_t Scope,
/***** Get the size of a file browser *****/
switch (Scope)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
NumRows = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get number of OERs",
"SELECT Public," // row[0]
@@ -2985,7 +2985,7 @@ static void Fig_GetNumberOfOERsFromDB (Hie_Lvl_Level_t Scope,
" GROUP BY Public",
(unsigned) License);
break;
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
NumRows = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get number of OERs",
"SELECT brw_files.Public," // row[0]
@@ -3008,7 +3008,7 @@ static void Fig_GetNumberOfOERsFromDB (Hie_Lvl_Level_t Scope,
(unsigned) Brw_ADMI_SHR_CRS,
(unsigned) License);
break;
- case Hie_Lvl_INS:
+ case HieLvl_INS:
NumRows = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get number of OERs",
"SELECT brw_files.Public," // row[0]
@@ -3029,7 +3029,7 @@ static void Fig_GetNumberOfOERsFromDB (Hie_Lvl_Level_t Scope,
(unsigned) Brw_ADMI_SHR_CRS,
(unsigned) License);
break;
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
NumRows = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get number of OERs",
"SELECT brw_files.Public," // row[0]
@@ -3048,7 +3048,7 @@ static void Fig_GetNumberOfOERsFromDB (Hie_Lvl_Level_t Scope,
(unsigned) Brw_ADMI_SHR_CRS,
(unsigned) License);
break;
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
NumRows = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get number of OERs",
"SELECT brw_files.Public," // row[0]
@@ -3065,7 +3065,7 @@ static void Fig_GetNumberOfOERsFromDB (Hie_Lvl_Level_t Scope,
(unsigned) Brw_ADMI_SHR_CRS,
(unsigned) License);
break;
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
NumRows = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get number of OERs",
"SELECT Public," // row[0]
@@ -3589,7 +3589,7 @@ static void Fig_GetAndShowTimelineActivityStats (void)
{
switch (Gbl.Scope.Current)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
NumRows = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get number of social notes",
"SELECT COUNT(*)," // row[0]
@@ -3597,7 +3597,7 @@ static void Fig_GetAndShowTimelineActivityStats (void)
" FROM tml_notes WHERE NoteType=%u",
NoteType);
break;
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
NumRows = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get number of social notes",
"SELECT COUNT(DISTINCT tml_notes.NotCod)," // row[0]
@@ -3618,7 +3618,7 @@ static void Fig_GetAndShowTimelineActivityStats (void)
Gbl.Hierarchy.Cty.CtyCod,
(unsigned) NoteType);
break;
- case Hie_Lvl_INS:
+ case HieLvl_INS:
NumRows = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get number of social notes",
"SELECT COUNT(DISTINCT tml_notes.NotCod)," // row[0]
@@ -3637,7 +3637,7 @@ static void Fig_GetAndShowTimelineActivityStats (void)
Gbl.Hierarchy.Ins.InsCod,
(unsigned) NoteType);
break;
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
NumRows = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get number of social notes",
"SELECT COUNT(DISTINCT tml_notes.NotCod)," // row[0]
@@ -3654,7 +3654,7 @@ static void Fig_GetAndShowTimelineActivityStats (void)
Gbl.Hierarchy.Ctr.CtrCod,
(unsigned) NoteType);
break;
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
NumRows = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get number of social notes",
"SELECT COUNT(DISTINCT tml_notes.NotCod)," // row[0]
@@ -3669,7 +3669,7 @@ static void Fig_GetAndShowTimelineActivityStats (void)
Gbl.Hierarchy.Deg.DegCod,
(unsigned) NoteType);
break;
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
NumRows = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get number of social notes",
"SELECT COUNT(DISTINCT tml_notes.NotCod)," // row[0]
@@ -3741,14 +3741,14 @@ static void Fig_GetAndShowTimelineActivityStats (void)
/***** Get and write totals *****/
switch (Gbl.Scope.Current)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
NumRows = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get number of social notes",
"SELECT COUNT(*)," // row[0]
"COUNT(DISTINCT UsrCod)" // row[1]
" FROM tml_notes");
break;
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
NumRows = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get number of social notes",
"SELECT COUNT(DISTINCT tml_notes.NotCod)," // row[0]
@@ -3767,7 +3767,7 @@ static void Fig_GetAndShowTimelineActivityStats (void)
" AND crs_users.UsrCod=tml_notes.UsrCod",
Gbl.Hierarchy.Cty.CtyCod);
break;
- case Hie_Lvl_INS:
+ case HieLvl_INS:
NumRows = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get number of social notes",
"SELECT COUNT(DISTINCT tml_notes.NotCod)," // row[0]
@@ -3784,7 +3784,7 @@ static void Fig_GetAndShowTimelineActivityStats (void)
" AND crs_users.UsrCod=tml_notes.UsrCod",
Gbl.Hierarchy.Ins.InsCod);
break;
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
NumRows = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get number of social notes",
"SELECT COUNT(DISTINCT tml_notes.NotCod)," // row[0]
@@ -3799,7 +3799,7 @@ static void Fig_GetAndShowTimelineActivityStats (void)
" AND crs_users.UsrCod=tml_notes.UsrCod",
Gbl.Hierarchy.Ctr.CtrCod);
break;
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
NumRows = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get number of social notes",
"SELECT COUNT(DISTINCT tml_notes.NotCod)," // row[0]
@@ -3812,7 +3812,7 @@ static void Fig_GetAndShowTimelineActivityStats (void)
" AND crs_users.UsrCod=tml_notes.UsrCod",
Gbl.Hierarchy.Deg.DegCod);
break;
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
NumRows = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get number of social notes",
"SELECT COUNT(DISTINCT tml_notes.NotCod)," // row[0]
@@ -3930,14 +3930,14 @@ static void Fig_GetAndShowFollowStats (void)
{
switch (Gbl.Scope.Current)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
NumUsrs = (unsigned)
DB_QueryCOUNT ("can not get the total number of following/followers",
"SELECT COUNT(DISTINCT %s)"
" FROM usr_follow",
FieldDB[Fol]);
break;
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
NumUsrs = (unsigned)
DB_QueryCOUNT ("can not get the total number of following/followers",
"SELECT COUNT(DISTINCT usr_follow.%s)"
@@ -3957,7 +3957,7 @@ static void Fig_GetAndShowFollowStats (void)
Gbl.Hierarchy.Cty.CtyCod,
FieldDB[Fol]);
break;
- case Hie_Lvl_INS:
+ case HieLvl_INS:
NumUsrs = (unsigned)
DB_QueryCOUNT ("can not get the total number of following/followers",
"SELECT COUNT(DISTINCT usr_follow.%s)"
@@ -3975,7 +3975,7 @@ static void Fig_GetAndShowFollowStats (void)
Gbl.Hierarchy.Ins.InsCod,
FieldDB[Fol]);
break;
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
NumUsrs = (unsigned)
DB_QueryCOUNT ("can not get the total number of following/followers",
"SELECT COUNT(DISTINCT usr_follow.%s)"
@@ -3991,7 +3991,7 @@ static void Fig_GetAndShowFollowStats (void)
Gbl.Hierarchy.Ctr.CtrCod,
FieldDB[Fol]);
break;
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
NumUsrs = (unsigned)
DB_QueryCOUNT ("can not get the total number of following/followers",
"SELECT COUNT(DISTINCT usr_follow.%s)"
@@ -4005,7 +4005,7 @@ static void Fig_GetAndShowFollowStats (void)
Gbl.Hierarchy.Deg.DegCod,
FieldDB[Fol]);
break;
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
NumUsrs = (unsigned)
DB_QueryCOUNT ("can not get the total number of following/followers",
"SELECT COUNT(DISTINCT usr_follow.%s)"
@@ -4051,7 +4051,7 @@ static void Fig_GetAndShowFollowStats (void)
{
switch (Gbl.Scope.Current)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
Average = DB_QuerySELECTDouble ("can not get number of questions"
" per survey",
"SELECT AVG(N)"
@@ -4061,7 +4061,7 @@ static void Fig_GetAndShowFollowStats (void)
FieldDB[Fol],
FieldDB[1 - Fol]);
break;
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
Average = DB_QuerySELECTDouble ("can not get number of questions"
" per survey",
"SELECT AVG(N)"
@@ -4084,7 +4084,7 @@ static void Fig_GetAndShowFollowStats (void)
FieldDB[Fol],
FieldDB[1 - Fol]);
break;
- case Hie_Lvl_INS:
+ case HieLvl_INS:
Average = DB_QuerySELECTDouble ("can not get number of questions"
" per survey",
"SELECT AVG(N)"
@@ -4105,7 +4105,7 @@ static void Fig_GetAndShowFollowStats (void)
FieldDB[Fol],
FieldDB[1 - Fol]);
break;
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
Average = DB_QuerySELECTDouble ("can not get number of questions"
" per survey",
"SELECT AVG(N)"
@@ -4124,7 +4124,7 @@ static void Fig_GetAndShowFollowStats (void)
FieldDB[Fol],
FieldDB[1 - Fol]);
break;
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
Average = DB_QuerySELECTDouble ("can not get number of questions"
" per survey",
"SELECT AVG(N)"
@@ -4141,7 +4141,7 @@ static void Fig_GetAndShowFollowStats (void)
FieldDB[Fol],
FieldDB[1 - Fol]);
break;
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
Average = DB_QuerySELECTDouble ("can not get number of questions"
" per survey",
"SELECT AVG(N)"
@@ -4232,7 +4232,7 @@ static void Fig_GetAndShowForumStats (void)
/***** Write a row for each type of forum *****/
switch (Gbl.Scope.Current)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
Fig_ShowStatOfAForumType (For_FORUM_GLOBAL_USRS,-1L,-1L,-1L,-1L,-1L,&FiguresForum);
Fig_ShowStatOfAForumType (For_FORUM_GLOBAL_TCHS,-1L,-1L,-1L,-1L,-1L,&FiguresForum);
Fig_ShowStatOfAForumType (For_FORUM__SWAD__USRS,-1L,-1L,-1L,-1L,-1L,&FiguresForum);
@@ -4246,7 +4246,7 @@ static void Fig_GetAndShowForumStats (void)
Fig_ShowStatOfAForumType (For_FORUM_COURSE_USRS,-1L,-1L,-1L,-1L,-1L,&FiguresForum);
Fig_ShowStatOfAForumType (For_FORUM_COURSE_TCHS,-1L,-1L,-1L,-1L,-1L,&FiguresForum);
break;
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
Fig_ShowStatOfAForumType (For_FORUM_INSTIT_USRS,Gbl.Hierarchy.Cty.CtyCod,-1L,-1L,-1L,-1L,&FiguresForum);
Fig_ShowStatOfAForumType (For_FORUM_INSTIT_TCHS,Gbl.Hierarchy.Cty.CtyCod,-1L,-1L,-1L,-1L,&FiguresForum);
Fig_ShowStatOfAForumType (For_FORUM_CENTER_USRS,Gbl.Hierarchy.Cty.CtyCod,-1L,-1L,-1L,-1L,&FiguresForum);
@@ -4256,7 +4256,7 @@ static void Fig_GetAndShowForumStats (void)
Fig_ShowStatOfAForumType (For_FORUM_COURSE_USRS,Gbl.Hierarchy.Cty.CtyCod,-1L,-1L,-1L,-1L,&FiguresForum);
Fig_ShowStatOfAForumType (For_FORUM_COURSE_TCHS,Gbl.Hierarchy.Cty.CtyCod,-1L,-1L,-1L,-1L,&FiguresForum);
break;
- case Hie_Lvl_INS:
+ case HieLvl_INS:
Fig_ShowStatOfAForumType (For_FORUM_INSTIT_USRS,-1L,Gbl.Hierarchy.Ins.InsCod,-1L,-1L,-1L,&FiguresForum);
Fig_ShowStatOfAForumType (For_FORUM_INSTIT_TCHS,-1L,Gbl.Hierarchy.Ins.InsCod,-1L,-1L,-1L,&FiguresForum);
Fig_ShowStatOfAForumType (For_FORUM_CENTER_USRS,-1L,Gbl.Hierarchy.Ins.InsCod,-1L,-1L,-1L,&FiguresForum);
@@ -4266,7 +4266,7 @@ static void Fig_GetAndShowForumStats (void)
Fig_ShowStatOfAForumType (For_FORUM_COURSE_USRS,-1L,Gbl.Hierarchy.Ins.InsCod,-1L,-1L,-1L,&FiguresForum);
Fig_ShowStatOfAForumType (For_FORUM_COURSE_TCHS,-1L,Gbl.Hierarchy.Ins.InsCod,-1L,-1L,-1L,&FiguresForum);
break;
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
Fig_ShowStatOfAForumType (For_FORUM_CENTER_USRS,-1L,-1L,Gbl.Hierarchy.Ctr.CtrCod,-1L,-1L,&FiguresForum);
Fig_ShowStatOfAForumType (For_FORUM_CENTER_TCHS,-1L,-1L,Gbl.Hierarchy.Ctr.CtrCod,-1L,-1L,&FiguresForum);
Fig_ShowStatOfAForumType (For_FORUM_DEGREE_USRS,-1L,-1L,Gbl.Hierarchy.Ctr.CtrCod,-1L,-1L,&FiguresForum);
@@ -4274,13 +4274,13 @@ static void Fig_GetAndShowForumStats (void)
Fig_ShowStatOfAForumType (For_FORUM_COURSE_USRS,-1L,-1L,Gbl.Hierarchy.Ctr.CtrCod,-1L,-1L,&FiguresForum);
Fig_ShowStatOfAForumType (For_FORUM_COURSE_TCHS,-1L,-1L,Gbl.Hierarchy.Ctr.CtrCod,-1L,-1L,&FiguresForum);
break;
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
Fig_ShowStatOfAForumType (For_FORUM_DEGREE_USRS,-1L,-1L,-1L,Gbl.Hierarchy.Deg.DegCod,-1L,&FiguresForum);
Fig_ShowStatOfAForumType (For_FORUM_DEGREE_TCHS,-1L,-1L,-1L,Gbl.Hierarchy.Deg.DegCod,-1L,&FiguresForum);
Fig_ShowStatOfAForumType (For_FORUM_COURSE_USRS,-1L,-1L,-1L,Gbl.Hierarchy.Deg.DegCod,-1L,&FiguresForum);
Fig_ShowStatOfAForumType (For_FORUM_COURSE_TCHS,-1L,-1L,-1L,Gbl.Hierarchy.Deg.DegCod,-1L,&FiguresForum);
break;
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
Fig_ShowStatOfAForumType (For_FORUM_COURSE_USRS,-1L,-1L,-1L,-1L,Gbl.Hierarchy.Crs.CrsCod,&FiguresForum);
Fig_ShowStatOfAForumType (For_FORUM_COURSE_TCHS,-1L,-1L,-1L,-1L,Gbl.Hierarchy.Crs.CrsCod,&FiguresForum);
break;
@@ -4590,7 +4590,7 @@ static void Fig_GetAndShowNumUsrsPerNotifyEvent (void)
/* Get number of notifications by email from database */
switch (Gbl.Scope.Current)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
DB_QuerySELECT (&mysql_res,"can not get the number"
" of notifications by email",
"SELECT SUM(NumEvents)," // row[0]
@@ -4599,7 +4599,7 @@ static void Fig_GetAndShowNumUsrsPerNotifyEvent (void)
" WHERE NotifyEvent=%u",
(unsigned) NotifyEvent);
break;
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
DB_QuerySELECT (&mysql_res,"can not get the number"
" of notifications by email",
"SELECT SUM(sta_notifications.NumEvents)," // row[0]
@@ -4616,7 +4616,7 @@ static void Fig_GetAndShowNumUsrsPerNotifyEvent (void)
Gbl.Hierarchy.Cty.CtyCod,
(unsigned) NotifyEvent);
break;
- case Hie_Lvl_INS:
+ case HieLvl_INS:
DB_QuerySELECT (&mysql_res,"can not get the number"
" of notifications by email",
"SELECT SUM(sta_notifications.NumEvents)," // row[0]
@@ -4631,7 +4631,7 @@ static void Fig_GetAndShowNumUsrsPerNotifyEvent (void)
Gbl.Hierarchy.Ins.InsCod,
(unsigned) NotifyEvent);
break;
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
DB_QuerySELECT (&mysql_res,"can not get the number"
" of notifications by email",
"SELECT SUM(sta_notifications.NumEvents)," // row[0]
@@ -4644,7 +4644,7 @@ static void Fig_GetAndShowNumUsrsPerNotifyEvent (void)
Gbl.Hierarchy.Ctr.CtrCod,
(unsigned) NotifyEvent);
break;
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
DB_QuerySELECT (&mysql_res,"can not get the number"
" of notifications by email",
"SELECT SUM(NumEvents)," // row[0]
@@ -4655,7 +4655,7 @@ static void Fig_GetAndShowNumUsrsPerNotifyEvent (void)
Gbl.Hierarchy.Deg.DegCod,
(unsigned) NotifyEvent);
break;
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
DB_QuerySELECT (&mysql_res,"can not get the number"
" of notifications by email",
"SELECT SUM(NumEvents)," // row[0]
@@ -5844,14 +5844,14 @@ unsigned Fig_GetNumUsrsWhoChoseAnOption (const char *SubQuery)
this privacy option from database *****/
switch (Gbl.Scope.Current)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
NumUsrs = (unsigned)
DB_QueryCOUNT ("can not get the number of users who have chosen an option",
"SELECT COUNT(*)"
" FROM usr_data WHERE %s",
SubQuery);
break;
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
NumUsrs = (unsigned)
DB_QueryCOUNT ("can not get the number of users who have chosen an option",
"SELECT COUNT(DISTINCT usr_data.UsrCod)"
@@ -5870,7 +5870,7 @@ unsigned Fig_GetNumUsrsWhoChoseAnOption (const char *SubQuery)
" AND %s",
Gbl.Hierarchy.Cty.CtyCod,SubQuery);
break;
- case Hie_Lvl_INS:
+ case HieLvl_INS:
NumUsrs = (unsigned)
DB_QueryCOUNT ("can not get the number of users who have chosen an option",
"SELECT COUNT(DISTINCT usr_data.UsrCod)"
@@ -5887,7 +5887,7 @@ unsigned Fig_GetNumUsrsWhoChoseAnOption (const char *SubQuery)
" AND %s",
Gbl.Hierarchy.Ins.InsCod,SubQuery);
break;
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
NumUsrs = (unsigned)
DB_QueryCOUNT ("can not get the number of users who have chosen an option",
"SELECT COUNT(DISTINCT usr_data.UsrCod)"
@@ -5902,7 +5902,7 @@ unsigned Fig_GetNumUsrsWhoChoseAnOption (const char *SubQuery)
" AND %s",
Gbl.Hierarchy.Ctr.CtrCod,SubQuery);
break;
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
NumUsrs = (unsigned)
DB_QueryCOUNT ("can not get the number of users who have chosen an option",
"SELECT COUNT(DISTINCT usr_data.UsrCod)"
@@ -5915,7 +5915,7 @@ unsigned Fig_GetNumUsrsWhoChoseAnOption (const char *SubQuery)
" AND %s",
Gbl.Hierarchy.Deg.DegCod,SubQuery);
break;
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
NumUsrs = (unsigned)
DB_QueryCOUNT ("can not get the number of users who have chosen an option",
"SELECT COUNT(DISTINCT usr_data.UsrCod)"
diff --git a/swad_figure.h b/swad_figure.h
index 6b33ce58..20ded141 100644
--- a/swad_figure.h
+++ b/swad_figure.h
@@ -74,7 +74,7 @@ typedef enum
struct Fig_Figures
{
- Hie_Lvl_Level_t Scope;
+ HieLvl_Level_t Scope;
Fig_FigureType_t FigureType;
};
diff --git a/swad_figure_cache.c b/swad_figure_cache.c
index 54d6de64..a4a91231 100644
--- a/swad_figure_cache.c
+++ b/swad_figure_cache.c
@@ -57,7 +57,7 @@
/*****************************************************************************/
void FigCch_UpdateFigureIntoCache (FigCch_FigureCached_t Figure,
- Hie_Lvl_Level_t Scope,long Cod,
+ HieLvl_Level_t Scope,long Cod,
FigCch_Type_t Type,const void *ValuePtr)
{
/***** Trivial check *****/
@@ -100,19 +100,19 @@ void FigCch_UpdateFigureIntoCache (FigCch_FigureCached_t Figure,
// Return true is figure is found (if figure is cached and recently updated)
bool FigCch_GetFigureFromCache (FigCch_FigureCached_t Figure,
- Hie_Lvl_Level_t Scope,long Cod,
+ HieLvl_Level_t Scope,long Cod,
FigCch_Type_t Type,void *ValuePtr)
{
/* The higher the level, the longer a value remains cached */
- time_t TimeCached[Hie_Lvl_NUM_LEVELS] = // Time in seconds
+ time_t TimeCached[HieLvl_NUM_LEVELS] = // Time in seconds
{
- [Hie_Lvl_UNK] = (time_t) ( 0), // Unknown
- [Hie_Lvl_SYS] = (time_t) (24UL * 60UL * 60UL), // System
- [Hie_Lvl_CTY] = (time_t) (12UL * 60UL * 60UL), // Country
- [Hie_Lvl_INS] = (time_t) ( 6UL * 60UL * 60UL), // Institution
- [Hie_Lvl_CTR] = (time_t) ( 3UL * 60UL * 60UL), // Center
- [Hie_Lvl_DEG] = (time_t) ( 1UL * 60UL * 60UL), // Degree
- [Hie_Lvl_CRS] = (time_t) ( 60UL), // Course
+ [HieLvl_UNK] = (time_t) ( 0), // Unknown
+ [HieLvl_SYS] = (time_t) (24UL * 60UL * 60UL), // System
+ [HieLvl_CTY] = (time_t) (12UL * 60UL * 60UL), // Country
+ [HieLvl_INS] = (time_t) ( 6UL * 60UL * 60UL), // Institution
+ [HieLvl_CTR] = (time_t) ( 3UL * 60UL * 60UL), // Center
+ [HieLvl_DEG] = (time_t) ( 1UL * 60UL * 60UL), // Degree
+ [HieLvl_CRS] = (time_t) ( 60UL), // Course
};
static const char *Field[FigCch_NUM_TYPES] =
{
@@ -136,7 +136,7 @@ bool FigCch_GetFigureFromCache (FigCch_FigureCached_t Figure,
/***** Trivial check *****/
if (Figure == FigCch_UNKNOWN || // Unknown figure
- Scope == Hie_Lvl_UNK) // Unknown scope
+ Scope == HieLvl_UNK) // Unknown scope
return false;
/***** Get figure's value if cached and recent *****/
diff --git a/swad_figure_cache.h b/swad_figure_cache.h
index 6af2737a..9fcb0a54 100644
--- a/swad_figure_cache.h
+++ b/swad_figure_cache.h
@@ -111,10 +111,10 @@ typedef enum
/*****************************************************************************/
void FigCch_UpdateFigureIntoCache (FigCch_FigureCached_t Figure,
- Hie_Lvl_Level_t Scope,long Cod,
+ HieLvl_Level_t Scope,long Cod,
FigCch_Type_t Type,const void *ValuePtr);
bool FigCch_GetFigureFromCache (FigCch_FigureCached_t Figure,
- Hie_Lvl_Level_t Scope,long Cod,
+ HieLvl_Level_t Scope,long Cod,
FigCch_Type_t Type,void *ValuePtr);
#endif
diff --git a/swad_file_browser.c b/swad_file_browser.c
index 8beb8337..d650c9b8 100644
--- a/swad_file_browser.c
+++ b/swad_file_browser.c
@@ -49,6 +49,7 @@
#include "swad_form.h"
#include "swad_global.h"
#include "swad_hierarchy.h"
+#include "swad_hierarchy_level.h"
#include "swad_HTML.h"
#include "swad_ID.h"
#include "swad_logo.h"
@@ -12054,7 +12055,7 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row)
HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (InsShortName),
"BT_LINK LT DAT",NULL);
Hie_FreeGoToMsg ();
- Lgo_DrawLogo (Hie_Lvl_INS,InsCod,InsShortName,20,"BT_LINK LT",true);
+ Lgo_DrawLogo (HieLvl_INS,InsCod,InsShortName,20,"BT_LINK LT",true);
HTM_TxtF (" %s",InsShortName);
HTM_BUTTON_End ();
Frm_EndForm ();
@@ -12070,7 +12071,7 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row)
HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (CtrShortName),
"BT_LINK LT DAT",NULL);
Hie_FreeGoToMsg ();
- Lgo_DrawLogo (Hie_Lvl_CTR,CtrCod,CtrShortName,20,"LT",true);
+ Lgo_DrawLogo (HieLvl_CTR,CtrCod,CtrShortName,20,"LT",true);
HTM_TxtF (" %s",CtrShortName);
HTM_BUTTON_End ();
Frm_EndForm ();
@@ -12086,7 +12087,7 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row)
HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (DegShortName),
"BT_LINK LT DAT",NULL);
Hie_FreeGoToMsg ();
- Lgo_DrawLogo (Hie_Lvl_DEG,DegCod,DegShortName,20,"LT",true);
+ Lgo_DrawLogo (HieLvl_DEG,DegCod,DegShortName,20,"LT",true);
HTM_TxtF (" %s",DegShortName);
HTM_BUTTON_End ();
Frm_EndForm ();
diff --git a/swad_follow_database.c b/swad_follow_database.c
index d9eeee08..903dee82 100644
--- a/swad_follow_database.c
+++ b/swad_follow_database.c
@@ -30,6 +30,7 @@
#include "swad_follow.h"
#include "swad_follow_database.h"
#include "swad_global.h"
+#include "swad_hierarchy_level.h"
/*****************************************************************************/
/****************************** Public constants *****************************/
@@ -358,7 +359,7 @@ unsigned Fol_DB_GetRankingFollowers (MYSQL_RES **mysql_res)
/***** Get ranking from database *****/
switch (Gbl.Scope.Current)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get ranking",
"SELECT FollowedCod," // row[0]
@@ -368,7 +369,7 @@ unsigned Fol_DB_GetRankingFollowers (MYSQL_RES **mysql_res)
" ORDER BY N DESC,"
"FollowedCod"
" LIMIT 100");
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get ranking",
"SELECT usr_follow.FollowedCod," // row[0]
@@ -390,7 +391,7 @@ unsigned Fol_DB_GetRankingFollowers (MYSQL_RES **mysql_res)
"usr_follow.FollowedCod"
" LIMIT 100",
Gbl.Hierarchy.Cty.CtyCod);
- case Hie_Lvl_INS:
+ case HieLvl_INS:
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get ranking",
"SELECT usr_follow.FollowedCod," // row[0]
@@ -410,7 +411,7 @@ unsigned Fol_DB_GetRankingFollowers (MYSQL_RES **mysql_res)
"usr_follow.FollowedCod"
" LIMIT 100",
Gbl.Hierarchy.Ins.InsCod);
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get ranking",
"SELECT usr_follow.FollowedCod," // row[0]
@@ -428,7 +429,7 @@ unsigned Fol_DB_GetRankingFollowers (MYSQL_RES **mysql_res)
"usr_follow.FollowedCod"
" LIMIT 100",
Gbl.Hierarchy.Ctr.CtrCod);
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get ranking",
"SELECT usr_follow.FollowedCod," // row[0]
@@ -444,7 +445,7 @@ unsigned Fol_DB_GetRankingFollowers (MYSQL_RES **mysql_res)
"usr_follow.FollowedCod"
" LIMIT 100",
Gbl.Hierarchy.Deg.DegCod);
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get ranking",
"SELECT usr_follow.FollowedCod," // row[0]
diff --git a/swad_form.c b/swad_form.c
index 45faed38..382e1878 100644
--- a/swad_form.c
+++ b/swad_form.c
@@ -32,6 +32,7 @@
#include "swad_error.h"
#include "swad_form.h"
#include "swad_global.h"
+#include "swad_hierarchy_level.h"
#include "swad_HTML.h"
/*****************************************************************************/
@@ -200,27 +201,27 @@ void Frm_SetParamsForm (char ParamsStr[Frm_MAX_BYTES_PARAMS_STR + 1],Act_Action_
it is necessary to send a parameter with course code */
switch (Gbl.Hierarchy.Level)
{
- case Hie_Lvl_CTY: // Country
+ case HieLvl_CTY: // Country
snprintf (ParamLocation,sizeof (ParamLocation),
"",
Gbl.Hierarchy.Cty.CtyCod);
break;
- case Hie_Lvl_INS: // Institution
+ case HieLvl_INS: // Institution
snprintf (ParamLocation,sizeof (ParamLocation),
"",
Gbl.Hierarchy.Ins.InsCod);
break;
- case Hie_Lvl_CTR: // Center
+ case HieLvl_CTR: // Center
snprintf (ParamLocation,sizeof (ParamLocation),
"",
Gbl.Hierarchy.Ctr.CtrCod);
break;
- case Hie_Lvl_DEG: // Degree
+ case HieLvl_DEG: // Degree
snprintf (ParamLocation,sizeof (ParamLocation),
"",
Gbl.Hierarchy.Deg.DegCod);
break;
- case Hie_Lvl_CRS: // Course
+ case HieLvl_CRS: // Course
snprintf (ParamLocation,sizeof (ParamLocation),
"",
Gbl.Hierarchy.Crs.CrsCod);
diff --git a/swad_forum.c b/swad_forum.c
index 9666106e..23c0b1c2 100644
--- a/swad_forum.c
+++ b/swad_forum.c
@@ -2141,15 +2141,15 @@ static void For_WriteLinkToForum (const struct For_Forums *Forums,
break;
case For_FORUM_INSTIT_USRS:
case For_FORUM_INSTIT_TCHS:
- Lgo_DrawLogo (Hie_Lvl_INS,Forum->Location,ForumName,16,NULL,true);
+ Lgo_DrawLogo (HieLvl_INS,Forum->Location,ForumName,16,NULL,true);
break;
case For_FORUM_CENTER_USRS:
case For_FORUM_CENTER_TCHS:
- Lgo_DrawLogo (Hie_Lvl_CTR,Forum->Location,ForumName,16,NULL,true);
+ Lgo_DrawLogo (HieLvl_CTR,Forum->Location,ForumName,16,NULL,true);
break;
case For_FORUM_DEGREE_USRS:
case For_FORUM_DEGREE_TCHS:
- Lgo_DrawLogo (Hie_Lvl_DEG,Forum->Location,ForumName,16,NULL,true);
+ Lgo_DrawLogo (HieLvl_DEG,Forum->Location,ForumName,16,NULL,true);
break;
case For_FORUM_COURSE_USRS:
case For_FORUM_COURSE_TCHS:
@@ -4690,21 +4690,21 @@ void For_DB_RemoveUsrFromThrClipboard (long UsrCod)
/********** Remove all the threads and posts in forums of a degree ***********/
/*****************************************************************************/
-void For_RemoveForums (Hie_Lvl_Level_t Scope,long ForumLocation)
+void For_RemoveForums (HieLvl_Level_t Scope,long ForumLocation)
{
static const struct
{
For_ForumType_t Usrs;
For_ForumType_t Tchs;
- } ForumType[Hie_Lvl_NUM_LEVELS] =
+ } ForumType[HieLvl_NUM_LEVELS] =
{
- [Hie_Lvl_UNK] = {For_FORUM_GLOBAL_USRS,For_FORUM_GLOBAL_TCHS}, // No forums for this scope
- [Hie_Lvl_SYS] = {For_FORUM_GLOBAL_USRS,For_FORUM_GLOBAL_TCHS}, // Not removable
- [Hie_Lvl_CTY] = {For_FORUM_GLOBAL_USRS,For_FORUM_GLOBAL_TCHS}, // No forums for this scope
- [Hie_Lvl_INS] = {For_FORUM_INSTIT_USRS,For_FORUM_INSTIT_TCHS},
- [Hie_Lvl_CTR] = {For_FORUM_CENTER_USRS,For_FORUM_CENTER_TCHS},
- [Hie_Lvl_DEG] = {For_FORUM_DEGREE_USRS,For_FORUM_DEGREE_TCHS},
- [Hie_Lvl_CRS] = {For_FORUM_COURSE_USRS,For_FORUM_COURSE_TCHS},
+ [HieLvl_UNK] = {For_FORUM_GLOBAL_USRS,For_FORUM_GLOBAL_TCHS}, // No forums for this scope
+ [HieLvl_SYS] = {For_FORUM_GLOBAL_USRS,For_FORUM_GLOBAL_TCHS}, // Not removable
+ [HieLvl_CTY] = {For_FORUM_GLOBAL_USRS,For_FORUM_GLOBAL_TCHS}, // No forums for this scope
+ [HieLvl_INS] = {For_FORUM_INSTIT_USRS,For_FORUM_INSTIT_TCHS},
+ [HieLvl_CTR] = {For_FORUM_CENTER_USRS,For_FORUM_CENTER_TCHS},
+ [HieLvl_DEG] = {For_FORUM_DEGREE_USRS,For_FORUM_DEGREE_TCHS},
+ [HieLvl_CRS] = {For_FORUM_COURSE_USRS,For_FORUM_COURSE_TCHS},
};
/***** Remove disabled posts *****/
diff --git a/swad_forum.h b/swad_forum.h
index d42e1887..438f5865 100644
--- a/swad_forum.h
+++ b/swad_forum.h
@@ -159,6 +159,6 @@ void For_CutThread (void);
void For_PasteThread (void);
void For_DB_RemoveUsrFromThrClipboard (long UsrCod);
-void For_RemoveForums (Hie_Lvl_Level_t Scope,long ForumLocation);
+void For_RemoveForums (HieLvl_Level_t Scope,long ForumLocation);
#endif
diff --git a/swad_game.c b/swad_game.c
index c90741ba..afc1757b 100644
--- a/swad_game.c
+++ b/swad_game.c
@@ -39,6 +39,7 @@
#include "swad_form.h"
#include "swad_game.h"
#include "swad_global.h"
+#include "swad_hierarchy_level.h"
#include "swad_HTML.h"
#include "swad_match.h"
#include "swad_match_result.h"
@@ -2620,17 +2621,17 @@ void Gam_RequestNewMatch (void)
/*****************************************************************************/
// Returns the number of courses with games in this location
-unsigned Gam_DB_GetNumCoursesWithGames (Hie_Lvl_Level_t Scope)
+unsigned Gam_DB_GetNumCoursesWithGames (HieLvl_Level_t Scope)
{
/***** Get number of courses with games from database *****/
switch (Scope)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
return (unsigned)
DB_QueryCOUNT ("can not get number of courses with games",
"SELECT COUNT(DISTINCT CrsCod)"
" FROM gam_games");
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
return (unsigned)
DB_QueryCOUNT ("can not get number of courses with games",
"SELECT COUNT(DISTINCT gam_games.CrsCod)"
@@ -2645,7 +2646,7 @@ unsigned Gam_DB_GetNumCoursesWithGames (Hie_Lvl_Level_t Scope)
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=gam_games.CrsCod",
Gbl.Hierarchy.Ins.InsCod);
- case Hie_Lvl_INS:
+ case HieLvl_INS:
return (unsigned)
DB_QueryCOUNT ("can not get number of courses with games",
"SELECT COUNT(DISTINCT gam_games.CrsCod)"
@@ -2658,7 +2659,7 @@ unsigned Gam_DB_GetNumCoursesWithGames (Hie_Lvl_Level_t Scope)
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=gam_games.CrsCod",
Gbl.Hierarchy.Ins.InsCod);
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
return (unsigned)
DB_QueryCOUNT ("can not get number of courses with games",
"SELECT COUNT(DISTINCT gam_games.CrsCod)"
@@ -2669,7 +2670,7 @@ unsigned Gam_DB_GetNumCoursesWithGames (Hie_Lvl_Level_t Scope)
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=gam_games.CrsCod",
Gbl.Hierarchy.Ctr.CtrCod);
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
return (unsigned)
DB_QueryCOUNT ("can not get number of courses with games",
"SELECT COUNT(DISTINCT gam_games.CrsCod)"
@@ -2678,7 +2679,7 @@ unsigned Gam_DB_GetNumCoursesWithGames (Hie_Lvl_Level_t Scope)
" WHERE crs_courses.DegCod=%ld"
" AND crs_courses.CrsCod=gam_games.CrsCod",
Gbl.Hierarchy.Deg.DegCod);
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
return (unsigned)
DB_QueryCOUNT ("can not get number of courses with games",
"SELECT COUNT(DISTINCT CrsCod)"
@@ -2695,17 +2696,17 @@ unsigned Gam_DB_GetNumCoursesWithGames (Hie_Lvl_Level_t Scope)
/*****************************************************************************/
// Returns the number of games in this location
-unsigned Gam_DB_GetNumGames (Hie_Lvl_Level_t Scope)
+unsigned Gam_DB_GetNumGames (HieLvl_Level_t Scope)
{
/***** Get number of games from database *****/
switch (Scope)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
return (unsigned)
DB_QueryCOUNT ("can not get number of games",
"SELECT COUNT(*)"
" FROM gam_games");
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
return (unsigned)
DB_QueryCOUNT ("can not get number of games",
"SELECT COUNT(*)"
@@ -2720,7 +2721,7 @@ unsigned Gam_DB_GetNumGames (Hie_Lvl_Level_t Scope)
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=gam_games.CrsCod",
Gbl.Hierarchy.Cty.CtyCod);
- case Hie_Lvl_INS:
+ case HieLvl_INS:
return (unsigned)
DB_QueryCOUNT ("can not get number of games",
"SELECT COUNT(*)"
@@ -2733,7 +2734,7 @@ unsigned Gam_DB_GetNumGames (Hie_Lvl_Level_t Scope)
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=gam_games.CrsCod",
Gbl.Hierarchy.Ins.InsCod);
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
return (unsigned)
DB_QueryCOUNT ("can not get number of games",
"SELECT COUNT(*)"
@@ -2744,7 +2745,7 @@ unsigned Gam_DB_GetNumGames (Hie_Lvl_Level_t Scope)
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=gam_games.CrsCod",
Gbl.Hierarchy.Ctr.CtrCod);
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
return (unsigned)
DB_QueryCOUNT ("can not get number of games",
"SELECT COUNT(*)"
@@ -2753,7 +2754,7 @@ unsigned Gam_DB_GetNumGames (Hie_Lvl_Level_t Scope)
" WHERE crs_courses.DegCod=%ld"
" AND crs_courses.CrsCod=gam_games.CrsCod",
Gbl.Hierarchy.Deg.DegCod);
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
return (unsigned)
DB_QueryCOUNT ("can not get number of games",
"SELECT COUNT(*)"
@@ -2769,12 +2770,12 @@ unsigned Gam_DB_GetNumGames (Hie_Lvl_Level_t Scope)
/***************** Get average number of questions per game ******************/
/*****************************************************************************/
-double Gam_DB_GetNumQstsPerGame (Hie_Lvl_Level_t Scope)
+double Gam_DB_GetNumQstsPerGame (HieLvl_Level_t Scope)
{
/***** Get number of questions per game from database *****/
switch (Scope)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
return DB_QuerySELECTDouble ("can not get number of questions per game",
"SELECT AVG(NumQsts)"
" FROM (SELECT COUNT(gam_questions.QstCod) AS NumQsts"
@@ -2782,7 +2783,7 @@ double Gam_DB_GetNumQstsPerGame (Hie_Lvl_Level_t Scope)
"gam_questions"
" WHERE gam_games.GamCod=gam_questions.GamCod"
" GROUP BY gam_questions.GamCod) AS NumQstsTable");
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
return DB_QuerySELECTDouble ("can not get number of questions per game",
"SELECT AVG(NumQsts)"
" FROM (SELECT COUNT(gam_questions.QstCod) AS NumQsts"
@@ -2800,7 +2801,7 @@ double Gam_DB_GetNumQstsPerGame (Hie_Lvl_Level_t Scope)
" AND gam_games.GamCod=gam_questions.GamCod"
" GROUP BY gam_questions.GamCod) AS NumQstsTable",
Gbl.Hierarchy.Cty.CtyCod);
- case Hie_Lvl_INS:
+ case HieLvl_INS:
return DB_QuerySELECTDouble ("can not get number of questions per game",
"SELECT AVG(NumQsts)"
" FROM (SELECT COUNT(gam_questions.QstCod) AS NumQsts"
@@ -2816,7 +2817,7 @@ double Gam_DB_GetNumQstsPerGame (Hie_Lvl_Level_t Scope)
" AND gam_games.GamCod=gam_questions.GamCod"
" GROUP BY gam_questions.GamCod) AS NumQstsTable",
Gbl.Hierarchy.Ins.InsCod);
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
return DB_QuerySELECTDouble ("can not get number of questions per game",
"SELECT AVG(NumQsts)"
" FROM (SELECT COUNT(gam_questions.QstCod) AS NumQsts"
@@ -2830,7 +2831,7 @@ double Gam_DB_GetNumQstsPerGame (Hie_Lvl_Level_t Scope)
" AND gam_games.GamCod=gam_questions.GamCod"
" GROUP BY gam_questions.GamCod) AS NumQstsTable",
Gbl.Hierarchy.Ctr.CtrCod);
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
return DB_QuerySELECTDouble ("can not get number of questions per game",
"SELECT AVG(NumQsts)"
" FROM (SELECT COUNT(gam_questions.QstCod) AS NumQsts"
@@ -2842,7 +2843,7 @@ double Gam_DB_GetNumQstsPerGame (Hie_Lvl_Level_t Scope)
" AND gam_games.GamCod=gam_questions.GamCod"
" GROUP BY gam_questions.GamCod) AS NumQstsTable",
Gbl.Hierarchy.Deg.DegCod);
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
return DB_QuerySELECTDouble ("can not get number of questions per game",
"SELECT AVG(NumQsts)"
" FROM (SELECT COUNT(gam_questions.QstCod) AS NumQsts"
diff --git a/swad_game.h b/swad_game.h
index 9093badc..5cb8e14b 100644
--- a/swad_game.h
+++ b/swad_game.h
@@ -165,9 +165,9 @@ void Gam_MoveDownQst (void);
void Gam_PutButtonNewMatch (struct Gam_Games *Games,long GamCod);
void Gam_RequestNewMatch (void);
-unsigned Gam_DB_GetNumCoursesWithGames (Hie_Lvl_Level_t Scope);
-unsigned Gam_DB_GetNumGames (Hie_Lvl_Level_t Scope);
-double Gam_DB_GetNumQstsPerGame (Hie_Lvl_Level_t Scope);
+unsigned Gam_DB_GetNumCoursesWithGames (HieLvl_Level_t Scope);
+unsigned Gam_DB_GetNumGames (HieLvl_Level_t Scope);
+double Gam_DB_GetNumQstsPerGame (HieLvl_Level_t Scope);
void Gam_ShowTstTagsPresentInAGame (long GamCod);
diff --git a/swad_global.c b/swad_global.c
index 09d7444e..b7fcbb7f 100644
--- a/swad_global.c
+++ b/swad_global.c
@@ -43,6 +43,7 @@
#include "swad_follow.h"
#include "swad_global.h"
#include "swad_hierarchy.h"
+#include "swad_hierarchy_level.h"
#include "swad_icon.h"
#include "swad_link.h"
#include "swad_parameter.h"
@@ -285,7 +286,7 @@ void Gbl_InitializeGlobals (void)
Gbl.Usrs.ClassPhoto.AllGroups = true;
Gbl.Usrs.ClassPhoto.Cols = Usr_CLASS_PHOTO_COLS_DEF;
- Gbl.Scope.Current = Hie_Lvl_CRS;
+ Gbl.Scope.Current = HieLvl_CRS;
Gbl.Usrs.Connected.TimeToRefreshInMs = Con_MAX_TIME_TO_REFRESH_CONNECTED_IN_MS;
@@ -370,7 +371,7 @@ void Gbl_Cleanup (void)
Grp_FreeListCodSelectedGrps ();
Crs_FreeListCoursesInCurrentDegree ();
Deg_FreeListDegs (&Gbl.Hierarchy.Degs);
- DT_FreeListDegreeTypes ();
+ DegTyp_FreeListDegreeTypes ();
Ins_FreeListInstitutions ();
Ctr_FreeListCenters ();
Cty_FreeListCountries ();
diff --git a/swad_global.h b/swad_global.h
index 4fc1f229..cbffb384 100644
--- a/swad_global.h
+++ b/swad_global.h
@@ -186,7 +186,7 @@ struct Globals
} HTMLOutput;
struct
{
- Hie_Lvl_Level_t Level; // Current level in the hierarchy: system, country, institution, center, degree or course
+ HieLvl_Level_t Level; // Current level in the hierarchy: system, country, institution, center, degree or course
long Cod; // Code of the current country, institution, center, degree or course
struct ListCountries Ctys;// List of countries
struct Cty_Countr Cty; // Current country
@@ -360,8 +360,8 @@ struct Globals
} Record;
struct
{
- Hie_Lvl_Level_t Current;
- Hie_Lvl_Level_t Default;
+ HieLvl_Level_t Current;
+ HieLvl_Level_t Default;
unsigned Allowed;
} Scope;
struct
diff --git a/swad_help.c b/swad_help.c
index 90dcd7df..6120bd9d 100644
--- a/swad_help.c
+++ b/swad_help.c
@@ -31,6 +31,7 @@
#include "swad_form.h"
#include "swad_global.h"
#include "swad_help.h"
+#include "swad_hierarchy_level.h"
#include "swad_HTML.h"
#include "swad_user.h"
@@ -132,7 +133,7 @@ void Hlp_ShowHelpWhatWouldYouLikeToDo (void)
if (Gbl.Usrs.Me.Logged) // I am logged
{
- if (Gbl.Hierarchy.Level == Hie_Lvl_CRS) // Course selected
+ if (Gbl.Hierarchy.Level == HieLvl_CRS) // Course selected
{
if (Gbl.Usrs.Me.IBelongToCurrentCrs) // I belong to this course
{
@@ -162,9 +163,9 @@ void Hlp_ShowHelpWhatWouldYouLikeToDo (void)
if (Gbl.Usrs.Me.MyCrss.Num) // I am enroled in some courses
{
- if (Gbl.Hierarchy.Level == Hie_Lvl_CRS && // Course selected
+ if (Gbl.Hierarchy.Level == HieLvl_CRS && // Course selected
Gbl.Usrs.Me.UsrDat.Roles.InCurrentCrs == Rol_TCH) // I am a teacher in current course
- if (!Usr_GetCachedNumUsrsInCrss (Hie_Lvl_CRS,Gbl.Hierarchy.Crs.CrsCod,
+ if (!Usr_GetCachedNumUsrsInCrss (HieLvl_CRS,Gbl.Hierarchy.Crs.CrsCod,
1 << Rol_STD)) // Current course probably has no students
{
/* Request students enrolment */
@@ -185,7 +186,7 @@ void Hlp_ShowHelpWhatWouldYouLikeToDo (void)
if (Gbl.Hierarchy.Deg.DegCod > 0) // Degree selected
{
/* Select a course */
- Hlp_ShowRowHelpWhatWouldYouLikeToDo (Str_BuildStringStr (Gbl.Hierarchy.Level == Hie_Lvl_CRS ? Txt_Select_create_course_in_X :
+ Hlp_ShowRowHelpWhatWouldYouLikeToDo (Str_BuildStringStr (Gbl.Hierarchy.Level == HieLvl_CRS ? Txt_Select_create_course_in_X :
Txt_Select_or_create_one_course_in_X,
Gbl.Hierarchy.Deg.ShrtName),
ActSeeCrs,
diff --git a/swad_hierarchy.c b/swad_hierarchy.c
index c90a0010..0d20414e 100644
--- a/swad_hierarchy.c
+++ b/swad_hierarchy.c
@@ -34,6 +34,7 @@
#include "swad_form.h"
#include "swad_global.h"
#include "swad_hierarchy.h"
+#include "swad_hierarchy_level.h"
#include "swad_HTML.h"
#include "swad_logo.h"
@@ -384,7 +385,7 @@ void Hie_WriteHierarchyInBreadcrumb (void)
}
HTM_DIV_Begin ("class=\"BC%s %s\"",
- (Gbl.Hierarchy.Level == Hie_Lvl_CRS) ? "" :
+ (Gbl.Hierarchy.Level == HieLvl_CRS) ? "" :
((Gbl.Hierarchy.Deg.DegCod > 0) ? " BC_SEMIOFF" :
" BC_OFF"),
ClassTxt);
@@ -413,23 +414,23 @@ void Hie_WriteBigNameCtyInsCtrDegCrs (void)
/***** Logo *****/
switch (Gbl.Hierarchy.Level)
{
- case Hie_Lvl_SYS: // System
+ case HieLvl_SYS: // System
Ico_PutIcon ("swad64x64.png",Cfg_PLATFORM_FULL_NAME,"ICO40x40 TOP_LOGO");
break;
- case Hie_Lvl_CTY: // Country
+ case HieLvl_CTY: // Country
Cty_DrawCountryMap (&Gbl.Hierarchy.Cty,"COUNTRY_MAP_TITLE");
break;
- case Hie_Lvl_INS: // Institution
- Lgo_DrawLogo (Hie_Lvl_INS,Gbl.Hierarchy.Ins.InsCod,
+ case HieLvl_INS: // Institution
+ Lgo_DrawLogo (HieLvl_INS,Gbl.Hierarchy.Ins.InsCod,
Gbl.Hierarchy.Ins.ShrtName,40,"TOP_LOGO",false);
break;
- case Hie_Lvl_CTR: // Center
- Lgo_DrawLogo (Hie_Lvl_CTR,Gbl.Hierarchy.Ctr.CtrCod,
+ case HieLvl_CTR: // Center
+ Lgo_DrawLogo (HieLvl_CTR,Gbl.Hierarchy.Ctr.CtrCod,
Gbl.Hierarchy.Ctr.ShrtName,40,"TOP_LOGO",false);
break;
- case Hie_Lvl_DEG: // Degree
- case Hie_Lvl_CRS: // Course
- Lgo_DrawLogo (Hie_Lvl_DEG,Gbl.Hierarchy.Deg.DegCod,
+ case HieLvl_DEG: // Degree
+ case HieLvl_CRS: // Course
+ Lgo_DrawLogo (HieLvl_DEG,Gbl.Hierarchy.Deg.DegCod,
Gbl.Hierarchy.Deg.ShrtName,40,"TOP_LOGO",false);
break;
default:
@@ -441,10 +442,10 @@ void Hie_WriteBigNameCtyInsCtrDegCrs (void)
if (Gbl.Hierarchy.Cty.CtyCod > 0)
{
HTM_DIV_Begin ("id=\"big_full_name\"");
- HTM_Txt ( (Gbl.Hierarchy.Level == Hie_Lvl_CRS) ? Gbl.Hierarchy.Crs.FullName :// Full name
- ((Gbl.Hierarchy.Level == Hie_Lvl_DEG) ? Gbl.Hierarchy.Deg.FullName :
- ((Gbl.Hierarchy.Level == Hie_Lvl_CTR) ? Gbl.Hierarchy.Ctr.FullName :
- ((Gbl.Hierarchy.Level == Hie_Lvl_INS) ? Gbl.Hierarchy.Ins.FullName :
+ HTM_Txt ( (Gbl.Hierarchy.Level == HieLvl_CRS) ? Gbl.Hierarchy.Crs.FullName :// Full name
+ ((Gbl.Hierarchy.Level == HieLvl_DEG) ? Gbl.Hierarchy.Deg.FullName :
+ ((Gbl.Hierarchy.Level == HieLvl_CTR) ? Gbl.Hierarchy.Ctr.FullName :
+ ((Gbl.Hierarchy.Level == HieLvl_INS) ? Gbl.Hierarchy.Ins.FullName :
Gbl.Hierarchy.Cty.Name[Gbl.Prefs.Language]))));
HTM_DIV_End ();
@@ -453,10 +454,10 @@ void Hie_WriteBigNameCtyInsCtrDegCrs (void)
HTM_DIV_End ();
HTM_DIV_Begin ("id=\"big_short_name\"");
- HTM_Txt ( (Gbl.Hierarchy.Level == Hie_Lvl_CRS) ? Gbl.Hierarchy.Crs.ShrtName :// Short name
- ((Gbl.Hierarchy.Level == Hie_Lvl_DEG) ? Gbl.Hierarchy.Deg.ShrtName :
- ((Gbl.Hierarchy.Level == Hie_Lvl_CTR) ? Gbl.Hierarchy.Ctr.ShrtName :
- ((Gbl.Hierarchy.Level == Hie_Lvl_INS) ? Gbl.Hierarchy.Ins.ShrtName :
+ HTM_Txt ( (Gbl.Hierarchy.Level == HieLvl_CRS) ? Gbl.Hierarchy.Crs.ShrtName :// Short name
+ ((Gbl.Hierarchy.Level == HieLvl_DEG) ? Gbl.Hierarchy.Deg.ShrtName :
+ ((Gbl.Hierarchy.Level == HieLvl_CTR) ? Gbl.Hierarchy.Ctr.ShrtName :
+ ((Gbl.Hierarchy.Level == HieLvl_INS) ? Gbl.Hierarchy.Ins.ShrtName :
Gbl.Hierarchy.Cty.Name[Gbl.Prefs.Language]))));
HTM_DIV_End ();
}
@@ -490,19 +491,19 @@ void Hie_SetHierarchyFromUsrLastHierarchy (void)
/***** Copy last hierarchy scope and code to current hierarchy *****/
switch (Gbl.Usrs.Me.UsrLast.LastHie.Scope)
{
- case Hie_Lvl_CTY: // Country
+ case HieLvl_CTY: // Country
Gbl.Hierarchy.Cty.CtyCod = Gbl.Usrs.Me.UsrLast.LastHie.Cod;
break;
- case Hie_Lvl_INS: // Institution
+ case HieLvl_INS: // Institution
Gbl.Hierarchy.Ins.InsCod = Gbl.Usrs.Me.UsrLast.LastHie.Cod;
break;
- case Hie_Lvl_CTR: // Center
+ case HieLvl_CTR: // Center
Gbl.Hierarchy.Ctr.CtrCod = Gbl.Usrs.Me.UsrLast.LastHie.Cod;
break;
- case Hie_Lvl_DEG: // Degree
+ case HieLvl_DEG: // Degree
Gbl.Hierarchy.Deg.DegCod = Gbl.Usrs.Me.UsrLast.LastHie.Cod;
break;
- case Hie_Lvl_CRS: // Course
+ case HieLvl_CRS: // Course
Gbl.Hierarchy.Crs.CrsCod = Gbl.Usrs.Me.UsrLast.LastHie.Cod;
break;
default:
@@ -567,37 +568,37 @@ void Hie_InitHierarchy (void)
depending on course code, degree code, etc. *****/
if (Gbl.Hierarchy.Crs.CrsCod > 0) // Course selected
{
- Gbl.Hierarchy.Level = Hie_Lvl_CRS;
+ Gbl.Hierarchy.Level = HieLvl_CRS;
Gbl.Hierarchy.Cod = Gbl.Hierarchy.Crs.CrsCod;
}
else if (Gbl.Hierarchy.Deg.DegCod > 0) // Degree selected
{
- Gbl.Hierarchy.Level = Hie_Lvl_DEG;
+ Gbl.Hierarchy.Level = HieLvl_DEG;
Gbl.Hierarchy.Cod = Gbl.Hierarchy.Deg.DegCod;
}
else if (Gbl.Hierarchy.Ctr.CtrCod > 0) // Center selected
{
- Gbl.Hierarchy.Level = Hie_Lvl_CTR;
+ Gbl.Hierarchy.Level = HieLvl_CTR;
Gbl.Hierarchy.Cod = Gbl.Hierarchy.Ctr.CtrCod;
}
else if (Gbl.Hierarchy.Ins.InsCod > 0) // Institution selected
{
- Gbl.Hierarchy.Level = Hie_Lvl_INS;
+ Gbl.Hierarchy.Level = HieLvl_INS;
Gbl.Hierarchy.Cod = Gbl.Hierarchy.Ins.InsCod;
}
else if (Gbl.Hierarchy.Cty.CtyCod > 0) // Country selected
{
- Gbl.Hierarchy.Level = Hie_Lvl_CTY;
+ Gbl.Hierarchy.Level = HieLvl_CTY;
Gbl.Hierarchy.Cod = Gbl.Hierarchy.Cty.CtyCod;
}
else
{
- Gbl.Hierarchy.Level = Hie_Lvl_SYS;
+ Gbl.Hierarchy.Level = HieLvl_SYS;
Gbl.Hierarchy.Cod = -1L;
}
/***** Initialize paths *****/
- if (Gbl.Hierarchy.Level == Hie_Lvl_CRS) // Course selected
+ if (Gbl.Hierarchy.Level == HieLvl_CRS) // Course selected
{
/***** Paths of course directories *****/
snprintf (Gbl.Crs.PathPriv,sizeof (Gbl.Crs.PathPriv),"%s/%ld",
@@ -643,7 +644,7 @@ void Hie_ResetHierarchy (void)
Gbl.Hierarchy.Crs.CrsCod = -1L;
/***** Hierarchy level and code *****/
- Gbl.Hierarchy.Level = Hie_Lvl_UNK;
+ Gbl.Hierarchy.Level = HieLvl_UNK;
Gbl.Hierarchy.Cod = -1L;
}
@@ -699,10 +700,10 @@ void Hie_GetAndWriteInsCtrDegAdminBy (long UsrCod,unsigned ColSpan)
" AND usr_admins.Cod=deg_degrees.DegCod)"
" ORDER BY S,"
"FullName",
- (unsigned) Hie_Lvl_SYS,UsrCod,Sco_GetDBStrFromScope (Hie_Lvl_SYS),
- (unsigned) Hie_Lvl_INS,UsrCod,Sco_GetDBStrFromScope (Hie_Lvl_INS),
- (unsigned) Hie_Lvl_CTR,UsrCod,Sco_GetDBStrFromScope (Hie_Lvl_CTR),
- (unsigned) Hie_Lvl_DEG,UsrCod,Sco_GetDBStrFromScope (Hie_Lvl_DEG));
+ (unsigned) HieLvl_SYS,UsrCod,Sco_GetDBStrFromScope (HieLvl_SYS),
+ (unsigned) HieLvl_INS,UsrCod,Sco_GetDBStrFromScope (HieLvl_INS),
+ (unsigned) HieLvl_CTR,UsrCod,Sco_GetDBStrFromScope (HieLvl_CTR),
+ (unsigned) HieLvl_DEG,UsrCod,Sco_GetDBStrFromScope (HieLvl_DEG));
if (NumRows)
/***** Get the list of degrees *****/
for (NumRow = 1;
@@ -728,11 +729,11 @@ void Hie_GetAndWriteInsCtrDegAdminBy (long UsrCod,unsigned ColSpan)
/* Get scope */
switch (Sco_GetScopeFromUnsignedStr (row[0]))
{
- case Hie_Lvl_SYS: // System
+ case HieLvl_SYS: // System
Ico_PutIcon ("swad64x64.png",Txt_all_degrees,"ICO16x16");
HTM_TxtF (" %s",Txt_all_degrees);
break;
- case Hie_Lvl_INS: // Institution
+ case HieLvl_INS: // Institution
Hie.Ins.InsCod = Str_ConvertStrCodToLongCod (row[1]);
if (Hie.Ins.InsCod > 0)
{
@@ -744,7 +745,7 @@ void Hie_GetAndWriteInsCtrDegAdminBy (long UsrCod,unsigned ColSpan)
"BT_LINK DAT_SMALL_NOBR","LT");
}
break;
- case Hie_Lvl_CTR: // Center
+ case HieLvl_CTR: // Center
Hie.Ctr.CtrCod = Str_ConvertStrCodToLongCod (row[1]);
if (Hie.Ctr.CtrCod > 0)
{
@@ -756,7 +757,7 @@ void Hie_GetAndWriteInsCtrDegAdminBy (long UsrCod,unsigned ColSpan)
"BT_LINK DAT_SMALL_NOBR","LT");
}
break;
- case Hie_Lvl_DEG: // Degree
+ case HieLvl_DEG: // Degree
Hie.Deg.DegCod = Str_ConvertStrCodToLongCod (row[1]);
if (Hie.Deg.DegCod > 0)
{
diff --git a/swad_hierarchy_config.c b/swad_hierarchy_config.c
index fe977891..74216223 100644
--- a/swad_hierarchy_config.c
+++ b/swad_hierarchy_config.c
@@ -59,7 +59,7 @@ extern struct Globals Gbl;
/*****************************************************************************/
void HieCfg_Title (bool PutLink,
- Hie_Lvl_Level_t LogoScope,
+ HieLvl_Level_t LogoScope,
long LogoCod,
char LogoShrtName[Cns_HIERARCHY_MAX_BYTES_SHRT_NAME + 1],
char LogoFullName[Cns_HIERARCHY_MAX_BYTES_FULL_NAME + 1],
@@ -320,7 +320,7 @@ void HieCfg_QR (const char *ParamName,long HieCod)
/************************ Number of users in courses *************************/
/*****************************************************************************/
-void HieCfg_NumUsrsInCrss (Hie_Lvl_Level_t Scope,long Cod,Rol_Role_t Role)
+void HieCfg_NumUsrsInCrss (HieLvl_Level_t Scope,long Cod,Rol_Role_t Role)
{
extern const char *Txt_Users_in_courses;
extern const char *Txt_ROLES_PLURAL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
diff --git a/swad_hierarchy_config.h b/swad_hierarchy_config.h
index 9e67acf4..69a07d77 100644
--- a/swad_hierarchy_config.h
+++ b/swad_hierarchy_config.h
@@ -40,7 +40,7 @@
/*****************************************************************************/
void HieCfg_Title (bool PutLink,
- Hie_Lvl_Level_t LogoScope,
+ HieLvl_Level_t LogoScope,
long LogoCod,
char LogoShrtName[Cns_HIERARCHY_MAX_BYTES_SHRT_NAME + 1],
char LogoFullName[Cns_HIERARCHY_MAX_BYTES_FULL_NAME + 1],
@@ -56,6 +56,6 @@ void HieCfg_Shortcut (bool PrintView,const char *ParamName,long HieCod);
void HieCfg_NumCtrs (unsigned NumCtrs,bool PutForm);
void HieCfg_NumCtrsWithMap (unsigned NumCtrs,unsigned NumCtrsWithMap);
void HieCfg_QR (const char *ParamName,long HieCod);
-void HieCfg_NumUsrsInCrss (Hie_Lvl_Level_t Scope,long Cod,Rol_Role_t Role);
+void HieCfg_NumUsrsInCrss (HieLvl_Level_t Scope,long Cod,Rol_Role_t Role);
#endif
diff --git a/swad_hierarchy_level.h b/swad_hierarchy_level.h
index ccd3a7c7..e458e38a 100644
--- a/swad_hierarchy_level.h
+++ b/swad_hierarchy_level.h
@@ -36,17 +36,17 @@
/*****************************************************************************/
// Levels in the hierarchy
-#define Hie_Lvl_NUM_LEVELS 7
+#define HieLvl_NUM_LEVELS 7
typedef enum
{
- Hie_Lvl_UNK = 0, // Unknown
- Hie_Lvl_SYS = 1, // System
- Hie_Lvl_CTY = 2, // Country
- Hie_Lvl_INS = 3, // Institution
- Hie_Lvl_CTR = 4, // Center
- Hie_Lvl_DEG = 5, // Degree
- Hie_Lvl_CRS = 6, // Course
- } Hie_Lvl_Level_t;
+ HieLvl_UNK = 0, // Unknown
+ HieLvl_SYS = 1, // System
+ HieLvl_CTY = 2, // Country
+ HieLvl_INS = 3, // Institution
+ HieLvl_CTR = 4, // Center
+ HieLvl_DEG = 5, // Degree
+ HieLvl_CRS = 6, // Course
+ } HieLvl_Level_t;
/*****************************************************************************/
/***************************** Public prototypes *****************************/
diff --git a/swad_indicator.c b/swad_indicator.c
index ad734aca..19af4ecf 100644
--- a/swad_indicator.c
+++ b/swad_indicator.c
@@ -37,6 +37,7 @@
#include "swad_form.h"
#include "swad_forum.h"
#include "swad_global.h"
+#include "swad_hierarchy_level.h"
#include "swad_HTML.h"
#include "swad_indicator.h"
#include "swad_message.h"
@@ -149,7 +150,7 @@ void Ind_ReqIndicatorsCourses (void)
/* Data */
HTM_TD_Begin ("class=\"DAT LT\"");
- DT_WriteSelectorDegreeTypes (Indicators.DegTypCod);
+ DegTyp_WriteSelectorDegreeTypes (Indicators.DegTypCod);
HTM_Txt (" (");
HTM_TxtF (Txt_only_if_the_scope_is_X,Cfg_PLATFORM_SHORT_NAME);
HTM_Txt (")");
@@ -239,18 +240,18 @@ void Ind_ReqIndicatorsCourses (void)
static void Ind_GetParamsIndicators (struct Ind_Indicators *Indicators)
{
/***** Get scope *****/
- Gbl.Scope.Allowed = 1 << Hie_Lvl_SYS |
- 1 << Hie_Lvl_CTY |
- 1 << Hie_Lvl_INS |
- 1 << Hie_Lvl_CTR |
- 1 << Hie_Lvl_DEG |
- 1 << Hie_Lvl_CRS;
- Gbl.Scope.Default = Hie_Lvl_CRS;
+ Gbl.Scope.Allowed = 1 << HieLvl_SYS |
+ 1 << HieLvl_CTY |
+ 1 << HieLvl_INS |
+ 1 << HieLvl_CTR |
+ 1 << HieLvl_DEG |
+ 1 << HieLvl_CRS;
+ Gbl.Scope.Default = HieLvl_CRS;
Sco_GetScope ("ScopeInd");
/***** Get degree type code *****/
- Indicators->DegTypCod = (Gbl.Scope.Current == Hie_Lvl_SYS) ?
- DT_GetAndCheckParamOtherDegTypCod (-1L) : // -1L (any degree type) is allowed here
+ Indicators->DegTypCod = (Gbl.Scope.Current == HieLvl_SYS) ?
+ DegTyp_GetAndCheckParamOtherDegTypCod (-1L) : // -1L (any degree type) is allowed here
-1L;
/***** Get department code *****/
@@ -350,7 +351,7 @@ static unsigned Ind_GetTableOfCourses (const struct Ind_Indicators *Indicators,
switch (Gbl.Scope.Current)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
if (Indicators->DptCod >= 0) // 0 means another department
{
if (Indicators->DegTypCod > 0)
@@ -428,7 +429,7 @@ static unsigned Ind_GetTableOfCourses (const struct Ind_Indicators *Indicators,
"crs_courses.FullName");
}
break;
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
if (Indicators->DptCod >= 0) // 0 means another department
NumCrss = (unsigned)
DB_QuerySELECT (mysql_res,"can not get courses",
@@ -475,7 +476,7 @@ static unsigned Ind_GetTableOfCourses (const struct Ind_Indicators *Indicators,
"crs_courses.FullName",
Gbl.Hierarchy.Cty.CtyCod);
break;
- case Hie_Lvl_INS:
+ case HieLvl_INS:
if (Indicators->DptCod >= 0) // 0 means another department
NumCrss = (unsigned)
DB_QuerySELECT (mysql_res,"can not get courses",
@@ -518,7 +519,7 @@ static unsigned Ind_GetTableOfCourses (const struct Ind_Indicators *Indicators,
"crs_courses.FullName",
Gbl.Hierarchy.Ins.InsCod);
break;
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
if (Indicators->DptCod >= 0) // 0 means another department
NumCrss = (unsigned)
DB_QuerySELECT (mysql_res,"can not get courses",
@@ -557,7 +558,7 @@ static unsigned Ind_GetTableOfCourses (const struct Ind_Indicators *Indicators,
"crs_courses.FullName",
Gbl.Hierarchy.Ctr.CtrCod);
break;
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
if (Indicators->DptCod >= 0) // 0 means another department
NumCrss = (unsigned)
DB_QuerySELECT (mysql_res,"can not get courses",
@@ -596,7 +597,7 @@ static unsigned Ind_GetTableOfCourses (const struct Ind_Indicators *Indicators,
"crs_courses.FullName",
Gbl.Hierarchy.Deg.DegCod);
break;
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
if (Indicators->DptCod >= 0) // 0 means another department
NumCrss = (unsigned)
DB_QuerySELECT (mysql_res,"can not get courses",
@@ -1117,10 +1118,10 @@ static void Ind_ShowTableOfCoursesWithIndicators (const struct Ind_Indicators *I
break;
case Ind_INDICATORS_FULL:
/* Get number of users */
- NumTchs = Usr_GetNumUsrsInCrss (Hie_Lvl_CRS,CrsCod,
+ NumTchs = Usr_GetNumUsrsInCrss (HieLvl_CRS,CrsCod,
1 << Rol_NET | // Non-editing teachers
1 << Rol_TCH); // Teachers
- NumStds = Usr_GetNumUsrsInCrss (Hie_Lvl_CRS,CrsCod,
+ NumStds = Usr_GetNumUsrsInCrss (HieLvl_CRS,CrsCod,
1 << Rol_STD); // Students
HTM_TR_Begin (NULL);
diff --git a/swad_institution.c b/swad_institution.c
index d8524b77..13956490 100644
--- a/swad_institution.c
+++ b/swad_institution.c
@@ -39,6 +39,7 @@
#include "swad_forum.h"
#include "swad_global.h"
#include "swad_hierarchy.h"
+#include "swad_hierarchy_level.h"
#include "swad_HTML.h"
#include "swad_institution.h"
#include "swad_logo.h"
@@ -238,7 +239,7 @@ void Ins_DrawInstitutionLogoWithLink (struct Ins_Instit *Ins,unsigned Size)
Ins_PutParamInsCod (Ins->InsCod);
HTM_BUTTON_SUBMIT_Begin (Ins->FullName,"BT_LINK",NULL);
}
- Lgo_DrawLogo (Hie_Lvl_INS,Ins->InsCod,Ins->FullName,
+ Lgo_DrawLogo (HieLvl_INS,Ins->InsCod,Ins->FullName,
Size,NULL,true);
if (PutLink)
{
@@ -263,7 +264,7 @@ void Ins_DrawInstitutionLogoAndNameWithLink (struct Ins_Instit *Ins,Act_Action_t
Hie_FreeGoToMsg ();
/***** Institution logo and name *****/
- Lgo_DrawLogo (Hie_Lvl_INS,Ins->InsCod,Ins->ShrtName,16,ClassLogo,true);
+ Lgo_DrawLogo (HieLvl_INS,Ins->InsCod,Ins->ShrtName,16,ClassLogo,true);
HTM_TxtF (" %s",Ins->FullName);
/***** End link *****/
@@ -450,7 +451,7 @@ static void Ins_ListOneInstitutionForSeeing (struct Ins_Instit *Ins,unsigned Num
/* Number of users in courses of this institution */
HTM_TD_Begin ("class=\"%s RM %s\"",TxtClassNormal,BgColor);
- HTM_Unsigned (Usr_GetCachedNumUsrsInCrss (Hie_Lvl_INS,Ins->InsCod,
+ HTM_Unsigned (Usr_GetCachedNumUsrsInCrss (HieLvl_INS,Ins->InsCod,
1 << Rol_STD |
1 << Rol_NET |
1 << Rol_TCH)); // Any user);
@@ -1084,7 +1085,7 @@ static void Ins_ListInstitutionsForEdition (void)
ICanEdit = Ins_CheckIfICanEdit (Ins);
NumCtrs = Ctr_GetNumCtrsInIns (Ins->InsCod);
NumUsrsIns = Usr_GetNumUsrsWhoClaimToBelongToIns (Ins);
- NumUsrsInCrssOfIns = Usr_GetNumUsrsInCrss (Hie_Lvl_INS,Ins->InsCod,
+ NumUsrsInCrssOfIns = Usr_GetNumUsrsInCrss (HieLvl_INS,Ins->InsCod,
1 << Rol_STD |
1 << Rol_NET |
1 << Rol_TCH); // Any user
@@ -1111,7 +1112,7 @@ static void Ins_ListInstitutionsForEdition (void)
/* Institution logo */
HTM_TD_Begin ("title=\"%s\" class=\"HIE_LOGO\"",Ins->FullName);
- Lgo_DrawLogo (Hie_Lvl_INS,Ins->InsCod,Ins->ShrtName,20,NULL,true);
+ Lgo_DrawLogo (HieLvl_INS,Ins->InsCod,Ins->ShrtName,20,NULL,true);
HTM_TD_End ();
/* Institution short name */
@@ -1356,7 +1357,7 @@ void Ins_RemoveInstitution (void)
// Institution has users ==> don't remove
Ale_CreateAlert (Ale_WARNING,NULL,
Txt_To_remove_an_institution_you_must_first_remove_all_centers_and_users_in_the_institution);
- else if (Usr_GetNumUsrsInCrss (Hie_Lvl_INS,Ins_EditingIns->InsCod,
+ else if (Usr_GetNumUsrsInCrss (HieLvl_INS,Ins_EditingIns->InsCod,
1 << Rol_STD |
1 << Rol_NET |
1 << Rol_TCH)) // Any user
@@ -1366,10 +1367,10 @@ void Ins_RemoveInstitution (void)
else // Institution has no users ==> remove it
{
/***** Remove all the threads and posts in forums of the institution *****/
- For_RemoveForums (Hie_Lvl_INS,Ins_EditingIns->InsCod);
+ For_RemoveForums (HieLvl_INS,Ins_EditingIns->InsCod);
/***** Remove surveys of the institution *****/
- Svy_RemoveSurveys (Hie_Lvl_INS,Ins_EditingIns->InsCod);
+ Svy_RemoveSurveys (HieLvl_INS,Ins_EditingIns->InsCod);
/***** Remove information related to files in institution *****/
Brw_DB_RemoveInsFiles (Ins_EditingIns->InsCod);
@@ -1725,7 +1726,7 @@ static void Ins_PutFormToCreateInstitution (void)
/***** Institution logo *****/
HTM_TD_Begin ("title=\"%s\" class=\"HIE_LOGO\"",Ins_EditingIns->FullName);
- Lgo_DrawLogo (Hie_Lvl_INS,-1L,"",20,NULL,true);
+ Lgo_DrawLogo (HieLvl_INS,-1L,"",20,NULL,true);
HTM_TD_End ();
/***** Institution short name *****/
@@ -1932,12 +1933,12 @@ unsigned Ins_GetCachedNumInssInSys (void)
unsigned NumInss;
/***** Get number of institutions from cache *****/
- if (!FigCch_GetFigureFromCache (FigCch_NUM_INSS,Hie_Lvl_SYS,-1L,
+ if (!FigCch_GetFigureFromCache (FigCch_NUM_INSS,HieLvl_SYS,-1L,
FigCch_UNSIGNED,&NumInss))
{
/***** Get current number of institutions from database and update cache *****/
NumInss = (unsigned) DB_GetNumRowsTable ("ins_instits");
- FigCch_UpdateFigureIntoCache (FigCch_NUM_INSS,Hie_Lvl_SYS,-1L,
+ FigCch_UpdateFigureIntoCache (FigCch_NUM_INSS,HieLvl_SYS,-1L,
FigCch_UNSIGNED,&NumInss);
}
@@ -1969,7 +1970,7 @@ unsigned Ins_GetNumInssInCty (long CtyCod)
" WHERE CtyCod=%ld",
CtyCod);
Gbl.Cache.NumInssInCty.Valid = true;
- FigCch_UpdateFigureIntoCache (FigCch_NUM_INSS,Hie_Lvl_CTY,Gbl.Cache.NumInssInCty.CtyCod,
+ FigCch_UpdateFigureIntoCache (FigCch_NUM_INSS,HieLvl_CTY,Gbl.Cache.NumInssInCty.CtyCod,
FigCch_UNSIGNED,&Gbl.Cache.NumInssInCty.NumInss);
return Gbl.Cache.NumInssInCty.NumInss;
}
@@ -1979,7 +1980,7 @@ unsigned Ins_GetCachedNumInssInCty (long CtyCod)
unsigned NumInss;
/***** Get number of institutions from cache *****/
- if (!FigCch_GetFigureFromCache (FigCch_NUM_INSS,Hie_Lvl_CTY,CtyCod,
+ if (!FigCch_GetFigureFromCache (FigCch_NUM_INSS,HieLvl_CTY,CtyCod,
FigCch_UNSIGNED,&NumInss))
/***** Get current number of institutions from database and update cache *****/
NumInss = Ins_GetNumInssInCty (CtyCod);
@@ -1992,7 +1993,7 @@ unsigned Ins_GetCachedNumInssInCty (long CtyCod)
/*****************************************************************************/
unsigned Ins_GetCachedNumInssWithCtrs (const char *SubQuery,
- Hie_Lvl_Level_t Scope,long Cod)
+ HieLvl_Level_t Scope,long Cod)
{
unsigned NumInssWithCtrs;
@@ -2020,7 +2021,7 @@ unsigned Ins_GetCachedNumInssWithCtrs (const char *SubQuery,
/*****************************************************************************/
unsigned Ins_GetCachedNumInssWithDegs (const char *SubQuery,
- Hie_Lvl_Level_t Scope,long Cod)
+ HieLvl_Level_t Scope,long Cod)
{
unsigned NumInssWithDegs;
@@ -2050,7 +2051,7 @@ unsigned Ins_GetCachedNumInssWithDegs (const char *SubQuery,
/*****************************************************************************/
unsigned Ins_GetCachedNumInssWithCrss (const char *SubQuery,
- Hie_Lvl_Level_t Scope,long Cod)
+ HieLvl_Level_t Scope,long Cod)
{
unsigned NumInssWithCrss;
@@ -2082,7 +2083,7 @@ unsigned Ins_GetCachedNumInssWithCrss (const char *SubQuery,
/*****************************************************************************/
unsigned Ins_GetCachedNumInssWithUsrs (Rol_Role_t Role,const char *SubQuery,
- Hie_Lvl_Level_t Scope,long Cod)
+ HieLvl_Level_t Scope,long Cod)
{
static const FigCch_FigureCached_t FigureInss[Rol_NUM_ROLES] =
{
diff --git a/swad_institution.h b/swad_institution.h
index 24a1c280..fae4f753 100644
--- a/swad_institution.h
+++ b/swad_institution.h
@@ -136,13 +136,13 @@ unsigned Ins_GetNumInssInCty (long CtyCod);
unsigned Ins_GetCachedNumInssInCty (long CtyCod);
unsigned Ins_GetCachedNumInssWithCtrs (const char *SubQuery,
- Hie_Lvl_Level_t Scope,long Cod);
+ HieLvl_Level_t Scope,long Cod);
unsigned Ins_GetCachedNumInssWithDegs (const char *SubQuery,
- Hie_Lvl_Level_t Scope,long Cod);
+ HieLvl_Level_t Scope,long Cod);
unsigned Ins_GetCachedNumInssWithCrss (const char *SubQuery,
- Hie_Lvl_Level_t Scope,long Cod);
+ HieLvl_Level_t Scope,long Cod);
unsigned Ins_GetCachedNumInssWithUsrs (Rol_Role_t Role,const char *SubQuery,
- Hie_Lvl_Level_t Scope,long Cod);
+ HieLvl_Level_t Scope,long Cod);
void Ins_ListInssFound (MYSQL_RES **mysql_res,unsigned NumInss);
diff --git a/swad_institution_config.c b/swad_institution_config.c
index e1d756cf..72dd2084 100644
--- a/swad_institution_config.c
+++ b/swad_institution_config.c
@@ -40,6 +40,7 @@
#include "swad_help.h"
#include "swad_hierarchy.h"
#include "swad_hierarchy_config.h"
+#include "swad_hierarchy_level.h"
#include "swad_HTML.h"
#include "swad_institution.h"
#include "swad_logo.h"
@@ -184,10 +185,10 @@ static void InsCfg_Configuration (bool PrintView)
InsCfg_NumDpts ();
/***** Number of users in courses of this institution *****/
- HieCfg_NumUsrsInCrss (Hie_Lvl_INS,Gbl.Hierarchy.Ins.InsCod,Rol_TCH);
- HieCfg_NumUsrsInCrss (Hie_Lvl_INS,Gbl.Hierarchy.Ins.InsCod,Rol_NET);
- HieCfg_NumUsrsInCrss (Hie_Lvl_INS,Gbl.Hierarchy.Ins.InsCod,Rol_STD);
- HieCfg_NumUsrsInCrss (Hie_Lvl_INS,Gbl.Hierarchy.Ins.InsCod,Rol_UNK);
+ HieCfg_NumUsrsInCrss (HieLvl_INS,Gbl.Hierarchy.Ins.InsCod,Rol_TCH);
+ HieCfg_NumUsrsInCrss (HieLvl_INS,Gbl.Hierarchy.Ins.InsCod,Rol_NET);
+ HieCfg_NumUsrsInCrss (HieLvl_INS,Gbl.Hierarchy.Ins.InsCod,Rol_STD);
+ HieCfg_NumUsrsInCrss (HieLvl_INS,Gbl.Hierarchy.Ins.InsCod,Rol_UNK);
}
/***** End table *****/
@@ -223,7 +224,7 @@ static void InsCfg_PutIconsToPrintAndUpload (__attribute__((unused)) void *Args)
if (Gbl.Usrs.Me.Role.Logged >= Rol_INS_ADM)
/***** Icon to upload logo of institution *****/
- Lgo_PutIconToChangeLogo (Hie_Lvl_INS);
+ Lgo_PutIconToChangeLogo (HieLvl_INS);
/***** Put icon to view places *****/
Plc_PutIconToViewPlaces ();
@@ -236,7 +237,7 @@ static void InsCfg_PutIconsToPrintAndUpload (__attribute__((unused)) void *Args)
static void InsCfg_Title (bool PutLink)
{
HieCfg_Title (PutLink,
- Hie_Lvl_INS, // Logo scope
+ HieLvl_INS, // Logo scope
Gbl.Hierarchy.Ins.InsCod, // Logo code
Gbl.Hierarchy.Ins.ShrtName, // Logo short name
Gbl.Hierarchy.Ins.FullName, // Logo full name
@@ -546,7 +547,7 @@ static void InsCfg_NumDpts (void)
void InsCfg_RequestLogo (void)
{
- Lgo_RequestLogo (Hie_Lvl_INS);
+ Lgo_RequestLogo (HieLvl_INS);
}
/*****************************************************************************/
@@ -555,7 +556,7 @@ void InsCfg_RequestLogo (void)
void InsCfg_ReceiveLogo (void)
{
- Lgo_ReceiveLogo (Hie_Lvl_INS);
+ Lgo_ReceiveLogo (HieLvl_INS);
}
/*****************************************************************************/
@@ -564,7 +565,7 @@ void InsCfg_ReceiveLogo (void)
void InsCfg_RemoveLogo (void)
{
- Lgo_RemoveLogo (Hie_Lvl_INS);
+ Lgo_RemoveLogo (HieLvl_INS);
}
/*****************************************************************************/
diff --git a/swad_layout.c b/swad_layout.c
index d1e6d60e..9c0cfa42 100644
--- a/swad_layout.c
+++ b/swad_layout.c
@@ -445,7 +445,7 @@ static void Lay_WritePageTitle (void)
if (Gbl.Params.GetMethod && Gbl.Hierarchy.Deg.DegCod > 0)
{
HTM_TxtF ("%s > %s",Cfg_PLATFORM_SHORT_NAME,Gbl.Hierarchy.Deg.ShrtName);
- if (Gbl.Hierarchy.Level == Hie_Lvl_CRS)
+ if (Gbl.Hierarchy.Level == HieLvl_CRS)
HTM_TxtF (" > %s",Gbl.Hierarchy.Crs.ShrtName);
}
else
@@ -1161,7 +1161,7 @@ static void Lay_ShowLeftColumn (void)
HTM_DIV_End ();
/***** Notices (yellow notes) *****/
- if (Gbl.Hierarchy.Level == Hie_Lvl_CRS)
+ if (Gbl.Hierarchy.Level == HieLvl_CRS)
{
HTM_DIV_Begin ("class=\"LEFT_RIGHT_CELL\"");
Not_ShowNotices (Not_LIST_BRIEF_NOTICES,
@@ -1194,10 +1194,10 @@ static void Lay_ShowRightColumn (void)
}
/***** Number of connected users in the current course *****/
- if (Gbl.Hierarchy.Level == Hie_Lvl_CRS) // There is a course selected
+ if (Gbl.Hierarchy.Level == HieLvl_CRS) // There is a course selected
{
HTM_DIV_Begin ("id=\"courseconnected\" class=\"LEFT_RIGHT_CELL\""); // Used for AJAX based refresh
- Gbl.Scope.Current = Hie_Lvl_CRS;
+ Gbl.Scope.Current = HieLvl_CRS;
Con_ShowConnectedUsrsBelongingToCurrentCrs ();
HTM_DIV_End (); // Used for AJAX based refresh
}
@@ -1428,7 +1428,7 @@ void Lay_RefreshNotifsAndConnected (void)
{
unsigned NumUsr;
bool ShowConnected = (Gbl.Prefs.SideCols & Lay_SHOW_RIGHT_COLUMN) &&
- Gbl.Hierarchy.Level == Hie_Lvl_CRS; // Right column visible && There is a course selected
+ Gbl.Hierarchy.Level == HieLvl_CRS; // Right column visible && There is a course selected
/***** Sometimes, someone must do this work,
so who best than processes that refresh via AJAX? *****/
@@ -1469,7 +1469,7 @@ void Lay_RefreshNotifsAndConnected (void)
HTM_Txt ("|");
if (ShowConnected)
{
- Gbl.Scope.Current = Hie_Lvl_CRS;
+ Gbl.Scope.Current = HieLvl_CRS;
Con_ShowConnectedUsrsBelongingToCurrentCrs ();
}
HTM_Txt ("|");
@@ -1551,7 +1551,7 @@ void Lay_WriteHeaderClassPhoto (bool PrintView,bool DrawingClassPhoto,
{
if (!PrintView)
HTM_A_Begin ("href=\"%s\" target=\"_blank\"",Hie.Ins.WWW);
- Lgo_DrawLogo (Hie_Lvl_INS,Hie.Ins.InsCod,Hie.Ins.ShrtName,40,NULL,true);
+ Lgo_DrawLogo (HieLvl_INS,Hie.Ins.InsCod,Hie.Ins.ShrtName,40,NULL,true);
if (!PrintView)
HTM_A_End ();
}
@@ -1598,7 +1598,7 @@ void Lay_WriteHeaderClassPhoto (bool PrintView,bool DrawingClassPhoto,
if (!PrintView)
HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"CLASSPHOTO_TITLE\"",
Hie.Deg.WWW);
- Lgo_DrawLogo (Hie_Lvl_DEG,Hie.Deg.DegCod,Hie.Deg.ShrtName,40,NULL,true);
+ Lgo_DrawLogo (HieLvl_DEG,Hie.Deg.DegCod,Hie.Deg.ShrtName,40,NULL,true);
if (!PrintView)
HTM_A_End ();
}
diff --git a/swad_log.c b/swad_log.c
index 2ecb526d..a8973828 100644
--- a/swad_log.c
+++ b/swad_log.c
@@ -32,6 +32,7 @@
#include "swad_banner.h"
#include "swad_config.h"
#include "swad_database.h"
+#include "swad_degree_database.h"
#include "swad_exam_log.h"
#include "swad_global.h"
#include "swad_hierarchy.h"
@@ -341,7 +342,7 @@ void Log_GetAndShowLastClicks (void)
/* Get degree code (row[7]) */
Hie.Deg.DegCod = Str_ConvertStrCodToLongCod (row[7]);
- Deg_GetShortNameOfDegreeByCod (&Hie.Deg);
+ Deg_DB_GetShortNameOfDegreeByCod (&Hie.Deg);
/* Print table row */
HTM_TR_Begin (NULL);
diff --git a/swad_logo.c b/swad_logo.c
index 67ce0111..f9e97cde 100644
--- a/swad_logo.c
+++ b/swad_logo.c
@@ -32,6 +32,7 @@
#include "swad_action.h"
#include "swad_box.h"
+#include "swad_degree_database.h"
#include "swad_error.h"
#include "swad_form.h"
#include "swad_global.h"
@@ -74,18 +75,18 @@ static void Lgo_PutIconToRemoveLogo (Act_Action_t ActionRem);
/****************************** Draw degree logo *****************************/
/*****************************************************************************/
-void Lgo_DrawLogo (Hie_Lvl_Level_t Scope,long Cod,const char *AltText,
+void Lgo_DrawLogo (HieLvl_Level_t Scope,long Cod,const char *AltText,
unsigned Size,const char *Class,bool PutIconIfNotExists)
{
- static const char *HieIcon[Hie_Lvl_NUM_LEVELS] =
+ static const char *HieIcon[HieLvl_NUM_LEVELS] =
{
- [Hie_Lvl_UNK] = "sitemap.svg", // not applicable here
- [Hie_Lvl_SYS] = "sitemap.svg", // not applicable here
- [Hie_Lvl_CTY] = "sitemap.svg", // not applicable here
- [Hie_Lvl_INS] = "university.svg",
- [Hie_Lvl_CTR] = "building.svg",
- [Hie_Lvl_DEG] = "graduation-cap.svg",
- [Hie_Lvl_CRS] = "sitemap.svg", // not applicable here
+ [HieLvl_UNK] = "sitemap.svg", // not applicable here
+ [HieLvl_SYS] = "sitemap.svg", // not applicable here
+ [HieLvl_CTY] = "sitemap.svg", // not applicable here
+ [HieLvl_INS] = "university.svg",
+ [HieLvl_CTR] = "building.svg",
+ [HieLvl_DEG] = "graduation-cap.svg",
+ [HieLvl_CRS] = "sitemap.svg", // not applicable here
};
const char *Folder = NULL; // To avoid warning
char PathLogo[PATH_MAX + 1];
@@ -103,7 +104,7 @@ void Lgo_DrawLogo (Hie_Lvl_Level_t Scope,long Cod,const char *AltText,
if (Cod > 0) // Institution, center or degree exists
{
/* Degree */
- if (Scope == Hie_Lvl_DEG)
+ if (Scope == HieLvl_DEG)
{
Folder = Cfg_FOLDER_DEG;
DegCod = Cod;
@@ -118,11 +119,11 @@ void Lgo_DrawLogo (Hie_Lvl_Level_t Scope,long Cod,const char *AltText,
}
/* Center */
- if (!LogoFound && Scope != Hie_Lvl_INS)
+ if (!LogoFound && Scope != HieLvl_INS)
{
Folder = Cfg_FOLDER_CTR;
- if (Scope == Hie_Lvl_DEG) // && !LogoFound
- CtrCod = Deg_GetCtrCodOfDegreeByCod (Cod);
+ if (Scope == HieLvl_DEG) // && !LogoFound
+ CtrCod = Deg_DB_GetCtrCodOfDegreeByCod (Cod);
else
CtrCod = Cod;
snprintf (PathLogo,sizeof (PathLogo),"%s/%02u/%u/logo/%u.png",
@@ -139,9 +140,9 @@ void Lgo_DrawLogo (Hie_Lvl_Level_t Scope,long Cod,const char *AltText,
if (!LogoFound)
{
Folder = Cfg_FOLDER_INS;
- if (Scope == Hie_Lvl_DEG) // && !LogoFound
+ if (Scope == HieLvl_DEG) // && !LogoFound
InsCod = Deg_GetInsCodOfDegreeByCod (Cod);
- else if (Scope == Hie_Lvl_CTR) // && !LogoFound
+ else if (Scope == HieLvl_CTR) // && !LogoFound
InsCod = Ctr_GetInsCodOfCenterByCod (Cod);
else
InsCod = Cod;
@@ -198,7 +199,7 @@ void Lgo_DrawLogo (Hie_Lvl_Level_t Scope,long Cod,const char *AltText,
/************* the logo of institution, center or degree ***************/
/*****************************************************************************/
-void Lgo_PutIconToChangeLogo (Hie_Lvl_Level_t Scope)
+void Lgo_PutIconToChangeLogo (HieLvl_Level_t Scope)
{
extern const char *Txt_Change_logo;
extern const char *Txt_Upload_logo;
@@ -211,17 +212,17 @@ void Lgo_PutIconToChangeLogo (Hie_Lvl_Level_t Scope)
/***** Set variables depending on scope *****/
switch (Scope)
{
- case Hie_Lvl_INS:
+ case HieLvl_INS:
Action = ActReqInsLog;
Cod = Gbl.Hierarchy.Ins.InsCod;
Folder = Cfg_FOLDER_INS;
break;
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
Action = ActReqCtrLog;
Cod = Gbl.Hierarchy.Ctr.CtrCod;
Folder = Cfg_FOLDER_CTR;
break;
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
Action = ActReqDegLog;
Cod = Gbl.Hierarchy.Deg.DegCod;
Folder = Cfg_FOLDER_DEG;
@@ -250,7 +251,7 @@ void Lgo_PutIconToChangeLogo (Hie_Lvl_Level_t Scope)
/**** Show a form for sending a logo of the institution, center or degree ****/
/*****************************************************************************/
-void Lgo_RequestLogo (Hie_Lvl_Level_t Scope)
+void Lgo_RequestLogo (HieLvl_Level_t Scope)
{
extern const char *The_ClassFormInBox[The_NUM_THEMES];
extern const char *Txt_Logo;
@@ -265,19 +266,19 @@ void Lgo_RequestLogo (Hie_Lvl_Level_t Scope)
/***** Set action depending on scope *****/
switch (Scope)
{
- case Hie_Lvl_INS:
+ case HieLvl_INS:
Cod = Gbl.Hierarchy.Ins.InsCod;
Folder = Cfg_FOLDER_INS;
ActionRec = ActRecInsLog;
FunctionToDrawContextualIcons = Lgo_PutIconToRemoveLogoIns;
break;
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
Cod = Gbl.Hierarchy.Ctr.CtrCod;
Folder = Cfg_FOLDER_CTR;
ActionRec = ActRecCtrLog;
FunctionToDrawContextualIcons = Lgo_PutIconToRemoveLogoCtr;
break;
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
Cod = Gbl.Hierarchy.Deg.DegCod;
Folder = Cfg_FOLDER_DEG;
ActionRec = ActRecDegLog;
@@ -357,7 +358,7 @@ static void Lgo_PutIconToRemoveLogo (Act_Action_t ActionRem)
/******* Receive the logo of the current institution, center or degree *******/
/*****************************************************************************/
-void Lgo_ReceiveLogo (Hie_Lvl_Level_t Scope)
+void Lgo_ReceiveLogo (HieLvl_Level_t Scope)
{
extern const char *Txt_The_file_is_not_X;
long Cod;
@@ -372,15 +373,15 @@ void Lgo_ReceiveLogo (Hie_Lvl_Level_t Scope)
/***** Set variables depending on scope *****/
switch (Scope)
{
- case Hie_Lvl_INS:
+ case HieLvl_INS:
Cod = Gbl.Hierarchy.Ins.InsCod;
Folder = Cfg_FOLDER_INS;
break;
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
Cod = Gbl.Hierarchy.Ctr.CtrCod;
Folder = Cfg_FOLDER_CTR;
break;
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
Cod = Gbl.Hierarchy.Deg.DegCod;
Folder = Cfg_FOLDER_DEG;
break;
@@ -434,7 +435,7 @@ void Lgo_ReceiveLogo (Hie_Lvl_Level_t Scope)
/******* Remove the logo of the current institution, center or degree ********/
/*****************************************************************************/
-void Lgo_RemoveLogo (Hie_Lvl_Level_t Scope)
+void Lgo_RemoveLogo (HieLvl_Level_t Scope)
{
long Cod;
const char *Folder;
@@ -443,15 +444,15 @@ void Lgo_RemoveLogo (Hie_Lvl_Level_t Scope)
/***** Set variables depending on scope *****/
switch (Scope)
{
- case Hie_Lvl_INS:
+ case HieLvl_INS:
Cod = Gbl.Hierarchy.Ins.InsCod;
Folder = Cfg_FOLDER_INS;
break;
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
Cod = Gbl.Hierarchy.Ctr.CtrCod;
Folder = Cfg_FOLDER_CTR;
break;
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
Cod = Gbl.Hierarchy.Deg.DegCod;
Folder = Cfg_FOLDER_DEG;
break;
diff --git a/swad_logo.h b/swad_logo.h
index d4f57f45..2c21aced 100644
--- a/swad_logo.h
+++ b/swad_logo.h
@@ -39,11 +39,11 @@
/***************************** Public prototypes *****************************/
/*****************************************************************************/
-void Lgo_DrawLogo (Hie_Lvl_Level_t Scope,long Cod,const char *AltText,
+void Lgo_DrawLogo (HieLvl_Level_t Scope,long Cod,const char *AltText,
unsigned Size,const char *Class,bool PutIconIfNotExists);
-void Lgo_PutIconToChangeLogo (Hie_Lvl_Level_t Scope);
-void Lgo_RequestLogo (Hie_Lvl_Level_t Scope);
-void Lgo_ReceiveLogo (Hie_Lvl_Level_t Scope);
-void Lgo_RemoveLogo (Hie_Lvl_Level_t Scope);
+void Lgo_PutIconToChangeLogo (HieLvl_Level_t Scope);
+void Lgo_RequestLogo (HieLvl_Level_t Scope);
+void Lgo_ReceiveLogo (HieLvl_Level_t Scope);
+void Lgo_RemoveLogo (HieLvl_Level_t Scope);
#endif
diff --git a/swad_mark.c b/swad_mark.c
index e130602b..e3270ed9 100644
--- a/swad_mark.c
+++ b/swad_mark.c
@@ -37,6 +37,7 @@
#include "swad_error.h"
#include "swad_form.h"
#include "swad_global.h"
+#include "swad_hierarchy_level.h"
#include "swad_HTML.h"
#include "swad_ID.h"
#include "swad_mark.h"
@@ -623,7 +624,7 @@ void Mrk_ShowMyMarks (void)
}
else // Course zone
{
- if (Usr_GetNumUsrsInCrss (Hie_Lvl_CRS,Gbl.Hierarchy.Crs.CrsCod,
+ if (Usr_GetNumUsrsInCrss (HieLvl_CRS,Gbl.Hierarchy.Crs.CrsCod,
1 << Rol_STD)) // If there are students in this course
{
Gbl.Usrs.Other.UsrDat.UsrCod = Usr_GetRamdomStdFromCrs (Gbl.Hierarchy.Crs.CrsCod);
diff --git a/swad_message.c b/swad_message.c
index 673ecf15..52007d16 100644
--- a/swad_message.c
+++ b/swad_message.c
@@ -45,6 +45,7 @@
#include "swad_global.h"
#include "swad_group.h"
#include "swad_hierarchy.h"
+#include "swad_hierarchy_level.h"
#include "swad_HTML.h"
#include "swad_ID.h"
#include "swad_message.h"
@@ -283,9 +284,9 @@ static void Msg_PutFormMsgUsrs (struct Msg_Messages *Messages,
Grp_GetParCodsSeveralGrpsToShowUsrs ();
/***** Get and order lists of users from this course *****/
- Usr_GetListUsrs (Hie_Lvl_CRS,Rol_STD);
- Usr_GetListUsrs (Hie_Lvl_CRS,Rol_NET);
- Usr_GetListUsrs (Hie_Lvl_CRS,Rol_TCH);
+ Usr_GetListUsrs (HieLvl_CRS,Rol_STD);
+ Usr_GetListUsrs (HieLvl_CRS,Rol_NET);
+ Usr_GetListUsrs (HieLvl_CRS,Rol_TCH);
NumUsrsInCrs = Gbl.Usrs.LstUsrs[Rol_STD].NumUsrs + // Students
Gbl.Usrs.LstUsrs[Rol_NET].NumUsrs + // Non-editing teachers
Gbl.Usrs.LstUsrs[Rol_TCH].NumUsrs; // Teachers
@@ -534,7 +535,7 @@ static void Msg_WriteFormUsrsIDsOrNicksOtherRecipients (void)
extern const char *Txt_nicks_emails_or_IDs_separated_by_commas;
char Nickname[Nck_MAX_BYTES_NICK_WITHOUT_ARROBA + 1];
unsigned ColSpan;
- bool StdsAndTchsWritten = Gbl.Hierarchy.Level == Hie_Lvl_CRS && // Course selected
+ bool StdsAndTchsWritten = Gbl.Hierarchy.Level == HieLvl_CRS && // Course selected
(Gbl.Usrs.Me.IBelongToCurrentCrs || // I belong to it
Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM);
@@ -2348,7 +2349,7 @@ unsigned Msg_GetNumMsgsSentByUsr (long UsrCod)
/******** (all the platform, current degree or current course) **********/
/*****************************************************************************/
-unsigned Msg_GetNumMsgsSent (Hie_Lvl_Level_t Scope,Msg_Status_t MsgStatus)
+unsigned Msg_GetNumMsgsSent (HieLvl_Level_t Scope,Msg_Status_t MsgStatus)
{
const char *Table = "msg_snt";
@@ -2366,9 +2367,9 @@ unsigned Msg_GetNumMsgsSent (Hie_Lvl_Level_t Scope,Msg_Status_t MsgStatus)
}
switch (Scope)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
return (unsigned) DB_GetNumRowsTable (Table);
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
return (unsigned)
DB_QueryCOUNT ("can not get number of sent messages",
"SELECT COUNT(*)"
@@ -2385,7 +2386,7 @@ unsigned Msg_GetNumMsgsSent (Hie_Lvl_Level_t Scope,Msg_Status_t MsgStatus)
Table,
Gbl.Hierarchy.Cty.CtyCod,
Table);
- case Hie_Lvl_INS:
+ case HieLvl_INS:
return (unsigned)
DB_QueryCOUNT ("can not get number of sent messages",
"SELECT COUNT(*)"
@@ -2400,7 +2401,7 @@ unsigned Msg_GetNumMsgsSent (Hie_Lvl_Level_t Scope,Msg_Status_t MsgStatus)
Table,
Gbl.Hierarchy.Ins.InsCod,
Table);
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
return (unsigned)
DB_QueryCOUNT ("can not get number of sent messages",
"SELECT COUNT(*)"
@@ -2413,7 +2414,7 @@ unsigned Msg_GetNumMsgsSent (Hie_Lvl_Level_t Scope,Msg_Status_t MsgStatus)
Table,
Gbl.Hierarchy.Ctr.CtrCod,
Table);
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
return (unsigned)
DB_QueryCOUNT ("can not get number of sent messages",
"SELECT COUNT(*)"
@@ -2424,7 +2425,7 @@ unsigned Msg_GetNumMsgsSent (Hie_Lvl_Level_t Scope,Msg_Status_t MsgStatus)
Table,
Gbl.Hierarchy.Deg.DegCod,
Table);
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
return (unsigned)
DB_QueryCOUNT ("can not get number of sent messages",
"SELECT COUNT(*)"
@@ -2442,7 +2443,7 @@ unsigned Msg_GetNumMsgsSent (Hie_Lvl_Level_t Scope,Msg_Status_t MsgStatus)
/****** (all the platform, current degree or current course) ********/
/*****************************************************************************/
-unsigned Msg_GetNumMsgsReceived (Hie_Lvl_Level_t Scope,Msg_Status_t MsgStatus)
+unsigned Msg_GetNumMsgsReceived (HieLvl_Level_t Scope,Msg_Status_t MsgStatus)
{
char *Table;
@@ -2456,9 +2457,9 @@ unsigned Msg_GetNumMsgsReceived (Hie_Lvl_Level_t Scope,Msg_Status_t MsgStatus)
"msg_rcv_deleted";
switch (Scope)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
return (unsigned) DB_GetNumRowsTable (Table);
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
return (unsigned)
DB_QueryCOUNT ("can not get number of received messages",
"SELECT COUNT(*)"
@@ -2477,7 +2478,7 @@ unsigned Msg_GetNumMsgsReceived (Hie_Lvl_Level_t Scope,Msg_Status_t MsgStatus)
Table,
Gbl.Hierarchy.Cty.CtyCod,
Table);
- case Hie_Lvl_INS:
+ case HieLvl_INS:
return (unsigned)
DB_QueryCOUNT ("can not get number of received messages",
"SELECT COUNT(*)"
@@ -2494,7 +2495,7 @@ unsigned Msg_GetNumMsgsReceived (Hie_Lvl_Level_t Scope,Msg_Status_t MsgStatus)
Table,
Gbl.Hierarchy.Ins.InsCod,
Table);
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
return (unsigned)
DB_QueryCOUNT ("can not get number of received messages",
"SELECT COUNT(*)"
@@ -2509,7 +2510,7 @@ unsigned Msg_GetNumMsgsReceived (Hie_Lvl_Level_t Scope,Msg_Status_t MsgStatus)
Table,
Gbl.Hierarchy.Ctr.CtrCod,
Table);
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
return (unsigned)
DB_QueryCOUNT ("can not get number of received messages",
"SELECT COUNT(*)"
@@ -2522,7 +2523,7 @@ unsigned Msg_GetNumMsgsReceived (Hie_Lvl_Level_t Scope,Msg_Status_t MsgStatus)
Table,
Gbl.Hierarchy.Deg.DegCod,
Table);
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
return (unsigned)
DB_QueryCOUNT ("can not get number of received messages",
"SELECT COUNT(*)"
@@ -2533,7 +2534,7 @@ unsigned Msg_GetNumMsgsReceived (Hie_Lvl_Level_t Scope,Msg_Status_t MsgStatus)
Table,
Gbl.Hierarchy.Crs.CrsCod,
Table);
- case Hie_Lvl_UNK:
+ case HieLvl_UNK:
default:
return 0;
}
@@ -2541,7 +2542,7 @@ unsigned Msg_GetNumMsgsReceived (Hie_Lvl_Level_t Scope,Msg_Status_t MsgStatus)
case Msg_STATUS_NOTIFIED:
switch (Scope)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
return (unsigned)
DB_QueryCOUNT ("can not get number of received messages",
"SELECT "
@@ -2552,7 +2553,7 @@ unsigned Msg_GetNumMsgsReceived (Hie_Lvl_Level_t Scope,Msg_Status_t MsgStatus)
"(SELECT COUNT(*)"
" FROM msg_rcv_deleted"
" WHERE Notified='Y')");
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
return (unsigned)
DB_QueryCOUNT ("can not get number of received messages",
"SELECT "
@@ -2587,7 +2588,7 @@ unsigned Msg_GetNumMsgsReceived (Hie_Lvl_Level_t Scope,Msg_Status_t MsgStatus)
" AND msg_rcv_deleted.Notified='Y')",
Gbl.Hierarchy.Cty.CtyCod,
Gbl.Hierarchy.Cty.CtyCod);
- case Hie_Lvl_INS:
+ case HieLvl_INS:
return (unsigned)
DB_QueryCOUNT ("can not get number of received messages",
"SELECT "
@@ -2618,7 +2619,7 @@ unsigned Msg_GetNumMsgsReceived (Hie_Lvl_Level_t Scope,Msg_Status_t MsgStatus)
" AND msg_rcv_deleted.Notified='Y')",
Gbl.Hierarchy.Ins.InsCod,
Gbl.Hierarchy.Ins.InsCod);
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
return (unsigned)
DB_QueryCOUNT ("can not get number of received messages",
"SELECT "
@@ -2645,7 +2646,7 @@ unsigned Msg_GetNumMsgsReceived (Hie_Lvl_Level_t Scope,Msg_Status_t MsgStatus)
" AND msg_rcv_deleted.Notified='Y')",
Gbl.Hierarchy.Ctr.CtrCod,
Gbl.Hierarchy.Ctr.CtrCod);
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
return (unsigned)
DB_QueryCOUNT ("can not get number of received messages",
"SELECT "
@@ -2668,7 +2669,7 @@ unsigned Msg_GetNumMsgsReceived (Hie_Lvl_Level_t Scope,Msg_Status_t MsgStatus)
" AND msg_rcv_deleted.Notified='Y')",
Gbl.Hierarchy.Deg.DegCod,
Gbl.Hierarchy.Deg.DegCod);
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
return (unsigned)
DB_QueryCOUNT ("can not get number of received messages",
"SELECT "
@@ -2687,7 +2688,7 @@ unsigned Msg_GetNumMsgsReceived (Hie_Lvl_Level_t Scope,Msg_Status_t MsgStatus)
" AND msg_rcv_deleted.Notified='Y')",
Gbl.Hierarchy.Crs.CrsCod,
Gbl.Hierarchy.Crs.CrsCod);
- case Hie_Lvl_UNK:
+ case HieLvl_UNK:
default:
return 0;
}
diff --git a/swad_message.h b/swad_message.h
index 8522365c..df8e1920 100644
--- a/swad_message.h
+++ b/swad_message.h
@@ -111,8 +111,8 @@ void Msg_ShowRecMsgs (void);
unsigned Msg_GetNumMsgsSentByTchsCrs (long CrsCod);
unsigned Msg_GetNumMsgsSentByUsr (long UsrCod);
-unsigned Msg_GetNumMsgsSent (Hie_Lvl_Level_t Scope,Msg_Status_t MsgStatus);
-unsigned Msg_GetNumMsgsReceived (Hie_Lvl_Level_t Scope,Msg_Status_t MsgStatus);
+unsigned Msg_GetNumMsgsSent (HieLvl_Level_t Scope,Msg_Status_t MsgStatus);
+unsigned Msg_GetNumMsgsReceived (HieLvl_Level_t Scope,Msg_Status_t MsgStatus);
void Msg_PutHiddenParamsMsgsFilters (void *Messages);
void Msg_GetNotifMessage (char SummaryStr[Ntf_MAX_BYTES_SUMMARY + 1],
diff --git a/swad_network.c b/swad_network.c
index f16f2267..05552493 100644
--- a/swad_network.c
+++ b/swad_network.c
@@ -33,6 +33,7 @@
#include "swad_figure.h"
#include "swad_form.h"
#include "swad_global.h"
+#include "swad_hierarchy_level.h"
#include "swad_HTML.h"
#include "swad_parameter.h"
#include "swad_profile.h"
@@ -428,7 +429,7 @@ void Net_ShowWebAndSocialNetworksStats (void)
/***** Get number of users with a web / social network *****/
switch (Gbl.Scope.Current)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
NumRows = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get number of users"
" with webs / social networks",
@@ -439,7 +440,7 @@ void Net_ShowWebAndSocialNetworksStats (void)
" ORDER BY N DESC,"
"Web");
break;
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
NumRows = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get number of users"
" with webs / social networks",
@@ -462,7 +463,7 @@ void Net_ShowWebAndSocialNetworksStats (void)
"usr_webs.Web",
Gbl.Hierarchy.Cty.CtyCod);
break;
- case Hie_Lvl_INS:
+ case HieLvl_INS:
NumRows = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get number of users"
" with webs / social networks",
@@ -483,7 +484,7 @@ void Net_ShowWebAndSocialNetworksStats (void)
"usr_webs.Web",
Gbl.Hierarchy.Ins.InsCod);
break;
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
NumRows = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get number of users"
" with webs / social networks",
@@ -502,7 +503,7 @@ void Net_ShowWebAndSocialNetworksStats (void)
"usr_webs.Web",
Gbl.Hierarchy.Ctr.CtrCod);
break;
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
NumRows = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get number of users"
" with webs / social networks",
@@ -519,7 +520,7 @@ void Net_ShowWebAndSocialNetworksStats (void)
"usr_webs.Web",
Gbl.Hierarchy.Deg.DegCod);
break;
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
NumRows = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get number of users"
" with webs / social networks",
diff --git a/swad_notice.c b/swad_notice.c
index 01df8c44..9d2677df 100644
--- a/swad_notice.c
+++ b/swad_notice.c
@@ -38,6 +38,7 @@
#include "swad_figure.h"
#include "swad_form.h"
#include "swad_global.h"
+#include "swad_hierarchy_level.h"
#include "swad_HTML.h"
#include "swad_notice.h"
#include "swad_notification.h"
@@ -391,7 +392,7 @@ void Not_ShowNotices (Not_Listing_t TypeNoticesListing,long HighlightNotCod)
char RSSLink[Cns_MAX_BYTES_WWW + 1];
/***** Trivial check *****/
- if (Gbl.Hierarchy.Level != Hie_Lvl_CRS) // No course selected
+ if (Gbl.Hierarchy.Level != HieLvl_CRS) // No course selected
return;
/***** Get notices from database *****/
@@ -841,7 +842,7 @@ void Not_GetSummaryAndContentNotice (char SummaryStr[Ntf_MAX_BYTES_SUMMARY + 1],
// Returns the number of (active or obsolete) notices
// sent from this location (all the platform, current degree or current course)
-unsigned Not_GetNumNotices (Hie_Lvl_Level_t Scope,Not_Status_t Status,unsigned *NumNotif)
+unsigned Not_GetNumNotices (HieLvl_Level_t Scope,Not_Status_t Status,unsigned *NumNotif)
{
MYSQL_RES *mysql_res;
MYSQL_ROW row;
@@ -850,7 +851,7 @@ unsigned Not_GetNumNotices (Hie_Lvl_Level_t Scope,Not_Status_t Status,unsigned *
/***** Get number of notices from database *****/
switch (Scope)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
DB_QuerySELECT (&mysql_res,"can not get number of notices",
"SELECT COUNT(*)," // row[0]
"SUM(NumNotif)" // row[1]
@@ -858,7 +859,7 @@ unsigned Not_GetNumNotices (Hie_Lvl_Level_t Scope,Not_Status_t Status,unsigned *
" WHERE Status=%u",
Status);
break;
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
DB_QuerySELECT (&mysql_res,"can not get number of notices",
"SELECT COUNT(*)," // row[0]
"SUM(not_notices.NumNotif)" // row[1]
@@ -876,7 +877,7 @@ unsigned Not_GetNumNotices (Hie_Lvl_Level_t Scope,Not_Status_t Status,unsigned *
Gbl.Hierarchy.Cty.CtyCod,
Status);
break;
- case Hie_Lvl_INS:
+ case HieLvl_INS:
DB_QuerySELECT (&mysql_res,"can not get number of notices",
"SELECT COUNT(*)," // row[0]
"SUM(not_notices.NumNotif)" // row[1]
@@ -892,7 +893,7 @@ unsigned Not_GetNumNotices (Hie_Lvl_Level_t Scope,Not_Status_t Status,unsigned *
Gbl.Hierarchy.Ins.InsCod,
Status);
break;
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
DB_QuerySELECT (&mysql_res,"can not get number of notices",
"SELECT COUNT(*)," // row[0]
"SUM(not_notices.NumNotif)" // row[1]
@@ -906,7 +907,7 @@ unsigned Not_GetNumNotices (Hie_Lvl_Level_t Scope,Not_Status_t Status,unsigned *
Gbl.Hierarchy.Ctr.CtrCod,
Status);
break;
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
DB_QuerySELECT (&mysql_res,"can not get number of notices",
"SELECT COUNT(*)," // row[0]
"SUM(not_notices.NumNotif)" // row[1]
@@ -918,7 +919,7 @@ unsigned Not_GetNumNotices (Hie_Lvl_Level_t Scope,Not_Status_t Status,unsigned *
Gbl.Hierarchy.Deg.DegCod,
Status);
break;
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
DB_QuerySELECT (&mysql_res,"can not get number of notices",
"SELECT COUNT(*)," // row[0]
"SUM(NumNotif)" // row[1]
@@ -959,7 +960,7 @@ unsigned Not_GetNumNotices (Hie_Lvl_Level_t Scope,Not_Status_t Status,unsigned *
// Returns the number of deleted notices
// sent from this location (all the platform, current degree or current course)
-unsigned Not_GetNumNoticesDeleted (Hie_Lvl_Level_t Scope,unsigned *NumNotif)
+unsigned Not_GetNumNoticesDeleted (HieLvl_Level_t Scope,unsigned *NumNotif)
{
MYSQL_RES *mysql_res;
MYSQL_ROW row;
@@ -968,13 +969,13 @@ unsigned Not_GetNumNoticesDeleted (Hie_Lvl_Level_t Scope,unsigned *NumNotif)
/***** Get number of notices from database *****/
switch (Scope)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
DB_QuerySELECT (&mysql_res,"can not get number of deleted notices",
"SELECT COUNT(*)," // row[0]
"SUM(NumNotif)" // row[1]
" FROM not_deleted");
break;
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
DB_QuerySELECT (&mysql_res,"can not get number of deleted notices",
"SELECT COUNT(*)," // row[0]
"SUM(not_deleted.NumNotif)" // row[1]
@@ -990,7 +991,7 @@ unsigned Not_GetNumNoticesDeleted (Hie_Lvl_Level_t Scope,unsigned *NumNotif)
" AND crs_courses.CrsCod=not_deleted.CrsCod",
Gbl.Hierarchy.Cty.CtyCod);
break;
- case Hie_Lvl_INS:
+ case HieLvl_INS:
DB_QuerySELECT (&mysql_res,"can not get number of deleted notices",
"SELECT COUNT(*)," // row[0]
"SUM(not_deleted.NumNotif)" // row[1]
@@ -1004,7 +1005,7 @@ unsigned Not_GetNumNoticesDeleted (Hie_Lvl_Level_t Scope,unsigned *NumNotif)
" AND crs_courses.CrsCod=not_deleted.CrsCod",
Gbl.Hierarchy.Ins.InsCod);
break;
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
DB_QuerySELECT (&mysql_res,"can not get number of deleted notices",
"SELECT COUNT(*)," // row[0]
"SUM(not_deleted.NumNotif)" // row[1]
@@ -1016,7 +1017,7 @@ unsigned Not_GetNumNoticesDeleted (Hie_Lvl_Level_t Scope,unsigned *NumNotif)
" AND crs_courses.CrsCod=not_deleted.CrsCod",
Gbl.Hierarchy.Ctr.CtrCod);
break;
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
DB_QuerySELECT (&mysql_res,"can not get number of deleted notices",
"SELECT COUNT(*)," // row[0]
"SUM(not_deleted.NumNotif)" // row[1]
@@ -1026,7 +1027,7 @@ unsigned Not_GetNumNoticesDeleted (Hie_Lvl_Level_t Scope,unsigned *NumNotif)
" AND crs_courses.CrsCod=not_deleted.CrsCod",
Gbl.Hierarchy.Deg.DegCod);
break;
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
DB_QuerySELECT (&mysql_res,"can not get number of deleted notices",
"SELECT COUNT(*)," // row[0]
"SUM(NumNotif)" // row[1]
diff --git a/swad_notice.h b/swad_notice.h
index 3c041a4f..aeb1d135 100644
--- a/swad_notice.h
+++ b/swad_notice.h
@@ -72,8 +72,8 @@ void Not_ShowNotices (Not_Listing_t TypeNoticesListing,long HighlightNotCod);
void Not_GetSummaryAndContentNotice (char SummaryStr[Ntf_MAX_BYTES_SUMMARY + 1],
char **ContentStr,
long NotCod,bool GetContent);
-unsigned Not_GetNumNotices (Hie_Lvl_Level_t Scope,Not_Status_t Status,unsigned *NumNotif);
-unsigned Not_GetNumNoticesDeleted (Hie_Lvl_Level_t Scope,unsigned *NumNotif);
+unsigned Not_GetNumNotices (HieLvl_Level_t Scope,Not_Status_t Status,unsigned *NumNotif);
+unsigned Not_GetNumNoticesDeleted (HieLvl_Level_t Scope,unsigned *NumNotif);
void Not_PutHiddenParamNotCod (long NotCod);
diff --git a/swad_notification.c b/swad_notification.c
index 48cecb14..edc691ca 100644
--- a/swad_notification.c
+++ b/swad_notification.c
@@ -45,6 +45,7 @@
#include "swad_forum.h"
#include "swad_global.h"
#include "swad_hierarchy.h"
+#include "swad_hierarchy_level.h"
#include "swad_HTML.h"
#include "swad_mark.h"
#include "swad_message.h"
@@ -1318,7 +1319,7 @@ unsigned Ntf_StoreNotifyEventsToAllUsrs (Ntf_NotifyEvent_t NotifyEvent,long Cod)
case Ntf_EVENT_ENROLMENT_TCH: // This function should not be called in this case
return 0;
case Ntf_EVENT_ENROLMENT_REQUEST:
- if (Usr_GetNumUsrsInCrss (Hie_Lvl_CRS,Gbl.Hierarchy.Crs.CrsCod,
+ if (Usr_GetNumUsrsInCrss (HieLvl_CRS,Gbl.Hierarchy.Crs.CrsCod,
1 << Rol_TCH))
// If this course has teachers ==> send notification to teachers
NumUsrs = (unsigned)
@@ -1345,10 +1346,10 @@ unsigned Ntf_StoreNotifyEventsToAllUsrs (Ntf_NotifyEvent_t NotifyEvent,long Cod)
" OR (Scope='%s' AND Cod=%ld)"
" OR (Scope='%s' AND Cod=%ld))"
" AND UsrCod<>%ld",
- Sco_GetDBStrFromScope (Hie_Lvl_SYS),
- Sco_GetDBStrFromScope (Hie_Lvl_INS),Gbl.Hierarchy.Ins.InsCod,
- Sco_GetDBStrFromScope (Hie_Lvl_CTR),Gbl.Hierarchy.Ctr.CtrCod,
- Sco_GetDBStrFromScope (Hie_Lvl_DEG),Gbl.Hierarchy.Deg.DegCod,
+ Sco_GetDBStrFromScope (HieLvl_SYS),
+ Sco_GetDBStrFromScope (HieLvl_INS),Gbl.Hierarchy.Ins.InsCod,
+ Sco_GetDBStrFromScope (HieLvl_CTR),Gbl.Hierarchy.Ctr.CtrCod,
+ Sco_GetDBStrFromScope (HieLvl_DEG),Gbl.Hierarchy.Deg.DegCod,
Gbl.Usrs.Me.UsrDat.UsrCod);
break;
case Ntf_EVENT_TL_COMMENT: // New comment to one of my social notes or comments
@@ -1450,11 +1451,11 @@ unsigned Ntf_StoreNotifyEventsToAllUsrs (Ntf_NotifyEvent_t NotifyEvent,long Cod)
" AND (svy_surveys.Roles&(1<0)",
Cod,
Cod,
- Sco_GetDBStrFromScope (Hie_Lvl_CRS),
+ Sco_GetDBStrFromScope (HieLvl_CRS),
Gbl.Usrs.Me.UsrDat.UsrCod,
Cod,
Gbl.Usrs.Me.UsrDat.UsrCod,
- Sco_GetDBStrFromScope (Hie_Lvl_CRS));
+ Sco_GetDBStrFromScope (HieLvl_CRS));
break;
}
diff --git a/swad_photo.c b/swad_photo.c
index 0dbbac59..d0a5321f 100644
--- a/swad_photo.c
+++ b/swad_photo.c
@@ -47,6 +47,7 @@
#include "swad_form.h"
#include "swad_global.h"
#include "swad_hierarchy.h"
+#include "swad_hierarchy_level.h"
#include "swad_HTML.h"
#include "swad_logo.h"
#include "swad_parameter.h"
@@ -2252,7 +2253,7 @@ static void Pho_ShowOrPrintListDegrees (struct Pho_DegPhotos *DegPhotos,
"BT_LINK DAT","CT");
else // Pho_DEGREES_PRINT
{
- Lgo_DrawLogo (Hie_Lvl_DEG,Deg.DegCod,Deg.ShrtName,20,"CT",true);
+ Lgo_DrawLogo (HieLvl_DEG,Deg.DegCod,Deg.ShrtName,20,"CT",true);
HTM_TxtF (" %s",Deg.FullName);
}
HTM_TD_End ();
diff --git a/swad_profile.c b/swad_profile.c
index 557b100a..dad78558 100644
--- a/swad_profile.c
+++ b/swad_profile.c
@@ -40,6 +40,7 @@
#include "swad_form.h"
#include "swad_forum.h"
#include "swad_global.h"
+#include "swad_hierarchy_level.h"
#include "swad_HTML.h"
#include "swad_language.h"
#include "swad_message.h"
@@ -315,7 +316,7 @@ bool Prf_ShowUserProfile (struct UsrData *UsrDat)
/***** Shared record card *****/
if (!ItsMe && // If not me...
- Gbl.Hierarchy.Level == Hie_Lvl_CRS) // ...and a course is selected
+ Gbl.Hierarchy.Level == HieLvl_CRS) // ...and a course is selected
{
/* Get user's role in current course */
UsrDat->Roles.InCurrentCrs = Rol_GetRoleUsrInCrs (UsrDat->UsrCod,
@@ -974,7 +975,7 @@ static void Prf_ShowRanking (unsigned Rank,unsigned NumUsrs)
/***** Rank in form to go to ranking *****/
Frm_BeginForm (ActSeeUseGbl);
- Sco_PutParamScope ("ScopeSta",Hie_Lvl_SYS);
+ Sco_PutParamScope ("ScopeSta",HieLvl_SYS);
Par_PutHiddenParamUnsigned (NULL,"FigureType",(unsigned) Fig_USERS_RANKING);
if (asprintf (&Title,"#%u %s %u",
Rank,Txt_of_PART_OF_A_TOTAL,NumUsrs) < 0)
@@ -1461,7 +1462,7 @@ static void Prf_GetAndShowRankingFigure (const char *FieldName)
/***** Get ranking from database *****/
switch (Gbl.Scope.Current)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
NumUsrs = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get ranking",
"SELECT UsrCod," // row[0]
@@ -1478,7 +1479,7 @@ static void Prf_GetAndShowRankingFigure (const char *FieldName)
FieldName,
FieldName);
break;
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
NumUsrs = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get ranking",
"SELECT DISTINCTROW "
@@ -1508,7 +1509,7 @@ static void Prf_GetAndShowRankingFigure (const char *FieldName)
FieldName,
FieldName);
break;
- case Hie_Lvl_INS:
+ case HieLvl_INS:
NumUsrs = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get ranking",
"SELECT DISTINCTROW "
@@ -1536,7 +1537,7 @@ static void Prf_GetAndShowRankingFigure (const char *FieldName)
FieldName,
FieldName);
break;
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
NumUsrs = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get ranking",
"SELECT DISTINCTROW "
@@ -1561,7 +1562,7 @@ static void Prf_GetAndShowRankingFigure (const char *FieldName)
Gbl.Hierarchy.Ctr.CtrCod,
FieldName,FieldName);
break;
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
NumUsrs = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get ranking",
"SELECT DISTINCTROW "
@@ -1584,7 +1585,7 @@ static void Prf_GetAndShowRankingFigure (const char *FieldName)
Gbl.Hierarchy.Deg.DegCod,
FieldName,FieldName);
break;
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
NumUsrs = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get ranking",
"SELECT DISTINCTROW "
@@ -1695,7 +1696,7 @@ void Prf_GetAndShowRankingClicksPerDay (void)
/***** Get ranking from database *****/
switch (Gbl.Scope.Current)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
NumUsrs = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get ranking",
"SELECT UsrCod," // row[0]
@@ -1711,7 +1712,7 @@ void Prf_GetAndShowRankingClicksPerDay (void)
"UsrCod"
" LIMIT 100");
break;
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
NumUsrs = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get ranking",
"SELECT DISTINCTROW "
@@ -1740,7 +1741,7 @@ void Prf_GetAndShowRankingClicksPerDay (void)
" LIMIT 100",
Gbl.Hierarchy.Cty.CtyCod);
break;
- case Hie_Lvl_INS:
+ case HieLvl_INS:
NumUsrs = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get ranking",
"SELECT DISTINCTROW "
@@ -1767,7 +1768,7 @@ void Prf_GetAndShowRankingClicksPerDay (void)
" LIMIT 100",
Gbl.Hierarchy.Ins.InsCod);
break;
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
NumUsrs = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get ranking",
"SELECT DISTINCTROW "
@@ -1792,7 +1793,7 @@ void Prf_GetAndShowRankingClicksPerDay (void)
" LIMIT 100",
Gbl.Hierarchy.Ctr.CtrCod);
break;
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
NumUsrs = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get ranking",
"SELECT DISTINCTROW "
@@ -1815,7 +1816,7 @@ void Prf_GetAndShowRankingClicksPerDay (void)
" LIMIT 100",
Gbl.Hierarchy.Deg.DegCod);
break;
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
NumUsrs = (unsigned)
DB_QuerySELECT (&mysql_res,"can not get ranking",
"SELECT DISTINCTROW "
diff --git a/swad_program.c b/swad_program.c
index 958f1447..f150fbb7 100644
--- a/swad_program.c
+++ b/swad_program.c
@@ -38,6 +38,7 @@
#include "swad_figure.h"
#include "swad_form.h"
#include "swad_global.h"
+#include "swad_hierarchy_level.h"
#include "swad_HTML.h"
#include "swad_pagination.h"
#include "swad_parameter.h"
@@ -2190,18 +2191,18 @@ void Prg_RemoveCrsItems (long CrsCod)
// Returns the number of courses with program items
// in this location (all the platform, current degree or current course)
-unsigned Prg_GetNumCoursesWithItems (Hie_Lvl_Level_t Scope)
+unsigned Prg_GetNumCoursesWithItems (HieLvl_Level_t Scope)
{
/***** Get number of courses with program items from database *****/
switch (Scope)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
return (unsigned)
DB_QueryCOUNT ("can not get number of courses with program items",
"SELECT COUNT(DISTINCT CrsCod)"
" FROM prg_items"
" WHERE CrsCod>0");
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
return (unsigned)
DB_QueryCOUNT ("can not get number of courses with program items",
"SELECT COUNT(DISTINCT prg_items.CrsCod)"
@@ -2216,7 +2217,7 @@ unsigned Prg_GetNumCoursesWithItems (Hie_Lvl_Level_t Scope)
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=prg_items.CrsCod",
Gbl.Hierarchy.Cty.CtyCod);
- case Hie_Lvl_INS:
+ case HieLvl_INS:
return (unsigned)
DB_QueryCOUNT ("can not get number of courses with program items",
"SELECT COUNT(DISTINCT prg_items.CrsCod)"
@@ -2229,7 +2230,7 @@ unsigned Prg_GetNumCoursesWithItems (Hie_Lvl_Level_t Scope)
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=prg_items.CrsCod",
Gbl.Hierarchy.Ins.InsCod);
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
return (unsigned)
DB_QueryCOUNT ("can not get number of courses with program items",
"SELECT COUNT(DISTINCT prg_items.CrsCod)"
@@ -2240,7 +2241,7 @@ unsigned Prg_GetNumCoursesWithItems (Hie_Lvl_Level_t Scope)
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=prg_items.CrsCod",
Gbl.Hierarchy.Ctr.CtrCod);
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
return (unsigned)
DB_QueryCOUNT ("can not get number of courses with program items",
"SELECT COUNT(DISTINCT prg_items.CrsCod)"
@@ -2249,7 +2250,7 @@ unsigned Prg_GetNumCoursesWithItems (Hie_Lvl_Level_t Scope)
" WHERE crs_courses.DegCod=%ld"
" AND crs_courses.CrsCod=prg_items.CrsCod",
Gbl.Hierarchy.Deg.DegCod);
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
return (unsigned)
DB_QueryCOUNT ("can not get number of courses with program items",
"SELECT COUNT(DISTINCT CrsCod)"
@@ -2266,19 +2267,19 @@ unsigned Prg_GetNumCoursesWithItems (Hie_Lvl_Level_t Scope)
/*****************************************************************************/
// Returns the number of program items in a hierarchy scope
-unsigned Prg_GetNumItems (Hie_Lvl_Level_t Scope)
+unsigned Prg_GetNumItems (HieLvl_Level_t Scope)
{
/***** Get number of program items from database *****/
switch (Scope)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
return (unsigned)
DB_QueryCOUNT ("can not get number of program items",
"SELECT COUNT(*)"
" FROM prg_items"
" WHERE CrsCod>0");
break;
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
return (unsigned)
DB_QueryCOUNT ("can not get number of program items",
"SELECT COUNT(*)"
@@ -2294,7 +2295,7 @@ unsigned Prg_GetNumItems (Hie_Lvl_Level_t Scope)
" AND crs_courses.CrsCod=prg_items.CrsCod",
Gbl.Hierarchy.Cty.CtyCod);
break;
- case Hie_Lvl_INS:
+ case HieLvl_INS:
return (unsigned)
DB_QueryCOUNT ("can not get number of program items",
"SELECT COUNT(*)"
@@ -2308,7 +2309,7 @@ unsigned Prg_GetNumItems (Hie_Lvl_Level_t Scope)
" AND crs_courses.CrsCod=prg_items.CrsCod",
Gbl.Hierarchy.Ins.InsCod);
break;
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
return (unsigned)
DB_QueryCOUNT ("can not get number of program items",
"SELECT COUNT(*)"
@@ -2320,7 +2321,7 @@ unsigned Prg_GetNumItems (Hie_Lvl_Level_t Scope)
" AND crs_courses.CrsCod=prg_items.CrsCod",
Gbl.Hierarchy.Ctr.CtrCod);
break;
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
return (unsigned)
DB_QueryCOUNT ("can not get number of program items",
"SELECT COUNT(*)"
@@ -2330,7 +2331,7 @@ unsigned Prg_GetNumItems (Hie_Lvl_Level_t Scope)
" AND crs_courses.CrsCod=prg_items.CrsCod",
Gbl.Hierarchy.Deg.DegCod);
break;
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
return (unsigned)
DB_QueryCOUNT ("can not get number of program items",
"SELECT COUNT(*)"
diff --git a/swad_program.h b/swad_program.h
index a3868074..9c818c67 100644
--- a/swad_program.h
+++ b/swad_program.h
@@ -56,7 +56,7 @@ void Prg_MoveRightItem (void);
void Prg_RemoveCrsItems (long CrsCod);
-unsigned Prg_GetNumCoursesWithItems (Hie_Lvl_Level_t Scope);
-unsigned Prg_GetNumItems (Hie_Lvl_Level_t Scope);
+unsigned Prg_GetNumCoursesWithItems (HieLvl_Level_t Scope);
+unsigned Prg_GetNumItems (HieLvl_Level_t Scope);
#endif
diff --git a/swad_project.c b/swad_project.c
index 21b7f528..b93f8ea4 100644
--- a/swad_project.c
+++ b/swad_project.c
@@ -39,6 +39,7 @@
#include "swad_figure.h"
#include "swad_form.h"
#include "swad_global.h"
+#include "swad_hierarchy_level.h"
#include "swad_HTML.h"
#include "swad_ID.h"
#include "swad_notification.h"
@@ -4619,18 +4620,18 @@ void Prj_RemoveUsrFromProjects (long UsrCod)
// Returns the number of courses with projects
// in this location (all the platform, current degree or current course)
-unsigned Prj_GetNumCoursesWithProjects (Hie_Lvl_Level_t Scope)
+unsigned Prj_GetNumCoursesWithProjects (HieLvl_Level_t Scope)
{
/***** Get number of courses with projects from database *****/
switch (Scope)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
return (unsigned)
DB_QueryCOUNT ("can not get number of courses with projects",
"SELECT COUNT(DISTINCT CrsCod)"
" FROM prj_projects"
" WHERE CrsCod>0");
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
return (unsigned)
DB_QueryCOUNT ("can not get number of courses with projects",
"SELECT COUNT(DISTINCT prj_projects.CrsCod)"
@@ -4645,7 +4646,7 @@ unsigned Prj_GetNumCoursesWithProjects (Hie_Lvl_Level_t Scope)
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=prj_projects.CrsCod",
Gbl.Hierarchy.Cty.CtyCod);
- case Hie_Lvl_INS:
+ case HieLvl_INS:
return (unsigned)
DB_QueryCOUNT ("can not get number of courses with projects",
"SELECT COUNT(DISTINCT prj_projects.CrsCod)"
@@ -4658,7 +4659,7 @@ unsigned Prj_GetNumCoursesWithProjects (Hie_Lvl_Level_t Scope)
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=prj_projects.CrsCod",
Gbl.Hierarchy.Ins.InsCod);
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
return (unsigned)
DB_QueryCOUNT ("can not get number of courses with projects",
"SELECT COUNT(DISTINCT prj_projects.CrsCod)"
@@ -4669,7 +4670,7 @@ unsigned Prj_GetNumCoursesWithProjects (Hie_Lvl_Level_t Scope)
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=prj_projects.CrsCod",
Gbl.Hierarchy.Ctr.CtrCod);
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
return (unsigned)
DB_QueryCOUNT ("can not get number of courses with projects",
"SELECT COUNT(DISTINCT prj_projects.CrsCod)"
@@ -4679,7 +4680,7 @@ unsigned Prj_GetNumCoursesWithProjects (Hie_Lvl_Level_t Scope)
" AND crs_courses.CrsCod=prj_projects.CrsCod",
Gbl.Hierarchy.Deg.DegCod);
break;
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
return (unsigned)
DB_QueryCOUNT ("can not get number of courses with projects",
"SELECT COUNT(DISTINCT CrsCod)"
@@ -4697,19 +4698,19 @@ unsigned Prj_GetNumCoursesWithProjects (Hie_Lvl_Level_t Scope)
/*****************************************************************************/
// Returns the number of projects in this location
-unsigned Prj_GetNumProjects (Hie_Lvl_Level_t Scope)
+unsigned Prj_GetNumProjects (HieLvl_Level_t Scope)
{
/***** Get number of projects from database *****/
switch (Scope)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
return (unsigned)
DB_QueryCOUNT ("can not get number of projects",
"SELECT COUNT(*)"
" FROM prj_projects"
" WHERE CrsCod>0");
break;
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
return (unsigned)
DB_QueryCOUNT ("can not get number of projects",
"SELECT COUNT(*)"
@@ -4725,7 +4726,7 @@ unsigned Prj_GetNumProjects (Hie_Lvl_Level_t Scope)
" AND crs_courses.CrsCod=prj_projects.CrsCod",
Gbl.Hierarchy.Cty.CtyCod);
break;
- case Hie_Lvl_INS:
+ case HieLvl_INS:
return (unsigned)
DB_QueryCOUNT ("can not get number of projects",
"SELECT COUNT(*)"
@@ -4739,7 +4740,7 @@ unsigned Prj_GetNumProjects (Hie_Lvl_Level_t Scope)
" AND crs_courses.CrsCod=prj_projects.CrsCod",
Gbl.Hierarchy.Ins.InsCod);
break;
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
return (unsigned)
DB_QueryCOUNT ("can not get number of projects",
"SELECT COUNT(*)"
@@ -4751,7 +4752,7 @@ unsigned Prj_GetNumProjects (Hie_Lvl_Level_t Scope)
" AND crs_courses.CrsCod=prj_projects.CrsCod",
Gbl.Hierarchy.Ctr.CtrCod);
break;
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
return (unsigned)
DB_QueryCOUNT ("can not get number of projects",
"SELECT COUNT(*)"
@@ -4761,7 +4762,7 @@ unsigned Prj_GetNumProjects (Hie_Lvl_Level_t Scope)
" AND crs_courses.CrsCod=prj_projects.CrsCod",
Gbl.Hierarchy.Deg.DegCod);
break;
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
return (unsigned)
DB_QueryCOUNT ("can not get number of projects",
"SELECT COUNT(*)"
diff --git a/swad_project.h b/swad_project.h
index 89cc723e..e00795b8 100644
--- a/swad_project.h
+++ b/swad_project.h
@@ -238,7 +238,7 @@ void Prj_UnloProjectEdition (void);
void Prj_RemoveCrsProjects (long CrsCod);
void Prj_RemoveUsrFromProjects (long UsrCod);
-unsigned Prj_GetNumCoursesWithProjects (Hie_Lvl_Level_t Scope);
-unsigned Prj_GetNumProjects (Hie_Lvl_Level_t Scope);
+unsigned Prj_GetNumCoursesWithProjects (HieLvl_Level_t Scope);
+unsigned Prj_GetNumProjects (HieLvl_Level_t Scope);
#endif
diff --git a/swad_record.c b/swad_record.c
index cd4fc60e..0b168cae 100644
--- a/swad_record.c
+++ b/swad_record.c
@@ -43,6 +43,7 @@
#include "swad_follow_database.h"
#include "swad_form.h"
#include "swad_global.h"
+#include "swad_hierarchy_level.h"
#include "swad_HTML.h"
#include "swad_ID.h"
#include "swad_logo.h"
@@ -1745,7 +1746,7 @@ static void Rec_ShowCrsRecord (Rec_CourseRecordViewType_t TypeOfView,
HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"LM\" style=\"width:%upx;\"",Rec_DEGREE_LOGO_SIZE);
- Lgo_DrawLogo (Hie_Lvl_DEG,Gbl.Hierarchy.Deg.DegCod,
+ Lgo_DrawLogo (HieLvl_DEG,Gbl.Hierarchy.Deg.DegCod,
Gbl.Hierarchy.Deg.ShrtName,Rec_DEGREE_LOGO_SIZE,NULL,true);
HTM_TD_End ();
@@ -2071,7 +2072,7 @@ void Rec_ShowFormOtherNewSharedRecord (struct UsrData *UsrDat,Rol_Role_t Default
/* In this case UsrDat->Roles.InCurrentCrsDB
is not the current role in current course.
Instead it is initialized with the preferred role. */
- UsrDat->Roles.InCurrentCrs = (Gbl.Hierarchy.Level == Hie_Lvl_CRS) ? DefaultRole : // Course selected
+ UsrDat->Roles.InCurrentCrs = (Gbl.Hierarchy.Level == HieLvl_CRS) ? DefaultRole : // Course selected
Rol_UNK; // No course selected
Rec_ShowSharedUsrRecord (Rec_SHA_OTHER_NEW_USR_FORM,UsrDat,NULL);
}
@@ -2536,7 +2537,7 @@ static void Rec_PutIconsCommands (__attribute__((unused)) void *Args)
Txt_Administer_user);
}
- if (Gbl.Hierarchy.Level == Hie_Lvl_CRS) // Course selected
+ if (Gbl.Hierarchy.Level == HieLvl_CRS) // Course selected
{
if (Gbl.Record.UsrDat->Roles.InCurrentCrs == Rol_STD) // He/she is a student in current course
{
@@ -2710,7 +2711,7 @@ static void Rec_ShowInstitutionInHead (struct Ins_Instit *Ins,bool PutFormLinks)
Ins_PutParamInsCod (Ins->InsCod);
HTM_BUTTON_SUBMIT_Begin (Ins->FullName,"BT_LINK",NULL);
}
- Lgo_DrawLogo (Hie_Lvl_INS,Ins->InsCod,Ins->ShrtName,
+ Lgo_DrawLogo (HieLvl_INS,Ins->InsCod,Ins->ShrtName,
Rec_INSTITUTION_LOGO_SIZE,NULL,true);
if (PutFormLinks)
{
@@ -2957,7 +2958,7 @@ static void Rec_ShowRole (struct UsrData *UsrDat,
HTM_SELECT_End ();
break;
case Rec_SHA_OTHER_EXISTING_USR_FORM: // The other user already exists in the platform
- if (Gbl.Hierarchy.Level == Hie_Lvl_CRS) // Course selected
+ if (Gbl.Hierarchy.Level == HieLvl_CRS) // Course selected
{
/***** Set default role *****/
switch (UsrDat->Roles.InCurrentCrs)
@@ -3054,7 +3055,7 @@ static void Rec_ShowRole (struct UsrData *UsrDat,
}
break;
case Rec_SHA_OTHER_NEW_USR_FORM: // The user does not exist in platform
- if (Gbl.Hierarchy.Level == Hie_Lvl_CRS) // Course selected
+ if (Gbl.Hierarchy.Level == HieLvl_CRS) // Course selected
switch (Gbl.Usrs.Me.Role.Logged)
{
case Rol_TCH:
diff --git a/swad_report.c b/swad_report.c
index e68214c8..838fe50b 100644
--- a/swad_report.c
+++ b/swad_report.c
@@ -34,6 +34,7 @@
#include "swad_error.h"
#include "swad_form.h"
#include "swad_global.h"
+#include "swad_hierarchy_level.h"
#include "swad_HTML.h"
#include "swad_ID.h"
#include "swad_profile.h"
@@ -1194,11 +1195,11 @@ static void Rep_WriteRowCrsData (long CrsCod,Rol_Role_t Role,
/***** Write number of teachers / students in course *****/
if (WriteNumUsrs)
fprintf (Gbl.F.Rep," (%u %s / %u %s)",
- Usr_GetCachedNumUsrsInCrss (Hie_Lvl_CRS,Crs.CrsCod,
+ Usr_GetCachedNumUsrsInCrss (HieLvl_CRS,Crs.CrsCod,
1 << Rol_NET |
1 << Rol_TCH),
Txt_teachers_ABBREVIATION,
- Usr_GetCachedNumUsrsInCrss (Hie_Lvl_CRS,Crs.CrsCod,
+ Usr_GetCachedNumUsrsInCrss (HieLvl_CRS,Crs.CrsCod,
1 << Rol_STD),
Txt_students_ABBREVIATION);
}
diff --git a/swad_role.c b/swad_role.c
index fd673a9e..7bb78ff4 100644
--- a/swad_role.c
+++ b/swad_role.c
@@ -29,6 +29,7 @@
#include "swad_database.h"
#include "swad_form.h"
#include "swad_global.h"
+#include "swad_hierarchy_level.h"
#include "swad_HTML.h"
#include "swad_parameter.h"
#include "swad_role.h"
@@ -117,24 +118,24 @@ void Rol_SetMyRoles (void)
{
/* Check if I am and administrator of current institution */
ICanBeInsAdm = Usr_CheckIfUsrIsAdm (Gbl.Usrs.Me.UsrDat.UsrCod,
- Hie_Lvl_INS,
+ HieLvl_INS,
Gbl.Hierarchy.Ins.InsCod);
if (Gbl.Hierarchy.Ctr.CtrCod > 0)
{
/* Check if I am and administrator of current center */
ICanBeCtrAdm = Usr_CheckIfUsrIsAdm (Gbl.Usrs.Me.UsrDat.UsrCod,
- Hie_Lvl_CTR,
+ HieLvl_CTR,
Gbl.Hierarchy.Ctr.CtrCod);
if (Gbl.Hierarchy.Deg.DegCod > 0)
/* Check if I am and administrator of current degree */
ICanBeDegAdm = Usr_CheckIfUsrIsAdm (Gbl.Usrs.Me.UsrDat.UsrCod,
- Hie_Lvl_DEG,
+ HieLvl_DEG,
Gbl.Hierarchy.Deg.DegCod);
}
}
/***** Check if I belong to current course *****/
- if (Gbl.Hierarchy.Level == Hie_Lvl_CRS) // Course selected
+ if (Gbl.Hierarchy.Level == HieLvl_CRS) // Course selected
{
Gbl.Usrs.Me.IBelongToCurrentCrs = Usr_CheckIfUsrBelongsToCurrentCrs (&Gbl.Usrs.Me.UsrDat);
if (Gbl.Usrs.Me.IBelongToCurrentCrs)
@@ -182,7 +183,7 @@ void Rol_SetMyRoles (void)
Gbl.Usrs.Me.IBelongToCurrentIns = false;
/***** Build my list of available roles for current course *****/
- if (Gbl.Hierarchy.Level == Hie_Lvl_CRS)
+ if (Gbl.Hierarchy.Level == HieLvl_CRS)
{
if (Gbl.Usrs.Me.IBelongToCurrentCrs)
Gbl.Usrs.Me.Role.Available = (1 << Gbl.Usrs.Me.UsrDat.Roles.InCurrentCrs);
diff --git a/swad_scope.c b/swad_scope.c
index c6498977..b9c43ec0 100644
--- a/swad_scope.c
+++ b/swad_scope.c
@@ -72,15 +72,15 @@ void Sco_PutSelectorScope (const char *ParamName,HTM_SubmitOnChange_t SubmitOnCh
extern const char *Txt_Center;
extern const char *Txt_Degree;
extern const char *Txt_Course;
- Hie_Lvl_Level_t Scope;
+ HieLvl_Level_t Scope;
unsigned ScopeUnsigned;
bool WriteScope;
HTM_SELECT_Begin (SubmitOnChange,
"id=\"%s\" name=\"%s\"",ParamName,ParamName);
- for (Scope = (Hie_Lvl_Level_t) 0;
- Scope <= (Hie_Lvl_Level_t) (Hie_Lvl_NUM_LEVELS - 1);
+ for (Scope = (HieLvl_Level_t) 0;
+ Scope <= (HieLvl_Level_t) (HieLvl_NUM_LEVELS - 1);
Scope++)
if ((Gbl.Scope.Allowed & (1 << Scope)))
{
@@ -88,27 +88,27 @@ void Sco_PutSelectorScope (const char *ParamName,HTM_SubmitOnChange_t SubmitOnCh
WriteScope = false;
switch (Scope)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
WriteScope = true;
break;
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
if (Gbl.Hierarchy.Cty.CtyCod > 0)
WriteScope = true;
break;
- case Hie_Lvl_INS:
+ case HieLvl_INS:
if (Gbl.Hierarchy.Ins.InsCod > 0)
WriteScope = true;
break;
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
if (Gbl.Hierarchy.Ctr.CtrCod > 0)
WriteScope = true;
break;
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
if (Gbl.Hierarchy.Deg.DegCod > 0)
WriteScope = true;
break;
- case Hie_Lvl_CRS:
- if (Gbl.Hierarchy.Level == Hie_Lvl_CRS)
+ case HieLvl_CRS:
+ if (Gbl.Hierarchy.Level == HieLvl_CRS)
WriteScope = true;
break;
default:
@@ -122,42 +122,42 @@ void Sco_PutSelectorScope (const char *ParamName,HTM_SubmitOnChange_t SubmitOnCh
ScopeUnsigned = (unsigned) Scope;
switch (Scope)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
HTM_OPTION (HTM_Type_UNSIGNED,&ScopeUnsigned,
Gbl.Scope.Current == Scope,false,
"%s: %s",
Txt_System,
Cfg_PLATFORM_SHORT_NAME);
break;
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
HTM_OPTION (HTM_Type_UNSIGNED,&ScopeUnsigned,
Gbl.Scope.Current == Scope,false,
"%s: %s",
Txt_Country,
Gbl.Hierarchy.Cty.Name[Gbl.Prefs.Language]);
break;
- case Hie_Lvl_INS:
+ case HieLvl_INS:
HTM_OPTION (HTM_Type_UNSIGNED,&ScopeUnsigned,
Gbl.Scope.Current == Scope,false,
"%s: %s",
Txt_Institution,
Gbl.Hierarchy.Ins.ShrtName);
break;
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
HTM_OPTION (HTM_Type_UNSIGNED,&ScopeUnsigned,
Gbl.Scope.Current == Scope,false,
"%s: %s",
Txt_Center,
Gbl.Hierarchy.Ctr.ShrtName);
break;
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
HTM_OPTION (HTM_Type_UNSIGNED,&ScopeUnsigned,
Gbl.Scope.Current == Scope,false,
"%s: %s",
Txt_Degree,
Gbl.Hierarchy.Deg.ShrtName);
break;
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
HTM_OPTION (HTM_Type_UNSIGNED,&ScopeUnsigned,
Gbl.Scope.Current == Scope,false,
"%s: %s",
@@ -181,10 +181,10 @@ void Sco_PutSelectorScope (const char *ParamName,HTM_SubmitOnChange_t SubmitOnCh
void Sco_PutParamCurrentScope (void *Scope)
{
if (Scope)
- Sco_PutParamScope ("ScopeUsr",*((Hie_Lvl_Level_t *) Scope));
+ Sco_PutParamScope ("ScopeUsr",*((HieLvl_Level_t *) Scope));
}
-void Sco_PutParamScope (const char *ParamName,Hie_Lvl_Level_t Scope)
+void Sco_PutParamScope (const char *ParamName,HieLvl_Level_t Scope)
{
Par_PutHiddenParamUnsigned (NULL,ParamName,(unsigned) Scope);
}
@@ -196,11 +196,11 @@ void Sco_PutParamScope (const char *ParamName,Hie_Lvl_Level_t Scope)
void Sco_GetScope (const char *ParamName)
{
/***** Get parameter with scope *****/
- Gbl.Scope.Current = (Hie_Lvl_Level_t)
+ Gbl.Scope.Current = (HieLvl_Level_t)
Par_GetParToUnsignedLong (ParamName,
0,
- Hie_Lvl_NUM_LEVELS - 1,
- (unsigned long) Hie_Lvl_UNK);
+ HieLvl_NUM_LEVELS - 1,
+ (unsigned long) HieLvl_UNK);
/***** Adjust scope avoiding impossible or forbidden scopes *****/
Sco_AdjustScope ();
@@ -213,28 +213,28 @@ void Sco_GetScope (const char *ParamName)
void Sco_AdjustScope (void)
{
/***** Is scope is unknow, use default scope *****/
- if (Gbl.Scope.Current == Hie_Lvl_UNK)
+ if (Gbl.Scope.Current == HieLvl_UNK)
Gbl.Scope.Current = Gbl.Scope.Default;
/***** Avoid impossible scopes *****/
- if (Gbl.Scope.Current == Hie_Lvl_CRS && Gbl.Hierarchy.Crs.CrsCod <= 0)
- Gbl.Scope.Current = Hie_Lvl_DEG;
+ if (Gbl.Scope.Current == HieLvl_CRS && Gbl.Hierarchy.Crs.CrsCod <= 0)
+ Gbl.Scope.Current = HieLvl_DEG;
- if (Gbl.Scope.Current == Hie_Lvl_DEG && Gbl.Hierarchy.Deg.DegCod <= 0)
- Gbl.Scope.Current = Hie_Lvl_CTR;
+ if (Gbl.Scope.Current == HieLvl_DEG && Gbl.Hierarchy.Deg.DegCod <= 0)
+ Gbl.Scope.Current = HieLvl_CTR;
- if (Gbl.Scope.Current == Hie_Lvl_CTR && Gbl.Hierarchy.Ctr.CtrCod <= 0)
- Gbl.Scope.Current = Hie_Lvl_INS;
+ if (Gbl.Scope.Current == HieLvl_CTR && Gbl.Hierarchy.Ctr.CtrCod <= 0)
+ Gbl.Scope.Current = HieLvl_INS;
- if (Gbl.Scope.Current == Hie_Lvl_INS && Gbl.Hierarchy.Ins.InsCod <= 0)
- Gbl.Scope.Current = Hie_Lvl_CTY;
+ if (Gbl.Scope.Current == HieLvl_INS && Gbl.Hierarchy.Ins.InsCod <= 0)
+ Gbl.Scope.Current = HieLvl_CTY;
- if (Gbl.Scope.Current == Hie_Lvl_CTY && Gbl.Hierarchy.Cty.CtyCod <= 0)
- Gbl.Scope.Current = Hie_Lvl_SYS;
+ if (Gbl.Scope.Current == HieLvl_CTY && Gbl.Hierarchy.Cty.CtyCod <= 0)
+ Gbl.Scope.Current = HieLvl_SYS;
/***** Avoid forbidden scopes *****/
if ((Gbl.Scope.Allowed & (1 << Gbl.Scope.Current)) == 0)
- Gbl.Scope.Current = Hie_Lvl_UNK;
+ Gbl.Scope.Current = HieLvl_UNK;
}
/*****************************************************************************/
@@ -246,24 +246,24 @@ void Sco_SetScopesForListingGuests (void)
switch (Gbl.Usrs.Me.Role.Logged)
{
case Rol_CTR_ADM:
- Gbl.Scope.Allowed = 1 << Hie_Lvl_CTR;
- Gbl.Scope.Default = Hie_Lvl_CTR;
+ Gbl.Scope.Allowed = 1 << HieLvl_CTR;
+ Gbl.Scope.Default = HieLvl_CTR;
break;
case Rol_INS_ADM:
- Gbl.Scope.Allowed = 1 << Hie_Lvl_INS |
- 1 << Hie_Lvl_CTR;
- Gbl.Scope.Default = Hie_Lvl_INS;
+ Gbl.Scope.Allowed = 1 << HieLvl_INS |
+ 1 << HieLvl_CTR;
+ Gbl.Scope.Default = HieLvl_INS;
break;
case Rol_SYS_ADM:
- Gbl.Scope.Allowed = 1 << Hie_Lvl_SYS |
- 1 << Hie_Lvl_CTY |
- 1 << Hie_Lvl_INS |
- 1 << Hie_Lvl_CTR;
- Gbl.Scope.Default = Hie_Lvl_SYS;
+ Gbl.Scope.Allowed = 1 << HieLvl_SYS |
+ 1 << HieLvl_CTY |
+ 1 << HieLvl_INS |
+ 1 << HieLvl_CTR;
+ Gbl.Scope.Default = HieLvl_SYS;
break;
default:
Gbl.Scope.Allowed = 0;
- Gbl.Scope.Default = Hie_Lvl_UNK;
+ Gbl.Scope.Default = HieLvl_UNK;
break;
}
}
@@ -274,40 +274,40 @@ void Sco_SetScopesForListingGuests (void)
void Sco_SetScopesForListingStudents (void)
{
- Gbl.Scope.Default = Hie_Lvl_CRS;
+ Gbl.Scope.Default = HieLvl_CRS;
switch (Gbl.Usrs.Me.Role.Logged)
{
case Rol_STD:
case Rol_NET:
case Rol_TCH:
- Gbl.Scope.Allowed = 1 << Hie_Lvl_CRS;
+ Gbl.Scope.Allowed = 1 << HieLvl_CRS;
break;
case Rol_DEG_ADM:
- Gbl.Scope.Allowed = 1 << Hie_Lvl_DEG |
- 1 << Hie_Lvl_CRS;
+ Gbl.Scope.Allowed = 1 << HieLvl_DEG |
+ 1 << HieLvl_CRS;
break;
case Rol_CTR_ADM:
- Gbl.Scope.Allowed = 1 << Hie_Lvl_CTR |
- 1 << Hie_Lvl_DEG |
- 1 << Hie_Lvl_CRS;
+ Gbl.Scope.Allowed = 1 << HieLvl_CTR |
+ 1 << HieLvl_DEG |
+ 1 << HieLvl_CRS;
break;
case Rol_INS_ADM:
- Gbl.Scope.Allowed = 1 << Hie_Lvl_INS |
- 1 << Hie_Lvl_CTR |
- 1 << Hie_Lvl_DEG |
- 1 << Hie_Lvl_CRS;
+ Gbl.Scope.Allowed = 1 << HieLvl_INS |
+ 1 << HieLvl_CTR |
+ 1 << HieLvl_DEG |
+ 1 << HieLvl_CRS;
break;
case Rol_SYS_ADM:
- Gbl.Scope.Allowed = 1 << Hie_Lvl_SYS |
- 1 << Hie_Lvl_CTY |
- 1 << Hie_Lvl_INS |
- 1 << Hie_Lvl_CTR |
- 1 << Hie_Lvl_DEG |
- 1 << Hie_Lvl_CRS;
+ Gbl.Scope.Allowed = 1 << HieLvl_SYS |
+ 1 << HieLvl_CTY |
+ 1 << HieLvl_INS |
+ 1 << HieLvl_CTR |
+ 1 << HieLvl_DEG |
+ 1 << HieLvl_CRS;
break;
default:
Gbl.Scope.Allowed = 0;
- Gbl.Scope.Default = Hie_Lvl_UNK;
+ Gbl.Scope.Default = HieLvl_UNK;
break;
}
}
@@ -316,53 +316,53 @@ void Sco_SetScopesForListingStudents (void)
/*********************** Get scope from unsigned string **********************/
/*****************************************************************************/
-Hie_Lvl_Level_t Sco_GetScopeFromUnsignedStr (const char *UnsignedStr)
+HieLvl_Level_t Sco_GetScopeFromUnsignedStr (const char *UnsignedStr)
{
unsigned UnsignedNum;
if (sscanf (UnsignedStr,"%u",&UnsignedNum) == 1)
- if (UnsignedNum < Hie_Lvl_NUM_LEVELS)
- return (Hie_Lvl_Level_t) UnsignedNum;
+ if (UnsignedNum < HieLvl_NUM_LEVELS)
+ return (HieLvl_Level_t) UnsignedNum;
- return Hie_Lvl_UNK;
+ return HieLvl_UNK;
}
/*****************************************************************************/
/*********************** Get scope from database string **********************/
/*****************************************************************************/
-Hie_Lvl_Level_t Sco_GetScopeFromDBStr (const char *ScopeDBStr)
+HieLvl_Level_t Sco_GetScopeFromDBStr (const char *ScopeDBStr)
{
- Hie_Lvl_Level_t Scope;
+ HieLvl_Level_t Scope;
- for (Scope = (Hie_Lvl_Level_t) 0;
- Scope <= (Hie_Lvl_Level_t) (Hie_Lvl_NUM_LEVELS - 1);
+ for (Scope = (HieLvl_Level_t) 0;
+ Scope <= (HieLvl_Level_t) (HieLvl_NUM_LEVELS - 1);
Scope++)
if (!strcmp (Sco_GetDBStrFromScope (Scope),ScopeDBStr))
return Scope;
- return Hie_Lvl_UNK;
+ return HieLvl_UNK;
}
/*****************************************************************************/
/*********************** Get scope from database string **********************/
/*****************************************************************************/
-const char *Sco_GetDBStrFromScope (Hie_Lvl_Level_t Scope)
+const char *Sco_GetDBStrFromScope (HieLvl_Level_t Scope)
{
- static const char *Sco_ScopeDB[Hie_Lvl_NUM_LEVELS] =
+ static const char *Sco_ScopeDB[HieLvl_NUM_LEVELS] =
{
- [Hie_Lvl_UNK] = "Unk",
- [Hie_Lvl_SYS] = "Sys",
- [Hie_Lvl_CTY] = "Cty",
- [Hie_Lvl_INS] = "Ins",
- [Hie_Lvl_CTR] = "Ctr",
- [Hie_Lvl_DEG] = "Deg",
- [Hie_Lvl_CRS] = "Crs",
+ [HieLvl_UNK] = "Unk",
+ [HieLvl_SYS] = "Sys",
+ [HieLvl_CTY] = "Cty",
+ [HieLvl_INS] = "Ins",
+ [HieLvl_CTR] = "Ctr",
+ [HieLvl_DEG] = "Deg",
+ [HieLvl_CRS] = "Crs",
};
- if (Scope >= Hie_Lvl_NUM_LEVELS)
- Scope = Hie_Lvl_UNK;
+ if (Scope >= HieLvl_NUM_LEVELS)
+ Scope = HieLvl_UNK;
return Sco_ScopeDB[Scope];
}
diff --git a/swad_scope.h b/swad_scope.h
index 99c43f94..9847396a 100644
--- a/swad_scope.h
+++ b/swad_scope.h
@@ -46,15 +46,15 @@
void Sco_PutSelectorScope (const char *ParamName,HTM_SubmitOnChange_t SubmitOnChange);
void Sco_PutParamCurrentScope (void *Scope);
-void Sco_PutParamScope (const char *ParamName,Hie_Lvl_Level_t Scope);
+void Sco_PutParamScope (const char *ParamName,HieLvl_Level_t Scope);
void Sco_GetScope (const char *ParamName);
void Sco_AdjustScope (void);
void Sco_SetScopesForListingGuests (void);
void Sco_SetScopesForListingStudents (void);
-Hie_Lvl_Level_t Sco_GetScopeFromUnsignedStr (const char *UnsignedStr);
-Hie_Lvl_Level_t Sco_GetScopeFromDBStr (const char *ScopeDBStr);
-const char *Sco_GetDBStrFromScope (Hie_Lvl_Level_t Scope);
+HieLvl_Level_t Sco_GetScopeFromUnsignedStr (const char *UnsignedStr);
+HieLvl_Level_t Sco_GetScopeFromDBStr (const char *ScopeDBStr);
+const char *Sco_GetDBStrFromScope (HieLvl_Level_t Scope);
#endif
diff --git a/swad_search.c b/swad_search.c
index 18be0a26..315c71c1 100644
--- a/swad_search.c
+++ b/swad_search.c
@@ -31,6 +31,7 @@
#include "swad_database.h"
#include "swad_form.h"
#include "swad_global.h"
+#include "swad_hierarchy_level.h"
#include "swad_HTML.h"
#include "swad_layout.h"
#include "swad_parameter.h"
@@ -64,7 +65,7 @@ extern struct Globals Gbl;
/***************************** Private prototypes ****************************/
/*****************************************************************************/
-static void Sch_PutFormToSearchWithWhatToSearchAndScope (Act_Action_t Action,Hie_Lvl_Level_t DefaultScope);
+static void Sch_PutFormToSearchWithWhatToSearchAndScope (Act_Action_t Action,HieLvl_Level_t DefaultScope);
static bool Sch_CheckIfIHavePermissionToSearch (Sch_WhatToSearch_t WhatToSearch);
static void Sch_GetParamSearch (void);
static void Sch_SearchInDB (void);
@@ -88,14 +89,14 @@ void Sch_ReqSysSearch (void)
{
/***** Search courses, teachers, documents... *****/
Sch_GetParamWhatToSearch ();
- Sch_PutFormToSearchWithWhatToSearchAndScope (ActSch,Hie_Lvl_SYS);
+ Sch_PutFormToSearchWithWhatToSearchAndScope (ActSch,HieLvl_SYS);
}
/*****************************************************************************/
/****************** Put a form to search, including scope ********************/
/*****************************************************************************/
-static void Sch_PutFormToSearchWithWhatToSearchAndScope (Act_Action_t Action,Hie_Lvl_Level_t DefaultScope)
+static void Sch_PutFormToSearchWithWhatToSearchAndScope (Act_Action_t Action,HieLvl_Level_t DefaultScope)
{
extern const char *Hlp_START_Search;
extern const char *The_ClassFormInBox[The_NUM_THEMES];
@@ -147,12 +148,12 @@ static void Sch_PutFormToSearchWithWhatToSearchAndScope (Act_Action_t Action,Hie
HTM_DIV_Begin ("class=\"CM\"");
HTM_LABEL_Begin ("class=\"%s\"",The_ClassFormInBox[Gbl.Prefs.Theme]);
HTM_TxtColonNBSP (Txt_Scope);
- Gbl.Scope.Allowed = 1 << Hie_Lvl_SYS |
- 1 << Hie_Lvl_CTY |
- 1 << Hie_Lvl_INS |
- 1 << Hie_Lvl_CTR |
- 1 << Hie_Lvl_DEG |
- 1 << Hie_Lvl_CRS;
+ Gbl.Scope.Allowed = 1 << HieLvl_SYS |
+ 1 << HieLvl_CTY |
+ 1 << HieLvl_INS |
+ 1 << HieLvl_CTR |
+ 1 << HieLvl_DEG |
+ 1 << HieLvl_CRS;
Gbl.Scope.Default = DefaultScope;
Sco_GetScope ("ScopeSch");
Sco_PutSelectorScope ("ScopeSch",HTM_DONT_SUBMIT_ON_CHANGE);
@@ -231,7 +232,7 @@ void Sch_PutFormToSearchInPageTopHeading (void)
/***** Put form *****/
Frm_BeginForm (ActSch);
- Sco_PutParamScope ("ScopeSch",Hie_Lvl_SYS);
+ Sco_PutParamScope ("ScopeSch",HieLvl_SYS);
Sch_PutInputStringToSearch ("head_search_text");
Sch_PutMagnifyingGlassButton ("search-white.svg");
Frm_EndForm ();
@@ -323,7 +324,7 @@ void Sch_SysSearch (void)
if (Gbl.Search.Str[0])
{
/***** Show search form again *****/
- Sch_PutFormToSearchWithWhatToSearchAndScope (ActSch,Hie_Lvl_SYS);
+ Sch_PutFormToSearchWithWhatToSearchAndScope (ActSch,HieLvl_SYS);
/***** Show results of search *****/
Sch_SearchInDB ();
@@ -348,28 +349,28 @@ static void Sch_SearchInDB (void)
/***** Select courses in all the degrees or in current degree *****/
switch (Gbl.Scope.Current)
{
- case Hie_Lvl_UNK:
+ case HieLvl_UNK:
// Not aplicable
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
RangeQuery[0] = '\0';
break;
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
sprintf (RangeQuery," AND cty_countrs.CtyCod=%ld",
Gbl.Hierarchy.Cty.CtyCod);
break;
- case Hie_Lvl_INS:
+ case HieLvl_INS:
sprintf (RangeQuery," AND ins_instits.InsCod=%ld",
Gbl.Hierarchy.Ins.InsCod);
break;
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
sprintf (RangeQuery," AND ctr_centers.CtrCod=%ld",
Gbl.Hierarchy.Ctr.CtrCod);
break;
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
sprintf (RangeQuery," AND deg_degrees.DegCod=%ld",
Gbl.Hierarchy.Deg.DegCod);
break;
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
sprintf (RangeQuery," AND crs_courses.CrsCod=%ld",
Gbl.Hierarchy.Crs.CrsCod);
break;
@@ -451,10 +452,10 @@ static unsigned Sch_SearchCountriesInDB (const char *RangeQuery)
unsigned NumCtys;
/***** Check scope *****/
- if (Gbl.Scope.Current != Hie_Lvl_INS &&
- Gbl.Scope.Current != Hie_Lvl_CTR &&
- Gbl.Scope.Current != Hie_Lvl_DEG &&
- Gbl.Scope.Current != Hie_Lvl_CRS)
+ if (Gbl.Scope.Current != HieLvl_INS &&
+ Gbl.Scope.Current != HieLvl_CTR &&
+ Gbl.Scope.Current != HieLvl_DEG &&
+ Gbl.Scope.Current != HieLvl_CRS)
/***** Check user's permission *****/
if (Sch_CheckIfIHavePermissionToSearch (Sch_SEARCH_COUNTRIES))
{
@@ -495,9 +496,9 @@ static unsigned Sch_SearchInstitutionsInDB (const char *RangeQuery)
unsigned NumInss;
/***** Check scope *****/
- if (Gbl.Scope.Current != Hie_Lvl_CTR &&
- Gbl.Scope.Current != Hie_Lvl_DEG &&
- Gbl.Scope.Current != Hie_Lvl_CRS)
+ if (Gbl.Scope.Current != HieLvl_CTR &&
+ Gbl.Scope.Current != HieLvl_DEG &&
+ Gbl.Scope.Current != HieLvl_CRS)
/***** Check user's permission *****/
if (Sch_CheckIfIHavePermissionToSearch (Sch_SEARCH_INSTITS))
/***** Split institutions string into words *****/
@@ -536,8 +537,8 @@ static unsigned Sch_SearchCentersInDB (const char *RangeQuery)
unsigned NumCtrs;
/***** Check scope *****/
- if (Gbl.Scope.Current != Hie_Lvl_DEG &&
- Gbl.Scope.Current != Hie_Lvl_CRS)
+ if (Gbl.Scope.Current != HieLvl_DEG &&
+ Gbl.Scope.Current != HieLvl_CRS)
/***** Check user's permission *****/
if (Sch_CheckIfIHavePermissionToSearch (Sch_SEARCH_CENTERS))
/***** Split center string into words *****/
@@ -576,7 +577,7 @@ static unsigned Sch_SearchDegreesInDB (const char *RangeQuery)
unsigned NumDegs;
/***** Check scope *****/
- if (Gbl.Scope.Current != Hie_Lvl_CRS)
+ if (Gbl.Scope.Current != HieLvl_CRS)
/***** Check user's permission *****/
if (Sch_CheckIfIHavePermissionToSearch (Sch_SEARCH_DEGREES))
/***** Split degree string into words *****/
@@ -1372,7 +1373,7 @@ static void Sch_SaveLastSearchIntoSession (void)
void Sch_PutLinkToSearchCoursesParams (__attribute__((unused)) void *Args)
{
- Sco_PutParamScope ("ScopeSch",Hie_Lvl_SYS);
+ Sco_PutParamScope ("ScopeSch",HieLvl_SYS);
Par_PutHiddenParamUnsigned (NULL,"WhatToSearch",(unsigned) Sch_SEARCH_COURSES);
}
diff --git a/swad_statistic.c b/swad_statistic.c
index 7f52525a..f564aae4 100644
--- a/swad_statistic.c
+++ b/swad_statistic.c
@@ -38,6 +38,7 @@
#include "swad_form.h"
#include "swad_global.h"
#include "swad_hierarchy.h"
+#include "swad_hierarchy_level.h"
#include "swad_HTML.h"
#include "swad_ID.h"
#include "swad_log.h"
@@ -274,9 +275,9 @@ static void Sta_PutFormCrsHits (struct Sta_Stats *Stats)
Grp_GetParCodsSeveralGrpsToShowUsrs ();
/***** Get and order the lists of users of this course *****/
- Usr_GetListUsrs (Hie_Lvl_CRS,Rol_STD);
- Usr_GetListUsrs (Hie_Lvl_CRS,Rol_NET);
- Usr_GetListUsrs (Hie_Lvl_CRS,Rol_TCH);
+ Usr_GetListUsrs (HieLvl_CRS,Rol_STD);
+ Usr_GetListUsrs (HieLvl_CRS,Rol_NET);
+ Usr_GetListUsrs (HieLvl_CRS,Rol_TCH);
NumTotalUsrs = Gbl.Usrs.LstUsrs[Rol_STD].NumUsrs +
Gbl.Usrs.LstUsrs[Rol_NET].NumUsrs +
Gbl.Usrs.LstUsrs[Rol_TCH].NumUsrs;
@@ -543,13 +544,13 @@ static void Sta_PutFormGblHits (struct Sta_Stats *Stats)
/* Data */
HTM_TD_Begin ("class=\"LT\"");
- Gbl.Scope.Allowed = 1 << Hie_Lvl_SYS |
- 1 << Hie_Lvl_CTY |
- 1 << Hie_Lvl_INS |
- 1 << Hie_Lvl_CTR |
- 1 << Hie_Lvl_DEG |
- 1 << Hie_Lvl_CRS;
- Gbl.Scope.Default = Hie_Lvl_SYS;
+ Gbl.Scope.Allowed = 1 << HieLvl_SYS |
+ 1 << HieLvl_CTY |
+ 1 << HieLvl_INS |
+ 1 << HieLvl_CTR |
+ 1 << HieLvl_DEG |
+ 1 << HieLvl_CRS;
+ Gbl.Scope.Default = HieLvl_SYS;
Sco_GetScope ("ScopeSta");
Sco_PutSelectorScope ("ScopeSta",HTM_DONT_SUBMIT_ON_CHANGE);
HTM_TD_End ();
@@ -612,7 +613,7 @@ void Sta_PutLinkToCourseHits (void)
{
extern const char *Txt_Visits_to_course;
- if (Gbl.Hierarchy.Level == Hie_Lvl_CRS) // Course selected
+ if (Gbl.Hierarchy.Level == HieLvl_CRS) // Course selected
switch (Gbl.Usrs.Me.Role.Logged)
{
case Rol_NET:
@@ -828,13 +829,13 @@ static void Sta_ShowHits (Sta_GlobalOrCourseAccesses_t GlobalOrCourse)
(unsigned long) Sta_ROLE_DEFAULT);
/***** Get users range for access statistics *****/
- Gbl.Scope.Allowed = 1 << Hie_Lvl_SYS |
- 1 << Hie_Lvl_CTY |
- 1 << Hie_Lvl_INS |
- 1 << Hie_Lvl_CTR |
- 1 << Hie_Lvl_DEG |
- 1 << Hie_Lvl_CRS;
- Gbl.Scope.Default = Hie_Lvl_SYS;
+ Gbl.Scope.Allowed = 1 << HieLvl_SYS |
+ 1 << HieLvl_CTY |
+ 1 << HieLvl_INS |
+ 1 << HieLvl_CTR |
+ 1 << HieLvl_DEG |
+ 1 << HieLvl_CRS;
+ Gbl.Scope.Default = HieLvl_SYS;
Sco_GetScope ("ScopeSta");
/***** Show form again *****/
@@ -900,16 +901,16 @@ static void Sta_ShowHits (Sta_GlobalOrCourseAccesses_t GlobalOrCourse)
/***** Check if range of dates is forbidden for me *****/
NumDays = Dat_GetNumDaysBetweenDates (&Gbl.DateRange.DateIni.Date,&Gbl.DateRange.DateEnd.Date);
ICanQueryWholeRange = (Gbl.Usrs.Me.Role.Logged >= Rol_TCH && GlobalOrCourse == Sta_SHOW_COURSE_ACCESSES) ||
- (Gbl.Usrs.Me.Role.Logged == Rol_TCH && Gbl.Scope.Current == Hie_Lvl_CRS) ||
- (Gbl.Usrs.Me.Role.Logged == Rol_DEG_ADM && (Gbl.Scope.Current == Hie_Lvl_DEG ||
- Gbl.Scope.Current == Hie_Lvl_CRS)) ||
- (Gbl.Usrs.Me.Role.Logged == Rol_CTR_ADM && (Gbl.Scope.Current == Hie_Lvl_CTR ||
- Gbl.Scope.Current == Hie_Lvl_DEG ||
- Gbl.Scope.Current == Hie_Lvl_CRS)) ||
- (Gbl.Usrs.Me.Role.Logged == Rol_INS_ADM && (Gbl.Scope.Current == Hie_Lvl_INS ||
- Gbl.Scope.Current == Hie_Lvl_CTR ||
- Gbl.Scope.Current == Hie_Lvl_DEG ||
- Gbl.Scope.Current == Hie_Lvl_CRS)) ||
+ (Gbl.Usrs.Me.Role.Logged == Rol_TCH && Gbl.Scope.Current == HieLvl_CRS) ||
+ (Gbl.Usrs.Me.Role.Logged == Rol_DEG_ADM && (Gbl.Scope.Current == HieLvl_DEG ||
+ Gbl.Scope.Current == HieLvl_CRS)) ||
+ (Gbl.Usrs.Me.Role.Logged == Rol_CTR_ADM && (Gbl.Scope.Current == HieLvl_CTR ||
+ Gbl.Scope.Current == HieLvl_DEG ||
+ Gbl.Scope.Current == HieLvl_CRS)) ||
+ (Gbl.Usrs.Me.Role.Logged == Rol_INS_ADM && (Gbl.Scope.Current == HieLvl_INS ||
+ Gbl.Scope.Current == HieLvl_CTR ||
+ Gbl.Scope.Current == HieLvl_DEG ||
+ Gbl.Scope.Current == HieLvl_CRS)) ||
Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM;
if (!ICanQueryWholeRange && NumDays > Cfg_DAYS_IN_RECENT_LOG)
{
@@ -1134,10 +1135,10 @@ static void Sta_ShowHits (Sta_GlobalOrCourseAccesses_t GlobalOrCourse)
/* Scope */
switch (Gbl.Scope.Current)
{
- case Hie_Lvl_UNK:
- case Hie_Lvl_SYS:
+ case HieLvl_UNK:
+ case HieLvl_SYS:
break;
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
if (Gbl.Hierarchy.Cty.CtyCod > 0)
{
sprintf (QueryAux," AND %s.CtyCod=%ld",
@@ -1145,7 +1146,7 @@ static void Sta_ShowHits (Sta_GlobalOrCourseAccesses_t GlobalOrCourse)
Str_Concat (Query,QueryAux,Sta_MAX_BYTES_QUERY_ACCESS);
}
break;
- case Hie_Lvl_INS:
+ case HieLvl_INS:
if (Gbl.Hierarchy.Ins.InsCod > 0)
{
sprintf (QueryAux," AND %s.InsCod=%ld",
@@ -1153,7 +1154,7 @@ static void Sta_ShowHits (Sta_GlobalOrCourseAccesses_t GlobalOrCourse)
Str_Concat (Query,QueryAux,Sta_MAX_BYTES_QUERY_ACCESS);
}
break;
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
if (Gbl.Hierarchy.Ctr.CtrCod > 0)
{
sprintf (QueryAux," AND %s.CtrCod=%ld",
@@ -1161,7 +1162,7 @@ static void Sta_ShowHits (Sta_GlobalOrCourseAccesses_t GlobalOrCourse)
Str_Concat (Query,QueryAux,Sta_MAX_BYTES_QUERY_ACCESS);
}
break;
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
if (Gbl.Hierarchy.Deg.DegCod > 0)
{
sprintf (QueryAux," AND %s.DegCod=%ld",
@@ -1169,8 +1170,8 @@ static void Sta_ShowHits (Sta_GlobalOrCourseAccesses_t GlobalOrCourse)
Str_Concat (Query,QueryAux,Sta_MAX_BYTES_QUERY_ACCESS);
}
break;
- case Hie_Lvl_CRS:
- if (Gbl.Hierarchy.Level == Hie_Lvl_CRS)
+ case HieLvl_CRS:
+ if (Gbl.Hierarchy.Level == HieLvl_CRS)
{
sprintf (QueryAux," AND %s.CrsCod=%ld",
LogTable,Gbl.Hierarchy.Crs.CrsCod);
diff --git a/swad_survey.c b/swad_survey.c
index 77d1ced2..4c05cc73 100644
--- a/swad_survey.c
+++ b/swad_survey.c
@@ -650,25 +650,25 @@ static void Svy_ShowOneSurvey (struct Svy_Surveys *Surveys,
HTM_TxtColonNBSP (Txt_Scope);
switch (Svy.Scope)
{
- case Hie_Lvl_UNK: // Unknown
+ case HieLvl_UNK: // Unknown
Err_WrongScopeExit ();
break;
- case Hie_Lvl_SYS: // System
+ case HieLvl_SYS: // System
HTM_Txt (Cfg_PLATFORM_SHORT_NAME);
break;
- case Hie_Lvl_CTY: // Country
+ case HieLvl_CTY: // Country
HTM_TxtF ("%s %s",Txt_Country,Gbl.Hierarchy.Cty.Name[Gbl.Prefs.Language]);
break;
- case Hie_Lvl_INS: // Institution
+ case HieLvl_INS: // Institution
HTM_TxtF ("%s %s",Txt_Institution,Gbl.Hierarchy.Ins.ShrtName);
break;
- case Hie_Lvl_CTR: // Center
+ case HieLvl_CTR: // Center
HTM_TxtF ("%s %s",Txt_Center,Gbl.Hierarchy.Ctr.ShrtName);
break;
- case Hie_Lvl_DEG: // Degree
+ case HieLvl_DEG: // Degree
HTM_TxtF ("%s %s",Txt_Degree,Gbl.Hierarchy.Deg.ShrtName);
break;
- case Hie_Lvl_CRS: // Course
+ case HieLvl_CRS: // Course
HTM_TxtF ("%s %s",Txt_Course,Gbl.Hierarchy.Crs.ShrtName);
break;
}
@@ -687,7 +687,7 @@ static void Svy_ShowOneSurvey (struct Svy_Surveys *Surveys,
HTM_DIV_End ();
/* Groups whose users can answer this survey */
- if (Svy.Scope == Hie_Lvl_CRS)
+ if (Svy.Scope == HieLvl_CRS)
if (Gbl.Crs.Grps.NumGrps)
Svy_GetAndWriteNamesOfGrpsAssociatedToSvy (&Svy);
@@ -717,7 +717,7 @@ static void Svy_ShowOneSurvey (struct Svy_Surveys *Surveys,
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
/***** Mark possible notification as seen *****/
- if (Svy.Scope == Hie_Lvl_CRS) // Only course surveys are notified
+ if (Svy.Scope == HieLvl_CRS) // Only course surveys are notified
Ntf_MarkNotifAsSeen (Ntf_EVENT_SURVEY,
SvyCod,Svy.Cod,
Gbl.Usrs.Me.UsrDat.UsrCod);
@@ -931,7 +931,7 @@ static void Svy_PutParams (void *Surveys)
static void Svy_GetListSurveys (struct Svy_Surveys *Surveys)
{
- char *SubQuery[Hie_Lvl_NUM_LEVELS];
+ char *SubQuery[HieLvl_NUM_LEVELS];
static const char *OrderBySubQuery[Dat_NUM_START_END_TIME] =
{
[Dat_START_TIME] = "StartTime DESC,EndTime DESC,Title DESC",
@@ -942,8 +942,8 @@ static void Svy_GetListSurveys (struct Svy_Surveys *Surveys)
unsigned NumSvy;
unsigned ScopesAllowed = 0;
unsigned HiddenAllowed = 0;
- long Cods[Hie_Lvl_NUM_LEVELS];
- Hie_Lvl_Level_t Scope;
+ long Cods[HieLvl_NUM_LEVELS];
+ HieLvl_Level_t Scope;
bool SubQueryFilled = false;
/***** Free list of surveys *****/
@@ -954,16 +954,16 @@ static void Svy_GetListSurveys (struct Svy_Surveys *Surveys)
Svy_SetAllowedAndHiddenScopes (&ScopesAllowed,&HiddenAllowed);
/***** Get list of surveys from database *****/
- Cods[Hie_Lvl_SYS] = -1L; // System
- Cods[Hie_Lvl_CTY] = Gbl.Hierarchy.Cty.CtyCod; // Country
- Cods[Hie_Lvl_INS] = Gbl.Hierarchy.Ins.InsCod; // Institution
- Cods[Hie_Lvl_CTR] = Gbl.Hierarchy.Ctr.CtrCod; // Center
- Cods[Hie_Lvl_DEG] = Gbl.Hierarchy.Deg.DegCod; // Degree
- Cods[Hie_Lvl_CRS] = Gbl.Hierarchy.Crs.CrsCod; // Course
+ Cods[HieLvl_SYS] = -1L; // System
+ Cods[HieLvl_CTY] = Gbl.Hierarchy.Cty.CtyCod; // Country
+ Cods[HieLvl_INS] = Gbl.Hierarchy.Ins.InsCod; // Institution
+ Cods[HieLvl_CTR] = Gbl.Hierarchy.Ctr.CtrCod; // Center
+ Cods[HieLvl_DEG] = Gbl.Hierarchy.Deg.DegCod; // Degree
+ Cods[HieLvl_CRS] = Gbl.Hierarchy.Crs.CrsCod; // Course
/* Fill subqueries for system, country, institution, center and degree */
- for (Scope = Hie_Lvl_SYS;
- Scope <= Hie_Lvl_DEG;
+ for (Scope = HieLvl_SYS;
+ Scope <= HieLvl_DEG;
Scope++)
if (ScopesAllowed & 1 << Scope)
{
@@ -983,11 +983,11 @@ static void Svy_GetListSurveys (struct Svy_Surveys *Surveys)
}
/* Fill subquery for course */
- if (ScopesAllowed & 1 << Hie_Lvl_CRS)
+ if (ScopesAllowed & 1 << HieLvl_CRS)
{
if (Gbl.Crs.Grps.WhichGrps == Grp_MY_GROUPS)
{
- if (asprintf (&SubQuery[Hie_Lvl_CRS],"%s("
+ if (asprintf (&SubQuery[HieLvl_CRS],"%s("
"Scope='%s'"
" AND Cod=%ld%s"
" AND "
@@ -1004,19 +1004,19 @@ static void Svy_GetListSurveys (struct Svy_Surveys *Surveys)
")",
SubQueryFilled ? " OR " :
"",
- Sco_GetDBStrFromScope (Hie_Lvl_CRS),Cods[Hie_Lvl_CRS],
- (HiddenAllowed & 1 << Hie_Lvl_CRS) ? "" :
+ Sco_GetDBStrFromScope (HieLvl_CRS),Cods[HieLvl_CRS],
+ (HiddenAllowed & 1 << HieLvl_CRS) ? "" :
" AND Hidden='N'",
Gbl.Usrs.Me.UsrDat.UsrCod) < 0)
Err_NotEnoughMemoryExit ();
}
else // Gbl.Crs.Grps.WhichGrps == Grp_ALL_GROUPS
{
- if (asprintf (&SubQuery[Hie_Lvl_CRS],"%s(Scope='%s' AND Cod=%ld%s)",
+ if (asprintf (&SubQuery[HieLvl_CRS],"%s(Scope='%s' AND Cod=%ld%s)",
SubQueryFilled ? " OR " :
"",
- Sco_GetDBStrFromScope (Hie_Lvl_CRS),Cods[Hie_Lvl_CRS],
- (HiddenAllowed & 1 << Hie_Lvl_CRS) ? "" :
+ Sco_GetDBStrFromScope (HieLvl_CRS),Cods[HieLvl_CRS],
+ (HiddenAllowed & 1 << HieLvl_CRS) ? "" :
" AND Hidden='N'") < 0)
Err_NotEnoughMemoryExit ();
}
@@ -1024,7 +1024,7 @@ static void Svy_GetListSurveys (struct Svy_Surveys *Surveys)
}
else
{
- if (asprintf (&SubQuery[Hie_Lvl_CRS],"%s","") < 0)
+ if (asprintf (&SubQuery[HieLvl_CRS],"%s","") < 0)
Err_NotEnoughMemoryExit ();
}
@@ -1035,12 +1035,12 @@ static void Svy_GetListSurveys (struct Svy_Surveys *Surveys)
" FROM svy_surveys"
" WHERE %s%s%s%s%s%s"
" ORDER BY %s",
- SubQuery[Hie_Lvl_SYS],
- SubQuery[Hie_Lvl_CTY],
- SubQuery[Hie_Lvl_INS],
- SubQuery[Hie_Lvl_CTR],
- SubQuery[Hie_Lvl_DEG],
- SubQuery[Hie_Lvl_CRS],
+ SubQuery[HieLvl_SYS],
+ SubQuery[HieLvl_CTY],
+ SubQuery[HieLvl_INS],
+ SubQuery[HieLvl_CTR],
+ SubQuery[HieLvl_DEG],
+ SubQuery[HieLvl_CRS],
OrderBySubQuery[Surveys->SelectedOrder]);
else
{
@@ -1049,8 +1049,8 @@ static void Svy_GetListSurveys (struct Svy_Surveys *Surveys)
}
/* Free allocated memory for subqueries */
- for (Scope = Hie_Lvl_SYS;
- Scope <= Hie_Lvl_CRS;
+ for (Scope = HieLvl_SYS;
+ Scope <= HieLvl_CRS;
Scope++)
free (SubQuery[Scope]);
@@ -1094,45 +1094,45 @@ static void Svy_SetAllowedAndHiddenScopes (unsigned *ScopesAllowed,
*HiddenAllowed = 0;
break;
case Rol_GST: // User not belonging to any course *******************
- *ScopesAllowed = 1 << Hie_Lvl_SYS;
+ *ScopesAllowed = 1 << HieLvl_SYS;
*HiddenAllowed = 0;
break;
case Rol_USR: // Student or teacher in other courses...
// ...but not belonging to the current course *********
- *ScopesAllowed = 1 << Hie_Lvl_SYS;
+ *ScopesAllowed = 1 << HieLvl_SYS;
*HiddenAllowed = 0;
if (Usr_CheckIfIBelongToCty (Gbl.Hierarchy.Cty.CtyCod))
{
- *ScopesAllowed |= 1 << Hie_Lvl_CTY;
+ *ScopesAllowed |= 1 << HieLvl_CTY;
if (Usr_CheckIfIBelongToIns (Gbl.Hierarchy.Ins.InsCod))
{
- *ScopesAllowed |= 1 << Hie_Lvl_INS;
+ *ScopesAllowed |= 1 << HieLvl_INS;
if (Usr_CheckIfIBelongToCtr (Gbl.Hierarchy.Ctr.CtrCod))
{
- *ScopesAllowed |= 1 << Hie_Lvl_CTR;
+ *ScopesAllowed |= 1 << HieLvl_CTR;
if (Usr_CheckIfIBelongToDeg (Gbl.Hierarchy.Deg.DegCod))
- *ScopesAllowed |= 1 << Hie_Lvl_DEG;
+ *ScopesAllowed |= 1 << HieLvl_DEG;
}
}
}
break;
case Rol_STD: // Student in current course **************************
- *ScopesAllowed = 1 << Hie_Lvl_SYS;
+ *ScopesAllowed = 1 << HieLvl_SYS;
*HiddenAllowed = 0;
if (Usr_CheckIfIBelongToCty (Gbl.Hierarchy.Cty.CtyCod))
{
- *ScopesAllowed |= 1 << Hie_Lvl_CTY;
+ *ScopesAllowed |= 1 << HieLvl_CTY;
if (Usr_CheckIfIBelongToIns (Gbl.Hierarchy.Ins.InsCod))
{
- *ScopesAllowed |= 1 << Hie_Lvl_INS;
+ *ScopesAllowed |= 1 << HieLvl_INS;
if (Usr_CheckIfIBelongToCtr (Gbl.Hierarchy.Ctr.CtrCod))
{
- *ScopesAllowed |= 1 << Hie_Lvl_CTR;
+ *ScopesAllowed |= 1 << HieLvl_CTR;
if (Usr_CheckIfIBelongToDeg (Gbl.Hierarchy.Deg.DegCod))
{
- *ScopesAllowed |= 1 << Hie_Lvl_DEG;
+ *ScopesAllowed |= 1 << HieLvl_DEG;
if (Gbl.Usrs.Me.IBelongToCurrentCrs)
- *ScopesAllowed |= 1 << Hie_Lvl_CRS;
+ *ScopesAllowed |= 1 << HieLvl_CRS;
}
}
}
@@ -1140,24 +1140,24 @@ static void Svy_SetAllowedAndHiddenScopes (unsigned *ScopesAllowed,
break;
case Rol_NET: // Non-editing teacher in current course **************
case Rol_TCH: // Teacher in current course **************************
- *ScopesAllowed = 1 << Hie_Lvl_SYS;
+ *ScopesAllowed = 1 << HieLvl_SYS;
*HiddenAllowed = 0;
if (Usr_CheckIfIBelongToCty (Gbl.Hierarchy.Cty.CtyCod))
{
- *ScopesAllowed |= 1 << Hie_Lvl_CTY;
+ *ScopesAllowed |= 1 << HieLvl_CTY;
if (Usr_CheckIfIBelongToIns (Gbl.Hierarchy.Ins.InsCod))
{
- *ScopesAllowed |= 1 << Hie_Lvl_INS;
+ *ScopesAllowed |= 1 << HieLvl_INS;
if (Usr_CheckIfIBelongToCtr (Gbl.Hierarchy.Ctr.CtrCod))
{
- *ScopesAllowed |= 1 << Hie_Lvl_CTR;
+ *ScopesAllowed |= 1 << HieLvl_CTR;
if (Usr_CheckIfIBelongToDeg (Gbl.Hierarchy.Deg.DegCod))
{
- *ScopesAllowed |= 1 << Hie_Lvl_DEG;
+ *ScopesAllowed |= 1 << HieLvl_DEG;
if (Gbl.Usrs.Me.IBelongToCurrentCrs)
{
- *ScopesAllowed |= 1 << Hie_Lvl_CRS;
- *HiddenAllowed |= 1 << Hie_Lvl_CRS; // A non-editing teacher or teacher can view hidden course surveys
+ *ScopesAllowed |= 1 << HieLvl_CRS;
+ *HiddenAllowed |= 1 << HieLvl_CRS; // A non-editing teacher or teacher can view hidden course surveys
}
}
}
@@ -1165,79 +1165,79 @@ static void Svy_SetAllowedAndHiddenScopes (unsigned *ScopesAllowed,
}
break;
case Rol_DEG_ADM: // Degree administrator *******************************
- *ScopesAllowed = 1 << Hie_Lvl_SYS;
+ *ScopesAllowed = 1 << HieLvl_SYS;
*HiddenAllowed = 0;
if (Gbl.Hierarchy.Cty.CtyCod > 0) // Country selected
{
- *ScopesAllowed |= 1 << Hie_Lvl_CTY;
+ *ScopesAllowed |= 1 << HieLvl_CTY;
if (Gbl.Hierarchy.Ins.InsCod > 0) // Institution selected
{
- *ScopesAllowed |= 1 << Hie_Lvl_INS;
+ *ScopesAllowed |= 1 << HieLvl_INS;
if (Gbl.Hierarchy.Ctr.CtrCod > 0) // Center selected
{
- *ScopesAllowed |= 1 << Hie_Lvl_CTR;
+ *ScopesAllowed |= 1 << HieLvl_CTR;
if (Gbl.Hierarchy.Deg.DegCod > 0) // Degree selected
{
- *ScopesAllowed |= 1 << Hie_Lvl_DEG;
- *HiddenAllowed |= 1 << Hie_Lvl_DEG; // A degree admin can view hidden degree surveys
+ *ScopesAllowed |= 1 << HieLvl_DEG;
+ *HiddenAllowed |= 1 << HieLvl_DEG; // A degree admin can view hidden degree surveys
}
}
}
}
break;
case Rol_CTR_ADM: // Center administrator *******************************
- *ScopesAllowed = 1 << Hie_Lvl_SYS;
+ *ScopesAllowed = 1 << HieLvl_SYS;
*HiddenAllowed = 0;
if (Gbl.Hierarchy.Cty.CtyCod > 0) // Country selected
{
- *ScopesAllowed |= 1 << Hie_Lvl_CTY;
+ *ScopesAllowed |= 1 << HieLvl_CTY;
if (Gbl.Hierarchy.Ins.InsCod > 0) // Institution selected
{
- *ScopesAllowed |= 1 << Hie_Lvl_INS;
+ *ScopesAllowed |= 1 << HieLvl_INS;
if (Gbl.Hierarchy.Ctr.CtrCod > 0) // Center selected
{
- *ScopesAllowed |= 1 << Hie_Lvl_CTR;
- *HiddenAllowed |= 1 << Hie_Lvl_CTR; // A center admin can view hidden center surveys
+ *ScopesAllowed |= 1 << HieLvl_CTR;
+ *HiddenAllowed |= 1 << HieLvl_CTR; // A center admin can view hidden center surveys
}
}
}
break;
case Rol_INS_ADM: // Institution administrator **************************
- *ScopesAllowed = 1 << Hie_Lvl_SYS;
+ *ScopesAllowed = 1 << HieLvl_SYS;
*HiddenAllowed = 0;
if (Gbl.Hierarchy.Cty.CtyCod > 0) // Country selected
{
- *ScopesAllowed |= 1 << Hie_Lvl_CTY;
+ *ScopesAllowed |= 1 << HieLvl_CTY;
if (Gbl.Hierarchy.Ins.InsCod > 0) // Institution selected
{
- *ScopesAllowed |= 1 << Hie_Lvl_INS;
- *HiddenAllowed |= 1 << Hie_Lvl_INS; // An institution admin can view hidden institution surveys
+ *ScopesAllowed |= 1 << HieLvl_INS;
+ *HiddenAllowed |= 1 << HieLvl_INS; // An institution admin can view hidden institution surveys
}
}
break;
case Rol_SYS_ADM: // System administrator (superuser) *******************
- *ScopesAllowed = 1 << Hie_Lvl_SYS;
- *HiddenAllowed = 1 << Hie_Lvl_SYS; // A system admin can view hidden system surveys
+ *ScopesAllowed = 1 << HieLvl_SYS;
+ *HiddenAllowed = 1 << HieLvl_SYS; // A system admin can view hidden system surveys
if (Gbl.Hierarchy.Cty.CtyCod > 0) // Country selected
{
- *ScopesAllowed |= 1 << Hie_Lvl_CTY;
- *HiddenAllowed |= 1 << Hie_Lvl_CTY; // A system admin can view hidden country surveys
+ *ScopesAllowed |= 1 << HieLvl_CTY;
+ *HiddenAllowed |= 1 << HieLvl_CTY; // A system admin can view hidden country surveys
if (Gbl.Hierarchy.Ins.InsCod > 0) // Institution selected
{
- *ScopesAllowed |= 1 << Hie_Lvl_INS;
- *HiddenAllowed |= 1 << Hie_Lvl_INS; // A system admin can view hidden institution surveys
+ *ScopesAllowed |= 1 << HieLvl_INS;
+ *HiddenAllowed |= 1 << HieLvl_INS; // A system admin can view hidden institution surveys
if (Gbl.Hierarchy.Ctr.CtrCod > 0) // Center selected
{
- *ScopesAllowed |= 1 << Hie_Lvl_CTR;
- *HiddenAllowed |= 1 << Hie_Lvl_CTR; // A system admin can view hidden center surveys
+ *ScopesAllowed |= 1 << HieLvl_CTR;
+ *HiddenAllowed |= 1 << HieLvl_CTR; // A system admin can view hidden center surveys
if (Gbl.Hierarchy.Deg.DegCod > 0) // Degree selected
{
- *ScopesAllowed |= 1 << Hie_Lvl_DEG;
- *HiddenAllowed |= 1 << Hie_Lvl_DEG; // A system admin can view hidden degree surveys
- if (Gbl.Hierarchy.Level == Hie_Lvl_CRS) // Course selected
+ *ScopesAllowed |= 1 << HieLvl_DEG;
+ *HiddenAllowed |= 1 << HieLvl_DEG; // A system admin can view hidden degree surveys
+ if (Gbl.Hierarchy.Level == HieLvl_CRS) // Course selected
{
- *ScopesAllowed |= 1 << Hie_Lvl_CRS;
- *HiddenAllowed |= 1 << Hie_Lvl_CRS; // A system admin can view hidden course surveys
+ *ScopesAllowed |= 1 << HieLvl_CRS;
+ *HiddenAllowed |= 1 << HieLvl_CRS; // A system admin can view hidden course surveys
}
}
}
@@ -1282,7 +1282,7 @@ void Svy_GetDataOfSurveyByCod (struct Svy_Survey *Svy)
Svy->SvyCod = Str_ConvertStrCodToLongCod (row[0]);
/* Get survey scope (row[1]) */
- if ((Svy->Scope = Sco_GetScopeFromDBStr (row[1])) == Hie_Lvl_UNK)
+ if ((Svy->Scope = Sco_GetScopeFromDBStr (row[1])) == HieLvl_UNK)
Err_WrongScopeExit ();
/* Get code of the country, institution, center, degree or course (row[2]) */
@@ -1320,25 +1320,25 @@ void Svy_GetDataOfSurveyByCod (struct Svy_Survey *Svy)
/* Do I belong to valid groups to answer this survey? */
switch (Svy->Scope)
{
- case Hie_Lvl_UNK: // Unknown
+ case HieLvl_UNK: // Unknown
Err_WrongScopeExit ();
break;
- case Hie_Lvl_SYS: // System
+ case HieLvl_SYS: // System
Svy->Status.IBelongToScope = Gbl.Usrs.Me.Logged;
break;
- case Hie_Lvl_CTY: // Country
+ case HieLvl_CTY: // Country
Svy->Status.IBelongToScope = Usr_CheckIfIBelongToCty (Svy->Cod);
break;
- case Hie_Lvl_INS: // Institution
+ case HieLvl_INS: // Institution
Svy->Status.IBelongToScope = Usr_CheckIfIBelongToIns (Svy->Cod);
break;
- case Hie_Lvl_CTR: // Center
+ case HieLvl_CTR: // Center
Svy->Status.IBelongToScope = Usr_CheckIfIBelongToCtr (Svy->Cod);
break;
- case Hie_Lvl_DEG: // Degree
+ case HieLvl_DEG: // Degree
Svy->Status.IBelongToScope = Usr_CheckIfIBelongToDeg (Svy->Cod);
break;
- case Hie_Lvl_CRS: // Course
+ case HieLvl_CRS: // Course
Svy->Status.IBelongToScope = Usr_CheckIfIBelongToCrs (Svy->Cod) &&
Svy_CheckIfICanDoThisSurveyBasedOnGrps (Svy->SvyCod);
break;
@@ -1360,12 +1360,12 @@ void Svy_GetDataOfSurveyByCod (struct Svy_Survey *Svy)
switch (Gbl.Usrs.Me.Role.Logged)
{
case Rol_STD:
- Svy->Status.ICanViewResults = (Svy->Scope == Hie_Lvl_CRS ||
- Svy->Scope == Hie_Lvl_DEG ||
- Svy->Scope == Hie_Lvl_CTR ||
- Svy->Scope == Hie_Lvl_INS ||
- Svy->Scope == Hie_Lvl_CTY ||
- Svy->Scope == Hie_Lvl_SYS) &&
+ Svy->Status.ICanViewResults = (Svy->Scope == HieLvl_CRS ||
+ Svy->Scope == HieLvl_DEG ||
+ Svy->Scope == HieLvl_CTR ||
+ Svy->Scope == HieLvl_INS ||
+ Svy->Scope == HieLvl_CTY ||
+ Svy->Scope == HieLvl_SYS) &&
(Svy->NumQsts != 0) &&
Svy->Status.Visible &&
Svy->Status.Open &&
@@ -1375,56 +1375,56 @@ void Svy_GetDataOfSurveyByCod (struct Svy_Survey *Svy)
Svy->Status.ICanEdit = false;
break;
case Rol_NET:
- Svy->Status.ICanViewResults = (Svy->Scope == Hie_Lvl_CRS ||
- Svy->Scope == Hie_Lvl_DEG ||
- Svy->Scope == Hie_Lvl_CTR ||
- Svy->Scope == Hie_Lvl_INS ||
- Svy->Scope == Hie_Lvl_CTY ||
- Svy->Scope == Hie_Lvl_SYS) &&
+ Svy->Status.ICanViewResults = (Svy->Scope == HieLvl_CRS ||
+ Svy->Scope == HieLvl_DEG ||
+ Svy->Scope == HieLvl_CTR ||
+ Svy->Scope == HieLvl_INS ||
+ Svy->Scope == HieLvl_CTY ||
+ Svy->Scope == HieLvl_SYS) &&
Svy->NumQsts != 0 &&
!Svy->Status.ICanAnswer;
Svy->Status.ICanEdit = false;
break;
case Rol_TCH:
- Svy->Status.ICanViewResults = (Svy->Scope == Hie_Lvl_CRS ||
- Svy->Scope == Hie_Lvl_DEG ||
- Svy->Scope == Hie_Lvl_CTR ||
- Svy->Scope == Hie_Lvl_INS ||
- Svy->Scope == Hie_Lvl_CTY ||
- Svy->Scope == Hie_Lvl_SYS) &&
+ Svy->Status.ICanViewResults = (Svy->Scope == HieLvl_CRS ||
+ Svy->Scope == HieLvl_DEG ||
+ Svy->Scope == HieLvl_CTR ||
+ Svy->Scope == HieLvl_INS ||
+ Svy->Scope == HieLvl_CTY ||
+ Svy->Scope == HieLvl_SYS) &&
Svy->NumQsts != 0 &&
!Svy->Status.ICanAnswer;
- Svy->Status.ICanEdit = Svy->Scope == Hie_Lvl_CRS &&
+ Svy->Status.ICanEdit = Svy->Scope == HieLvl_CRS &&
Svy->Status.IBelongToScope;
break;
case Rol_DEG_ADM:
- Svy->Status.ICanViewResults = (Svy->Scope == Hie_Lvl_DEG ||
- Svy->Scope == Hie_Lvl_CTR ||
- Svy->Scope == Hie_Lvl_INS ||
- Svy->Scope == Hie_Lvl_CTY ||
- Svy->Scope == Hie_Lvl_SYS) &&
+ Svy->Status.ICanViewResults = (Svy->Scope == HieLvl_DEG ||
+ Svy->Scope == HieLvl_CTR ||
+ Svy->Scope == HieLvl_INS ||
+ Svy->Scope == HieLvl_CTY ||
+ Svy->Scope == HieLvl_SYS) &&
(Svy->NumQsts != 0) &&
!Svy->Status.ICanAnswer;
- Svy->Status.ICanEdit = Svy->Scope == Hie_Lvl_DEG &&
+ Svy->Status.ICanEdit = Svy->Scope == HieLvl_DEG &&
Svy->Status.IBelongToScope;
break;
case Rol_CTR_ADM:
- Svy->Status.ICanViewResults = (Svy->Scope == Hie_Lvl_CTR ||
- Svy->Scope == Hie_Lvl_INS ||
- Svy->Scope == Hie_Lvl_CTY ||
- Svy->Scope == Hie_Lvl_SYS) &&
+ Svy->Status.ICanViewResults = (Svy->Scope == HieLvl_CTR ||
+ Svy->Scope == HieLvl_INS ||
+ Svy->Scope == HieLvl_CTY ||
+ Svy->Scope == HieLvl_SYS) &&
(Svy->NumQsts != 0) &&
!Svy->Status.ICanAnswer;
- Svy->Status.ICanEdit = Svy->Scope == Hie_Lvl_CTR &&
+ Svy->Status.ICanEdit = Svy->Scope == HieLvl_CTR &&
Svy->Status.IBelongToScope;
break;
case Rol_INS_ADM:
- Svy->Status.ICanViewResults = (Svy->Scope == Hie_Lvl_INS ||
- Svy->Scope == Hie_Lvl_CTY ||
- Svy->Scope == Hie_Lvl_SYS) &&
+ Svy->Status.ICanViewResults = (Svy->Scope == HieLvl_INS ||
+ Svy->Scope == HieLvl_CTY ||
+ Svy->Scope == HieLvl_SYS) &&
(Svy->NumQsts != 0) &&
!Svy->Status.ICanAnswer;
- Svy->Status.ICanEdit = Svy->Scope == Hie_Lvl_INS &&
+ Svy->Status.ICanEdit = Svy->Scope == HieLvl_INS &&
Svy->Status.IBelongToScope;
break;
case Rol_SYS_ADM:
@@ -1441,7 +1441,7 @@ void Svy_GetDataOfSurveyByCod (struct Svy_Survey *Svy)
{
/* Initialize to empty survey */
Svy->SvyCod = -1L;
- Svy->Scope = Hie_Lvl_UNK;
+ Svy->Scope = HieLvl_UNK;
Svy->Roles = 0;
Svy->UsrCod = -1L;
Svy->TimeUTC[Svy_START_TIME] =
@@ -1906,7 +1906,7 @@ void Svy_RequestCreatOrEditSvy (void)
/* Initialize to empty survey */
Svy.SvyCod = -1L;
- Svy.Scope = Hie_Lvl_UNK;
+ Svy.Scope = HieLvl_UNK;
Svy.Roles = (1 << Rol_STD);
Svy.UsrCod = Gbl.Usrs.Me.UsrDat.UsrCod;
Svy.TimeUTC[Svy_START_TIME] = Gbl.StartExecutionTimeUTC;
@@ -2050,66 +2050,66 @@ static void Svy_SetDefaultAndAllowedScope (struct Svy_Survey *Svy)
bool ICanEdit = false;
/***** Set default scope *****/
- Gbl.Scope.Default = Hie_Lvl_UNK;
+ Gbl.Scope.Default = HieLvl_UNK;
Gbl.Scope.Allowed = 0;
switch (Gbl.Usrs.Me.Role.Logged)
{
case Rol_TCH: // Teachers only can edit course surveys
- if (Gbl.Hierarchy.Level == Hie_Lvl_CRS) // Course selected
+ if (Gbl.Hierarchy.Level == HieLvl_CRS) // Course selected
{
- if (Svy->Scope == Hie_Lvl_UNK) // Scope not defined
- Svy->Scope = Hie_Lvl_CRS;
- if (Svy->Scope == Hie_Lvl_CRS)
+ if (Svy->Scope == HieLvl_UNK) // Scope not defined
+ Svy->Scope = HieLvl_CRS;
+ if (Svy->Scope == HieLvl_CRS)
{
Gbl.Scope.Default = Svy->Scope;
- Gbl.Scope.Allowed = 1 << Hie_Lvl_CRS;
+ Gbl.Scope.Allowed = 1 << HieLvl_CRS;
ICanEdit = true;
}
}
break;
case Rol_DEG_ADM: // Degree admins only can edit degree surveys
- if (Svy->Scope == Hie_Lvl_UNK) // Scope not defined
- Svy->Scope = Hie_Lvl_DEG;
- if (Svy->Scope == Hie_Lvl_DEG)
+ if (Svy->Scope == HieLvl_UNK) // Scope not defined
+ Svy->Scope = HieLvl_DEG;
+ if (Svy->Scope == HieLvl_DEG)
{
Gbl.Scope.Default = Svy->Scope;
- Gbl.Scope.Allowed = 1 << Hie_Lvl_DEG;
+ Gbl.Scope.Allowed = 1 << HieLvl_DEG;
ICanEdit = true;
}
break;
case Rol_CTR_ADM: // Center admins only can edit center surveys
- if (Svy->Scope == Hie_Lvl_UNK) // Scope not defined
- Svy->Scope = Hie_Lvl_CTR;
- if (Svy->Scope == Hie_Lvl_CTR)
+ if (Svy->Scope == HieLvl_UNK) // Scope not defined
+ Svy->Scope = HieLvl_CTR;
+ if (Svy->Scope == HieLvl_CTR)
{
Gbl.Scope.Default = Svy->Scope;
- Gbl.Scope.Allowed = 1 << Hie_Lvl_CTR;
+ Gbl.Scope.Allowed = 1 << HieLvl_CTR;
ICanEdit = true;
}
break;
case Rol_INS_ADM: // Institution admins only can edit institution surveys
- if (Svy->Scope == Hie_Lvl_UNK) // Scope not defined
- Svy->Scope = Hie_Lvl_INS;
- if (Svy->Scope == Hie_Lvl_INS)
+ if (Svy->Scope == HieLvl_UNK) // Scope not defined
+ Svy->Scope = HieLvl_INS;
+ if (Svy->Scope == HieLvl_INS)
{
Gbl.Scope.Default = Svy->Scope;
- Gbl.Scope.Allowed = 1 << Hie_Lvl_INS;
+ Gbl.Scope.Allowed = 1 << HieLvl_INS;
ICanEdit = true;
}
break;
case Rol_SYS_ADM:// System admins can edit any survey
- if (Svy->Scope == Hie_Lvl_UNK) // Scope not defined
- Svy->Scope = (Gbl.Hierarchy.Level < Hie_Lvl_NUM_LEVELS &&
- Gbl.Hierarchy.Level != Hie_Lvl_UNK) ? Gbl.Hierarchy.Level :
- Hie_Lvl_SYS;
+ if (Svy->Scope == HieLvl_UNK) // Scope not defined
+ Svy->Scope = (Gbl.Hierarchy.Level < HieLvl_NUM_LEVELS &&
+ Gbl.Hierarchy.Level != HieLvl_UNK) ? Gbl.Hierarchy.Level :
+ HieLvl_SYS;
Gbl.Scope.Default = Svy->Scope;
- Gbl.Scope.Allowed = 1 << Hie_Lvl_SYS |
- 1 << Hie_Lvl_CTY |
- 1 << Hie_Lvl_INS |
- 1 << Hie_Lvl_CTR |
- 1 << Hie_Lvl_DEG |
- 1 << Hie_Lvl_CRS;
+ Gbl.Scope.Allowed = 1 << HieLvl_SYS |
+ 1 << HieLvl_CTY |
+ 1 << HieLvl_INS |
+ 1 << HieLvl_CTR |
+ 1 << HieLvl_DEG |
+ 1 << HieLvl_CRS;
ICanEdit = true;
break;
default:
@@ -2209,7 +2209,7 @@ void Svy_ReceiveFormSurvey (void)
ItsANewSurvey = ((NewSvy.SvyCod = Svy_GetParamSvyCod ()) <= 0);
if (ItsANewSurvey)
- NewSvy.Scope = Hie_Lvl_UNK;
+ NewSvy.Scope = HieLvl_UNK;
else
{
/* Get data of the old (current) survey from database */
@@ -2225,44 +2225,44 @@ void Svy_ReceiveFormSurvey (void)
Sco_GetScope ("ScopeSvy");
switch (Gbl.Scope.Current)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
if (Gbl.Usrs.Me.Role.Logged != Rol_SYS_ADM)
Err_WrongScopeExit ();
- NewSvy.Scope = Hie_Lvl_SYS;
+ NewSvy.Scope = HieLvl_SYS;
NewSvy.Cod = -1L;
break;
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
if (Gbl.Usrs.Me.Role.Logged != Rol_SYS_ADM)
Err_WrongScopeExit ();
- NewSvy.Scope = Hie_Lvl_CTY;
+ NewSvy.Scope = HieLvl_CTY;
NewSvy.Cod = Gbl.Hierarchy.Cty.CtyCod;
break;
- case Hie_Lvl_INS:
+ case HieLvl_INS:
if (Gbl.Usrs.Me.Role.Logged != Rol_SYS_ADM &&
Gbl.Usrs.Me.Role.Logged != Rol_INS_ADM)
Err_WrongScopeExit ();
- NewSvy.Scope = Hie_Lvl_INS;
+ NewSvy.Scope = HieLvl_INS;
NewSvy.Cod = Gbl.Hierarchy.Ins.InsCod;
break;
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
if (Gbl.Usrs.Me.Role.Logged != Rol_SYS_ADM &&
Gbl.Usrs.Me.Role.Logged != Rol_CTR_ADM)
Err_WrongScopeExit ();
- NewSvy.Scope = Hie_Lvl_CTR;
+ NewSvy.Scope = HieLvl_CTR;
NewSvy.Cod = Gbl.Hierarchy.Ctr.CtrCod;
break;
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
if (Gbl.Usrs.Me.Role.Logged != Rol_SYS_ADM &&
Gbl.Usrs.Me.Role.Logged != Rol_DEG_ADM)
Err_WrongScopeExit ();
- NewSvy.Scope = Hie_Lvl_DEG;
+ NewSvy.Scope = HieLvl_DEG;
NewSvy.Cod = Gbl.Hierarchy.Deg.DegCod;
break;
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
if (Gbl.Usrs.Me.Role.Logged != Rol_SYS_ADM &&
Gbl.Usrs.Me.Role.Logged != Rol_TCH)
Err_WrongScopeExit ();
- NewSvy.Scope = Hie_Lvl_CRS;
+ NewSvy.Scope = HieLvl_CRS;
NewSvy.Cod = Gbl.Hierarchy.Crs.CrsCod;
break;
default:
@@ -2324,7 +2324,7 @@ void Svy_ReceiveFormSurvey (void)
Svy_RequestCreatOrEditSvy ();
/***** Notify by email about the new survey *****/
- if (NewSvy.Scope == Hie_Lvl_CRS) // Notify only the surveys for a course, not for a degree or global
+ if (NewSvy.Scope == HieLvl_CRS) // Notify only the surveys for a course, not for a degree or global
if ((NumUsrsToBeNotifiedByEMail = Ntf_StoreNotifyEventsToAllUsrs (Ntf_EVENT_SURVEY,NewSvy.SvyCod)))
Svy_UpdateNumUsrsNotifiedByEMailAboutSurvey (NewSvy.SvyCod,NumUsrsToBeNotifiedByEMail);
@@ -2564,7 +2564,7 @@ static void Svy_GetAndWriteNamesOfGrpsAssociatedToSvy (struct Svy_Survey *Svy)
/************ (country, institution, center, degree or course) *************/
/*****************************************************************************/
-void Svy_RemoveSurveys (Hie_Lvl_Level_t Scope,long Cod)
+void Svy_RemoveSurveys (HieLvl_Level_t Scope,long Cod)
{
/***** Remove all the users in course surveys *****/
DB_QueryDELETE ("can not remove users"
@@ -3939,19 +3939,19 @@ static unsigned Svy_GetNumUsrsWhoHaveAnsweredSvy (long SvyCod)
// Returns the number of courses with surveys for courses
// in this location (all the platform, current degree or current course)
-unsigned Svy_GetNumCoursesWithCrsSurveys (Hie_Lvl_Level_t Scope)
+unsigned Svy_GetNumCoursesWithCrsSurveys (HieLvl_Level_t Scope)
{
/***** Get number of courses with surveys from database *****/
switch (Scope)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
return (unsigned)
DB_QueryCOUNT ("can not get number of courses with surveys",
"SELECT COUNT(DISTINCT Cod)"
" FROM svy_surveys"
" WHERE Scope='%s'",
- Sco_GetDBStrFromScope (Hie_Lvl_CRS));
- case Hie_Lvl_CTY:
+ Sco_GetDBStrFromScope (HieLvl_CRS));
+ case HieLvl_CTY:
return (unsigned)
DB_QueryCOUNT ("can not get number of courses with surveys",
"SELECT COUNT(DISTINCT svy_surveys.Cod)"
@@ -3967,8 +3967,8 @@ unsigned Svy_GetNumCoursesWithCrsSurveys (Hie_Lvl_Level_t Scope)
" AND crs_courses.CrsCod=svy_surveys.Cod"
" AND svy_surveys.Scope='%s'",
Gbl.Hierarchy.Ins.InsCod,
- Sco_GetDBStrFromScope (Hie_Lvl_CRS));
- case Hie_Lvl_INS:
+ Sco_GetDBStrFromScope (HieLvl_CRS));
+ case HieLvl_INS:
return (unsigned)
DB_QueryCOUNT ("can not get number of courses with surveys",
"SELECT COUNT(DISTINCT svy_surveys.Cod)"
@@ -3982,8 +3982,8 @@ unsigned Svy_GetNumCoursesWithCrsSurveys (Hie_Lvl_Level_t Scope)
" AND crs_courses.CrsCod=svy_surveys.Cod"
" AND svy_surveys.Scope='%s'",
Gbl.Hierarchy.Ins.InsCod,
- Sco_GetDBStrFromScope (Hie_Lvl_CRS));
- case Hie_Lvl_CTR:
+ Sco_GetDBStrFromScope (HieLvl_CRS));
+ case HieLvl_CTR:
return (unsigned)
DB_QueryCOUNT ("can not get number of courses with surveys",
"SELECT COUNT(DISTINCT svy_surveys.Cod)"
@@ -3995,8 +3995,8 @@ unsigned Svy_GetNumCoursesWithCrsSurveys (Hie_Lvl_Level_t Scope)
" AND crs_courses.CrsCod=svy_surveys.Cod"
" AND svy_surveys.Scope='%s'",
Gbl.Hierarchy.Ctr.CtrCod,
- Sco_GetDBStrFromScope (Hie_Lvl_CRS));
- case Hie_Lvl_DEG:
+ Sco_GetDBStrFromScope (HieLvl_CRS));
+ case HieLvl_DEG:
return (unsigned)
DB_QueryCOUNT ("can not get number of courses with surveys",
"SELECT COUNT(DISTINCT svy_surveys.Cod)"
@@ -4006,15 +4006,15 @@ unsigned Svy_GetNumCoursesWithCrsSurveys (Hie_Lvl_Level_t Scope)
" AND crs_courses.CrsCod=svy_surveys.Cod"
" AND svy_surveys.Scope='%s'",
Gbl.Hierarchy.Deg.DegCod,
- Sco_GetDBStrFromScope (Hie_Lvl_CRS));
- case Hie_Lvl_CRS:
+ Sco_GetDBStrFromScope (HieLvl_CRS));
+ case HieLvl_CRS:
return (unsigned)
DB_QueryCOUNT ("can not get number of courses with surveys",
"SELECT COUNT(DISTINCT Cod)"
" FROM svy_surveys"
" WHERE Scope='%s'"
" AND Cod=%ld",
- Sco_GetDBStrFromScope (Hie_Lvl_CRS),
+ Sco_GetDBStrFromScope (HieLvl_CRS),
Gbl.Hierarchy.Crs.CrsCod);
default:
return 0;
@@ -4027,7 +4027,7 @@ unsigned Svy_GetNumCoursesWithCrsSurveys (Hie_Lvl_Level_t Scope)
// Returns the number of surveys for courses
// in this location (all the platform, current degree or current course)
-unsigned Svy_GetNumCrsSurveys (Hie_Lvl_Level_t Scope,unsigned *NumNotif)
+unsigned Svy_GetNumCrsSurveys (HieLvl_Level_t Scope,unsigned *NumNotif)
{
MYSQL_RES *mysql_res;
MYSQL_ROW row;
@@ -4036,15 +4036,15 @@ unsigned Svy_GetNumCrsSurveys (Hie_Lvl_Level_t Scope,unsigned *NumNotif)
/***** Get number of surveys from database *****/
switch (Scope)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
DB_QuerySELECT (&mysql_res,"can not get number of surveys",
"SELECT COUNT(*)," // row[0]
"SUM(NumNotif)" // row[1]
" FROM svy_surveys"
" WHERE Scope='%s'",
- Sco_GetDBStrFromScope (Hie_Lvl_CRS));
+ Sco_GetDBStrFromScope (HieLvl_CRS));
break;
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
DB_QuerySELECT (&mysql_res,"can not get number of surveys",
"SELECT COUNT(*)," // row[0]
"SUM(svy_surveys.NumNotif)" // row[1]
@@ -4060,9 +4060,9 @@ unsigned Svy_GetNumCrsSurveys (Hie_Lvl_Level_t Scope,unsigned *NumNotif)
" AND crs_courses.CrsCod=svy_surveys.Cod"
" AND svy_surveys.Scope='%s'",
Gbl.Hierarchy.Cty.CtyCod,
- Sco_GetDBStrFromScope (Hie_Lvl_CRS));
+ Sco_GetDBStrFromScope (HieLvl_CRS));
break;
- case Hie_Lvl_INS:
+ case HieLvl_INS:
DB_QuerySELECT (&mysql_res,"can not get number of surveys",
"SELECT COUNT(*)," // row[0]
"SUM(svy_surveys.NumNotif)" // row[1]
@@ -4076,9 +4076,9 @@ unsigned Svy_GetNumCrsSurveys (Hie_Lvl_Level_t Scope,unsigned *NumNotif)
" AND crs_courses.CrsCod=svy_surveys.Cod"
" AND svy_surveys.Scope='%s'",
Gbl.Hierarchy.Ins.InsCod,
- Sco_GetDBStrFromScope (Hie_Lvl_CRS));
+ Sco_GetDBStrFromScope (HieLvl_CRS));
break;
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
DB_QuerySELECT (&mysql_res,"can not get number of surveys",
"SELECT COUNT(*)," // row[0]
"SUM(svy_surveys.NumNotif)" // row[1]
@@ -4090,9 +4090,9 @@ unsigned Svy_GetNumCrsSurveys (Hie_Lvl_Level_t Scope,unsigned *NumNotif)
" AND crs_courses.CrsCod=svy_surveys.Cod"
" AND svy_surveys.Scope='%s'",
Gbl.Hierarchy.Ctr.CtrCod,
- Sco_GetDBStrFromScope (Hie_Lvl_CRS));
+ Sco_GetDBStrFromScope (HieLvl_CRS));
break;
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
DB_QuerySELECT (&mysql_res,"can not get number of surveys",
"SELECT COUNT(*)," // row[0]
"SUM(svy_surveys.NumNotif)" // row[1]
@@ -4102,16 +4102,16 @@ unsigned Svy_GetNumCrsSurveys (Hie_Lvl_Level_t Scope,unsigned *NumNotif)
" AND crs_courses.CrsCod=svy_surveys.Cod"
" AND svy_surveys.Scope='%s'",
Gbl.Hierarchy.Deg.DegCod,
- Sco_GetDBStrFromScope (Hie_Lvl_CRS));
+ Sco_GetDBStrFromScope (HieLvl_CRS));
break;
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
DB_QuerySELECT (&mysql_res,"can not get number of surveys",
"SELECT COUNT(*)," // row[0]
"SUM(NumNotif)" // row[1]
" FROM svy_surveys"
" WHERE svy_surveys.Scope='%s'"
" AND CrsCod=%ld",
- Sco_GetDBStrFromScope (Hie_Lvl_CRS),
+ Sco_GetDBStrFromScope (HieLvl_CRS),
Gbl.Hierarchy.Crs.CrsCod);
break;
default:
@@ -4143,12 +4143,12 @@ unsigned Svy_GetNumCrsSurveys (Hie_Lvl_Level_t Scope,unsigned *NumNotif)
/************ Get average number of questions per course survey **************/
/*****************************************************************************/
-double Svy_GetNumQstsPerCrsSurvey (Hie_Lvl_Level_t Scope)
+double Svy_GetNumQstsPerCrsSurvey (HieLvl_Level_t Scope)
{
/***** Get number of questions per survey from database *****/
switch (Scope)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
return DB_QuerySELECTDouble ("can not get number of questions per survey",
"SELECT AVG(NumQsts)"
" FROM (SELECT COUNT(svy_questions.QstCod) AS NumQsts"
@@ -4157,8 +4157,8 @@ double Svy_GetNumQstsPerCrsSurvey (Hie_Lvl_Level_t Scope)
" WHERE svy_surveys.Scope='%s'"
" AND svy_surveys.SvyCod=svy_questions.SvyCod"
" GROUP BY svy_questions.SvyCod) AS NumQstsTable",
- Sco_GetDBStrFromScope (Hie_Lvl_CRS));
- case Hie_Lvl_CTY:
+ Sco_GetDBStrFromScope (HieLvl_CRS));
+ case HieLvl_CTY:
return DB_QuerySELECTDouble ("can not get number of questions per survey",
"SELECT AVG(NumQsts)"
" FROM (SELECT COUNT(svy_questions.QstCod) AS NumQsts"
@@ -4177,8 +4177,8 @@ double Svy_GetNumQstsPerCrsSurvey (Hie_Lvl_Level_t Scope)
" AND svy_surveys.SvyCod=svy_questions.SvyCod"
" GROUP BY svy_questions.SvyCod) AS NumQstsTable",
Gbl.Hierarchy.Cty.CtyCod,
- Sco_GetDBStrFromScope (Hie_Lvl_CRS));
- case Hie_Lvl_INS:
+ Sco_GetDBStrFromScope (HieLvl_CRS));
+ case HieLvl_INS:
return DB_QuerySELECTDouble ("can not get number of questions per survey",
"SELECT AVG(NumQsts)"
" FROM (SELECT COUNT(svy_questions.QstCod) AS NumQsts"
@@ -4195,8 +4195,8 @@ double Svy_GetNumQstsPerCrsSurvey (Hie_Lvl_Level_t Scope)
" AND svy_surveys.SvyCod=svy_questions.SvyCod"
" GROUP BY svy_questions.SvyCod) AS NumQstsTable",
Gbl.Hierarchy.Ins.InsCod,
- Sco_GetDBStrFromScope (Hie_Lvl_CRS));
- case Hie_Lvl_CTR:
+ Sco_GetDBStrFromScope (HieLvl_CRS));
+ case HieLvl_CTR:
return DB_QuerySELECTDouble ("can not get number of questions per survey",
"SELECT AVG(NumQsts)"
" FROM (SELECT COUNT(svy_questions.QstCod) AS NumQsts"
@@ -4211,8 +4211,8 @@ double Svy_GetNumQstsPerCrsSurvey (Hie_Lvl_Level_t Scope)
" AND svy_surveys.SvyCod=svy_questions.SvyCod"
" GROUP BY svy_questions.SvyCod) AS NumQstsTable",
Gbl.Hierarchy.Ctr.CtrCod,
- Sco_GetDBStrFromScope (Hie_Lvl_CRS));
- case Hie_Lvl_DEG:
+ Sco_GetDBStrFromScope (HieLvl_CRS));
+ case HieLvl_DEG:
return DB_QuerySELECTDouble ("can not get number of questions per survey",
"SELECT AVG(NumQsts)"
" FROM (SELECT COUNT(svy_questions.QstCod) AS NumQsts"
@@ -4225,8 +4225,8 @@ double Svy_GetNumQstsPerCrsSurvey (Hie_Lvl_Level_t Scope)
" AND svy_surveys.SvyCod=svy_questions.SvyCod"
" GROUP BY svy_questions.SvyCod) AS NumQstsTable",
Gbl.Hierarchy.Deg.DegCod,
- Sco_GetDBStrFromScope (Hie_Lvl_CRS));
- case Hie_Lvl_CRS:
+ Sco_GetDBStrFromScope (HieLvl_CRS));
+ case HieLvl_CRS:
return DB_QuerySELECTDouble ("can not get number of questions per survey",
"SELECT AVG(NumQsts)"
" FROM (SELECT COUNT(svy_questions.QstCod) AS NumQsts"
@@ -4236,7 +4236,7 @@ double Svy_GetNumQstsPerCrsSurvey (Hie_Lvl_Level_t Scope)
" AND svy_surveys.Cod=%ld"
" AND svy_surveys.SvyCod=svy_questions.SvyCod"
" GROUP BY svy_questions.SvyCod) AS NumQstsTable",
- Sco_GetDBStrFromScope (Hie_Lvl_CRS),Gbl.Hierarchy.Crs.CrsCod);
+ Sco_GetDBStrFromScope (HieLvl_CRS),Gbl.Hierarchy.Crs.CrsCod);
default:
Err_WrongScopeExit ();
return 0.0; // Not reached
diff --git a/swad_survey.h b/swad_survey.h
index b152a958..72a667c5 100644
--- a/swad_survey.h
+++ b/swad_survey.h
@@ -58,7 +58,7 @@ struct Svy_Surveys
struct Svy_Survey
{
long SvyCod;
- Hie_Lvl_Level_t Scope;
+ HieLvl_Level_t Scope;
long Cod; // Country, institution, center, degree or course code
unsigned Roles; // Example: if survey can be made by students, Roles == (1 << Rol_STD)
long UsrCod;
@@ -110,7 +110,7 @@ void Svy_UnhideSurvey (void);
void Svy_ReceiveFormSurvey (void);
void Svy_RemoveGroup (long GrpCod);
void Svy_RemoveGroupsOfType (long GrpTypCod);
-void Svy_RemoveSurveys (Hie_Lvl_Level_t Scope,long Cod);
+void Svy_RemoveSurveys (HieLvl_Level_t Scope,long Cod);
void Svy_RequestEditQuestion (void);
void Svy_ReceiveQst (void);
@@ -120,8 +120,8 @@ void Svy_RemoveQst (void);
void Svy_ReceiveSurveyAnswers (void);
-unsigned Svy_GetNumCoursesWithCrsSurveys (Hie_Lvl_Level_t Scope);
-unsigned Svy_GetNumCrsSurveys (Hie_Lvl_Level_t Scope,unsigned *NumNotif);
-double Svy_GetNumQstsPerCrsSurvey (Hie_Lvl_Level_t Scope);
+unsigned Svy_GetNumCoursesWithCrsSurveys (HieLvl_Level_t Scope);
+unsigned Svy_GetNumCrsSurveys (HieLvl_Level_t Scope,unsigned *NumNotif);
+double Svy_GetNumQstsPerCrsSurvey (HieLvl_Level_t Scope);
#endif
diff --git a/swad_system_config.c b/swad_system_config.c
index 3fa7926c..323836a0 100644
--- a/swad_system_config.c
+++ b/swad_system_config.c
@@ -40,8 +40,8 @@
#include "swad_figure_cache.h"
#include "swad_form.h"
#include "swad_help.h"
-#include "swad_hierarchy_level.h"
#include "swad_hierarchy_config.h"
+#include "swad_hierarchy_level.h"
#include "swad_HTML.h"
#include "swad_role.h"
#include "swad_system_config.h"
@@ -156,10 +156,10 @@ static void SysCfg_Configuration (bool PrintView)
SysCfg_NumCrss ();
/***** Number of users in courses of this country *****/
- HieCfg_NumUsrsInCrss (Hie_Lvl_SYS,-1L,Rol_TCH);
- HieCfg_NumUsrsInCrss (Hie_Lvl_SYS,-1L,Rol_NET);
- HieCfg_NumUsrsInCrss (Hie_Lvl_SYS,-1L,Rol_STD);
- HieCfg_NumUsrsInCrss (Hie_Lvl_SYS,-1L,Rol_UNK);
+ HieCfg_NumUsrsInCrss (HieLvl_SYS,-1L,Rol_TCH);
+ HieCfg_NumUsrsInCrss (HieLvl_SYS,-1L,Rol_NET);
+ HieCfg_NumUsrsInCrss (HieLvl_SYS,-1L,Rol_STD);
+ HieCfg_NumUsrsInCrss (HieLvl_SYS,-1L,Rol_UNK);
}
/***** End table *****/
diff --git a/swad_tab.c b/swad_tab.c
index 3e645497..07b69e77 100644
--- a/swad_tab.c
+++ b/swad_tab.c
@@ -27,6 +27,7 @@
#include "swad_form.h"
#include "swad_global.h"
+#include "swad_hierarchy_level.h"
#include "swad_HTML.h"
#include "swad_parameter.h"
#include "swad_tab.h"
@@ -165,9 +166,9 @@ static bool Tab_CheckIfICanViewTab (Tab_Tab_t Tab)
return (Gbl.Hierarchy.Deg.DegCod > 0 && // Degree selected
Gbl.Hierarchy.Crs.CrsCod <= 0); // No course selected
case TabCrs:
- return (Gbl.Hierarchy.Level == Hie_Lvl_CRS); // Course selected
+ return (Gbl.Hierarchy.Level == HieLvl_CRS); // Course selected
case TabAss:
- return (Gbl.Hierarchy.Level == Hie_Lvl_CRS || // Course selected
+ return (Gbl.Hierarchy.Level == HieLvl_CRS || // Course selected
Gbl.Usrs.Me.Role.Logged >= Rol_STD); // I belong to course or I am an admin
case TabFil:
return (Gbl.Hierarchy.Ins.InsCod > 0 || // Institution selected
diff --git a/swad_test.c b/swad_test.c
index 72e98114..97ebfe17 100644
--- a/swad_test.c
+++ b/swad_test.c
@@ -45,6 +45,7 @@
#include "swad_figure.h"
#include "swad_form.h"
#include "swad_global.h"
+#include "swad_hierarchy_level.h"
#include "swad_HTML.h"
#include "swad_ID.h"
#include "swad_language.h"
@@ -226,9 +227,9 @@ static void Tst_RemoveMediaFromAllAnsOfQst (long CrsCod,long QstCod);
static void Tst_RemoveAllMedFilesFromStemOfAllQstsInCrs (long CrsCod);
static void Tst_RemoveAllMedFilesFromAnsOfAllQstsInCrs (long CrsCod);
-static unsigned Tst_GetNumTstQuestions (Hie_Lvl_Level_t Scope,Tst_AnswerType_t AnsType,struct Tst_Stats *Stats);
-static unsigned Tst_GetNumCoursesWithTstQuestions (Hie_Lvl_Level_t Scope,Tst_AnswerType_t AnsType);
-static unsigned Tst_GetNumCoursesWithPluggableTstQuestions (Hie_Lvl_Level_t Scope,Tst_AnswerType_t AnsType);
+static unsigned Tst_GetNumTstQuestions (HieLvl_Level_t Scope,Tst_AnswerType_t AnsType,struct Tst_Stats *Stats);
+static unsigned Tst_GetNumCoursesWithTstQuestions (HieLvl_Level_t Scope,Tst_AnswerType_t AnsType);
+static unsigned Tst_GetNumCoursesWithPluggableTstQuestions (HieLvl_Level_t Scope,Tst_AnswerType_t AnsType);
/*****************************************************************************/
/********************* Request a self-assessment test ************************/
@@ -5340,7 +5341,7 @@ void Tst_GetTestStats (Tst_AnswerType_t AnsType,struct Tst_Stats *Stats)
// Returns the number of test questions
// in this location (all the platform, current degree or current course)
-static unsigned Tst_GetNumTstQuestions (Hie_Lvl_Level_t Scope,Tst_AnswerType_t AnsType,struct Tst_Stats *Stats)
+static unsigned Tst_GetNumTstQuestions (HieLvl_Level_t Scope,Tst_AnswerType_t AnsType,struct Tst_Stats *Stats)
{
MYSQL_RES *mysql_res;
MYSQL_ROW row;
@@ -5348,7 +5349,7 @@ static unsigned Tst_GetNumTstQuestions (Hie_Lvl_Level_t Scope,Tst_AnswerType_t A
/***** Get number of test questions from database *****/
switch (Scope)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
if (AnsType == Tst_ANS_UNKNOWN) // Any type
DB_QuerySELECT (&mysql_res,"can not get number of test questions",
"SELECT COUNT(*)," // row[0]
@@ -5364,7 +5365,7 @@ static unsigned Tst_GetNumTstQuestions (Hie_Lvl_Level_t Scope,Tst_AnswerType_t A
" WHERE AnsType='%s'",
Tst_StrAnswerTypesDB[AnsType]);
break;
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
if (AnsType == Tst_ANS_UNKNOWN) // Any type
DB_QuerySELECT (&mysql_res,"can not get number of test questions",
"SELECT COUNT(*)," // row[0]
@@ -5400,7 +5401,7 @@ static unsigned Tst_GetNumTstQuestions (Hie_Lvl_Level_t Scope,Tst_AnswerType_t A
Gbl.Hierarchy.Cty.CtyCod,
Tst_StrAnswerTypesDB[AnsType]);
break;
- case Hie_Lvl_INS:
+ case HieLvl_INS:
if (AnsType == Tst_ANS_UNKNOWN) // Any type
DB_QuerySELECT (&mysql_res,"can not get number of test questions",
"SELECT COUNT(*)," // row[0]
@@ -5432,7 +5433,7 @@ static unsigned Tst_GetNumTstQuestions (Hie_Lvl_Level_t Scope,Tst_AnswerType_t A
Gbl.Hierarchy.Ins.InsCod,
Tst_StrAnswerTypesDB[AnsType]);
break;
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
if (AnsType == Tst_ANS_UNKNOWN) // Any type
DB_QuerySELECT (&mysql_res,"can not get number of test questions",
"SELECT COUNT(*)," // row[0]
@@ -5460,7 +5461,7 @@ static unsigned Tst_GetNumTstQuestions (Hie_Lvl_Level_t Scope,Tst_AnswerType_t A
Gbl.Hierarchy.Ctr.CtrCod,
Tst_StrAnswerTypesDB[AnsType]);
break;
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
if (AnsType == Tst_ANS_UNKNOWN) // Any type
DB_QuerySELECT (&mysql_res,"can not get number of test questions",
"SELECT COUNT(*)," // row[0]
@@ -5484,7 +5485,7 @@ static unsigned Tst_GetNumTstQuestions (Hie_Lvl_Level_t Scope,Tst_AnswerType_t A
Gbl.Hierarchy.Deg.DegCod,
Tst_StrAnswerTypesDB[AnsType]);
break;
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
if (AnsType == Tst_ANS_UNKNOWN) // Any type
DB_QuerySELECT (&mysql_res,"can not get number of test questions",
"SELECT COUNT(*)," // row[0]
@@ -5542,12 +5543,12 @@ static unsigned Tst_GetNumTstQuestions (Hie_Lvl_Level_t Scope,Tst_AnswerType_t A
// Returns the number of courses with test questions
// in this location (all the platform, current degree or current course)
-static unsigned Tst_GetNumCoursesWithTstQuestions (Hie_Lvl_Level_t Scope,Tst_AnswerType_t AnsType)
+static unsigned Tst_GetNumCoursesWithTstQuestions (HieLvl_Level_t Scope,Tst_AnswerType_t AnsType)
{
/***** Get number of courses with test questions from database *****/
switch (Scope)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
if (AnsType == Tst_ANS_UNKNOWN) // Any type
return (unsigned)
DB_QueryCOUNT ("can not get number of courses with test questions",
@@ -5560,7 +5561,7 @@ static unsigned Tst_GetNumCoursesWithTstQuestions (Hie_Lvl_Level_t Scope,Tst_Ans
" FROM tst_questions"
" WHERE AnsType='%s'",
Tst_StrAnswerTypesDB[AnsType]);
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
if (AnsType == Tst_ANS_UNKNOWN) // Any type
return (unsigned)
DB_QueryCOUNT ("can not get number of courses with test questions",
@@ -5593,7 +5594,7 @@ static unsigned Tst_GetNumCoursesWithTstQuestions (Hie_Lvl_Level_t Scope,Tst_Ans
" AND tst_questions.AnsType='%s'",
Gbl.Hierarchy.Cty.CtyCod,
Tst_StrAnswerTypesDB[AnsType]);
- case Hie_Lvl_INS:
+ case HieLvl_INS:
if (AnsType == Tst_ANS_UNKNOWN) // Any type
return (unsigned)
DB_QueryCOUNT ("can not get number of courses with test questions",
@@ -5622,7 +5623,7 @@ static unsigned Tst_GetNumCoursesWithTstQuestions (Hie_Lvl_Level_t Scope,Tst_Ans
" AND tst_questions.AnsType='%s'",
Gbl.Hierarchy.Ins.InsCod,
Tst_StrAnswerTypesDB[AnsType]);
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
if (AnsType == Tst_ANS_UNKNOWN) // Any type
return (unsigned)
DB_QueryCOUNT ("can not get number of courses with test questions",
@@ -5647,7 +5648,7 @@ static unsigned Tst_GetNumCoursesWithTstQuestions (Hie_Lvl_Level_t Scope,Tst_Ans
" AND tst_questions.AnsType='%s'",
Gbl.Hierarchy.Ctr.CtrCod,
Tst_StrAnswerTypesDB[AnsType]);
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
if (AnsType == Tst_ANS_UNKNOWN) // Any type
return (unsigned)
DB_QueryCOUNT ("can not get number of courses with test questions",
@@ -5668,7 +5669,7 @@ static unsigned Tst_GetNumCoursesWithTstQuestions (Hie_Lvl_Level_t Scope,Tst_Ans
" AND tst_questions.AnsType='%s'",
Gbl.Hierarchy.Deg.DegCod,
Tst_StrAnswerTypesDB[AnsType]);
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
if (AnsType == Tst_ANS_UNKNOWN) // Any type
return (unsigned)
DB_QueryCOUNT ("can not get number of courses with test questions",
@@ -5696,14 +5697,14 @@ static unsigned Tst_GetNumCoursesWithTstQuestions (Hie_Lvl_Level_t Scope,Tst_Ans
// Returns the number of courses with pluggable test questions
// in this location (all the platform, current degree or current course)
-static unsigned Tst_GetNumCoursesWithPluggableTstQuestions (Hie_Lvl_Level_t Scope,Tst_AnswerType_t AnsType)
+static unsigned Tst_GetNumCoursesWithPluggableTstQuestions (HieLvl_Level_t Scope,Tst_AnswerType_t AnsType)
{
extern const char *TstCfg_PluggableDB[TstCfg_NUM_OPTIONS_PLUGGABLE];
/***** Get number of courses with test questions from database *****/
switch (Scope)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
if (AnsType == Tst_ANS_UNKNOWN) // Any type
return (unsigned)
DB_QueryCOUNT ("can not get number of courses with pluggable test questions",
@@ -5724,7 +5725,7 @@ static unsigned Tst_GetNumCoursesWithPluggableTstQuestions (Hie_Lvl_Level_t Scop
" AND tst_config.pluggable='%s'",
Tst_StrAnswerTypesDB[AnsType],
TstCfg_PluggableDB[TstCfg_PLUGGABLE_YES]);
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
if (AnsType == Tst_ANS_UNKNOWN) // Any type
return (unsigned)
DB_QueryCOUNT ("can not get number of courses with pluggable test questions",
@@ -5765,7 +5766,7 @@ static unsigned Tst_GetNumCoursesWithPluggableTstQuestions (Hie_Lvl_Level_t Scop
Gbl.Hierarchy.Cty.CtyCod,
Tst_StrAnswerTypesDB[AnsType],
TstCfg_PluggableDB[TstCfg_PLUGGABLE_YES]);
- case Hie_Lvl_INS:
+ case HieLvl_INS:
if (AnsType == Tst_ANS_UNKNOWN) // Any type
return (unsigned)
DB_QueryCOUNT ("can not get number of courses with pluggable test questions",
@@ -5802,7 +5803,7 @@ static unsigned Tst_GetNumCoursesWithPluggableTstQuestions (Hie_Lvl_Level_t Scop
Gbl.Hierarchy.Ins.InsCod,
Tst_StrAnswerTypesDB[AnsType],
TstCfg_PluggableDB[TstCfg_PLUGGABLE_YES]);
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
if (AnsType == Tst_ANS_UNKNOWN) // Any type
return (unsigned)
DB_QueryCOUNT ("can not get number of courses with pluggable test questions",
@@ -5835,7 +5836,7 @@ static unsigned Tst_GetNumCoursesWithPluggableTstQuestions (Hie_Lvl_Level_t Scop
Gbl.Hierarchy.Ctr.CtrCod,
Tst_StrAnswerTypesDB[AnsType],
TstCfg_PluggableDB[TstCfg_PLUGGABLE_YES]);
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
if (AnsType == Tst_ANS_UNKNOWN) // Any type
return (unsigned)
DB_QueryCOUNT ("can not get number of courses with pluggable test questions",
@@ -5864,7 +5865,7 @@ static unsigned Tst_GetNumCoursesWithPluggableTstQuestions (Hie_Lvl_Level_t Scop
Gbl.Hierarchy.Deg.DegCod,
Tst_StrAnswerTypesDB[AnsType],
TstCfg_PluggableDB[TstCfg_PLUGGABLE_YES]);
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
if (AnsType == Tst_ANS_UNKNOWN) // Any type
return (unsigned)
DB_QueryCOUNT ("can not get number of courses with pluggable test questions",
diff --git a/swad_text.c b/swad_text.c
index 25e3041f..9aeab173 100644
--- a/swad_text.c
+++ b/swad_text.c
@@ -8206,9 +8206,9 @@ const char *Txt_DEGREE_STATUS[Deg_NUM_STATUS_TXT] =
#endif
};
-const char *Txt_DEGREE_TYPES_HELP_ORDER[DT_NUM_ORDERS] =
+const char *Txt_DEGREE_TYPES_HELP_ORDER[DegTyp_NUM_ORDERS] =
{
- [DT_ORDER_BY_DEGREE_TYPE] =
+ [DegTyp_ORDER_BY_DEGREE_TYPE] =
#if L==1 // ca
"Ordenar por tipus de titulació"
#elif L==2 // de
@@ -8229,7 +8229,7 @@ const char *Txt_DEGREE_TYPES_HELP_ORDER[DT_NUM_ORDERS] =
"Classificar por tipo de grau"
#endif
,
- [DT_ORDER_BY_NUM_DEGREES] =
+ [DegTyp_ORDER_BY_NUM_DEGREES] =
#if L==1 // ca
"Ordenar per nombre de titulacions"
#elif L==2 // de
@@ -8251,9 +8251,9 @@ const char *Txt_DEGREE_TYPES_HELP_ORDER[DT_NUM_ORDERS] =
#endif
};
-const char *Txt_DEGREE_TYPES_ORDER[DT_NUM_ORDERS] =
+const char *Txt_DEGREE_TYPES_ORDER[DegTyp_NUM_ORDERS] =
{
- [DT_ORDER_BY_DEGREE_TYPE] =
+ [DegTyp_ORDER_BY_DEGREE_TYPE] =
#if L==1 // ca
"Tipus de titulació"
#elif L==2 // de
@@ -8274,7 +8274,7 @@ const char *Txt_DEGREE_TYPES_ORDER[DT_NUM_ORDERS] =
"Tipos de grau"
#endif
,
- [DT_ORDER_BY_NUM_DEGREES] =
+ [DegTyp_ORDER_BY_NUM_DEGREES] =
#if L==1 // ca
"Titulacions"
#elif L==2 // de
diff --git a/swad_user.c b/swad_user.c
index 21b90722..01c29da6 100644
--- a/swad_user.c
+++ b/swad_user.c
@@ -57,6 +57,7 @@
#include "swad_group.h"
#include "swad_help.h"
#include "swad_hierarchy.h"
+#include "swad_hierarchy_level.h"
#include "swad_HTML.h"
#include "swad_ID.h"
#include "swad_language.h"
@@ -191,9 +192,9 @@ static void Usr_WriteUsrData (const char *BgColor,
static void Usr_BuildQueryToGetUsrsLstCrs (char **Query,Rol_Role_t Role);
-static void Usr_GetAdmsLst (Hie_Lvl_Level_t Scope);
-static void Usr_GetGstsLst (Hie_Lvl_Level_t Scope);
-static void Usr_GetListUsrsFromQuery (char *Query,Rol_Role_t Role,Hie_Lvl_Level_t Scope);
+static void Usr_GetAdmsLst (HieLvl_Level_t Scope);
+static void Usr_GetGstsLst (HieLvl_Level_t Scope);
+static void Usr_GetListUsrsFromQuery (char *Query,Rol_Role_t Role,HieLvl_Level_t Scope);
static void Usr_AllocateUsrsList (Rol_Role_t Role);
static void Usr_PutButtonToConfirmIWantToSeeBigList (unsigned NumUsrs,
@@ -272,8 +273,8 @@ static void Usr_DrawClassPhoto (Usr_ClassPhotoType_t ClassPhotoType,
bool PutCheckBoxToSelectUsr);
static FigCch_FigureCached_t Usr_GetFigureNumUsrsInCrss (unsigned Roles);
-static double Usr_GetNumCrssPerUsr (Hie_Lvl_Level_t Scope,long Cod,Rol_Role_t Role);
-static double Usr_GetNumUsrsPerCrs (Hie_Lvl_Level_t Scope,long Cod,Rol_Role_t Role);
+static double Usr_GetNumCrssPerUsr (HieLvl_Level_t Scope,long Cod,Rol_Role_t Role);
+static double Usr_GetNumUsrsPerCrs (HieLvl_Level_t Scope,long Cod,Rol_Role_t Role);
/*****************************************************************************/
/**** Show alert about number of clicks remaining before sending my photo ****/
@@ -377,7 +378,7 @@ void Usr_ResetUsrDataExceptUsrCodAndIDs (struct UsrData *UsrDat)
void Usr_ResetMyLastData (void)
{
Gbl.Usrs.Me.UsrLast.WhatToSearch = Sch_WHAT_TO_SEARCH_DEFAULT;
- Gbl.Usrs.Me.UsrLast.LastHie.Scope = Hie_Lvl_UNK;
+ Gbl.Usrs.Me.UsrLast.LastHie.Scope = HieLvl_UNK;
Gbl.Usrs.Me.UsrLast.LastHie.Cod = -1L;
Gbl.Usrs.Me.UsrLast.LastAct = ActUnk;
Gbl.Usrs.Me.UsrLast.LastRole = Rol_UNK;
@@ -796,23 +797,23 @@ static void Usr_GetMyLastData (void)
Gbl.Usrs.Me.UsrLast.LastHie.Scope = Sco_GetScopeFromDBStr (row[1]);
switch (Gbl.Usrs.Me.UsrLast.LastHie.Scope)
{
- case Hie_Lvl_SYS: // System
+ case HieLvl_SYS: // System
Gbl.Usrs.Me.UsrLast.LastHie.Cod = -1L;
break;
- case Hie_Lvl_CTY: // Country
- case Hie_Lvl_INS: // Institution
- case Hie_Lvl_CTR: // Center
- case Hie_Lvl_DEG: // Degree
- case Hie_Lvl_CRS: // Course
+ case HieLvl_CTY: // Country
+ case HieLvl_INS: // Institution
+ case HieLvl_CTR: // Center
+ case HieLvl_DEG: // Degree
+ case HieLvl_CRS: // Course
Gbl.Usrs.Me.UsrLast.LastHie.Cod = Str_ConvertStrCodToLongCod (row[2]);
if (Gbl.Usrs.Me.UsrLast.LastHie.Cod <= 0)
{
- Gbl.Usrs.Me.UsrLast.LastHie.Scope = Hie_Lvl_UNK;
+ Gbl.Usrs.Me.UsrLast.LastHie.Scope = HieLvl_UNK;
Gbl.Usrs.Me.UsrLast.LastHie.Cod = -1L;
}
break;
default:
- Gbl.Usrs.Me.UsrLast.LastHie.Scope = Hie_Lvl_UNK;
+ Gbl.Usrs.Me.UsrLast.LastHie.Scope = HieLvl_UNK;
Gbl.Usrs.Me.UsrLast.LastHie.Cod = -1L;
break;
}
@@ -917,7 +918,7 @@ void Usr_FlushCachesUsr (void)
/***** Check if a user is an administrator of a degree/center/institution ****/
/*****************************************************************************/
-bool Usr_CheckIfUsrIsAdm (long UsrCod,Hie_Lvl_Level_t Scope,long Cod)
+bool Usr_CheckIfUsrIsAdm (long UsrCod,HieLvl_Level_t Scope,long Cod)
{
/***** Get if a user is administrator of a degree from database *****/
return (DB_QueryCOUNT ("can not check if a user is administrator",
@@ -960,7 +961,7 @@ bool Usr_CheckIfUsrIsSuperuser (long UsrCod)
" WHERE UsrCod=%ld"
" AND Scope='%s'",
UsrCod,
- Sco_GetDBStrFromScope (Hie_Lvl_SYS)) != 0);
+ Sco_GetDBStrFromScope (HieLvl_SYS)) != 0);
return Gbl.Cache.UsrIsSuperuser.IsSuperuser;
}
@@ -3433,13 +3434,13 @@ static void Usr_SetMyPrefsAndRoles (void)
/***** Location in hierarchy and role are stored in session,
but in login the are got from user's last data *****/
- if (Gbl.Hierarchy.Level == Hie_Lvl_SYS) // No country selected
+ if (Gbl.Hierarchy.Level == HieLvl_SYS) // No country selected
{
/***** Copy last hierarchy to current hierarchy *****/
Hie_SetHierarchyFromUsrLastHierarchy ();
/* Course may have changed ==> get my role in current course again */
- if (Gbl.Hierarchy.Level == Hie_Lvl_CRS) // Course selected
+ if (Gbl.Hierarchy.Level == HieLvl_CRS) // Course selected
Gbl.Usrs.Me.UsrDat.Roles.InCurrentCrs = Rol_GetMyRoleInCrs (Gbl.Hierarchy.Crs.CrsCod);
// role and action will be got from last data
@@ -3877,7 +3878,7 @@ static void Usr_WriteRowStdAllData (struct UsrData *UsrDat,char *GroupNames)
" ",
NULL,true,UsrDat->Accepted);
- if (Gbl.Scope.Current == Hie_Lvl_CRS)
+ if (Gbl.Scope.Current == HieLvl_CRS)
{
/***** Write the groups a the que pertenece the student *****/
for (NumGrpTyp = 0;
@@ -4217,7 +4218,7 @@ unsigned Usr_GetNumUsrsWhoDontClaimToBelongToAnyCty (void)
" FROM usr_data"
" WHERE CtyCod<0");
Gbl.Cache.NumUsrsWhoDontClaimToBelongToAnyCty.Valid = true;
- FigCch_UpdateFigureIntoCache (FigCch_NUM_USRS_BELONG_CTY,Hie_Lvl_CTY,-1L,
+ FigCch_UpdateFigureIntoCache (FigCch_NUM_USRS_BELONG_CTY,HieLvl_CTY,-1L,
FigCch_UNSIGNED,&Gbl.Cache.NumUsrsWhoDontClaimToBelongToAnyCty.NumUsrs);
return Gbl.Cache.NumUsrsWhoDontClaimToBelongToAnyCty.NumUsrs;
}
@@ -4227,7 +4228,7 @@ unsigned Usr_GetCachedNumUsrsWhoDontClaimToBelongToAnyCty (void)
unsigned NumUsrs;
/***** Get number of user who don't claim to belong to any country from cache *****/
- if (!FigCch_GetFigureFromCache (FigCch_NUM_USRS_BELONG_CTY,Hie_Lvl_CTY,-1L,
+ if (!FigCch_GetFigureFromCache (FigCch_NUM_USRS_BELONG_CTY,HieLvl_CTY,-1L,
FigCch_UNSIGNED,&NumUsrs))
/***** Get current number of user who don't claim to belong to any country from database and update cache *****/
NumUsrs = Usr_GetNumUsrsWhoDontClaimToBelongToAnyCty ();
@@ -4258,7 +4259,7 @@ unsigned Usr_GetNumUsrsWhoClaimToBelongToAnotherCty (void)
" FROM usr_data"
" WHERE CtyCod=0");
Gbl.Cache.NumUsrsWhoClaimToBelongToAnotherCty.Valid = true;
- FigCch_UpdateFigureIntoCache (FigCch_NUM_USRS_BELONG_CTY,Hie_Lvl_CTY,0,
+ FigCch_UpdateFigureIntoCache (FigCch_NUM_USRS_BELONG_CTY,HieLvl_CTY,0,
FigCch_UNSIGNED,&Gbl.Cache.NumUsrsWhoClaimToBelongToAnotherCty.NumUsrs);
return Gbl.Cache.NumUsrsWhoClaimToBelongToAnotherCty.NumUsrs;
}
@@ -4268,7 +4269,7 @@ unsigned Usr_GetCachedNumUsrsWhoClaimToBelongToAnotherCty (void)
unsigned NumUsrsCty;
/***** Get number of users who claim to belong to another country form cache *****/
- if (!FigCch_GetFigureFromCache (FigCch_NUM_USRS_BELONG_CTY,Hie_Lvl_CTY,0,
+ if (!FigCch_GetFigureFromCache (FigCch_NUM_USRS_BELONG_CTY,HieLvl_CTY,0,
FigCch_UNSIGNED,&NumUsrsCty))
/***** Get current number of users who claim to belong to another country from database and update cache *****/
NumUsrsCty = Usr_GetNumUsrsWhoClaimToBelongToAnotherCty ();
@@ -4315,7 +4316,7 @@ unsigned Usr_GetNumUsrsWhoClaimToBelongToCty (struct Cty_Countr *Cty)
" WHERE CtyCod=%ld",
Cty->CtyCod);
Cty->NumUsrsWhoClaimToBelongToCty.Valid = true;
- FigCch_UpdateFigureIntoCache (FigCch_NUM_USRS_BELONG_CTY,Hie_Lvl_CTY,Gbl.Cache.NumUsrsWhoClaimToBelongToCty.CtyCod,
+ FigCch_UpdateFigureIntoCache (FigCch_NUM_USRS_BELONG_CTY,HieLvl_CTY,Gbl.Cache.NumUsrsWhoClaimToBelongToCty.CtyCod,
FigCch_UNSIGNED,&Gbl.Cache.NumUsrsWhoClaimToBelongToCty.NumUsrs);
return Cty->NumUsrsWhoClaimToBelongToCty.NumUsrs;
}
@@ -4325,7 +4326,7 @@ unsigned Usr_GetCachedNumUsrsWhoClaimToBelongToCty (struct Cty_Countr *Cty)
unsigned NumUsrsCty;
/***** Get number of users who claim to belong to country from cache ******/
- if (!FigCch_GetFigureFromCache (FigCch_NUM_USRS_BELONG_CTY,Hie_Lvl_CTY,Cty->CtyCod,
+ if (!FigCch_GetFigureFromCache (FigCch_NUM_USRS_BELONG_CTY,HieLvl_CTY,Cty->CtyCod,
FigCch_UNSIGNED,&NumUsrsCty))
/***** Get current number of users who claim to belong to country from database and update cache ******/
NumUsrsCty = Usr_GetNumUsrsWhoClaimToBelongToCty (Cty);
@@ -4372,7 +4373,7 @@ unsigned Usr_GetNumUsrsWhoClaimToBelongToIns (struct Ins_Instit *Ins)
" WHERE InsCod=%ld",
Ins->InsCod);
Ins->NumUsrsWhoClaimToBelongToIns.Valid = true;
- FigCch_UpdateFigureIntoCache (FigCch_NUM_USRS_BELONG_INS,Hie_Lvl_INS,Gbl.Cache.NumUsrsWhoClaimToBelongToIns.InsCod,
+ FigCch_UpdateFigureIntoCache (FigCch_NUM_USRS_BELONG_INS,HieLvl_INS,Gbl.Cache.NumUsrsWhoClaimToBelongToIns.InsCod,
FigCch_UNSIGNED,&Gbl.Cache.NumUsrsWhoClaimToBelongToIns.NumUsrs);
return Ins->NumUsrsWhoClaimToBelongToIns.NumUsrs;
}
@@ -4382,7 +4383,7 @@ unsigned Usr_GetCachedNumUsrsWhoClaimToBelongToIns (struct Ins_Instit *Ins)
unsigned NumUsrsIns;
/***** Get number of users who claim to belong to institution from cache *****/
- if (!FigCch_GetFigureFromCache (FigCch_NUM_USRS_BELONG_INS,Hie_Lvl_INS,Ins->InsCod,
+ if (!FigCch_GetFigureFromCache (FigCch_NUM_USRS_BELONG_INS,HieLvl_INS,Ins->InsCod,
FigCch_UNSIGNED,&NumUsrsIns))
/***** Get current number of users who claim to belong to institution from database and update cache *****/
NumUsrsIns = Usr_GetNumUsrsWhoClaimToBelongToIns (Ins);
@@ -4428,7 +4429,7 @@ unsigned Usr_GetNumUsrsWhoClaimToBelongToCtr (struct Ctr_Center *Ctr)
" FROM usr_data"
" WHERE CtrCod=%ld",
Ctr->CtrCod);
- FigCch_UpdateFigureIntoCache (FigCch_NUM_USRS_BELONG_CTR,Hie_Lvl_CTR,Gbl.Cache.NumUsrsWhoClaimToBelongToCtr.CtrCod,
+ FigCch_UpdateFigureIntoCache (FigCch_NUM_USRS_BELONG_CTR,HieLvl_CTR,Gbl.Cache.NumUsrsWhoClaimToBelongToCtr.CtrCod,
FigCch_UNSIGNED,&Gbl.Cache.NumUsrsWhoClaimToBelongToCtr.NumUsrs);
return Ctr->NumUsrsWhoClaimToBelongToCtr.NumUsrs;
}
@@ -4438,7 +4439,7 @@ unsigned Usr_GetCachedNumUsrsWhoClaimToBelongToCtr (struct Ctr_Center *Ctr)
unsigned NumUsrsCtr;
/***** Get number of users who claim to belong to center from cache *****/
- if (!FigCch_GetFigureFromCache (FigCch_NUM_USRS_BELONG_CTR,Hie_Lvl_CTR,Ctr->CtrCod,
+ if (!FigCch_GetFigureFromCache (FigCch_NUM_USRS_BELONG_CTR,HieLvl_CTR,Ctr->CtrCod,
FigCch_UNSIGNED,&NumUsrsCtr))
/***** Get current number of users who claim to belong to center from database and update cache *****/
NumUsrsCtr = Usr_GetNumUsrsWhoClaimToBelongToCtr (Ctr);
@@ -4485,8 +4486,8 @@ static void Usr_BuildQueryToGetUsrsLstCrs (char **Query,Rol_Role_t Role)
row[ 8]: usr_data.PhotoVisibility
row[ 9]: usr_data.CtyCod
row[10]: usr_data.InsCod
- row[11]: crs_users.Role (only if Scope == Hie_Lvl_CRS)
- row[12]: crs_users.Accepted (only if Scope == Hie_Lvl_CRS)
+ row[11]: crs_users.Role (only if Scope == HieLvl_CRS)
+ row[12]: crs_users.Accepted (only if Scope == HieLvl_CRS)
*/
/***** If there are no groups selected, don't do anything *****/
@@ -4644,7 +4645,7 @@ static void Usr_BuildQueryToGetUsrsLstCrs (char **Query,Rol_Role_t Role)
// - Rol_NET Non-editing teacher
// - Rol_TCH Teacher
-void Usr_GetListUsrs (Hie_Lvl_Level_t Scope,Rol_Role_t Role)
+void Usr_GetListUsrs (HieLvl_Level_t Scope,Rol_Role_t Role)
{
char *Query = NULL;
const char *QueryFields =
@@ -4671,14 +4672,14 @@ void Usr_GetListUsrs (Hie_Lvl_Level_t Scope,Rol_Role_t Role)
row[ 8]: usr_data.PhotoVisibility
row[ 9]: usr_data.CtyCod
row[10]: usr_data.InsCod
- row[11]: crs_users.Role (only if Scope == Hie_Lvl_CRS)
- row[12]: crs_users.Accepted (only if Scope == Hie_Lvl_CRS)
+ row[11]: crs_users.Role (only if Scope == HieLvl_CRS)
+ row[12]: crs_users.Accepted (only if Scope == HieLvl_CRS)
*/
/***** Build query *****/
switch (Scope)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
/* Get users in courses from the whole platform */
DB_BuildQuery (&Query,
"SELECT %s"
@@ -4693,7 +4694,7 @@ void Usr_GetListUsrs (Hie_Lvl_Level_t Scope,Rol_Role_t Role)
QueryFields,
(unsigned) Role);
break;
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
/* Get users in courses from the current country */
DB_BuildQuery (&Query,
"SELECT %s"
@@ -4718,7 +4719,7 @@ void Usr_GetListUsrs (Hie_Lvl_Level_t Scope,Rol_Role_t Role)
(unsigned) Role,
Gbl.Hierarchy.Cty.CtyCod);
break;
- case Hie_Lvl_INS:
+ case HieLvl_INS:
/* Get users in courses from the current institution */
DB_BuildQuery (&Query,
"SELECT %s"
@@ -4741,7 +4742,7 @@ void Usr_GetListUsrs (Hie_Lvl_Level_t Scope,Rol_Role_t Role)
(unsigned) Role,
Gbl.Hierarchy.Ins.InsCod);
break;
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
/* Get users in courses from the current center */
DB_BuildQuery (&Query,
"SELECT %s"
@@ -4762,7 +4763,7 @@ void Usr_GetListUsrs (Hie_Lvl_Level_t Scope,Rol_Role_t Role)
(unsigned) Role,
Gbl.Hierarchy.Ctr.CtrCod);
break;
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
/* Get users in courses from the current degree */
DB_BuildQuery (&Query,
"SELECT %s"
@@ -4781,7 +4782,7 @@ void Usr_GetListUsrs (Hie_Lvl_Level_t Scope,Rol_Role_t Role)
(unsigned) Role,
Gbl.Hierarchy.Deg.DegCod);
break;
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
/* Get users from the current course */
Usr_BuildQueryToGetUsrsLstCrs (&Query,Role);
break;
@@ -4829,8 +4830,8 @@ void Usr_SearchListUsrs (Rol_Role_t Role)
row[ 8]: usr_data.PhotoVisibility
row[ 9]: usr_data.CtyCod
row[10]: usr_data.InsCod
- row[11]: crs_users.Role (only if Scope == Hie_Lvl_CRS)
- row[12]: crs_users.Accepted (only if Scope == Hie_Lvl_CRS)
+ row[11]: crs_users.Role (only if Scope == HieLvl_CRS)
+ row[12]: crs_users.Accepted (only if Scope == HieLvl_CRS)
*/
const char *OrderQuery = "candidate_users.UsrCod=usr_data.UsrCod"
" ORDER BY usr_data.Surname1,"
@@ -4847,7 +4848,7 @@ void Usr_SearchListUsrs (Rol_Role_t Role)
case Rol_UNK: // Here Rol_UNK means any rol (role does not matter)
switch (Gbl.Scope.Current)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
/* Search users from the whole platform */
DB_BuildQuery (&Query,
"SELECT %s"
@@ -4855,7 +4856,7 @@ void Usr_SearchListUsrs (Rol_Role_t Role)
" WHERE %s",
QueryFields,OrderQuery);
break;
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
/* Search users in courses from the current country */
DB_BuildQuery (&Query,
"SELECT %s"
@@ -4877,7 +4878,7 @@ void Usr_SearchListUsrs (Rol_Role_t Role)
Gbl.Hierarchy.Cty.CtyCod,
OrderQuery);
break;
- case Hie_Lvl_INS:
+ case HieLvl_INS:
/* Search users in courses from the current institution */
DB_BuildQuery (&Query,
"SELECT %s"
@@ -4897,7 +4898,7 @@ void Usr_SearchListUsrs (Rol_Role_t Role)
Gbl.Hierarchy.Ins.InsCod,
OrderQuery);
break;
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
/* Search users in courses from the current center */
DB_BuildQuery (&Query,
"SELECT %s"
@@ -4915,7 +4916,7 @@ void Usr_SearchListUsrs (Rol_Role_t Role)
Gbl.Hierarchy.Ctr.CtrCod,
OrderQuery);
break;
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
/* Search users in courses from the current degree */
DB_BuildQuery (&Query,
"SELECT %s"
@@ -4931,7 +4932,7 @@ void Usr_SearchListUsrs (Rol_Role_t Role)
Gbl.Hierarchy.Deg.DegCod,
OrderQuery);
break;
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
/* Search users in courses from the current course */
DB_BuildQuery (&Query,
"SELECT %s,"
@@ -4991,7 +4992,7 @@ void Usr_SearchListUsrs (Rol_Role_t Role)
}
switch (Gbl.Scope.Current)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
/* Search users in courses from the whole platform */
DB_BuildQuery (&Query,
"SELECT %s"
@@ -5005,7 +5006,7 @@ void Usr_SearchListUsrs (Rol_Role_t Role)
SubQueryRole,
OrderQuery);
break;
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
/* Search users in courses from the current country */
DB_BuildQuery (&Query,
"SELECT %s"
@@ -5029,7 +5030,7 @@ void Usr_SearchListUsrs (Rol_Role_t Role)
Gbl.Hierarchy.Cty.CtyCod,
OrderQuery);
break;
- case Hie_Lvl_INS:
+ case HieLvl_INS:
/* Search users in courses from the current institution */
DB_BuildQuery (&Query,
"SELECT %s"
@@ -5051,7 +5052,7 @@ void Usr_SearchListUsrs (Rol_Role_t Role)
Gbl.Hierarchy.Ins.InsCod,
OrderQuery);
break;
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
/* Search users in courses from the current center */
DB_BuildQuery (&Query,
"SELECT %s"
@@ -5071,7 +5072,7 @@ void Usr_SearchListUsrs (Rol_Role_t Role)
Gbl.Hierarchy.Ctr.CtrCod,
OrderQuery);
break;
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
/* Search users in courses from the current degree */
DB_BuildQuery (&Query,
"SELECT %s"
@@ -5089,7 +5090,7 @@ void Usr_SearchListUsrs (Rol_Role_t Role)
Gbl.Hierarchy.Deg.DegCod,
OrderQuery);
break;
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
/* Search users in courses from the current course */
DB_BuildQuery (&Query,
"SELECT %s,"
@@ -5165,7 +5166,7 @@ void Usr_DropTmpTableWithCandidateUsrs (void)
/******************** Get list with data of administrators *******************/
/*****************************************************************************/
-static void Usr_GetAdmsLst (Hie_Lvl_Level_t Scope)
+static void Usr_GetAdmsLst (HieLvl_Level_t Scope)
{
const char *QueryFields =
"UsrCod,"
@@ -5201,7 +5202,7 @@ static void Usr_GetAdmsLst (Hie_Lvl_Level_t Scope)
// SELECT... WHERE (...) OR (...) <-- very slow
switch (Scope)
{
- case Hie_Lvl_SYS: // All admins
+ case HieLvl_SYS: // All admins
DB_BuildQuery (&Query,
"SELECT %s"
" FROM usr_data"
@@ -5214,7 +5215,7 @@ static void Usr_GetAdmsLst (Hie_Lvl_Level_t Scope)
"UsrCod",
QueryFields);
break;
- case Hie_Lvl_CTY: // System admins
+ case HieLvl_CTY: // System admins
// and admins of the institutions, centers and degrees in the current country
DB_BuildQuery (&Query,
"SELECT %s"
@@ -5255,12 +5256,12 @@ static void Usr_GetAdmsLst (Hie_Lvl_Level_t Scope)
"FirstName,"
"UsrCod",
QueryFields,
- Sco_GetDBStrFromScope (Hie_Lvl_SYS),
- Sco_GetDBStrFromScope (Hie_Lvl_INS),Gbl.Hierarchy.Cty.CtyCod,
- Sco_GetDBStrFromScope (Hie_Lvl_CTR),Gbl.Hierarchy.Cty.CtyCod,
- Sco_GetDBStrFromScope (Hie_Lvl_DEG),Gbl.Hierarchy.Cty.CtyCod);
+ Sco_GetDBStrFromScope (HieLvl_SYS),
+ Sco_GetDBStrFromScope (HieLvl_INS),Gbl.Hierarchy.Cty.CtyCod,
+ Sco_GetDBStrFromScope (HieLvl_CTR),Gbl.Hierarchy.Cty.CtyCod,
+ Sco_GetDBStrFromScope (HieLvl_DEG),Gbl.Hierarchy.Cty.CtyCod);
break;
- case Hie_Lvl_INS: // System admins,
+ case HieLvl_INS: // System admins,
// admins of the current institution,
// and admins of the centers and degrees in the current institution
DB_BuildQuery (&Query,
@@ -5296,12 +5297,12 @@ static void Usr_GetAdmsLst (Hie_Lvl_Level_t Scope)
"FirstName,"
"UsrCod",
QueryFields,
- Sco_GetDBStrFromScope (Hie_Lvl_SYS),
- Sco_GetDBStrFromScope (Hie_Lvl_INS),Gbl.Hierarchy.Ins.InsCod,
- Sco_GetDBStrFromScope (Hie_Lvl_CTR),Gbl.Hierarchy.Ins.InsCod,
- Sco_GetDBStrFromScope (Hie_Lvl_DEG),Gbl.Hierarchy.Ins.InsCod);
+ Sco_GetDBStrFromScope (HieLvl_SYS),
+ Sco_GetDBStrFromScope (HieLvl_INS),Gbl.Hierarchy.Ins.InsCod,
+ Sco_GetDBStrFromScope (HieLvl_CTR),Gbl.Hierarchy.Ins.InsCod,
+ Sco_GetDBStrFromScope (HieLvl_DEG),Gbl.Hierarchy.Ins.InsCod);
break;
- case Hie_Lvl_CTR: // System admins,
+ case HieLvl_CTR: // System admins,
// admins of the current institution,
// admins and the current center,
// and admins of the degrees in the current center
@@ -5334,12 +5335,12 @@ static void Usr_GetAdmsLst (Hie_Lvl_Level_t Scope)
"FirstName,"
"UsrCod",
QueryFields,
- Sco_GetDBStrFromScope (Hie_Lvl_SYS),
- Sco_GetDBStrFromScope (Hie_Lvl_INS),Gbl.Hierarchy.Ins.InsCod,
- Sco_GetDBStrFromScope (Hie_Lvl_CTR),Gbl.Hierarchy.Ctr.CtrCod,
- Sco_GetDBStrFromScope (Hie_Lvl_DEG),Gbl.Hierarchy.Ctr.CtrCod);
+ Sco_GetDBStrFromScope (HieLvl_SYS),
+ Sco_GetDBStrFromScope (HieLvl_INS),Gbl.Hierarchy.Ins.InsCod,
+ Sco_GetDBStrFromScope (HieLvl_CTR),Gbl.Hierarchy.Ctr.CtrCod,
+ Sco_GetDBStrFromScope (HieLvl_DEG),Gbl.Hierarchy.Ctr.CtrCod);
break;
- case Hie_Lvl_DEG: // System admins
+ case HieLvl_DEG: // System admins
// and admins of the current institution, center or degree
DB_BuildQuery (&Query,
"SELECT %s"
@@ -5368,10 +5369,10 @@ static void Usr_GetAdmsLst (Hie_Lvl_Level_t Scope)
"FirstName,"
"UsrCod",
QueryFields,
- Sco_GetDBStrFromScope (Hie_Lvl_SYS),
- Sco_GetDBStrFromScope (Hie_Lvl_INS),Gbl.Hierarchy.Ins.InsCod,
- Sco_GetDBStrFromScope (Hie_Lvl_CTR),Gbl.Hierarchy.Ctr.CtrCod,
- Sco_GetDBStrFromScope (Hie_Lvl_DEG),Gbl.Hierarchy.Deg.DegCod);
+ Sco_GetDBStrFromScope (HieLvl_SYS),
+ Sco_GetDBStrFromScope (HieLvl_INS),Gbl.Hierarchy.Ins.InsCod,
+ Sco_GetDBStrFromScope (HieLvl_CTR),Gbl.Hierarchy.Ctr.CtrCod,
+ Sco_GetDBStrFromScope (HieLvl_DEG),Gbl.Hierarchy.Deg.DegCod);
break;
default: // not aplicable
Err_WrongScopeExit ();
@@ -5386,7 +5387,7 @@ static void Usr_GetAdmsLst (Hie_Lvl_Level_t Scope)
/************************ Get list with data of guests ***********************/
/*****************************************************************************/
-static void Usr_GetGstsLst (Hie_Lvl_Level_t Scope)
+static void Usr_GetGstsLst (HieLvl_Level_t Scope)
{
const char *QueryFields =
"UsrCod,"
@@ -5418,7 +5419,7 @@ static void Usr_GetGstsLst (Hie_Lvl_Level_t Scope)
/***** Build query *****/
switch (Scope)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
DB_BuildQuery (&Query,
"SELECT %s"
" FROM usr_data"
@@ -5431,7 +5432,7 @@ static void Usr_GetGstsLst (Hie_Lvl_Level_t Scope)
"UsrCod",
QueryFields);
break;
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
DB_BuildQuery (&Query,
"SELECT %s"
" FROM usr_data"
@@ -5449,7 +5450,7 @@ static void Usr_GetGstsLst (Hie_Lvl_Level_t Scope)
Gbl.Hierarchy.Cty.CtyCod,
Gbl.Hierarchy.Cty.CtyCod);
break;
- case Hie_Lvl_INS:
+ case HieLvl_INS:
DB_BuildQuery (&Query,
"SELECT %s"
" FROM usr_data"
@@ -5464,7 +5465,7 @@ static void Usr_GetGstsLst (Hie_Lvl_Level_t Scope)
QueryFields,
Gbl.Hierarchy.Ins.InsCod);
break;
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
DB_BuildQuery (&Query,
"SELECT %s"
" FROM usr_data"
@@ -5519,7 +5520,7 @@ void Usr_GetUnorderedStdsCodesInDeg (long DegCod)
(unsigned) Rol_STD);
/***** Get list of students from database *****/
- Usr_GetListUsrsFromQuery (Query,Rol_STD,Hie_Lvl_DEG);
+ Usr_GetListUsrsFromQuery (Query,Rol_STD,HieLvl_DEG);
/***** Free query string *****/
free (Query);
@@ -5529,7 +5530,7 @@ void Usr_GetUnorderedStdsCodesInDeg (long DegCod)
/********************** Get list of users from database **********************/
/*****************************************************************************/
-static void Usr_GetListUsrsFromQuery (char *Query,Rol_Role_t Role,Hie_Lvl_Level_t Scope)
+static void Usr_GetListUsrsFromQuery (char *Query,Rol_Role_t Role,HieLvl_Level_t Scope)
{
extern const char *Txt_The_list_of_X_users_is_too_large_to_be_displayed;
MYSQL_RES *mysql_res;
@@ -5586,8 +5587,8 @@ static void Usr_GetListUsrsFromQuery (char *Query,Rol_Role_t Role,Hie_Lvl_Level_
row[ 8]: usr_data.PhotoVisibility
row[ 9]: usr_data.CtyCod
row[10]: usr_data.InsCod
- row[11]: crs_users.Role (only if Scope == Hie_Lvl_CRS)
- row[12]: crs_users.Accepted (only if Scope == Hie_Lvl_CRS)
+ row[11]: crs_users.Role (only if Scope == HieLvl_CRS)
+ row[12]: crs_users.Accepted (only if Scope == HieLvl_CRS)
*/
UsrInList = &Gbl.Usrs.LstUsrs[Role].Lst[NumUsr];
@@ -5618,16 +5619,16 @@ static void Usr_GetListUsrsFromQuery (char *Query,Rol_Role_t Role,Hie_Lvl_Level_
UsrInList->InsCod = Str_ConvertStrCodToLongCod (row[10]);
/* Get user's role and acceptance of enrolment in course(s)
- (row[11], row[12] if Scope == Hie_Lvl_CRS) */
+ (row[11], row[12] if Scope == HieLvl_CRS) */
switch (Role)
{
case Rol_UNK: // Here Rol_UNK means any user
switch (Scope)
{
- case Hie_Lvl_UNK: // Unknown
+ case HieLvl_UNK: // Unknown
Err_WrongScopeExit ();
break;
- case Hie_Lvl_SYS: // System
+ case HieLvl_SYS: // System
// Query result has not a column with the acceptation
UsrInList->RoleInCurrentCrsDB = Rol_UNK;
if (Usr_GetNumCrssOfUsr (UsrInList->UsrCod))
@@ -5635,15 +5636,15 @@ static void Usr_GetListUsrsFromQuery (char *Query,Rol_Role_t Role,Hie_Lvl_Level_
else
UsrInList->Accepted = false;
break;
- case Hie_Lvl_CTY: // Country
- case Hie_Lvl_INS: // Institution
- case Hie_Lvl_CTR: // Center
- case Hie_Lvl_DEG: // Degree
+ case HieLvl_CTY: // Country
+ case HieLvl_INS: // Institution
+ case HieLvl_CTR: // Center
+ case HieLvl_DEG: // Degree
// Query result has not a column with the acceptation
UsrInList->RoleInCurrentCrsDB = Rol_UNK;
UsrInList->Accepted = (Usr_GetNumCrssOfUsrNotAccepted (UsrInList->UsrCod) == 0);
break;
- case Hie_Lvl_CRS: // Course
+ case HieLvl_CRS: // Course
// Query result has a column with the acceptation
UsrInList->RoleInCurrentCrsDB = Rol_ConvertUnsignedStrToRole (row[11]);
UsrInList->Accepted = (row[12][0] == 'Y');
@@ -5662,19 +5663,19 @@ static void Usr_GetListUsrsFromQuery (char *Query,Rol_Role_t Role,Hie_Lvl_Level_
case Rol_TCH:
switch (Scope)
{
- case Hie_Lvl_UNK: // Unknown
+ case HieLvl_UNK: // Unknown
Err_WrongScopeExit ();
break;
- case Hie_Lvl_SYS: // System
- case Hie_Lvl_CTY: // Country
- case Hie_Lvl_INS: // Institution
- case Hie_Lvl_CTR: // Center
- case Hie_Lvl_DEG: // Degree
+ case HieLvl_SYS: // System
+ case HieLvl_CTY: // Country
+ case HieLvl_INS: // Institution
+ case HieLvl_CTR: // Center
+ case HieLvl_DEG: // Degree
// Query result has not a column with the acceptation
UsrInList->RoleInCurrentCrsDB = Rol_UNK;
UsrInList->Accepted = (Usr_GetNumCrssOfUsrWithARoleNotAccepted (UsrInList->UsrCod,Role) == 0);
break;
- case Hie_Lvl_CRS: // Course
+ case HieLvl_CRS: // Course
// Query result has a column with the acceptation
UsrInList->RoleInCurrentCrsDB = Rol_ConvertUnsignedStrToRole (row[11]);
UsrInList->Accepted = (row[12][0] == 'Y');
@@ -6473,9 +6474,9 @@ void Usr_PutFormToSelectUsrsToGoToAct (struct SelectedUsrs *SelectedUsrs,
Grp_GetParCodsSeveralGrpsToShowUsrs ();
/***** Get and order lists of users from this course *****/
- Usr_GetListUsrs (Hie_Lvl_CRS,Rol_STD);
- Usr_GetListUsrs (Hie_Lvl_CRS,Rol_NET);
- Usr_GetListUsrs (Hie_Lvl_CRS,Rol_TCH);
+ Usr_GetListUsrs (HieLvl_CRS,Rol_STD);
+ Usr_GetListUsrs (HieLvl_CRS,Rol_NET);
+ Usr_GetListUsrs (HieLvl_CRS,Rol_TCH);
NumTotalUsrs = Gbl.Usrs.LstUsrs[Rol_STD].NumUsrs +
Gbl.Usrs.LstUsrs[Rol_NET].NumUsrs +
Gbl.Usrs.LstUsrs[Rol_TCH].NumUsrs;
@@ -7149,7 +7150,7 @@ void Usr_ListAllDataStds (void)
Sco_GetScope ("ScopeUsr");
/***** If the scope is the current course... *****/
- if (Gbl.Scope.Current == Hie_Lvl_CRS)
+ if (Gbl.Scope.Current == HieLvl_CRS)
{
/* Get list of groups types and groups in current course
This is necessary to show columns with group selection */
@@ -7164,13 +7165,13 @@ void Usr_ListAllDataStds (void)
if (Gbl.Usrs.LstUsrs[Rol_STD].NumUsrs)
{
- if (Gbl.Scope.Current == Hie_Lvl_CRS)
+ if (Gbl.Scope.Current == HieLvl_CRS)
/***** Get list of record fields in current course *****/
Rec_GetListRecordFieldsInCurrentCrs ();
/***** Set number of columns *****/
NumColumnsCommonCard = Usr_NUM_ALL_FIELDS_DATA_STD;
- if (Gbl.Scope.Current == Hie_Lvl_CRS)
+ if (Gbl.Scope.Current == HieLvl_CRS)
{
NumColumnsCardAndGroups = NumColumnsCommonCard + Gbl.Crs.Grps.GrpTypes.Num;
NumColumnsTotal = NumColumnsCardAndGroups + Gbl.Crs.Records.LstFields.Num;
@@ -7179,7 +7180,7 @@ void Usr_ListAllDataStds (void)
NumColumnsTotal = NumColumnsCardAndGroups = NumColumnsCommonCard;
/***** Allocate memory for the string with the list of group names where student belongs to *****/
- if (Gbl.Scope.Current == Hie_Lvl_CRS)
+ if (Gbl.Scope.Current == HieLvl_CRS)
{
Length = (Grp_MAX_BYTES_GROUP_NAME + 2) * Gbl.Crs.Grps.GrpTypes.NumGrpsTotal;
if ((GroupNames = malloc (Length + 1)) == NULL)
@@ -7209,7 +7210,7 @@ void Usr_ListAllDataStds (void)
HTM_TH (1,1,"LM LIGHT_BLUE",FieldNames[NumCol]);
/* 2. Columns for the groups */
- if (Gbl.Scope.Current == Hie_Lvl_CRS)
+ if (Gbl.Scope.Current == HieLvl_CRS)
{
if (Gbl.Crs.Grps.GrpTypes.Num)
for (NumGrpTyp = 0;
@@ -7284,7 +7285,7 @@ void Usr_ListAllDataStds (void)
HTM_TABLE_End ();
/***** Free memory used by the string with the list of group names where student belongs to *****/
- if (Gbl.Scope.Current == Hie_Lvl_CRS)
+ if (Gbl.Scope.Current == HieLvl_CRS)
free (GroupNames);
}
else // Gbl.Usrs.LstUsrs[Rol_STD].NumUsrs == 0
@@ -7386,28 +7387,28 @@ void Usr_ListAllDataTchs (void)
Usr_GetAndUpdatePrefsAboutUsrList ();
/***** Get scope *****/
- Gbl.Scope.Allowed = 1 << Hie_Lvl_SYS |
- 1 << Hie_Lvl_CTY |
- 1 << Hie_Lvl_INS |
- 1 << Hie_Lvl_CTR |
- 1 << Hie_Lvl_DEG |
- 1 << Hie_Lvl_CRS;
- Gbl.Scope.Default = Hie_Lvl_CRS;
+ Gbl.Scope.Allowed = 1 << HieLvl_SYS |
+ 1 << HieLvl_CTY |
+ 1 << HieLvl_INS |
+ 1 << HieLvl_CTR |
+ 1 << HieLvl_DEG |
+ 1 << HieLvl_CRS;
+ Gbl.Scope.Default = HieLvl_CRS;
Sco_GetScope ("ScopeUsr");
/***** Get list of teachers *****/
Usr_GetListUsrs (Gbl.Scope.Current,Rol_NET); // Non-editing teachers
Usr_GetListUsrs (Gbl.Scope.Current,Rol_TCH); // Teachers
- if (Gbl.Scope.Current == Hie_Lvl_CRS)
+ if (Gbl.Scope.Current == HieLvl_CRS)
NumUsrs = Gbl.Usrs.LstUsrs[Rol_NET].NumUsrs +
Gbl.Usrs.LstUsrs[Rol_TCH].NumUsrs;
else
NumUsrs = Usr_GetNumUsrsInCrss (Gbl.Scope.Current,
- (Gbl.Scope.Current == Hie_Lvl_CTY ? Gbl.Hierarchy.Cty.CtyCod :
- (Gbl.Scope.Current == Hie_Lvl_INS ? Gbl.Hierarchy.Ins.InsCod :
- (Gbl.Scope.Current == Hie_Lvl_CTR ? Gbl.Hierarchy.Ctr.CtrCod :
- (Gbl.Scope.Current == Hie_Lvl_DEG ? Gbl.Hierarchy.Deg.DegCod :
- (Gbl.Scope.Current == Hie_Lvl_CRS ? Gbl.Hierarchy.Crs.CrsCod :
+ (Gbl.Scope.Current == HieLvl_CTY ? Gbl.Hierarchy.Cty.CtyCod :
+ (Gbl.Scope.Current == HieLvl_INS ? Gbl.Hierarchy.Ins.InsCod :
+ (Gbl.Scope.Current == HieLvl_CTR ? Gbl.Hierarchy.Ctr.CtrCod :
+ (Gbl.Scope.Current == HieLvl_DEG ? Gbl.Hierarchy.Deg.DegCod :
+ (Gbl.Scope.Current == HieLvl_CRS ? Gbl.Hierarchy.Crs.CrsCod :
-1L))))),
1 << Rol_NET |
1 << Rol_TCH);
@@ -7656,12 +7657,12 @@ void Usr_ListDataAdms (void)
Usr_GetAndUpdatePrefsAboutUsrList ();
/***** Get scope *****/
- Gbl.Scope.Allowed = 1 << Hie_Lvl_SYS |
- 1 << Hie_Lvl_CTY |
- 1 << Hie_Lvl_INS |
- 1 << Hie_Lvl_CTR |
- 1 << Hie_Lvl_DEG;
- Gbl.Scope.Default = Hie_Lvl_DEG;
+ Gbl.Scope.Allowed = 1 << HieLvl_SYS |
+ 1 << HieLvl_CTY |
+ 1 << HieLvl_INS |
+ 1 << HieLvl_CTR |
+ 1 << HieLvl_DEG;
+ Gbl.Scope.Default = HieLvl_DEG;
Sco_GetScope ("ScopeUsr");
/***** Get list of administrators *****/
@@ -7932,7 +7933,7 @@ static void Usr_GetMyColsClassPhotoFromDB (void)
/***** If user logged and course selected... *****/
if (Gbl.Usrs.Me.Logged &&
- Gbl.Hierarchy.Level == Hie_Lvl_CRS) // Course selected
+ Gbl.Hierarchy.Level == HieLvl_CRS) // Course selected
{
/***** Get number of columns in class photo from database *****/
NumRows = (unsigned)
@@ -7970,7 +7971,7 @@ static void Usr_GetMyColsClassPhotoFromDB (void)
static void Usr_UpdateMyColsClassPhotoInDB (void)
{
if (Gbl.Usrs.Me.Logged &&
- Gbl.Hierarchy.Level == Hie_Lvl_CRS) // Course selected
+ Gbl.Hierarchy.Level == HieLvl_CRS) // Course selected
/***** Update number of colums in class photo for current course *****/
DB_QueryUPDATE ("can not update number of columns in class photo",
"UPDATE crs_user_settings"
@@ -8077,7 +8078,7 @@ void Usr_GetMyPrefAboutListWithPhotosFromDB (void)
static void Usr_UpdateMyPrefAboutListWithPhotosPhotoInDB (void)
{
if (Gbl.Usrs.Me.Logged &&
- Gbl.Hierarchy.Level == Hie_Lvl_CRS) // Course selected
+ Gbl.Hierarchy.Level == HieLvl_CRS) // Course selected
/***** Update number of colums in class photo for current course *****/
DB_QueryUPDATE ("can not update your preference about photos in listing",
"UPDATE crs_user_settings"
@@ -8188,8 +8189,8 @@ void Usr_SeeGuests (void)
/***** Draw a class photo with guests *****/
if (Gbl.Usrs.Me.ListType == Usr_LIST_AS_CLASS_PHOTO)
Lay_WriteHeaderClassPhoto (false,true,
- (Gbl.Scope.Current == Hie_Lvl_CTR ||
- Gbl.Scope.Current == Hie_Lvl_INS) ? Gbl.Hierarchy.Ins.InsCod :
+ (Gbl.Scope.Current == HieLvl_CTR ||
+ Gbl.Scope.Current == HieLvl_INS) ? Gbl.Hierarchy.Ins.InsCod :
-1L,
-1L,
-1L);
@@ -8269,7 +8270,7 @@ void Usr_SeeStudents (void)
/***** Contextual menu *****/
Mnu_ContextMenuBegin ();
Enr_PutLinkToAdminOneUsr (ActReqMdfOneStd); // Admin one student
- if (Gbl.Hierarchy.Level == Hie_Lvl_CRS && // Course selected
+ if (Gbl.Hierarchy.Level == HieLvl_CRS && // Course selected
Gbl.Usrs.Me.Role.Logged != Rol_STD) // Teacher or admin
{
Enr_PutLinkToAdminSeveralUsrs (Rol_STD); // Admin several students
@@ -8291,7 +8292,7 @@ void Usr_SeeStudents (void)
Sco_GetScope ("ScopeUsr");
/***** Get groups to show ******/
- if (Gbl.Scope.Current == Hie_Lvl_CRS)
+ if (Gbl.Scope.Current == HieLvl_CRS)
Grp_GetParCodsSeveralGrpsToShowUsrs ();
/***** Get list of students *****/
@@ -8324,7 +8325,7 @@ void Usr_SeeStudents (void)
}
/***** Form to select groups *****/
- if (Gbl.Scope.Current == Hie_Lvl_CRS)
+ if (Gbl.Scope.Current == HieLvl_CRS)
Grp_ShowFormToSelectSeveralGroups (Sco_PutParamCurrentScope,&Gbl.Scope.Current,
Grp_MY_GROUPS);
@@ -8343,15 +8344,15 @@ void Usr_SeeStudents (void)
/***** Draw a class photo with students of the course *****/
if (Gbl.Usrs.Me.ListType == Usr_LIST_AS_CLASS_PHOTO)
Lay_WriteHeaderClassPhoto (false,true,
- (Gbl.Scope.Current == Hie_Lvl_CRS ||
- Gbl.Scope.Current == Hie_Lvl_DEG ||
- Gbl.Scope.Current == Hie_Lvl_CTR ||
- Gbl.Scope.Current == Hie_Lvl_INS) ? Gbl.Hierarchy.Ins.InsCod :
+ (Gbl.Scope.Current == HieLvl_CRS ||
+ Gbl.Scope.Current == HieLvl_DEG ||
+ Gbl.Scope.Current == HieLvl_CTR ||
+ Gbl.Scope.Current == HieLvl_INS) ? Gbl.Hierarchy.Ins.InsCod :
-1L,
- (Gbl.Scope.Current == Hie_Lvl_CRS ||
- Gbl.Scope.Current == Hie_Lvl_DEG) ? Gbl.Hierarchy.Deg.DegCod :
+ (Gbl.Scope.Current == HieLvl_CRS ||
+ Gbl.Scope.Current == HieLvl_DEG) ? Gbl.Hierarchy.Deg.DegCod :
-1L,
- Gbl.Scope.Current == Hie_Lvl_CRS ? Gbl.Hierarchy.Crs.CrsCod :
+ Gbl.Scope.Current == HieLvl_CRS ? Gbl.Hierarchy.Crs.CrsCod :
-1L);
/* Set options allowed */
@@ -8436,7 +8437,7 @@ void Usr_SeeTeachers (void)
/***** Contextual menu *****/
Mnu_ContextMenuBegin ();
Enr_PutLinkToAdminOneUsr (ActReqMdfOneTch); // Admin one teacher
- if (Gbl.Hierarchy.Level == Hie_Lvl_CRS && // Course selected
+ if (Gbl.Hierarchy.Level == HieLvl_CRS && // Course selected
Gbl.Usrs.Me.Role.Logged >= Rol_DEG_ADM) // I am logged as admin
{
Enr_PutLinkToAdminSeveralUsrs (Rol_NET); // Admin several non-editing teachers
@@ -8454,32 +8455,32 @@ void Usr_SeeTeachers (void)
Usr_GetAndUpdatePrefsAboutUsrList ();
/***** Get scope *****/
- Gbl.Scope.Allowed = 1 << Hie_Lvl_SYS |
- 1 << Hie_Lvl_CTY |
- 1 << Hie_Lvl_INS |
- 1 << Hie_Lvl_CTR |
- 1 << Hie_Lvl_DEG |
- 1 << Hie_Lvl_CRS;
- Gbl.Scope.Default = Hie_Lvl_CRS;
+ Gbl.Scope.Allowed = 1 << HieLvl_SYS |
+ 1 << HieLvl_CTY |
+ 1 << HieLvl_INS |
+ 1 << HieLvl_CTR |
+ 1 << HieLvl_DEG |
+ 1 << HieLvl_CRS;
+ Gbl.Scope.Default = HieLvl_CRS;
Sco_GetScope ("ScopeUsr");
/***** Get groups to show ******/
- if (Gbl.Scope.Current == Hie_Lvl_CRS)
+ if (Gbl.Scope.Current == HieLvl_CRS)
Grp_GetParCodsSeveralGrpsToShowUsrs ();
/***** Get lists of teachers *****/
Usr_GetListUsrs (Gbl.Scope.Current,Rol_NET); // Non-editing teachers
Usr_GetListUsrs (Gbl.Scope.Current,Rol_TCH); // Teachers
- if (Gbl.Scope.Current == Hie_Lvl_CRS)
+ if (Gbl.Scope.Current == HieLvl_CRS)
NumUsrs = Gbl.Usrs.LstUsrs[Rol_NET].NumUsrs +
Gbl.Usrs.LstUsrs[Rol_TCH].NumUsrs;
else
NumUsrs = Usr_GetNumUsrsInCrss (Gbl.Scope.Current,
- (Gbl.Scope.Current == Hie_Lvl_CTY ? Gbl.Hierarchy.Cty.CtyCod :
- (Gbl.Scope.Current == Hie_Lvl_INS ? Gbl.Hierarchy.Ins.InsCod :
- (Gbl.Scope.Current == Hie_Lvl_CTR ? Gbl.Hierarchy.Ctr.CtrCod :
- (Gbl.Scope.Current == Hie_Lvl_DEG ? Gbl.Hierarchy.Deg.DegCod :
- (Gbl.Scope.Current == Hie_Lvl_CRS ? Gbl.Hierarchy.Crs.CrsCod :
+ (Gbl.Scope.Current == HieLvl_CTY ? Gbl.Hierarchy.Cty.CtyCod :
+ (Gbl.Scope.Current == HieLvl_INS ? Gbl.Hierarchy.Ins.InsCod :
+ (Gbl.Scope.Current == HieLvl_CTR ? Gbl.Hierarchy.Ctr.CtrCod :
+ (Gbl.Scope.Current == HieLvl_DEG ? Gbl.Hierarchy.Deg.DegCod :
+ (Gbl.Scope.Current == HieLvl_CRS ? Gbl.Hierarchy.Crs.CrsCod :
-1L))))),
1 << Rol_NET |
1 << Rol_TCH);
@@ -8501,7 +8502,7 @@ void Usr_SeeTeachers (void)
HTM_DIV_End ();
/***** Form to select groups *****/
- if (Gbl.Scope.Current == Hie_Lvl_CRS)
+ if (Gbl.Scope.Current == HieLvl_CRS)
Grp_ShowFormToSelectSeveralGroups (Sco_PutParamCurrentScope,&Gbl.Scope.Current,
Grp_MY_GROUPS);
@@ -8520,15 +8521,15 @@ void Usr_SeeTeachers (void)
/***** Draw a class photo with teachers of the course *****/
if (Gbl.Usrs.Me.ListType == Usr_LIST_AS_CLASS_PHOTO)
Lay_WriteHeaderClassPhoto (false,true,
- (Gbl.Scope.Current == Hie_Lvl_CRS ||
- Gbl.Scope.Current == Hie_Lvl_DEG ||
- Gbl.Scope.Current == Hie_Lvl_CTR ||
- Gbl.Scope.Current == Hie_Lvl_INS) ? Gbl.Hierarchy.Ins.InsCod :
+ (Gbl.Scope.Current == HieLvl_CRS ||
+ Gbl.Scope.Current == HieLvl_DEG ||
+ Gbl.Scope.Current == HieLvl_CTR ||
+ Gbl.Scope.Current == HieLvl_INS) ? Gbl.Hierarchy.Ins.InsCod :
-1L,
- (Gbl.Scope.Current == Hie_Lvl_CRS ||
- Gbl.Scope.Current == Hie_Lvl_DEG) ? Gbl.Hierarchy.Deg.DegCod :
+ (Gbl.Scope.Current == HieLvl_CRS ||
+ Gbl.Scope.Current == HieLvl_DEG) ? Gbl.Hierarchy.Deg.DegCod :
-1L,
- Gbl.Scope.Current == Hie_Lvl_CRS ? Gbl.Hierarchy.Crs.CrsCod :
+ Gbl.Scope.Current == HieLvl_CRS ? Gbl.Hierarchy.Crs.CrsCod :
-1L);
/* Set options allowed */
@@ -8627,7 +8628,7 @@ static bool Usr_SetOptionsListUsrsAllowed (Rol_Role_t UsrsRole,
ICanChooseOption[Usr_OPTION_RECORDS] =
ICanChooseOption[Usr_OPTION_MESSAGE] =
ICanChooseOption[Usr_OPTION_FOLLOW] =
- ICanChooseOption[Usr_OPTION_UNFOLLOW] = (Gbl.Scope.Current == Hie_Lvl_CRS &&
+ ICanChooseOption[Usr_OPTION_UNFOLLOW] = (Gbl.Scope.Current == HieLvl_CRS &&
(Gbl.Usrs.Me.Role.Logged == Rol_STD ||
Gbl.Usrs.Me.Role.Logged == Rol_NET ||
Gbl.Usrs.Me.Role.Logged == Rol_TCH ||
@@ -8635,7 +8636,7 @@ static bool Usr_SetOptionsListUsrsAllowed (Rol_Role_t UsrsRole,
ICanChooseOption[Usr_OPTION_HOMEWORK] =
ICanChooseOption[Usr_OPTION_ATTENDANCE] =
- ICanChooseOption[Usr_OPTION_EMAIL] = (Gbl.Scope.Current == Hie_Lvl_CRS &&
+ ICanChooseOption[Usr_OPTION_EMAIL] = (Gbl.Scope.Current == HieLvl_CRS &&
(Gbl.Usrs.Me.Role.Logged == Rol_NET ||
Gbl.Usrs.Me.Role.Logged == Rol_TCH ||
Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM));
@@ -8645,12 +8646,12 @@ static bool Usr_SetOptionsListUsrsAllowed (Rol_Role_t UsrsRole,
ICanChooseOption[Usr_OPTION_MESSAGE] =
ICanChooseOption[Usr_OPTION_EMAIL] =
ICanChooseOption[Usr_OPTION_FOLLOW] =
- ICanChooseOption[Usr_OPTION_UNFOLLOW] = (Gbl.Scope.Current == Hie_Lvl_CRS &&
+ ICanChooseOption[Usr_OPTION_UNFOLLOW] = (Gbl.Scope.Current == HieLvl_CRS &&
(Gbl.Usrs.Me.Role.Logged == Rol_STD ||
Gbl.Usrs.Me.Role.Logged == Rol_NET ||
Gbl.Usrs.Me.Role.Logged == Rol_TCH ||
Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM));
- ICanChooseOption[Usr_OPTION_HOMEWORK] = (Gbl.Scope.Current == Hie_Lvl_CRS &&
+ ICanChooseOption[Usr_OPTION_HOMEWORK] = (Gbl.Scope.Current == HieLvl_CRS &&
(Gbl.Usrs.Me.Role.Logged == Rol_NET ||
Gbl.Usrs.Me.Role.Logged == Rol_TCH ||
Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM));
@@ -9069,8 +9070,8 @@ void Usr_SeeGstClassPhotoPrn (void)
{
/***** Draw the guests' class photo *****/
Lay_WriteHeaderClassPhoto (true,true,
- (Gbl.Scope.Current == Hie_Lvl_CTR ||
- Gbl.Scope.Current == Hie_Lvl_INS) ? Gbl.Hierarchy.Ins.InsCod :
+ (Gbl.Scope.Current == HieLvl_CTR ||
+ Gbl.Scope.Current == HieLvl_INS) ? Gbl.Hierarchy.Ins.InsCod :
-1L,
-1L,-1L);
HTM_TABLE_BeginWide ();
@@ -9111,15 +9112,15 @@ void Usr_SeeStdClassPhotoPrn (void)
{
/***** Draw the students' class photo *****/
Lay_WriteHeaderClassPhoto (true,true,
- (Gbl.Scope.Current == Hie_Lvl_CRS ||
- Gbl.Scope.Current == Hie_Lvl_DEG ||
- Gbl.Scope.Current == Hie_Lvl_CTR ||
- Gbl.Scope.Current == Hie_Lvl_INS) ? Gbl.Hierarchy.Ins.InsCod :
+ (Gbl.Scope.Current == HieLvl_CRS ||
+ Gbl.Scope.Current == HieLvl_DEG ||
+ Gbl.Scope.Current == HieLvl_CTR ||
+ Gbl.Scope.Current == HieLvl_INS) ? Gbl.Hierarchy.Ins.InsCod :
-1L,
- (Gbl.Scope.Current == Hie_Lvl_CRS ||
- Gbl.Scope.Current == Hie_Lvl_DEG) ? Gbl.Hierarchy.Deg.DegCod :
+ (Gbl.Scope.Current == HieLvl_CRS ||
+ Gbl.Scope.Current == HieLvl_DEG) ? Gbl.Hierarchy.Deg.DegCod :
-1L,
- Gbl.Scope.Current == Hie_Lvl_CRS ? Gbl.Hierarchy.Crs.CrsCod :
+ Gbl.Scope.Current == HieLvl_CRS ? Gbl.Hierarchy.Crs.CrsCod :
-1L);
HTM_TABLE_BeginWide ();
Usr_DrawClassPhoto (Usr_CLASS_PHOTO_PRN,
@@ -9151,13 +9152,13 @@ void Usr_SeeTchClassPhotoPrn (void)
Usr_GetAndUpdatePrefsAboutUsrList ();
/***** Get scope *****/
- Gbl.Scope.Allowed = 1 << Hie_Lvl_SYS |
- 1 << Hie_Lvl_CTY |
- 1 << Hie_Lvl_INS |
- 1 << Hie_Lvl_CTR |
- 1 << Hie_Lvl_DEG |
- 1 << Hie_Lvl_CRS;
- Gbl.Scope.Default = Hie_Lvl_CRS;
+ Gbl.Scope.Allowed = 1 << HieLvl_SYS |
+ 1 << HieLvl_CTY |
+ 1 << HieLvl_INS |
+ 1 << HieLvl_CTR |
+ 1 << HieLvl_DEG |
+ 1 << HieLvl_CRS;
+ Gbl.Scope.Default = HieLvl_CRS;
Sco_GetScope ("ScopeUsr");
/****** Get groups to show ******/
@@ -9166,16 +9167,16 @@ void Usr_SeeTchClassPhotoPrn (void)
/***** Get list of teachers *****/
Usr_GetListUsrs (Gbl.Scope.Current,Rol_NET); // Non-editing teachers
Usr_GetListUsrs (Gbl.Scope.Current,Rol_TCH); // Teachers
- if (Gbl.Scope.Current == Hie_Lvl_CRS)
+ if (Gbl.Scope.Current == HieLvl_CRS)
NumUsrs = Gbl.Usrs.LstUsrs[Rol_NET].NumUsrs +
Gbl.Usrs.LstUsrs[Rol_TCH].NumUsrs;
else
NumUsrs = Usr_GetNumUsrsInCrss (Gbl.Scope.Current,
- (Gbl.Scope.Current == Hie_Lvl_CTY ? Gbl.Hierarchy.Cty.CtyCod :
- (Gbl.Scope.Current == Hie_Lvl_INS ? Gbl.Hierarchy.Ins.InsCod :
- (Gbl.Scope.Current == Hie_Lvl_CTR ? Gbl.Hierarchy.Ctr.CtrCod :
- (Gbl.Scope.Current == Hie_Lvl_DEG ? Gbl.Hierarchy.Deg.DegCod :
- (Gbl.Scope.Current == Hie_Lvl_CRS ? Gbl.Hierarchy.Crs.CrsCod :
+ (Gbl.Scope.Current == HieLvl_CTY ? Gbl.Hierarchy.Cty.CtyCod :
+ (Gbl.Scope.Current == HieLvl_INS ? Gbl.Hierarchy.Ins.InsCod :
+ (Gbl.Scope.Current == HieLvl_CTR ? Gbl.Hierarchy.Ctr.CtrCod :
+ (Gbl.Scope.Current == HieLvl_DEG ? Gbl.Hierarchy.Deg.DegCod :
+ (Gbl.Scope.Current == HieLvl_CRS ? Gbl.Hierarchy.Crs.CrsCod :
-1L))))),
1 << Rol_NET |
1 << Rol_TCH);
@@ -9184,15 +9185,15 @@ void Usr_SeeTchClassPhotoPrn (void)
{
/***** Draw the teachers' class photo *****/
Lay_WriteHeaderClassPhoto (true,true,
- (Gbl.Scope.Current == Hie_Lvl_CRS ||
- Gbl.Scope.Current == Hie_Lvl_DEG ||
- Gbl.Scope.Current == Hie_Lvl_CTR ||
- Gbl.Scope.Current == Hie_Lvl_INS) ? Gbl.Hierarchy.Ins.InsCod :
+ (Gbl.Scope.Current == HieLvl_CRS ||
+ Gbl.Scope.Current == HieLvl_DEG ||
+ Gbl.Scope.Current == HieLvl_CTR ||
+ Gbl.Scope.Current == HieLvl_INS) ? Gbl.Hierarchy.Ins.InsCod :
-1L,
- (Gbl.Scope.Current == Hie_Lvl_CRS ||
- Gbl.Scope.Current == Hie_Lvl_DEG) ? Gbl.Hierarchy.Deg.DegCod :
+ (Gbl.Scope.Current == HieLvl_CRS ||
+ Gbl.Scope.Current == HieLvl_DEG) ? Gbl.Hierarchy.Deg.DegCod :
-1L,
- Gbl.Scope.Current == Hie_Lvl_CRS ? Gbl.Hierarchy.Crs.CrsCod :
+ Gbl.Scope.Current == HieLvl_CRS ? Gbl.Hierarchy.Crs.CrsCod :
-1L);
HTM_TABLE_BeginWide ();
@@ -9419,7 +9420,7 @@ void Usr_ShowWarningNoUsersFound (Rol_Role_t Role)
else if (Gbl.Usrs.ClassPhoto.AllGroups && // All groups selected
Role == Rol_TCH && // No teachers found
- Gbl.Hierarchy.Level == Hie_Lvl_CRS && // Course selected
+ Gbl.Hierarchy.Level == HieLvl_CRS && // Course selected
Gbl.Usrs.Me.Role.Logged >= Rol_DEG_ADM) // I am an administrator
/***** Show alert and button to enrol students *****/
Ale_ShowAlertAndButton (ActReqMdfOneTch,NULL,NULL,
@@ -9443,17 +9444,17 @@ unsigned Usr_GetTotalNumberOfUsers (void)
/***** Get number of users with events from database *****/
switch (Gbl.Scope.Current)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
return (unsigned) DB_GetNumRowsTable ("usr_data"); // All users in platform
- case Hie_Lvl_CTY:
- case Hie_Lvl_INS:
- case Hie_Lvl_CTR:
- case Hie_Lvl_DEG:
- case Hie_Lvl_CRS:
- Cod = (Gbl.Scope.Current == Hie_Lvl_CTY ? Gbl.Hierarchy.Cty.CtyCod :
- (Gbl.Scope.Current == Hie_Lvl_INS ? Gbl.Hierarchy.Ins.InsCod :
- (Gbl.Scope.Current == Hie_Lvl_CTR ? Gbl.Hierarchy.Ctr.CtrCod :
- (Gbl.Scope.Current == Hie_Lvl_DEG ? Gbl.Hierarchy.Deg.DegCod :
+ case HieLvl_CTY:
+ case HieLvl_INS:
+ case HieLvl_CTR:
+ case HieLvl_DEG:
+ case HieLvl_CRS:
+ Cod = (Gbl.Scope.Current == HieLvl_CTY ? Gbl.Hierarchy.Cty.CtyCod :
+ (Gbl.Scope.Current == HieLvl_INS ? Gbl.Hierarchy.Ins.InsCod :
+ (Gbl.Scope.Current == HieLvl_CTR ? Gbl.Hierarchy.Ctr.CtrCod :
+ (Gbl.Scope.Current == HieLvl_DEG ? Gbl.Hierarchy.Deg.DegCod :
Gbl.Hierarchy.Crs.CrsCod))));
Roles = (1 << Rol_STD) |
(1 << Rol_NET) |
@@ -9471,7 +9472,7 @@ unsigned Usr_GetTotalNumberOfUsers (void)
#define Usr_MAX_BYTES_SUBQUERY_ROLES (Rol_NUM_ROLES * (10 + 1) - 1)
-unsigned Usr_GetNumUsrsInCrss (Hie_Lvl_Level_t Scope,long Cod,unsigned Roles)
+unsigned Usr_GetNumUsrsInCrss (HieLvl_Level_t Scope,long Cod,unsigned Roles)
{
char UnsignedStr[Cns_MAX_DECIMAL_DIGITS_UINT + 1];
char SubQueryRoles[Usr_MAX_BYTES_SUBQUERY_ROLES + 1];
@@ -9548,7 +9549,7 @@ unsigned Usr_GetNumUsrsInCrss (Hie_Lvl_Level_t Scope,long Cod,unsigned Roles)
/***** Get number of users from database *****/
switch (Scope)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
if (AnyUserInCourses) // Any user
NumUsrs = (unsigned)
DB_QueryCOUNT ("can not get number of users",
@@ -9563,7 +9564,7 @@ unsigned Usr_GetNumUsrsInCrss (Hie_Lvl_Level_t Scope,long Cod,unsigned Roles)
"%s",
SubQueryRoles);
break;
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
if (AnyUserInCourses) // Any user
NumUsrs = (unsigned)
DB_QueryCOUNT ("can not get number of users",
@@ -9598,7 +9599,7 @@ unsigned Usr_GetNumUsrsInCrss (Hie_Lvl_Level_t Scope,long Cod,unsigned Roles)
Cod,
SubQueryRoles);
break;
- case Hie_Lvl_INS:
+ case HieLvl_INS:
if (AnyUserInCourses) // Any user
NumUsrs = (unsigned)
DB_QueryCOUNT ("can not get number of users",
@@ -9629,7 +9630,7 @@ unsigned Usr_GetNumUsrsInCrss (Hie_Lvl_Level_t Scope,long Cod,unsigned Roles)
Cod,
SubQueryRoles);
break;
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
if (AnyUserInCourses) // Any user
NumUsrs = (unsigned)
DB_QueryCOUNT ("can not get number of users",
@@ -9656,7 +9657,7 @@ unsigned Usr_GetNumUsrsInCrss (Hie_Lvl_Level_t Scope,long Cod,unsigned Roles)
Cod,
SubQueryRoles);
break;
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
if (AnyUserInCourses) // Any user
NumUsrs = (unsigned)
DB_QueryCOUNT ("can not get number of users",
@@ -9677,7 +9678,7 @@ unsigned Usr_GetNumUsrsInCrss (Hie_Lvl_Level_t Scope,long Cod,unsigned Roles)
" AND crs_users.Role%s",
Cod,SubQueryRoles);
break;
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
if (AnyUserInCourses) // Any user
NumUsrs = (unsigned)
DB_QueryCOUNT ("can not get number of users",
@@ -9707,7 +9708,7 @@ unsigned Usr_GetNumUsrsInCrss (Hie_Lvl_Level_t Scope,long Cod,unsigned Roles)
return NumUsrs;
}
-unsigned Usr_GetCachedNumUsrsInCrss (Hie_Lvl_Level_t Scope,long Cod,unsigned Roles)
+unsigned Usr_GetCachedNumUsrsInCrss (HieLvl_Level_t Scope,long Cod,unsigned Roles)
{
unsigned NumUsrsInCrss;
@@ -9752,7 +9753,7 @@ unsigned Usr_GetCachedNumUsrsNotBelongingToAnyCrs (void)
unsigned NumGsts;
/***** Get number of guests from cache *****/
- if (!FigCch_GetFigureFromCache (FigCch_NUM_GSTS,Hie_Lvl_SYS,-1L,
+ if (!FigCch_GetFigureFromCache (FigCch_NUM_GSTS,HieLvl_SYS,-1L,
FigCch_UNSIGNED,&NumGsts))
{
/***** Get current number of guests from database and update cache *****/
@@ -9764,7 +9765,7 @@ unsigned Usr_GetCachedNumUsrsNotBelongingToAnyCrs (void)
" WHERE UsrCod NOT IN"
" (SELECT DISTINCT(UsrCod)"
" FROM crs_users)");
- FigCch_UpdateFigureIntoCache (FigCch_NUM_GSTS,Hie_Lvl_SYS,-1L,
+ FigCch_UpdateFigureIntoCache (FigCch_NUM_GSTS,HieLvl_SYS,-1L,
FigCch_UNSIGNED,&NumGsts);
}
@@ -9775,12 +9776,12 @@ unsigned Usr_GetCachedNumUsrsNotBelongingToAnyCrs (void)
/************ Get average number of courses with users of a role *************/
/*****************************************************************************/
-static double Usr_GetNumCrssPerUsr (Hie_Lvl_Level_t Scope,long Cod,Rol_Role_t Role)
+static double Usr_GetNumCrssPerUsr (HieLvl_Level_t Scope,long Cod,Rol_Role_t Role)
{
/***** Get number of courses per user from database *****/
switch (Scope)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
if (Role == Rol_UNK) // Any user
return DB_QuerySELECTDouble ("can not get number of courses per user",
"SELECT AVG(NumCrss)"
@@ -9795,7 +9796,7 @@ static double Usr_GetNumCrssPerUsr (Hie_Lvl_Level_t Scope,long Cod,Rol_Role_t Ro
" WHERE Role=%u"
" GROUP BY UsrCod) AS NumCrssTable",
(unsigned) Role);
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
if (Role == Rol_UNK) // Any user
return DB_QuerySELECTDouble ("can not get number of courses per user",
"SELECT AVG(NumCrss)"
@@ -9830,7 +9831,7 @@ static double Usr_GetNumCrssPerUsr (Hie_Lvl_Level_t Scope,long Cod,Rol_Role_t Ro
" GROUP BY crs_users.UsrCod) AS NumCrssTable",
Cod,
(unsigned) Role);
- case Hie_Lvl_INS:
+ case HieLvl_INS:
if (Role == Rol_UNK) // Any user
return DB_QuerySELECTDouble ("can not get number of courses per user",
"SELECT AVG(NumCrss)"
@@ -9861,7 +9862,7 @@ static double Usr_GetNumCrssPerUsr (Hie_Lvl_Level_t Scope,long Cod,Rol_Role_t Ro
" GROUP BY crs_users.UsrCod) AS NumCrssTable",
Cod,
(unsigned) Role);
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
if (Role == Rol_UNK) // Any user
return DB_QuerySELECTDouble ("can not get number of courses per user",
"SELECT AVG(NumCrss)"
@@ -9888,7 +9889,7 @@ static double Usr_GetNumCrssPerUsr (Hie_Lvl_Level_t Scope,long Cod,Rol_Role_t Ro
" GROUP BY crs_users.UsrCod) AS NumCrssTable",
Cod,
(unsigned) Role);
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
if (Role == Rol_UNK) // Any user
return DB_QuerySELECTDouble ("can not get number of courses per user",
"SELECT AVG(NumCrss)"
@@ -9911,7 +9912,7 @@ static double Usr_GetNumCrssPerUsr (Hie_Lvl_Level_t Scope,long Cod,Rol_Role_t Ro
" GROUP BY crs_users.UsrCod) AS NumCrssTable",
Cod,
(unsigned) Role);
- case Hie_Lvl_CRS:
+ case HieLvl_CRS:
return 1.0;
default:
Err_WrongScopeExit ();
@@ -9919,7 +9920,7 @@ static double Usr_GetNumCrssPerUsr (Hie_Lvl_Level_t Scope,long Cod,Rol_Role_t Ro
}
}
-double Usr_GetCachedNumCrssPerUsr (Hie_Lvl_Level_t Scope,long Cod,Rol_Role_t Role)
+double Usr_GetCachedNumCrssPerUsr (HieLvl_Level_t Scope,long Cod,Rol_Role_t Role)
{
static const FigCch_FigureCached_t FigureNumCrssPerUsr[Rol_NUM_ROLES] =
{
@@ -9947,12 +9948,12 @@ double Usr_GetCachedNumCrssPerUsr (Hie_Lvl_Level_t Scope,long Cod,Rol_Role_t Rol
/************ Get average number of courses with users of a type *************/
/*****************************************************************************/
-static double Usr_GetNumUsrsPerCrs (Hie_Lvl_Level_t Scope,long Cod,Rol_Role_t Role)
+static double Usr_GetNumUsrsPerCrs (HieLvl_Level_t Scope,long Cod,Rol_Role_t Role)
{
/***** Get number of users per course from database *****/
switch (Scope)
{
- case Hie_Lvl_SYS:
+ case HieLvl_SYS:
if (Role == Rol_UNK) // Any user
return DB_QuerySELECTDouble ("can not get number of users per course",
"SELECT AVG(NumUsrs)"
@@ -9966,7 +9967,7 @@ static double Usr_GetNumUsrsPerCrs (Hie_Lvl_Level_t Scope,long Cod,Rol_Role_t Ro
" FROM crs_users"
" WHERE Role=%u GROUP BY CrsCod) AS NumUsrsTable",
(unsigned) Role);
- case Hie_Lvl_CTY:
+ case HieLvl_CTY:
if (Role == Rol_UNK) // Any user
return DB_QuerySELECTDouble ("can not get number of users per course",
"SELECT AVG(NumUsrs)"
@@ -10001,7 +10002,7 @@ static double Usr_GetNumUsrsPerCrs (Hie_Lvl_Level_t Scope,long Cod,Rol_Role_t Ro
" GROUP BY crs_users.CrsCod) AS NumUsrsTable",
Cod,
(unsigned) Role);
- case Hie_Lvl_INS:
+ case HieLvl_INS:
if (Role == Rol_UNK) // Any user
return DB_QuerySELECTDouble ("can not get number of users per course",
"SELECT AVG(NumUsrs)"
@@ -10032,7 +10033,7 @@ static double Usr_GetNumUsrsPerCrs (Hie_Lvl_Level_t Scope,long Cod,Rol_Role_t Ro
" GROUP BY crs_users.CrsCod) AS NumUsrsTable",
Cod,
(unsigned) Role);
- case Hie_Lvl_CTR:
+ case HieLvl_CTR:
if (Role == Rol_UNK) // Any user
return DB_QuerySELECTDouble ("can not get number of users per course",
"SELECT AVG(NumUsrs)"
@@ -10059,7 +10060,7 @@ static double Usr_GetNumUsrsPerCrs (Hie_Lvl_Level_t Scope,long Cod,Rol_Role_t Ro
" GROUP BY crs_users.CrsCod) AS NumUsrsTable",
Cod,
(unsigned) Role);
- case Hie_Lvl_DEG:
+ case HieLvl_DEG:
if (Role == Rol_UNK) // Any user
return DB_QuerySELECTDouble ("can not get number of users per course",
"SELECT AVG(NumUsrs)"
@@ -10082,8 +10083,8 @@ static double Usr_GetNumUsrsPerCrs (Hie_Lvl_Level_t Scope,long Cod,Rol_Role_t Ro
" GROUP BY crs_users.CrsCod) AS NumUsrsTable",
Cod,
(unsigned) Role);
- case Hie_Lvl_CRS:
- return (double) Usr_GetNumUsrsInCrss (Hie_Lvl_CRS,Cod,
+ case HieLvl_CRS:
+ return (double) Usr_GetNumUsrsInCrss (HieLvl_CRS,Cod,
Role == Rol_UNK ? 1 << Rol_STD |
1 << Rol_NET |
1 << Rol_TCH : // Any user
@@ -10095,7 +10096,7 @@ static double Usr_GetNumUsrsPerCrs (Hie_Lvl_Level_t Scope,long Cod,Rol_Role_t Ro
}
}
-double Usr_GetCachedNumUsrsPerCrs (Hie_Lvl_Level_t Scope,long Cod,Rol_Role_t Role)
+double Usr_GetCachedNumUsrsPerCrs (HieLvl_Level_t Scope,long Cod,Rol_Role_t Role)
{
static const FigCch_FigureCached_t FigureNumUsrsPerCrs[Rol_NUM_ROLES] =
{
diff --git a/swad_user.h b/swad_user.h
index 33e0878d..a02d06b1 100644
--- a/swad_user.h
+++ b/swad_user.h
@@ -231,7 +231,7 @@ struct UsrLast
Sch_WhatToSearch_t WhatToSearch; // Search courses, teachers, documents...?
struct
{
- Hie_Lvl_Level_t Scope; // Course, degree, center, etc.
+ HieLvl_Level_t Scope; // Course, degree, center, etc.
long Cod; // Course code, degree code, center code, etc.
} LastHie;
Act_Action_t LastAct;
@@ -305,7 +305,7 @@ void Usr_WriteFirstNameBRSurnames (const struct UsrData *UsrDat);
void Usr_FlushCachesUsr (void);
-bool Usr_CheckIfUsrIsAdm (long UsrCod,Hie_Lvl_Level_t Scope,long Cod);
+bool Usr_CheckIfUsrIsAdm (long UsrCod,HieLvl_Level_t Scope,long Cod);
void Usr_FlushCacheUsrIsSuperuser (void);
bool Usr_CheckIfUsrIsSuperuser (long UsrCod);
@@ -440,7 +440,7 @@ void Usr_FlushCacheNumUsrsWhoClaimToBelongToCtr (void);
unsigned Usr_GetNumUsrsWhoClaimToBelongToCtr (struct Ctr_Center *Ctr);
unsigned Usr_GetCachedNumUsrsWhoClaimToBelongToCtr (struct Ctr_Center *Ctr);
-void Usr_GetListUsrs (Hie_Lvl_Level_t Scope,Rol_Role_t Role);
+void Usr_GetListUsrs (HieLvl_Level_t Scope,Rol_Role_t Role);
void Usr_SearchListUsrs (Rol_Role_t Role);
void Usr_CreateTmpTableAndSearchCandidateUsrs (const char SearchQuery[Sch_MAX_BYTES_SEARCH_QUERY + 1]);
@@ -530,13 +530,13 @@ bool Usr_ChkIfUsrCodExists (long UsrCod);
void Usr_ShowWarningNoUsersFound (Rol_Role_t Role);
unsigned Usr_GetTotalNumberOfUsers (void);
-unsigned Usr_GetNumUsrsInCrss (Hie_Lvl_Level_t Scope,long Cod,unsigned Roles);
-unsigned Usr_GetCachedNumUsrsInCrss (Hie_Lvl_Level_t Scope,long Cod,unsigned Roles);
+unsigned Usr_GetNumUsrsInCrss (HieLvl_Level_t Scope,long Cod,unsigned Roles);
+unsigned Usr_GetCachedNumUsrsInCrss (HieLvl_Level_t Scope,long Cod,unsigned Roles);
unsigned Usr_GetCachedNumUsrsNotBelongingToAnyCrs (void);
-double Usr_GetCachedNumCrssPerUsr (Hie_Lvl_Level_t Scope,long Cod,Rol_Role_t Role);
-double Usr_GetCachedNumUsrsPerCrs (Hie_Lvl_Level_t Scope,long Cod,Rol_Role_t Role);
+double Usr_GetCachedNumCrssPerUsr (HieLvl_Level_t Scope,long Cod,Rol_Role_t Role);
+double Usr_GetCachedNumUsrsPerCrs (HieLvl_Level_t Scope,long Cod,Rol_Role_t Role);
bool Usr_DB_CheckIfUsrBanned (long UsrCod);
void Usr_DB_RemoveUsrFromBanned (long UsrCod);