Version 16.169

This commit is contained in:
Antonio Cañas Vargas 2017-03-26 17:32:19 +02:00
parent 307f4e5813
commit e0da869125
7 changed files with 130 additions and 161 deletions

View File

@ -99,7 +99,6 @@ System:
11. ActSeeCty List countries
12. ActSeePen List pending institutions, centres, degrees and courses
13. ActReqRemOldCrs Request the total removal of old courses
14. ActSeeDegTyp List types of degrees
15. ActSeeBan See banners
16. ActSeeLnk See institutional links
17. ActLstPlg List plugins
@ -107,13 +106,15 @@ System:
19. ActSeeCalSys Show the academic calendar
21. ActSysSch Search for courses, teachers, documents...
22. ActEdiDegTyp Request edition of types of degrees
23. ActEdiCty Edit countries
24. ActNewCty Request the creation of a country
25. ActRemCty Remove a country
26. ActRenCty Change the name of a country
27. ActChgCtyWWW Change web of country
14. ActSeeDegTyp List types of degrees
22. ActEdiDegTyp Request edition of types of degrees
28. ActNewDegTyp Request the creation of a type of degree
29. ActRemDegTyp Request the removal of a type of degree
30. ActRenDegTyp Request renaming of a type of degree
@ -1519,16 +1520,14 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActSeeCty */{ 862, 1,TabSys,ActSeeCty , 0, 0, 0, 0, 0, 0,0x1FF,Act_CONT_NORM,Act_THIS_WINDOW,Cty_ListCountries1 ,Cty_ListCountries2 ,"earth64x64.gif" },
/* ActSeePen */{1060, 2,TabSys,ActSeePen , 0, 0, 0, 0, 0, 0,0x1E0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Deg_SeePending ,"hierarchy64x64.png" },
/* ActReqRemOldCrs */{1109, 3,TabSys,ActReqRemOldCrs , 0, 0, 0, 0, 0, 0,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Crs_AskRemoveOldCrss ,"removeusers64x64.gif" },
/* ActSeeDegTyp */{1013, 4,TabSys,ActSeeDegTyp , 0, 0, 0, 0, 0, 0,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,DT_SeeDegreeTypesInSysTab ,"grouptypes64x64.gif" },
/* ActSeeBan */{1137, 5,TabSys,ActSeeBan , 0, 0, 0, 0, 0, 0,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Ban_SeeBanners ,"picture64x64.gif" },
/* ActSeeLnk */{ 748, 6,TabSys,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x1FF,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Lnk_SeeLinks ,"link64x64.gif" },
/* ActLstPlg */{ 777, 7,TabSys,ActLstPlg , 0, 0, 0, 0, 0, 0,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Plg_ListPlugins ,"blocks64x64.gif" },
/* ActSetUp */{ 840, 8,TabSys,ActSetUp , 0, 0, 0, 0, 0, 0,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Set_Setup ,"lightning64x64.gif" },
/* ActSeeCalSys */{1622, 9,TabSys,ActSeeCalSys , 0, 0, 0, 0, 0, 0,0x1FF,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Cal_DrawCalendarSys ,"calendar64x64.png" },
/* ActSeeBan */{1137, 4,TabSys,ActSeeBan , 0, 0, 0, 0, 0, 0,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Ban_SeeBanners ,"picture64x64.gif" },
/* ActSeeLnk */{ 748, 5,TabSys,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x1FF,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Lnk_SeeLinks ,"link64x64.gif" },
/* ActLstPlg */{ 777, 6,TabSys,ActLstPlg , 0, 0, 0, 0, 0, 0,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Plg_ListPlugins ,"blocks64x64.gif" },
/* ActSetUp */{ 840, 7,TabSys,ActSetUp , 0, 0, 0, 0, 0, 0,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Set_Setup ,"lightning64x64.gif" },
/* ActSeeCalSys */{1622, 8,TabSys,ActSeeCalSys , 0, 0, 0, 0, 0, 0,0x1FF,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Cal_DrawCalendarSys ,"calendar64x64.png" },
// Actions not in menu:
/* ActSysSch */{ 628,-1,TabUnk,ActSysReqSch , 0, 0, 0, 0, 0, 0,0x1FF,Act_CONT_NORM,Act_THIS_WINDOW,Sch_GetParamsSearch ,Sch_SysSearch ,NULL},
/* ActEdiDegTyp */{ 573,-1,TabUnk,ActSeeDegTyp , 0, 0, 0, 0, 0, 0,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,DT_ReqEditDegreeTypes ,NULL},
/* ActEdiCty */{ 863,-1,TabUnk,ActSeeCty , 0, 0, 0, 0, 0, 0,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Cty_EditCountries ,NULL},
/* ActNewCty */{ 864,-1,TabUnk,ActSeeCty , 0, 0, 0, 0, 0, 0,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Cty_RecFormNewCountry ,NULL},
@ -1536,10 +1535,6 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActRenCty */{ 866,-1,TabUnk,ActSeeCty , 0, 0, 0, 0, 0, 0,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Cty_RenameCountry ,NULL},
/* ActChgCtyWWW */{1157,-1,TabUnk,ActSeeCty , 0, 0, 0, 0, 0, 0,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Cty_ChangeCtyWWW ,NULL},
/* ActNewDegTyp */{ 537,-1,TabUnk,ActSeeDegTyp , 0, 0, 0, 0, 0, 0,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,DT_RecFormNewDegreeType ,NULL},
/* ActRemDegTyp */{ 545,-1,TabUnk,ActSeeDegTyp , 0, 0, 0, 0, 0, 0,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,DT_RemoveDegreeType ,NULL},
/* ActRenDegTyp */{ 538,-1,TabUnk,ActSeeDegTyp , 0, 0, 0, 0, 0, 0,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,DT_RenameDegreeType ,NULL},
/* ActRemOldCrs */{1110,-1,TabUnk,ActReqRemOldCrs , 0, 0, 0, 0, 0, 0,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Crs_RemoveOldCrss ,NULL},
/* ActEdiBan */{1138,-1,TabUnk,ActSeeBan , 0, 0, 0, 0, 0, 0,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Ban_EditBanners ,NULL},
@ -1678,6 +1673,12 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActRecCtrPho */{1161,-1,TabUnk,ActSeeCtrInf , 0, 0, 0,0x1C0, 0, 0, 0,Act_CONT_DATA,Act_THIS_WINDOW,NULL ,Ctr_ReceivePhoto ,NULL},
/* ActChgCtrPhoAtt */{1159,-1,TabUnk,ActSeeCtrInf , 0, 0, 0,0x1C0, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Ctr_ChangeCtrPhotoAttribution ,NULL},
/* ActSeeDegTyp */{1013,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x1FF, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,DT_SeeDegreeTypesInDegTab ,NULL},
/* ActEdiDegTyp */{ 573,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x100, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,DT_ReqEditDegreeTypes ,NULL},
/* ActNewDegTyp */{ 537,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x100, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,DT_RecFormNewDegreeType ,NULL},
/* ActRemDegTyp */{ 545,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x100, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,DT_RemoveDegreeType ,NULL},
/* ActRenDegTyp */{ 538,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x100, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,DT_RenameDegreeType ,NULL},
/* ActEdiDeg */{ 536,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x1FE, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Deg_EditDegrees ,NULL},
/* ActReqDeg */{1206,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x1FE, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Deg_RecFormReqDeg ,NULL},
/* ActNewDeg */{ 540,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x1C0, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Deg_RecFormNewDeg ,NULL},

View File

@ -57,7 +57,7 @@ typedef enum
typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to indicate obsolete action
#define Act_NUM_ACTIONS (1 + 9 + 48 + 17 + 47 + 27 + 24 + 115 + 54 + 416 + 159 + 172 + 42 + 31 + 96)
#define Act_NUM_ACTIONS (1 + 9 + 43 + 17 + 47 + 32 + 24 + 115 + 54 + 416 + 159 + 172 + 42 + 31 + 96)
#define Act_MAX_ACTION_COD 1636
@ -91,58 +91,52 @@ typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to
#define ActSeeCty (ActWebSvc + 2)
#define ActSeePen (ActWebSvc + 3)
#define ActReqRemOldCrs (ActWebSvc + 4)
#define ActSeeDegTyp (ActWebSvc + 5)
#define ActSeeBan (ActWebSvc + 6)
#define ActSeeLnk (ActWebSvc + 7)
#define ActLstPlg (ActWebSvc + 8)
#define ActSetUp (ActWebSvc + 9)
#define ActSeeCalSys (ActWebSvc + 10)
#define ActSeeBan (ActWebSvc + 5)
#define ActSeeLnk (ActWebSvc + 6)
#define ActLstPlg (ActWebSvc + 7)
#define ActSetUp (ActWebSvc + 8)
#define ActSeeCalSys (ActWebSvc + 9)
// Secondary actions
#define ActSysSch (ActWebSvc + 11)
#define ActEdiDegTyp (ActWebSvc + 12)
#define ActEdiCty (ActWebSvc + 13)
#define ActNewCty (ActWebSvc + 14)
#define ActRemCty (ActWebSvc + 15)
#define ActRenCty (ActWebSvc + 16)
#define ActChgCtyWWW (ActWebSvc + 17)
#define ActSysSch (ActWebSvc + 10)
#define ActEdiCty (ActWebSvc + 11)
#define ActNewCty (ActWebSvc + 12)
#define ActRemCty (ActWebSvc + 13)
#define ActRenCty (ActWebSvc + 14)
#define ActChgCtyWWW (ActWebSvc + 15)
#define ActNewDegTyp (ActWebSvc + 18)
#define ActRemDegTyp (ActWebSvc + 19)
#define ActRenDegTyp (ActWebSvc + 20)
#define ActRemOldCrs (ActWebSvc + 16)
#define ActRemOldCrs (ActWebSvc + 21)
#define ActEdiBan (ActWebSvc + 17)
#define ActNewBan (ActWebSvc + 18)
#define ActRemBan (ActWebSvc + 19)
#define ActShoBan (ActWebSvc + 20)
#define ActHidBan (ActWebSvc + 21)
#define ActRenBanSho (ActWebSvc + 22)
#define ActRenBanFul (ActWebSvc + 23)
#define ActChgBanImg (ActWebSvc + 24)
#define ActChgBanWWW (ActWebSvc + 25)
#define ActClkBan (ActWebSvc + 26)
#define ActEdiBan (ActWebSvc + 22)
#define ActNewBan (ActWebSvc + 23)
#define ActRemBan (ActWebSvc + 24)
#define ActShoBan (ActWebSvc + 25)
#define ActHidBan (ActWebSvc + 26)
#define ActRenBanSho (ActWebSvc + 27)
#define ActRenBanFul (ActWebSvc + 28)
#define ActChgBanImg (ActWebSvc + 29)
#define ActChgBanWWW (ActWebSvc + 30)
#define ActClkBan (ActWebSvc + 31)
#define ActEdiLnk (ActWebSvc + 27)
#define ActNewLnk (ActWebSvc + 28)
#define ActRemLnk (ActWebSvc + 29)
#define ActRenLnkSho (ActWebSvc + 30)
#define ActRenLnkFul (ActWebSvc + 31)
#define ActChgLnkWWW (ActWebSvc + 32)
#define ActEdiLnk (ActWebSvc + 32)
#define ActNewLnk (ActWebSvc + 33)
#define ActRemLnk (ActWebSvc + 34)
#define ActRenLnkSho (ActWebSvc + 35)
#define ActRenLnkFul (ActWebSvc + 36)
#define ActChgLnkWWW (ActWebSvc + 37)
#define ActEdiPlg (ActWebSvc + 33)
#define ActNewPlg (ActWebSvc + 34)
#define ActRemPlg (ActWebSvc + 35)
#define ActRenPlg (ActWebSvc + 36)
#define ActChgPlgDes (ActWebSvc + 37)
#define ActChgPlgLog (ActWebSvc + 38)
#define ActChgPlgAppKey (ActWebSvc + 39)
#define ActChgPlgURL (ActWebSvc + 40)
#define ActChgPlgIP (ActWebSvc + 41)
#define ActEdiPlg (ActWebSvc + 38)
#define ActNewPlg (ActWebSvc + 39)
#define ActRemPlg (ActWebSvc + 40)
#define ActRenPlg (ActWebSvc + 41)
#define ActChgPlgDes (ActWebSvc + 42)
#define ActChgPlgLog (ActWebSvc + 43)
#define ActChgPlgAppKey (ActWebSvc + 44)
#define ActChgPlgURL (ActWebSvc + 45)
#define ActChgPlgIP (ActWebSvc + 46)
#define ActPrnCalSys (ActWebSvc + 47)
#define ActChgCalSys1stDay (ActWebSvc + 48)
#define ActPrnCalSys (ActWebSvc + 42)
#define ActChgCalSys1stDay (ActWebSvc + 43)
/*****************************************************************************/
/******************************** Country tab ********************************/
@ -252,18 +246,24 @@ typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to
#define ActRecCtrPho (ActChgCalIns1stDay + 15)
#define ActChgCtrPhoAtt (ActChgCalIns1stDay + 16)
#define ActEdiDeg (ActChgCalIns1stDay + 17)
#define ActReqDeg (ActChgCalIns1stDay + 18)
#define ActNewDeg (ActChgCalIns1stDay + 19)
#define ActRemDeg (ActChgCalIns1stDay + 20)
#define ActRenDegSho (ActChgCalIns1stDay + 21)
#define ActRenDegFul (ActChgCalIns1stDay + 22)
#define ActChgDegTyp (ActChgCalIns1stDay + 23)
#define ActChgDegWWW (ActChgCalIns1stDay + 24)
#define ActChgDegSta (ActChgCalIns1stDay + 25)
#define ActSeeDegTyp (ActChgCalIns1stDay + 17)
#define ActEdiDegTyp (ActChgCalIns1stDay + 18)
#define ActNewDegTyp (ActChgCalIns1stDay + 19)
#define ActRemDegTyp (ActChgCalIns1stDay + 20)
#define ActRenDegTyp (ActChgCalIns1stDay + 21)
#define ActPrnCalCtr (ActChgCalIns1stDay + 26)
#define ActChgCalCtr1stDay (ActChgCalIns1stDay + 27)
#define ActEdiDeg (ActChgCalIns1stDay + 22)
#define ActReqDeg (ActChgCalIns1stDay + 23)
#define ActNewDeg (ActChgCalIns1stDay + 24)
#define ActRemDeg (ActChgCalIns1stDay + 25)
#define ActRenDegSho (ActChgCalIns1stDay + 26)
#define ActRenDegFul (ActChgCalIns1stDay + 27)
#define ActChgDegTyp (ActChgCalIns1stDay + 28)
#define ActChgDegWWW (ActChgCalIns1stDay + 29)
#define ActChgDegSta (ActChgCalIns1stDay + 30)
#define ActPrnCalCtr (ActChgCalIns1stDay + 31)
#define ActChgCalCtr1stDay (ActChgCalIns1stDay + 32)
/*****************************************************************************/
/********************************* Degree tab ********************************/

View File

@ -211,13 +211,14 @@
/****************************** Public constants *****************************/
/*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 16.168.1 (2017-03-26)"
#define Log_PLATFORM_VERSION "SWAD 16.169 (2017-03-26)"
#define CSS_FILE "swad16.166.css"
#define JS_FILE "swad16.144.js"
// Number of lines (includes comments but not blank lines) has been got with the following command:
// nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*?.h sql/swad*.sql | tail -1
/*
Version 16.169: Mar 26, 2017 Action to view degree types removed from main menu. (217660 lines)
Version 16.168.1: Mar 26, 2017 Link to view degree types in degrees. (217694 lines)
Version 16.168: Mar 26, 2017 Action to view places removed from main menu. (217679 lines)
Version 16.167.16:Mar 26, 2017 Link to view places in centres. (217718 lines)

View File

@ -699,7 +699,8 @@ static void Deg_ListDegreesForEdition (void)
/***** Write heading *****/
sprintf (Gbl.Title,Txt_Degrees_of_CENTRE_X,
Gbl.CurrentCtr.Ctr.ShrtName);
Lay_StartRoundFrameTable (NULL,Gbl.Title,NULL,Hlp_CENTRE_Degrees,2);
Lay_StartRoundFrameTable (NULL,Gbl.Title,DT_PutIconToViewDegreeTypes,
Hlp_CENTRE_Degrees,2);
Deg_PutHeadDegreesForEdition ();
/***** List the degrees *****/
@ -949,6 +950,15 @@ static void Deg_PutFormToCreateDegree (void)
struct DegreeType *DegTyp;
unsigned NumDegTyp;
/***** Degree data *****/
Deg = &Gbl.Degs.EditingDeg;
/***** Start of frame *****/
sprintf (Gbl.Title,Txt_New_degree_of_CENTRE_X,
Gbl.CurrentCtr.Ctr.ShrtName);
Lay_StartRoundFrame (NULL,Gbl.Title,DT_PutIconToViewDegreeTypes,
Hlp_CENTRE_Degrees);
/***** Start form *****/
if (Gbl.Usrs.Me.LoggedRole >= Rol_CTR_ADM)
Act_FormStart (ActNewDeg);
@ -957,15 +967,10 @@ static void Deg_PutFormToCreateDegree (void)
else
Lay_ShowErrorAndExit ("You can not edit degrees.");
/***** Degree data *****/
Deg = &Gbl.Degs.EditingDeg;
/***** Start table *****/
fprintf (Gbl.F.Out,"<table class=\"FRAME_TBL_MARGIN CELLS_PAD_2\">");
/***** Start of frame *****/
sprintf (Gbl.Title,Txt_New_degree_of_CENTRE_X,
Gbl.CurrentCtr.Ctr.ShrtName);
Lay_StartRoundFrameTable (NULL,Gbl.Title,NULL,Hlp_CENTRE_Degrees,2);
/***** Write heading *****/
/***** Table head *****/
Deg_PutHeadDegreesForEdition ();
/***** Put disabled icon to remove degree *****/
@ -1045,11 +1050,17 @@ static void Deg_PutFormToCreateDegree (void)
"</td>"
"</tr>");
/***** Send button and end frame *****/
Lay_EndRoundFrameTableWithButton (Lay_CREATE_BUTTON,Txt_Create_degree);
/***** End table *****/
fprintf (Gbl.F.Out,"</table>");
/***** Button to send form *****/
Lay_PutCreateButton (Txt_Create_degree);
/***** End form *****/
Act_FormEnd ();
/***** End frame *****/
Lay_EndRoundFrame ();
}
/*****************************************************************************/
@ -1365,7 +1376,7 @@ static void Deg_ListOneDegreeForSeeing (struct Degree *Deg,unsigned NumDeg)
void Deg_EditDegrees (void)
{
extern const char *Txt_There_is_no_list_of_types_of_degree;
extern const char *Txt_There_are_no_types_of_degree;
extern const char *Txt_You_must_create_at_least_one_type_of_degree_before_creating_degrees;
/***** Get list of degrees in the current centre *****/
@ -1385,8 +1396,12 @@ void Deg_EditDegrees (void)
}
else // No degree types
{
Lay_ShowAlert (Lay_WARNING,Txt_There_is_no_list_of_types_of_degree);
Lay_ShowAlert (Lay_INFO,Txt_You_must_create_at_least_one_type_of_degree_before_creating_degrees);
/***** Warning message *****/
Lay_ShowAlert (Lay_WARNING,Txt_There_are_no_types_of_degree);
/***** Form to create the first degree type *****/
if (Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM)
DT_PutFormToCreateDegreeType ();
}
/***** Free list of degree types *****/

View File

@ -73,7 +73,6 @@ static void DT_PutIconsListDegTypes (void);
static void DT_PutIconToEditDegTypes (void);
static void DT_ListDegreeTypesForEdition (void);
static void DT_PutFormToCreateDegreeType (void);
static void DT_PutHeadDegreeTypesForSeeing (Act_Action_t NextAction,DT_Order_t SelectedOrder);
static void DT_PutHeadDegreeTypesForEdition (void);
static void DT_CreateDegreeType (struct DegreeType *DegTyp);
@ -84,20 +83,6 @@ static unsigned DT_CountNumDegsOfType (long DegTypCod);
static void DT_RemoveDegreeTypeCompletely (long DegTypCod);
static bool DT_CheckIfDegreeTypeNameExists (const char *DegTypName,long DegTypCod);
/*****************************************************************************/
/******************* Put link (form) to view degree types ********************/
/*****************************************************************************/
void DT_PutIconToViewDegreeTypes (void)
{
extern const char *Txt_Types_of_degree;
Lay_PutContextualLink (ActSeeDegTyp,NULL,
"hierarchy64x64.png",
Txt_Types_of_degree,NULL,
NULL);
}
/*****************************************************************************/
/************** Show selector of degree types for statistics *****************/
/*****************************************************************************/
@ -137,11 +122,25 @@ void DT_WriteSelectorDegreeTypes (void)
DT_FreeListDegreeTypes ();
}
/*****************************************************************************/
/******************* Put link (form) to view degree types ********************/
/*****************************************************************************/
void DT_PutIconToViewDegreeTypes (void)
{
extern const char *Txt_Types_of_degree;
Lay_PutContextualLink (ActSeeDegTyp,NULL,
"hierarchy64x64.png",
Txt_Types_of_degree,NULL,
NULL);
}
/*****************************************************************************/
/***************************** Show degree types *****************************/
/*****************************************************************************/
void DT_SeeDegreeTypesInSysTab (void)
void DT_SeeDegreeTypesInDegTab (void)
{
DT_SeeDegreeTypes (ActSeeDegTyp,Sco_SCOPE_SYS,
DT_ORDER_BY_DEGREE_TYPE); // Default order if not specified
@ -203,8 +202,8 @@ void DT_ReqEditDegreeTypes (void)
/***************************** List degree types *****************************/
/*****************************************************************************/
// This function can be called from:
// - system tab ==> NextAction = ActSeeDegTyp
// - statistic tab ==> NextAction = ActSeeUseGbl
// - centre tab => NextAction = ActSeeDegTyp
// - statistic tab => NextAction = ActSeeUseGbl
static void DT_ListDegreeTypes (Act_Action_t NextAction,DT_Order_t SelectedOrder)
{
@ -328,8 +327,11 @@ static void DT_PutIconsListDegTypes (void)
static void DT_PutIconToEditDegTypes (void)
{
extern const char *Txt_Edit;
bool IsCentreTab = Gbl.CurrentCtr.Ctr.CtrCod > 0 &&
Gbl.CurrentDeg.Deg.DegCod <= 0;
if (Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM)
if (IsCentreTab && // Only editable in centre tab
Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM) // Only editable by system admins
Lay_PutContextualLink (ActEdiDegTyp,NULL,
"edit64x64.png",
Txt_Edit,NULL,
@ -359,7 +361,7 @@ static void DT_ListDegreeTypesForEdition (void)
/* Put icon to remove degree type */
fprintf (Gbl.F.Out,"<tr>"
"<td class=\"BM\">");
if (Gbl.Degs.DegTypes.Lst[NumDegTyp].NumDegs) // Degree type has degrees ==> deletion forbidden
if (Gbl.Degs.DegTypes.Lst[NumDegTyp].NumDegs) // Degree type has degrees => deletion forbidden
Lay_PutIconRemovalNotAllowed ();
else
{
@ -404,7 +406,7 @@ static void DT_ListDegreeTypesForEdition (void)
/******************** Put a form to create a new degree type *****************/
/*****************************************************************************/
static void DT_PutFormToCreateDegreeType (void)
void DT_PutFormToCreateDegreeType (void)
{
extern const char *Hlp_SYSTEM_Studies_edit;
extern const char *Txt_New_type_of_degree;
@ -731,9 +733,9 @@ void DT_RemoveDegreeType (void)
Lay_ShowErrorAndExit ("Code of type of degree not found.");
/***** Check if this degree type has degrees *****/
if (DegTyp.NumDegs) // Degree type has degrees ==> don't remove
if (DegTyp.NumDegs) // Degree type has degrees => don't remove
Lay_ShowAlert (Lay_WARNING,Txt_To_remove_a_type_of_degree_you_must_first_remove_all_degrees_of_that_type);
else // Degree type has no degrees ==> remove it
else // Degree type has no degrees => remove it
{
/***** Remove degree type *****/
DT_RemoveDegreeTypeCompletely (DegTyp.DegTypCod);

View File

@ -58,12 +58,13 @@ typedef enum
/***************************** Public prototypes *****************************/
/*****************************************************************************/
void DT_PutIconToViewDegreeTypes (void);
void DT_WriteSelectorDegreeTypes (void);
void DT_SeeDegreeTypesInSysTab (void);
void DT_PutIconToViewDegreeTypes (void);
void DT_SeeDegreeTypesInDegTab (void);
void DT_SeeDegreeTypesInStaTab (void);
void DT_ReqEditDegreeTypes (void);
void DT_PutFormToCreateDegreeType (void);
void DT_GetListDegreeTypes (Sco_Scope_t Scope,DT_Order_t Order);
void DT_FreeListDegreeTypes (void);

View File

@ -47260,27 +47260,6 @@ const char *Txt_There_is_no_knowing_how_many_users_not_logged_have_accessed =
"There is no knowing how many users not logged have accessed."; // Necessita de tradução
#endif
const char *Txt_There_is_no_list_of_types_of_degree =
#if L==1
"No hay lista de tipos de titulaci&oacute;n."; // Necessita traduccio
#elif L==2
"There is no list of types of degree."; // Übersetzung notwendig
#elif L==3
"There is no list of types of degree.";
#elif L==4
"No hay lista de tipos de titulaci&oacute;n.";
#elif L==5
"There is no list of types of degree."; // Besoin de traduction
#elif L==6
"No hay lista de tipos de titulaci&oacute;n."; // Okoteve traducción
#elif L==7
"Non c'&egrave; la lista de tipi di laurea.";
#elif L==8
"There is no list of types of degree."; // Potrzebujesz tlumaczenie
#elif L==9
"There is no list of types of degree."; // Necessita de tradução
#endif
const char *Txt_There_is_no_user_with_email_X = // Warning: it is very important to include %s in the following sentences
#if L==1
"No existe ning&uacute;n usuario"
@ -53916,36 +53895,6 @@ const char *Txt_You_have_written_X_posts_in_this_thread = // Warning: it is ver
"Voc&ecirc; escreveu %u posts neste thread";
#endif
const char *Txt_You_must_create_at_least_one_type_of_degree_before_creating_degrees =
#if L==1
"Debe crear al menos un tipo de titulaci&oacute;n"
" antes de crear titulaciones."; // Necessita traduccio
#elif L==2
"You must create at least one type of degree"
" before creating degrees."; // Übersetzung notwendig
#elif L==3
"You must create at least one type of degree"
" before creating degrees.";
#elif L==4
"Debe crear al menos un tipo de titulaci&oacute;n"
" antes de crear titulaciones.";
#elif L==5
"You must create at least one type of degree"
" before creating degrees."; // Besoin de traduction
#elif L==6
"Debe crear al menos un tipo de titulaci&oacute;n"
" antes de crear titulaciones."; // Okoteve traducción
#elif L==7
"Devi creare almeno un tipo di laurea"
" prima di creare lauree.";
#elif L==8
"You must create at least one type of degree"
" before creating degrees."; // Potrzebujesz tlumaczenie
#elif L==9
"You must create at least one type of degree"
" before creating degrees."; // Necessita de tradução
#endif
const char *Txt_You_must_enter_an_integer_value_as_the_correct_answer =
#if L==1
"Debe escribir un valor entero como respuesta correcta."; // Necessita traduccio