",
- Cns_MAX_CHARS_WWW,Deg->WWW);
+ Cns_MAX_CHARS_WWW,Deg_EditingDeg->WWW);
/***** Current number of courses in this degree *****/
fprintf (Gbl.F.Out,"
"
@@ -1139,31 +1141,30 @@ unsigned Deg_ConvStrToYear (const char *StrYear)
/*****************************************************************************/
/***************************** Create a new degree ***************************/
/*****************************************************************************/
-// Gbl.Degs.EditingDeg must hold the degree beeing edited
static void Deg_CreateDegree (unsigned Status)
{
extern const char *Txt_Created_new_degree_X;
/***** Create a new degree *****/
- Gbl.Degs.EditingDeg.DegCod =
+ Deg_EditingDeg->DegCod =
DB_QueryINSERTandReturnCode ("can not create a new degree",
"INSERT INTO degrees (CtrCod,DegTypCod,Status,"
"RequesterUsrCod,ShortName,FullName,WWW)"
" VALUES (%ld,%ld,%u,%ld,'%s','%s','%s')",
- Gbl.Degs.EditingDeg.CtrCod,
- Gbl.Degs.EditingDeg.DegTypCod,
+ Deg_EditingDeg->CtrCod,
+ Deg_EditingDeg->DegTypCod,
Status,
Gbl.Usrs.Me.UsrDat.UsrCod,
- Gbl.Degs.EditingDeg.ShrtName,
- Gbl.Degs.EditingDeg.FullName,
- Gbl.Degs.EditingDeg.WWW);
+ Deg_EditingDeg->ShrtName,
+ Deg_EditingDeg->FullName,
+ Deg_EditingDeg->WWW);
/***** Write message to show the change made
and put button to go to degree created *****/
Ale_CreateAlert (Ale_SUCCESS,NULL,
Txt_Created_new_degree_X,
- Gbl.Degs.EditingDeg.FullName);
+ Deg_EditingDeg->FullName);
Deg_ShowAlertAndButtonToGoToDeg ();
}
@@ -1344,6 +1345,18 @@ static void Deg_ListOneDegreeForSeeing (struct Degree *Deg,unsigned NumDeg)
/*****************************************************************************/
void Deg_EditDegrees (void)
+ {
+ /***** Degree constructor *****/
+ Deg_EditingDegreeConstructor ();
+
+ /***** Edit degrees *****/
+ Deg_EditDegreesInternal ();
+
+ /***** Degree destructor *****/
+ Deg_EditingDegreeDestructor ();
+ }
+
+static void Deg_EditDegreesInternal (void)
{
extern const char *Hlp_CENTRE_Degrees;
extern const char *Txt_Degrees_of_CENTRE_X;
@@ -1535,7 +1548,14 @@ void Deg_FreeListDegs (struct ListDegrees *Degs)
void Deg_RecFormReqDeg (void)
{
+ /***** Degree constructor *****/
+ Deg_EditingDegreeConstructor ();
+
+ /***** Receive form to request a new degree *****/
Deg_RecFormRequestOrCreateDeg ((unsigned) Deg_STATUS_BIT_PENDING);
+
+ /***** Degree destructor *****/
+ Deg_EditingDegreeDestructor ();
}
/*****************************************************************************/
@@ -1544,7 +1564,14 @@ void Deg_RecFormReqDeg (void)
void Deg_RecFormNewDeg (void)
{
+ /***** Degree constructor *****/
+ Deg_EditingDegreeConstructor ();
+
+ /***** Receive form to request a new degree *****/
Deg_RecFormRequestOrCreateDeg (0);
+
+ /***** Degree destructor *****/
+ Deg_EditingDegreeDestructor ();
}
/*****************************************************************************/
@@ -1559,32 +1586,34 @@ static void Deg_RecFormRequestOrCreateDeg (unsigned Status)
/***** Get parameters from form *****/
/* Set degree centre */
- Gbl.Degs.EditingDeg.CtrCod = Gbl.Hierarchy.Ctr.CtrCod;
+ Deg_EditingDeg->CtrCod = Gbl.Hierarchy.Ctr.CtrCod;
/* Get degree short name */
- Par_GetParToText ("ShortName",Gbl.Degs.EditingDeg.ShrtName,Hie_MAX_BYTES_SHRT_NAME);
+ Par_GetParToText ("ShortName",Deg_EditingDeg->ShrtName,Hie_MAX_BYTES_SHRT_NAME);
/* Get degree full name */
- Par_GetParToText ("FullName",Gbl.Degs.EditingDeg.FullName,Hie_MAX_BYTES_FULL_NAME);
+ Par_GetParToText ("FullName",Deg_EditingDeg->FullName,Hie_MAX_BYTES_FULL_NAME);
/* Get degree type */
- Gbl.Degs.EditingDeg.DegTypCod = DT_GetAndCheckParamOtherDegTypCod (1);
+ Deg_EditingDeg->DegTypCod = DT_GetAndCheckParamOtherDegTypCod (1);
/* Get degree WWW */
- Par_GetParToText ("WWW",Gbl.Degs.EditingDeg.WWW,Cns_MAX_BYTES_WWW);
+ Par_GetParToText ("WWW",Deg_EditingDeg->WWW,Cns_MAX_BYTES_WWW);
- if (Gbl.Degs.EditingDeg.ShrtName[0] &&
- Gbl.Degs.EditingDeg.FullName[0]) // If there's a degree name
+ if (Deg_EditingDeg->ShrtName[0] &&
+ Deg_EditingDeg->FullName[0]) // If there's a degree name
{
- if (Gbl.Degs.EditingDeg.WWW[0])
+ if (Deg_EditingDeg->WWW[0])
{
/***** If name of degree was in database... *****/
- if (Deg_CheckIfDegNameExistsInCtr ("ShortName",Gbl.Degs.EditingDeg.ShrtName,-1L,Gbl.Degs.EditingDeg.CtrCod))
+ if (Deg_CheckIfDegNameExistsInCtr ("ShortName",Deg_EditingDeg->ShrtName,
+ -1L,Deg_EditingDeg->CtrCod))
Ale_ShowAlert (Ale_WARNING,Txt_The_degree_X_already_exists,
- Gbl.Degs.EditingDeg.ShrtName);
- else if (Deg_CheckIfDegNameExistsInCtr ("FullName",Gbl.Degs.EditingDeg.FullName,-1L,Gbl.Degs.EditingDeg.CtrCod))
+ Deg_EditingDeg->ShrtName);
+ else if (Deg_CheckIfDegNameExistsInCtr ("FullName",Deg_EditingDeg->FullName,
+ -1L,Deg_EditingDeg->CtrCod))
Ale_ShowAlert (Ale_WARNING,Txt_The_degree_X_already_exists,
- Gbl.Degs.EditingDeg.FullName);
+ Deg_EditingDeg->FullName);
else // Add new degree to database
Deg_CreateDegree (Status);
}
@@ -1595,7 +1624,7 @@ static void Deg_RecFormRequestOrCreateDeg (unsigned Status)
Ale_ShowAlert (Ale_WARNING,Txt_You_must_specify_the_short_name_and_the_full_name_of_the_new_degree);
/***** Show the form again *****/
- Deg_EditDegrees ();
+ Deg_EditDegreesInternal ();
}
/*****************************************************************************/
@@ -1606,29 +1635,34 @@ void Deg_RemoveDegree (void)
{
extern const char *Txt_To_remove_a_degree_you_must_first_remove_all_courses_in_the_degree;
extern const char *Txt_Degree_X_removed;
- struct Degree Deg;
+
+ /***** Degree constructor *****/
+ Deg_EditingDegreeConstructor ();
/***** Get degree code *****/
- Deg.DegCod = Deg_GetAndCheckParamOtherDegCod (1);
+ Deg_EditingDeg->DegCod = Deg_GetAndCheckParamOtherDegCod (1);
/***** Get data of degree *****/
- Deg_GetDataOfDegreeByCod (&Deg);
+ Deg_GetDataOfDegreeByCod (Deg_EditingDeg);
/***** Check if this degree has courses *****/
- if (Crs_GetNumCrssInDeg (Deg.DegCod)) // Degree has courses ==> don't remove
+ if (Crs_GetNumCrssInDeg (Deg_EditingDeg->DegCod)) // Degree has courses ==> don't remove
Ale_ShowAlert (Ale_WARNING,Txt_To_remove_a_degree_you_must_first_remove_all_courses_in_the_degree);
else // Degree has no courses ==> remove it
{
/***** Remove degree *****/
- Deg_RemoveDegreeCompletely (Deg.DegCod);
+ Deg_RemoveDegreeCompletely (Deg_EditingDeg->DegCod);
/***** Write message to show the change made *****/
Ale_ShowAlert (Ale_SUCCESS,Txt_Degree_X_removed,
- Deg.FullName);
+ Deg_EditingDeg->FullName);
}
/***** Show the form again *****/
- Deg_EditDegrees ();
+ Deg_EditDegreesInternal ();
+
+ /***** Degree destructor *****/
+ Deg_EditingDegreeDestructor ();
}
/*****************************************************************************/
@@ -1904,30 +1938,49 @@ void Deg_RemoveDegreeCompletely (long DegCod)
}
/*****************************************************************************/
-/********************* Change the short name of a degree *********************/
+/************************ Change the name of a degree ************************/
/*****************************************************************************/
void Deg_RenameDegreeShort (void)
{
- Gbl.Degs.EditingDeg.DegCod = Deg_GetAndCheckParamOtherDegCod (1);
- Deg_RenameDegree (&Gbl.Degs.EditingDeg,Cns_SHRT_NAME);
+ /***** Degree constructor *****/
+ Deg_EditingDegreeConstructor ();
+
+ Deg_EditingDeg->DegCod = Deg_GetAndCheckParamOtherDegCod (1);
+ Deg_RenameDegree (Deg_EditingDeg,Cns_SHRT_NAME);
}
+void Deg_RenameDegreeFull (void)
+ {
+ /***** Degree constructor *****/
+ Deg_EditingDegreeConstructor ();
+
+ Deg_EditingDeg->DegCod = Deg_GetAndCheckParamOtherDegCod (1);
+ Deg_RenameDegree (Deg_EditingDeg,Cns_FULL_NAME);
+ }
+
+void Deg_ContEditAfterChgDeg (void)
+ {
+ /***** Write message to show the change made
+ and put button to go to degree changed *****/
+ Deg_ShowAlertAndButtonToGoToDeg ();
+
+ /***** Show the form again *****/
+ Deg_EditDegreesInternal ();
+
+ /***** Degree destructor *****/
+ Deg_EditingDegreeDestructor ();
+ }
+
+/*****************************************************************************/
+/*************** Change the name of a degree in configuration ****************/
+/*****************************************************************************/
+
void Deg_RenameDegreeShortInConfig (void)
{
Deg_RenameDegree (&Gbl.Hierarchy.Deg,Cns_SHRT_NAME);
}
-/*****************************************************************************/
-/********************* Change the full name of a degree **********************/
-/*****************************************************************************/
-
-void Deg_RenameDegreeFull (void)
- {
- Gbl.Degs.EditingDeg.DegCod = Deg_GetAndCheckParamOtherDegCod (1);
- Deg_RenameDegree (&Gbl.Degs.EditingDeg,Cns_FULL_NAME);
- }
-
void Deg_RenameDegreeFullInConfig (void)
{
Deg_RenameDegree (&Gbl.Hierarchy.Deg,Cns_FULL_NAME);
@@ -2109,6 +2162,49 @@ static void Deg_UpdateDegCtrDB (long DegCod,long CtrCod)
CtrCod,DegCod);
}
+/*****************************************************************************/
+/************************ Change the type of a degree ************************/
+/*****************************************************************************/
+
+void Deg_ChangeDegreeType (void)
+ {
+ extern const char *Txt_The_type_of_degree_of_the_degree_X_has_changed;
+ long NewDegTypCod;
+
+ /***** Degree constructor *****/
+ Deg_EditingDegreeConstructor ();
+
+ /***** Get parameters from form *****/
+ /* Get degree code */
+ Deg_EditingDeg->DegCod = Deg_GetAndCheckParamOtherDegCod (1);
+
+ /* Get the new degree type */
+ NewDegTypCod = DT_GetAndCheckParamOtherDegTypCod (1);
+
+ /***** Get data of degree *****/
+ Deg_GetDataOfDegreeByCod (Deg_EditingDeg);
+
+ /***** Update the table of degrees changing old type by new type *****/
+ DB_QueryUPDATE ("can not update the type of a degree",
+ "UPDATE degrees SET DegTypCod=%ld WHERE DegCod=%ld",
+ NewDegTypCod,Deg_EditingDeg->DegCod);
+ Gbl.DegTypes.EditingDegTyp.DegTypCod =
+ Deg_EditingDeg->DegTypCod = NewDegTypCod;
+
+ /***** Write alert to show the change made
+ and put button to go to degree changed *****/
+ Ale_CreateAlert (Ale_SUCCESS,NULL,
+ Txt_The_type_of_degree_of_the_degree_X_has_changed,
+ Deg_EditingDeg->FullName);
+ Deg_ShowAlertAndButtonToGoToDeg ();
+
+ /***** Show the form again *****/
+ Deg_EditDegreesInternal ();
+
+ /***** Degree destructor *****/
+ Deg_EditingDegreeDestructor ();
+ }
+
/*****************************************************************************/
/************************* Change the WWW of a degree ************************/
/*****************************************************************************/
@@ -2119,22 +2215,25 @@ void Deg_ChangeDegWWW (void)
extern const char *Txt_You_can_not_leave_the_web_address_empty;
char NewWWW[Cns_MAX_BYTES_WWW + 1];
+ /***** Degree constructor *****/
+ Deg_EditingDegreeConstructor ();
+
/***** Get parameters from form *****/
/* Get the code of the degree */
- Gbl.Degs.EditingDeg.DegCod = Deg_GetAndCheckParamOtherDegCod (1);
+ Deg_EditingDeg->DegCod = Deg_GetAndCheckParamOtherDegCod (1);
/* Get the new WWW for the degree */
Par_GetParToText ("WWW",NewWWW,Cns_MAX_BYTES_WWW);
/***** Get data of degree *****/
- Deg_GetDataOfDegreeByCod (&Gbl.Degs.EditingDeg);
+ Deg_GetDataOfDegreeByCod (Deg_EditingDeg);
/***** Check if new WWW is empty *****/
if (NewWWW[0])
{
/***** Update the table changing old WWW by new WWW *****/
- Deg_UpdateDegWWWDB (Gbl.Degs.EditingDeg.DegCod,NewWWW);
- Str_Copy (Gbl.Degs.EditingDeg.WWW,NewWWW,
+ Deg_UpdateDegWWWDB (Deg_EditingDeg->DegCod,NewWWW);
+ Str_Copy (Deg_EditingDeg->WWW,NewWWW,
Cns_MAX_BYTES_WWW);
/***** Write alert to show the change made
@@ -2148,7 +2247,10 @@ void Deg_ChangeDegWWW (void)
Ale_ShowAlert (Ale_WARNING,Txt_You_can_not_leave_the_web_address_empty);
/***** Show the form again *****/
- Deg_EditDegrees ();
+ Deg_EditDegreesInternal ();
+
+ /***** Degree destructor *****/
+ Deg_EditingDegreeDestructor ();
}
void Deg_ChangeDegWWWInConfig (void)
@@ -2202,9 +2304,12 @@ void Deg_ChangeDegStatus (void)
Deg_Status_t Status;
Deg_StatusTxt_t StatusTxt;
+ /***** Degree constructor *****/
+ Deg_EditingDegreeConstructor ();
+
/***** Get parameters from form *****/
/* Get degree code */
- Gbl.Degs.EditingDeg.DegCod = Deg_GetAndCheckParamOtherDegCod (1);
+ Deg_EditingDeg->DegCod = Deg_GetAndCheckParamOtherDegCod (1);
/* Get parameter with status */
Status = (Deg_Status_t)
@@ -2218,58 +2323,44 @@ void Deg_ChangeDegStatus (void)
Status = Deg_GetStatusBitsFromStatusTxt (StatusTxt); // New status
/***** Get data of degree *****/
- Deg_GetDataOfDegreeByCod (&Gbl.Degs.EditingDeg);
+ Deg_GetDataOfDegreeByCod (Deg_EditingDeg);
/***** Update status in table of degrees *****/
DB_QueryUPDATE ("can not update the status of a degree",
"UPDATE degrees SET Status=%u WHERE DegCod=%ld",
- (unsigned) Status,Gbl.Degs.EditingDeg.DegCod);
-
- Gbl.Degs.EditingDeg.Status = Status;
+ (unsigned) Status,Deg_EditingDeg->DegCod);
+ Deg_EditingDeg->Status = Status;
/***** Write alert to show the change made
and put button to go to degree changed *****/
Ale_CreateAlert (Ale_SUCCESS,NULL,
Txt_The_status_of_the_degree_X_has_changed,
- Gbl.Degs.EditingDeg.ShrtName);
+ Deg_EditingDeg->ShrtName);
Deg_ShowAlertAndButtonToGoToDeg ();
/***** Show the form again *****/
- Deg_EditDegrees ();
- }
+ Deg_EditDegreesInternal ();
-/*****************************************************************************/
-/************* Show message of success after changing a degree ***************/
-/*****************************************************************************/
-
-void Deg_ContEditAfterChgDeg (void)
- {
- /***** Write message to show the change made
- and put button to go to degree changed *****/
- Deg_ShowAlertAndButtonToGoToDeg ();
-
- /***** Show the form again *****/
- Deg_EditDegrees ();
+ /***** Degree destructor *****/
+ Deg_EditingDegreeDestructor ();
}
/*****************************************************************************/
/***************** Write message to show the change made ********************/
/***************** and put button to go to degree changed ********************/
/*****************************************************************************/
-// Gbl.Degs.EditingDeg is the degree that is beeing edited
-// Gbl.Hierarchy.Deg is the current degree
void Deg_ShowAlertAndButtonToGoToDeg (void)
{
extern const char *Txt_Go_to_X;
// If the degree being edited is different to the current one...
- if (Gbl.Degs.EditingDeg.DegCod != Gbl.Hierarchy.Deg.DegCod)
+ if (Deg_EditingDeg->DegCod != Gbl.Hierarchy.Deg.DegCod)
{
/***** Alert with button to go to degree *****/
snprintf (Gbl.Title,sizeof (Gbl.Title),
Txt_Go_to_X,
- Gbl.Degs.EditingDeg.ShrtName);
+ Deg_EditingDeg->ShrtName);
Ale_ShowLastAlertAndButton (ActSeeCrs,NULL,NULL,Deg_PutParamGoToDeg,
Btn_CONFIRM_BUTTON,Gbl.Title);
}
@@ -2280,7 +2371,7 @@ void Deg_ShowAlertAndButtonToGoToDeg (void)
static void Deg_PutParamGoToDeg (void)
{
- Deg_PutParamDegCod (Gbl.Degs.EditingDeg.DegCod);
+ Deg_PutParamDegCod (Deg_EditingDeg->DegCod);
}
/*****************************************************************************/
@@ -2586,3 +2677,40 @@ void Deg_ListDegsFound (MYSQL_RES **mysql_res,unsigned NumDegs)
/***** Free structure that stores the query result *****/
DB_FreeMySQLResult (mysql_res);
}
+
+/*****************************************************************************/
+/************************ Degree constructor/destructor **********************/
+/*****************************************************************************/
+
+static void Deg_EditingDegreeConstructor (void)
+ {
+ /***** Pointer must be NULL *****/
+ if (Deg_EditingDeg != NULL)
+ Lay_ShowErrorAndExit ("Error initializing degree.");
+
+ /***** Allocate memory for degree *****/
+ if ((Deg_EditingDeg = (struct Degree *) malloc (sizeof (struct Degree))) == NULL)
+ Lay_ShowErrorAndExit ("Error allocating memory for degree.");
+
+ /***** Reset degree *****/
+ Deg_EditingDeg->DegCod = -1L;
+ Deg_EditingDeg->DegTypCod = -1L;
+ Deg_EditingDeg->CtrCod = -1L;
+ Deg_EditingDeg->Status = 0;
+ Deg_EditingDeg->RequesterUsrCod = -1L;
+ Deg_EditingDeg->ShrtName[0] = '\0';
+ Deg_EditingDeg->FullName[0] = '\0';
+ Deg_EditingDeg->WWW[0] = '\0';
+ Deg_EditingDeg->Crss.Num = 0;
+ Deg_EditingDeg->Crss.Lst = NULL;
+ }
+
+static void Deg_EditingDegreeDestructor (void)
+ {
+ /***** Free memory used for institution *****/
+ if (Deg_EditingDeg != NULL)
+ {
+ free ((void *) Deg_EditingDeg);
+ Deg_EditingDeg = NULL;
+ }
+ }
diff --git a/swad_degree.h b/swad_degree.h
index f6a847ea..2b004080 100644
--- a/swad_degree.h
+++ b/swad_degree.h
@@ -68,8 +68,8 @@ typedef enum
struct Degree
{
- long DegTypCod; // Degree type code
long DegCod; // Degree code
+ long DegTypCod; // Degree type code
long CtrCod; // Centre code
Deg_Status_t Status; // Degree status
long RequesterUsrCod; // User code of the person who requested the creation of this degree
@@ -128,15 +128,16 @@ long Deg_GetCtrCodOfDegreeByCod (long DegCod);
long Deg_GetInsCodOfDegreeByCod (long DegCod);
void Deg_RemoveDegreeCompletely (long DegCod);
void Deg_RenameDegreeShort (void);
-void Deg_RenameDegreeShortInConfig (void);
void Deg_RenameDegreeFull (void);
+void Deg_ContEditAfterChgDeg (void);
+void Deg_RenameDegreeShortInConfig (void);
void Deg_RenameDegreeFullInConfig (void);
void Deg_ChangeDegCtrInConfig (void);
void Deg_ContEditAfterChgDegInConfig (void);
+void Deg_ChangeDegreeType (void);
void Deg_ChangeDegWWW (void);
void Deg_ChangeDegWWWInConfig (void);
void Deg_ChangeDegStatus (void);
-void Deg_ContEditAfterChgDeg (void);
void Deg_ShowAlertAndButtonToGoToDeg (void);
diff --git a/swad_degree_type.c b/swad_degree_type.c
index 7788077c..2a7f91b3 100644
--- a/swad_degree_type.c
+++ b/swad_degree_type.c
@@ -991,39 +991,3 @@ static bool DT_CheckIfDegreeTypeNameExists (const char *DegTypName,long DegTypCo
" WHERE DegTypName='%s' AND DegTypCod<>%ld",
DegTypName,DegTypCod) != 0);
}
-
-/*****************************************************************************/
-/************************ Change the type of a degree ************************/
-/*****************************************************************************/
-
-void DT_ChangeDegreeType (void)
- {
- extern const char *Txt_The_type_of_degree_of_the_degree_X_has_changed;
- long NewDegTypCod;
-
- /***** Get parameters from form *****/
- /* Get degree code */
- Gbl.Degs.EditingDeg.DegCod = Deg_GetAndCheckParamOtherDegCod (1);
-
- /* Get the new degree type */
- NewDegTypCod = DT_GetAndCheckParamOtherDegTypCod (1);
-
- /***** Get data of degree *****/
- Deg_GetDataOfDegreeByCod (&Gbl.Degs.EditingDeg);
-
- /***** Update the table of degrees changing old type by new type *****/
- DB_QueryUPDATE ("can not update the type of a degree",
- "UPDATE degrees SET DegTypCod=%ld WHERE DegCod=%ld",
- NewDegTypCod,Gbl.Degs.EditingDeg.DegCod);
-
- /***** Write alert to show the change made
- and put button to go to degree changed *****/
- Ale_CreateAlert (Ale_SUCCESS,NULL,
- Txt_The_type_of_degree_of_the_degree_X_has_changed,
- Gbl.Degs.EditingDeg.FullName);
- Deg_ShowAlertAndButtonToGoToDeg ();
-
- /***** Show the form again *****/
- Gbl.DegTypes.EditingDegTyp.DegTypCod = NewDegTypCod;
- Deg_EditDegrees ();
- }
diff --git a/swad_degree_type.h b/swad_degree_type.h
index 0e6eb39b..ac0f9aa7 100644
--- a/swad_degree_type.h
+++ b/swad_degree_type.h
@@ -80,6 +80,5 @@ long DT_GetAndCheckParamOtherDegTypCod (long MinCodAllowed);
bool DT_GetDataOfDegreeTypeByCod (struct DegreeType *DegTyp);
void DT_RenameDegreeType (void);
-void DT_ChangeDegreeType (void);
#endif
diff --git a/swad_global.c b/swad_global.c
index c23aaee4..9c68ac24 100644
--- a/swad_global.c
+++ b/swad_global.c
@@ -278,12 +278,6 @@ void Gbl_InitializeGlobals (void)
Gbl.DegTypes.EditingDegTyp.DegTypCod = -1L;
Gbl.DegTypes.EditingDegTyp.DegTypName[0] = '\0';
- Gbl.Degs.EditingDeg.DegCod = -1L;
- Gbl.Degs.EditingDeg.ShrtName[0] = '\0';
- Gbl.Degs.EditingDeg.FullName[0] = '\0';
- Gbl.Degs.EditingDeg.WWW[0] = '\0';
- Gbl.Degs.EditingDeg.Crss.Lst = NULL;
-
Gbl.Crss.EditingCrs.CrsCod = -1L;
Gbl.Crss.EditingCrs.DegCod = -1L;
Gbl.Crss.EditingCrs.Year = 0;
@@ -483,7 +477,7 @@ void Gbl_Cleanup (void)
Rec_FreeListFields ();
Grp_FreeListGrpTypesAndGrps ();
Grp_FreeListCodSelectedGrps ();
- Crs_FreeListCoursesInDegree (&Gbl.Degs.EditingDeg);
+ Crs_FreeListCoursesInCurrentDegree ();
Deg_FreeListDegs (&Gbl.Hierarchy.Ctr.Degs);
DT_FreeListDegreeTypes ();
Ins_FreeListInstitutions ();
diff --git a/swad_global.h b/swad_global.h
index c2e4ee4d..4648fc05 100644
--- a/swad_global.h
+++ b/swad_global.h
@@ -214,10 +214,6 @@ struct Globals
struct Degree Deg; // Current degree
struct Course Crs; // Current course. Aditional info about course is stored in Gbl.Crs.
} Hierarchy;
- struct
- {
- struct Degree EditingDeg;
- } Degs;
struct
{
struct Course EditingCrs;
diff --git a/swad_hierarchy.c b/swad_hierarchy.c
index 8efaa592..6bd6cffc 100644
--- a/swad_hierarchy.c
+++ b/swad_hierarchy.c
@@ -579,9 +579,7 @@ void Hie_InitHierarchy (void)
}
/***** Initialize default fields for edition to current values *****/
- Gbl.Dpts.EditingDpt.InsCod = Gbl.Hierarchy.Ins.InsCod;
- Gbl.Degs.EditingDeg.CtrCod = Gbl.Hierarchy.Ctr.CtrCod;
- Gbl.Degs.EditingDeg.DegTypCod = Gbl.Hierarchy.Deg.DegTypCod;
+ Gbl.Dpts.EditingDpt.InsCod = Gbl.Hierarchy.Ins.InsCod;
/***** Initialize paths *****/
if (Gbl.Hierarchy.Level == Hie_CRS) // Course selected