diff --git a/swad_action.c b/swad_action.c
index 2b240973f..6182083a9 100644
--- a/swad_action.c
+++ b/swad_action.c
@@ -294,7 +294,7 @@ Centre:
184. ActChgDegCtr Request change of the centre of a degree
185. ActChgDegFstYea Request change of the first year of a degree
186. ActChgDegLstYea Request change of the last year of a degree
- 187. ActChgDegOptYea Request change of the year of optativas of a degree
+REMOVE ---> 187. ActChgDegOptYea Request change of the year of optativas of a degree
188. ActChgDegWWW Request change of the web of a degree
189. ActChgDegSta Request change of status of a degree
@@ -1698,7 +1698,7 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActChgDegCtr */{1049,-1,TabCtr,ActSeeDeg ,0x1C0,0x1C0,0x1C0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Deg_ChangeDegreeCtr ,NULL},
/* ActChgDegFstYea */{ 550,-1,TabCtr,ActSeeDeg ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Deg_ChangeDegFirstYear ,NULL},
/* ActChgDegLstYea */{ 551,-1,TabCtr,ActSeeDeg ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Deg_ChangeDegLastYear ,NULL},
- /* ActChgDegOptYea */{ 552,-1,TabCtr,ActSeeDeg ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Deg_ChangeDegOptYear ,NULL},
+ /* ActChgDegOptYea *//*{ 552,-1,TabCtr,ActSeeDeg ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Deg_ChangeDegOptYear ,NULL},*/
/* ActChgDegWWW */{ 554,-1,TabCtr,ActSeeDeg ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Deg_ChangeDegWWW ,NULL},
/* ActChgDegSta */{1207,-1,TabCtr,ActSeeDeg ,0x1C0,0x1C0,0x1C0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Deg_ChangeDegStatus ,NULL},
@@ -3351,7 +3351,8 @@ Act_Action_t Act_FromActCodToAction[1+Act_MAX_ACTION_COD] = // Do not reuse uniq
-1, // #549 (obsolete action)
ActChgDegFstYea, // #550
ActChgDegLstYea, // #551
- ActChgDegOptYea, // #552
+ // ActChgDegOptYea, // #552
+ -1, // #552
ActRecDegLog, // #553
ActChgDegWWW, // #554
ActEdiCrs, // #555
diff --git a/swad_action.h b/swad_action.h
index a6a6771c1..add2a9eb8 100644
--- a/swad_action.h
+++ b/swad_action.h
@@ -71,7 +71,8 @@ typedef enum
typedef int Act_Action_t; // Must be a signed type, because -1 is used to indicate obsolete action
// #define Act_NUM_ACTIONS (7+52+15+90+73+68+205+183+154+171+27+80)
-#define Act_NUM_ACTIONS (7+52+15+90+73+67+205+183+154+171+27+80)
+// #define Act_NUM_ACTIONS (7+52+15+90+73+67+205+183+154+171+27+80)
+#define Act_NUM_ACTIONS (7+52+15+90+72+67+205+183+154+171+27+80)
#define Act_MAX_ACTION_COD 1487
@@ -307,58 +308,58 @@ typedef int Act_Action_t; // Must be a signed type, because -1 is used to indica
#define ActChgDegCtr (ActDowComIns+ 21)
#define ActChgDegFstYea (ActDowComIns+ 22)
#define ActChgDegLstYea (ActDowComIns+ 23)
-#define ActChgDegOptYea (ActDowComIns+ 24)
-#define ActChgDegWWW (ActDowComIns+ 25)
-#define ActChgDegSta (ActDowComIns+ 26)
+// #define ActChgDegOptYea (ActDowComIns+ 24)
+#define ActChgDegWWW (ActDowComIns+ 24)
+#define ActChgDegSta (ActDowComIns+ 25)
-#define ActChgToSeeDocCtr (ActDowComIns+ 27)
-#define ActSeeDocCtr (ActDowComIns+ 28)
-#define ActExpSeeDocCtr (ActDowComIns+ 29)
-#define ActConSeeDocCtr (ActDowComIns+ 30)
-#define ActZIPSeeDocCtr (ActDowComIns+ 31)
-#define ActReqDatSeeDocCtr (ActDowComIns+ 32)
-#define ActDowSeeDocCtr (ActDowComIns+ 33)
-#define ActChgToAdmDocCtr (ActDowComIns+ 34)
-#define ActAdmDocCtr (ActDowComIns+ 35)
-#define ActReqRemFilDocCtr (ActDowComIns+ 36)
-#define ActRemFilDocCtr (ActDowComIns+ 37)
-#define ActRemFolDocCtr (ActDowComIns+ 38)
-#define ActCopDocCtr (ActDowComIns+ 39)
-#define ActPasDocCtr (ActDowComIns+ 40)
-#define ActRemTreDocCtr (ActDowComIns+ 41)
-#define ActFrmCreDocCtr (ActDowComIns+ 42)
-#define ActCreFolDocCtr (ActDowComIns+ 43)
-#define ActCreLnkDocCtr (ActDowComIns+ 44)
-#define ActRenFolDocCtr (ActDowComIns+ 45)
-#define ActRcvFilDocCtrDZ (ActDowComIns+ 46)
-#define ActRcvFilDocCtrCla (ActDowComIns+ 47)
-#define ActExpAdmDocCtr (ActDowComIns+ 48)
-#define ActConAdmDocCtr (ActDowComIns+ 49)
-#define ActZIPAdmDocCtr (ActDowComIns+ 50)
-#define ActShoDocCtr (ActDowComIns+ 51)
-#define ActHidDocCtr (ActDowComIns+ 52)
-#define ActReqDatAdmDocCtr (ActDowComIns+ 53)
-#define ActChgDatAdmDocCtr (ActDowComIns+ 54)
-#define ActDowAdmDocCtr (ActDowComIns+ 55)
+#define ActChgToSeeDocCtr (ActDowComIns+ 26)
+#define ActSeeDocCtr (ActDowComIns+ 27)
+#define ActExpSeeDocCtr (ActDowComIns+ 28)
+#define ActConSeeDocCtr (ActDowComIns+ 29)
+#define ActZIPSeeDocCtr (ActDowComIns+ 30)
+#define ActReqDatSeeDocCtr (ActDowComIns+ 31)
+#define ActDowSeeDocCtr (ActDowComIns+ 32)
+#define ActChgToAdmDocCtr (ActDowComIns+ 33)
+#define ActAdmDocCtr (ActDowComIns+ 34)
+#define ActReqRemFilDocCtr (ActDowComIns+ 35)
+#define ActRemFilDocCtr (ActDowComIns+ 36)
+#define ActRemFolDocCtr (ActDowComIns+ 37)
+#define ActCopDocCtr (ActDowComIns+ 38)
+#define ActPasDocCtr (ActDowComIns+ 39)
+#define ActRemTreDocCtr (ActDowComIns+ 40)
+#define ActFrmCreDocCtr (ActDowComIns+ 41)
+#define ActCreFolDocCtr (ActDowComIns+ 42)
+#define ActCreLnkDocCtr (ActDowComIns+ 43)
+#define ActRenFolDocCtr (ActDowComIns+ 44)
+#define ActRcvFilDocCtrDZ (ActDowComIns+ 45)
+#define ActRcvFilDocCtrCla (ActDowComIns+ 46)
+#define ActExpAdmDocCtr (ActDowComIns+ 47)
+#define ActConAdmDocCtr (ActDowComIns+ 48)
+#define ActZIPAdmDocCtr (ActDowComIns+ 49)
+#define ActShoDocCtr (ActDowComIns+ 50)
+#define ActHidDocCtr (ActDowComIns+ 51)
+#define ActReqDatAdmDocCtr (ActDowComIns+ 52)
+#define ActChgDatAdmDocCtr (ActDowComIns+ 53)
+#define ActDowAdmDocCtr (ActDowComIns+ 54)
-#define ActReqRemFilComCtr (ActDowComIns+ 56)
-#define ActRemFilComCtr (ActDowComIns+ 57)
-#define ActRemFolComCtr (ActDowComIns+ 58)
-#define ActCopComCtr (ActDowComIns+ 59)
-#define ActPasComCtr (ActDowComIns+ 60)
-#define ActRemTreComCtr (ActDowComIns+ 61)
-#define ActFrmCreComCtr (ActDowComIns+ 62)
-#define ActCreFolComCtr (ActDowComIns+ 63)
-#define ActCreLnkComCtr (ActDowComIns+ 64)
-#define ActRenFolComCtr (ActDowComIns+ 65)
-#define ActRcvFilComCtrDZ (ActDowComIns+ 66)
-#define ActRcvFilComCtrCla (ActDowComIns+ 67)
-#define ActExpComCtr (ActDowComIns+ 68)
-#define ActConComCtr (ActDowComIns+ 69)
-#define ActZIPComCtr (ActDowComIns+ 70)
-#define ActReqDatComCtr (ActDowComIns+ 71)
-#define ActChgDatComCtr (ActDowComIns+ 72)
-#define ActDowComCtr (ActDowComIns+ 73)
+#define ActReqRemFilComCtr (ActDowComIns+ 55)
+#define ActRemFilComCtr (ActDowComIns+ 56)
+#define ActRemFolComCtr (ActDowComIns+ 57)
+#define ActCopComCtr (ActDowComIns+ 58)
+#define ActPasComCtr (ActDowComIns+ 59)
+#define ActRemTreComCtr (ActDowComIns+ 60)
+#define ActFrmCreComCtr (ActDowComIns+ 61)
+#define ActCreFolComCtr (ActDowComIns+ 62)
+#define ActCreLnkComCtr (ActDowComIns+ 63)
+#define ActRenFolComCtr (ActDowComIns+ 64)
+#define ActRcvFilComCtrDZ (ActDowComIns+ 65)
+#define ActRcvFilComCtrCla (ActDowComIns+ 66)
+#define ActExpComCtr (ActDowComIns+ 67)
+#define ActConComCtr (ActDowComIns+ 68)
+#define ActZIPComCtr (ActDowComIns+ 69)
+#define ActReqDatComCtr (ActDowComIns+ 70)
+#define ActChgDatComCtr (ActDowComIns+ 71)
+#define ActDowComCtr (ActDowComIns+ 72)
/*****************************************************************************/
/********************************* Degree tab ********************************/
diff --git a/swad_changelog.h b/swad_changelog.h
index 9373830f9..8faf36d74 100644
--- a/swad_changelog.h
+++ b/swad_changelog.h
@@ -113,13 +113,17 @@
/****************************** Public constants *****************************/
/*****************************************************************************/
-#define Log_PLATFORM_VERSION "SWAD 15.58.1 (2015/12/06)"
+#define Log_PLATFORM_VERSION "SWAD 15.59 (2015/12/06)"
#define CSS_FILE "swad15.57.css"
// 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 15.58.1: Dec 06, 2015 Removed unused code related to semester. (186960 lines)
+ Version 15.59: Dec 06, 2015 Year for optional courses is now always present. (186692 lines)
+ 1 change necessary in database:
+UPDATE actions SET Obsolete='Y' WHERE ActCod='552';
+
+ Version 15.58.1: Dec 06, 2015 Removed unused code related to semester. (186604 lines)
1 change necessary in database:
ALTER TABLE courses DROP COLUMN Semester;
diff --git a/swad_database.c b/swad_database.c
index 746629e26..a719e9b22 100644
--- a/swad_database.c
+++ b/swad_database.c
@@ -847,6 +847,7 @@ mysql> DESCRIBE degrees;
+-----------------+---------------+------+-----+---------+----------------+
11 rows in set (0.00 sec)
*/
+/*
DB_CreateTable ("CREATE TABLE IF NOT EXISTS degrees ("
"DegCod INT NOT NULL AUTO_INCREMENT,"
"CtrCod INT NOT NULL,"
@@ -860,6 +861,19 @@ mysql> DESCRIBE degrees;
"OptYear ENUM('N','Y') NOT NULL DEFAULT 'N',"
"WWW VARCHAR(255) NOT NULL,"
"UNIQUE INDEX(DegCod),INDEX(CtrCod),INDEX(DegTypCod),INDEX(Status))");
+*/
+ DB_CreateTable ("CREATE TABLE IF NOT EXISTS degrees ("
+ "DegCod INT NOT NULL AUTO_INCREMENT,"
+ "CtrCod INT NOT NULL,"
+ "DegTypCod INT NOT NULL,"
+ "Status TINYINT NOT NULL DEFAULT 0,"
+ "RequesterUsrCod INT NOT NULL DEFAULT -1,"
+ "ShortName VARCHAR(32) NOT NULL,"
+ "FullName VARCHAR(127) NOT NULL,"
+ "FirstYear TINYINT NOT NULL DEFAULT 0,"
+ "LastYear TINYINT NOT NULL DEFAULT 0,"
+ "WWW VARCHAR(255) NOT NULL,"
+ "UNIQUE INDEX(DegCod),INDEX(CtrCod),INDEX(DegTypCod),INDEX(Status))");
/***** Table departments *****/
/*
diff --git a/swad_degree.c b/swad_degree.c
index fc70614bd..3f86531d8 100644
--- a/swad_degree.c
+++ b/swad_degree.c
@@ -1277,8 +1277,8 @@ static void Deg_ListOneDegreeForSeeing (struct Degree *Deg,unsigned NumDeg)
{
extern const char *Txt_DEGREE_With_courses;
extern const char *Txt_DEGREE_Without_courses;
- extern const char *Txt_DEGREE_With_year_for_optional_courses;
- extern const char *Txt_DEGREE_Without_year_for_optional_courses;
+ // extern const char *Txt_DEGREE_With_year_for_optional_courses;
+ // extern const char *Txt_DEGREE_Without_year_for_optional_courses;
extern const char *Txt_DEGREE_STATUS[Deg_NUM_STATUS_TXT];
struct DegreeType DegTyp;
const char *TxtClassNormal;
@@ -1352,6 +1352,7 @@ static void Deg_ListOneDegreeForSeeing (struct Degree *Deg,unsigned NumDeg)
TxtClassNormal,BgColor,Deg->LastYear);
/***** Degree optional year *****/
+ /*
fprintf (Gbl.F.Out,"
"
"OptYear ? Txt_DEGREE_With_year_for_optional_courses :
Txt_DEGREE_Without_year_for_optional_courses);
+ */
/***** Current number of courses in this degree *****/
fprintf (Gbl.F.Out,"