mirror of https://github.com/acanas/swad-core.git
Version 15.59.1
This commit is contained in:
parent
05e930cf29
commit
022d56e66d
|
@ -373,13 +373,6 @@ CREATE TABLE IF NOT EXISTS debug (
|
|||
Txt TEXT NOT NULL,
|
||||
INDEX(DebugTime));
|
||||
--
|
||||
-- Table deg_admin: stores administrators of degrees
|
||||
--
|
||||
CREATE TABLE IF NOT EXISTS deg_admin (
|
||||
UsrCod INT NOT NULL,
|
||||
DegCod INT NOT NULL,
|
||||
UNIQUE INDEX(UsrCod,DegCod));
|
||||
--
|
||||
-- Table deg_types: stores the types of degree
|
||||
--
|
||||
CREATE TABLE IF NOT EXISTS deg_types (
|
||||
|
@ -400,7 +393,6 @@ CREATE TABLE IF NOT EXISTS degrees (
|
|||
FullName VARCHAR(127) NOT NULL,
|
||||
FirstYear TINYINT NOT NULL DEFAULT 0,
|
||||
LastYear TINYINT NOT NULL DEFAULT 0,
|
||||
OptYear ENUM('N','Y') NOT NULL DEFAULT 'N',
|
||||
WWW VARCHAR(255) NOT NULL,
|
||||
UNIQUE INDEX(DegCod),
|
||||
INDEX(CtrCod),
|
||||
|
|
|
@ -75,7 +75,7 @@ extern struct Globals Gbl;
|
|||
/************************ Internal global variables **************************/
|
||||
/*****************************************************************************/
|
||||
/*
|
||||
1123 actions in one CGI:
|
||||
1122 actions in one CGI:
|
||||
0. ActAll Any action (used for statistics)
|
||||
1. ActUnk Unknown action
|
||||
2. ActHom Show home menu
|
||||
|
@ -294,7 +294,6 @@ 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
|
||||
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 +1697,6 @@ 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},*/
|
||||
/* 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 +3349,6 @@ Act_Action_t Act_FromActCodToAction[1+Act_MAX_ACTION_COD] = // Do not reuse uniq
|
|||
-1, // #549 (obsolete action)
|
||||
ActChgDegFstYea, // #550
|
||||
ActChgDegLstYea, // #551
|
||||
// ActChgDegOptYea, // #552
|
||||
-1, // #552
|
||||
ActRecDegLog, // #553
|
||||
ActChgDegWWW, // #554
|
||||
|
|
|
@ -101,7 +101,6 @@
|
|||
// TODO: A teacher should may confirm a student ID? In what conditions? (Necessary in order to a student can view his/her marks)
|
||||
// TODO: Put headers Content-type and Content-disposition when redirecting with Location:
|
||||
// TODO: When a new assignment/attendance/survey is incorrect, the second time the form is shown, it should be filled with partial data, now is always empty
|
||||
// TODO: Remove columns "first year, last year, optional, status" when listing degrees?
|
||||
// TODO: Show message indicating that mail could be in SPAM folder?
|
||||
// TODO: Do not show e-mails of administrators and teachers in lists openly
|
||||
// TODO: Show nicknames of users in lists?
|
||||
|
@ -113,12 +112,16 @@
|
|||
/****************************** Public constants *****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
#define Log_PLATFORM_VERSION "SWAD 15.59 (2015/12/06)"
|
||||
#define Log_PLATFORM_VERSION "SWAD 15.59.1 (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.59.1: Dec 06, 2015 Removed unused code related to year for optional courses. (186405 lines)
|
||||
1 change necessary in database:
|
||||
ALTER TABLE degrees DROP COLUMN OptYear;
|
||||
|
||||
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';
|
||||
|
|
|
@ -830,37 +830,21 @@ mysql> DESCRIBE deg_types;
|
|||
/***** Table degrees *****/
|
||||
/*
|
||||
mysql> DESCRIBE degrees;
|
||||
+-----------------+---------------+------+-----+---------+----------------+
|
||||
| Field | Type | Null | Key | Default | Extra |
|
||||
+-----------------+---------------+------+-----+---------+----------------+
|
||||
| DegCod | int(11) | NO | PRI | NULL | auto_increment |
|
||||
| CtrCod | int(11) | NO | MUL | NULL | |
|
||||
| DegTypCod | int(11) | NO | MUL | NULL | |
|
||||
| Status | tinyint(4) | NO | MUL | 0 | |
|
||||
| RequesterUsrCod | int(11) | NO | | -1 | |
|
||||
| ShortName | varchar(32) | NO | | NULL | |
|
||||
| FullName | varchar(127) | NO | | NULL | |
|
||||
| FirstYear | tinyint(4) | NO | | 0 | |
|
||||
| LastYear | tinyint(4) | NO | | 0 | |
|
||||
| OptYear | enum('N','Y') | NO | | N | |
|
||||
| WWW | varchar(255) | NO | | NULL | |
|
||||
+-----------------+---------------+------+-----+---------+----------------+
|
||||
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,"
|
||||
"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,"
|
||||
"OptYear ENUM('N','Y') NOT NULL DEFAULT 'N',"
|
||||
"WWW VARCHAR(255) NOT NULL,"
|
||||
"UNIQUE INDEX(DegCod),INDEX(CtrCod),INDEX(DegTypCod),INDEX(Status))");
|
||||
+-----------------+--------------+------+-----+---------+----------------+
|
||||
| Field | Type | Null | Key | Default | Extra |
|
||||
+-----------------+--------------+------+-----+---------+----------------+
|
||||
| DegCod | int(11) | NO | PRI | NULL | auto_increment |
|
||||
| CtrCod | int(11) | NO | MUL | NULL | |
|
||||
| DegTypCod | int(11) | NO | MUL | NULL | |
|
||||
| Status | tinyint(4) | NO | MUL | 0 | |
|
||||
| RequesterUsrCod | int(11) | NO | | -1 | |
|
||||
| ShortName | varchar(32) | NO | | NULL | |
|
||||
| FullName | varchar(127) | NO | | NULL | |
|
||||
| FirstYear | tinyint(4) | NO | | 0 | |
|
||||
| LastYear | tinyint(4) | NO | | 0 | |
|
||||
| WWW | varchar(255) | NO | | NULL | |
|
||||
+-----------------+--------------+------+-----+---------+----------------+
|
||||
10 rows in set (0.00 sec)
|
||||
*/
|
||||
DB_CreateTable ("CREATE TABLE IF NOT EXISTS degrees ("
|
||||
"DegCod INT NOT NULL AUTO_INCREMENT,"
|
||||
|
|
168
swad_degree.c
168
swad_degree.c
|
@ -1277,8 +1277,6 @@ 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_STATUS[Deg_NUM_STATUS_TXT];
|
||||
struct DegreeType DegTyp;
|
||||
const char *TxtClassNormal;
|
||||
|
@ -1351,23 +1349,6 @@ static void Deg_ListOneDegreeForSeeing (struct Degree *Deg,unsigned NumDeg)
|
|||
"</td>",
|
||||
TxtClassNormal,BgColor,Deg->LastYear);
|
||||
|
||||
/***** Degree optional year *****/
|
||||
/*
|
||||
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE %s\">"
|
||||
"<img src=\"%s/%s16x16.gif\""
|
||||
" alt=\"%s\" title=\"%s\""
|
||||
" class=\"ICON16x16\" />"
|
||||
"</td>",
|
||||
BgColor,
|
||||
Gbl.Prefs.IconsURL,
|
||||
Deg->OptYear ? "ok_on" :
|
||||
"tr",
|
||||
Deg->OptYear ? Txt_DEGREE_With_year_for_optional_courses :
|
||||
Txt_DEGREE_Without_year_for_optional_courses,
|
||||
Deg->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,"<td class=\"%s RIGHT_MIDDLE %s\">"
|
||||
"%u"
|
||||
|
@ -1394,8 +1375,6 @@ static void Deg_ListOneDegreeForSeeing (struct Degree *Deg,unsigned NumDeg)
|
|||
static void Deg_ListDegreesForEdition (void)
|
||||
{
|
||||
extern const char *Txt_Degrees_of_CENTRE_X;
|
||||
// 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];
|
||||
unsigned NumDeg;
|
||||
struct DegreeType *DegTyp;
|
||||
|
@ -1591,36 +1570,6 @@ static void Deg_ListDegreesForEdition (void)
|
|||
fprintf (Gbl.F.Out,"%u",Deg->LastYear);
|
||||
fprintf (Gbl.F.Out,"</td>");
|
||||
|
||||
/* Degree optional year */
|
||||
/*
|
||||
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">");
|
||||
if (ICanEdit)
|
||||
{
|
||||
Act_FormStart (ActChgDegOptYea);
|
||||
Deg_PutParamOtherDegCod (Deg->DegCod);
|
||||
fprintf (Gbl.F.Out,"<input type=\"checkbox\" name=\"OptYear\" value=\"Y\"%s"
|
||||
" onchange=\"document.getElementById('%s').submit();\" />",
|
||||
Deg->OptYear ? " checked=\"checked\"" :
|
||||
"",
|
||||
Gbl.FormId);
|
||||
Act_FormEnd ();
|
||||
fprintf (Gbl.F.Out,"</td>");
|
||||
}
|
||||
else
|
||||
* Degree optional year *
|
||||
fprintf (Gbl.F.Out,"<img src=\"%s/%s16x16.gif\""
|
||||
" alt=\"%s\" title=\"%s\""
|
||||
" class=\"ICON16x16\" />",
|
||||
Gbl.Prefs.IconsURL,
|
||||
Deg->OptYear ? "ok_on" :
|
||||
"tr",
|
||||
Deg->OptYear ? Txt_DEGREE_With_year_for_optional_courses :
|
||||
Txt_DEGREE_Without_year_for_optional_courses,
|
||||
Deg->OptYear ? Txt_DEGREE_With_year_for_optional_courses :
|
||||
Txt_DEGREE_Without_year_for_optional_courses);
|
||||
fprintf (Gbl.F.Out,"</td>");
|
||||
*/
|
||||
|
||||
/* Degree WWW */
|
||||
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">");
|
||||
if (ICanEdit)
|
||||
|
@ -1638,7 +1587,8 @@ static void Deg_ListDegreesForEdition (void)
|
|||
{
|
||||
strncpy (WWW,Deg->WWW,Deg_MAX_LENGTH_WWW_ON_SCREEN);
|
||||
WWW[Deg_MAX_LENGTH_WWW_ON_SCREEN] = '\0';
|
||||
fprintf (Gbl.F.Out,"<a href=\"%s\" target=\"_blank\" class=\"DAT\" title=\"%s\">%s",
|
||||
fprintf (Gbl.F.Out,"<a href=\"%s\" target=\"_blank\""
|
||||
" class=\"DAT\" title=\"%s\">%s",
|
||||
Deg->WWW,Deg->WWW,WWW);
|
||||
if (strlen (Deg->WWW) > Deg_MAX_LENGTH_WWW_ON_SCREEN)
|
||||
fprintf (Gbl.F.Out,"...");
|
||||
|
@ -1923,14 +1873,6 @@ static void Deg_PutFormToCreateDegree (void)
|
|||
fprintf (Gbl.F.Out,"</select>"
|
||||
"</td>");
|
||||
|
||||
/***** Degree optional year *****/
|
||||
/*
|
||||
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
|
||||
"<input type=\"checkbox\" name=\"OptYear\" value=\"Y\"%s /></td>",
|
||||
Deg->OptYear ? " checked=\"checked\"" :
|
||||
"");
|
||||
*/
|
||||
|
||||
/***** Degree WWW *****/
|
||||
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
|
||||
"<input type=\"text\" name=\"WWW\""
|
||||
|
@ -2197,20 +2139,6 @@ static void Deg_CreateDegree (struct Degree *Deg,unsigned Status)
|
|||
char Query[1024];
|
||||
|
||||
/***** Create a new degree *****/
|
||||
/*
|
||||
sprintf (Query,"INSERT INTO degrees (CtrCod,DegTypCod,Status,RequesterUsrCod,"
|
||||
"ShortName,FullName,FirstYear,LastYear,OptYear,WWW)"
|
||||
" VALUES ('%ld','%ld','%u','%ld',"
|
||||
"'%s','%s','%u','%u','%c','%s')",
|
||||
Deg->CtrCod,Deg->DegTypCod,
|
||||
Status,
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
Deg->ShortName,Deg->FullName,
|
||||
Deg->FirstYear,Deg->LastYear,
|
||||
Deg->OptYear ? 'Y' :
|
||||
'N',
|
||||
Deg->WWW);
|
||||
*/
|
||||
sprintf (Query,"INSERT INTO degrees (CtrCod,DegTypCod,Status,RequesterUsrCod,"
|
||||
"ShortName,FullName,FirstYear,LastYear,WWW)"
|
||||
" VALUES ('%ld','%ld','%u','%ld',"
|
||||
|
@ -2388,11 +2316,6 @@ void Deg_GetListAllDegs (void)
|
|||
unsigned NumDeg;
|
||||
|
||||
/***** Get degrees admin by me from database *****/
|
||||
/*
|
||||
sprintf (Query,"SELECT DegCod,CtrCod,DegTypCod,Status,RequesterUsrCod,"
|
||||
"ShortName,FullName,FirstYear,LastYear,OptYear,WWW"
|
||||
" FROM degrees ORDER BY FullName");
|
||||
*/
|
||||
sprintf (Query,"SELECT DegCod,CtrCod,DegTypCod,Status,RequesterUsrCod,"
|
||||
"ShortName,FullName,FirstYear,LastYear,WWW"
|
||||
" FROM degrees ORDER BY FullName");
|
||||
|
@ -2448,12 +2371,6 @@ static void Deg_GetListDegsOfCurrentCtr (void)
|
|||
unsigned NumDeg;
|
||||
|
||||
/***** Get degrees of the current centre from database *****/
|
||||
/*
|
||||
sprintf (Query,"SELECT DegCod,CtrCod,DegTypCod,Status,RequesterUsrCod,"
|
||||
"ShortName,FullName,FirstYear,LastYear,OptYear,WWW"
|
||||
" FROM degrees WHERE CtrCod='%ld' ORDER BY FullName",
|
||||
Gbl.CurrentCtr.Ctr.CtrCod);
|
||||
*/
|
||||
sprintf (Query,"SELECT DegCod,CtrCod,DegTypCod,Status,RequesterUsrCod,"
|
||||
"ShortName,FullName,FirstYear,LastYear,WWW"
|
||||
" FROM degrees WHERE CtrCod='%ld' ORDER BY FullName",
|
||||
|
@ -2527,24 +2444,6 @@ void Deg_GetListDegsAdminByMe (void)
|
|||
unsigned NumDeg;
|
||||
|
||||
/***** Get degrees admin by me from database *****/
|
||||
/*
|
||||
if (Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM)
|
||||
sprintf (Query,"SELECT DegCod,CtrCod,DegTypCod,Status,RequesterUsrCod,"
|
||||
"ShortName,FullName,FirstYear,LastYear,OptYear,WWW"
|
||||
" FROM degrees"
|
||||
" WHERE CtrCod='%ld'"
|
||||
" ORDER BY ShortName",
|
||||
Gbl.CurrentCtr.Ctr.CtrCod);
|
||||
// TODO: put an if to select all degrees for admins of all degrees !!!!!!!!!!!!!
|
||||
else // Gbl.Usrs.Me.LoggedRole == Rol_ROLE_DEG_ADM
|
||||
sprintf (Query,"SELECT degrees.DegCod,degrees.CtrCod,degrees.DegTypCod,degrees.Status,degrees.RequesterUsrCod,"
|
||||
"degrees.ShortName,degrees.FullName,degrees.FirstYear,degrees.LastYear,degrees.OptYear,degrees.WWW"
|
||||
" FROM admin,degrees"
|
||||
" WHERE admin.UsrCod='%ld' AND admin.Scope='Deg'"
|
||||
" AND admin.Cod=degrees.DegCod"
|
||||
" ORDER BY degrees.ShortName",
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod);
|
||||
*/
|
||||
if (Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM)
|
||||
sprintf (Query,"SELECT DegCod,CtrCod,DegTypCod,Status,RequesterUsrCod,"
|
||||
"ShortName,FullName,FirstYear,LastYear,WWW"
|
||||
|
@ -2699,12 +2598,6 @@ static void Deg_RecFormRequestOrCreateDeg (unsigned Status)
|
|||
Par_GetParToText ("LastYear",YearStr,2);
|
||||
Deg->LastYear = Deg_ConvStrToYear (YearStr);
|
||||
|
||||
/* Get optional year */
|
||||
/*
|
||||
Par_GetParToText ("OptYear",YN,1);
|
||||
Deg->OptYear = (Str_ConvertToUpperLetter (YN[0]) == 'Y');
|
||||
*/
|
||||
|
||||
/* Get degree WWW */
|
||||
Par_GetParToText ("WWW",Deg->WWW,Cns_MAX_LENGTH_WWW);
|
||||
|
||||
|
@ -2981,7 +2874,6 @@ bool Deg_GetDataOfDegreeByCod (struct Degree *Deg)
|
|||
Deg->FullName[0] = '\0';
|
||||
Deg->FirstYear = 0;
|
||||
Deg->LastYear = 0;
|
||||
// Deg->OptYear = false;
|
||||
Deg->WWW[0] = '\0';
|
||||
Deg->NumCourses = 0;
|
||||
Deg->LstCrss = NULL;
|
||||
|
@ -2989,12 +2881,6 @@ bool Deg_GetDataOfDegreeByCod (struct Degree *Deg)
|
|||
}
|
||||
|
||||
/***** Get data of a degree from database *****/
|
||||
/*
|
||||
sprintf (Query,"SELECT DegCod,CtrCod,DegTypCod,Status,RequesterUsrCod,"
|
||||
"ShortName,FullName,FirstYear,LastYear,OptYear,WWW"
|
||||
" FROM degrees WHERE DegCod ='%ld'",
|
||||
Deg->DegCod);
|
||||
*/
|
||||
sprintf (Query,"SELECT DegCod,CtrCod,DegTypCod,Status,RequesterUsrCod,"
|
||||
"ShortName,FullName,FirstYear,LastYear,WWW"
|
||||
" FROM degrees WHERE DegCod ='%ld'",
|
||||
|
@ -3020,7 +2906,6 @@ bool Deg_GetDataOfDegreeByCod (struct Degree *Deg)
|
|||
Deg->FullName[0] = '\0';
|
||||
Deg->FirstYear = 0;
|
||||
Deg->LastYear = 0;
|
||||
// Deg->OptYear = false;
|
||||
Deg->WWW[0] = '\0';
|
||||
Deg->NumCourses = 0;
|
||||
Deg->LstCrss = NULL;
|
||||
|
@ -3070,11 +2955,6 @@ static void Deg_GetDataOfDegreeFromRow (struct Degree *Deg,MYSQL_ROW row)
|
|||
/***** Get last year (row[8]) *****/
|
||||
Deg->LastYear = Deg_ConvStrToYear (row[8]);
|
||||
|
||||
/***** Get optional year (row[9]) *****/
|
||||
/*
|
||||
Deg->OptYear = (Str_ConvertToUpperLetter (row[9][0]) == 'Y');
|
||||
*/
|
||||
|
||||
/***** Get WWW (row[9]) *****/
|
||||
strcpy (Deg->WWW,row[9]);
|
||||
|
||||
|
@ -3703,46 +3583,6 @@ static void Deg_ChangeDegYear (struct Degree *Deg,Deg_FirstOrLastYear_t FirstOrL
|
|||
Deg_EditDegrees ();
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/******************** Change the optional year of a degree *******************/
|
||||
/*****************************************************************************/
|
||||
/*
|
||||
void Deg_ChangeDegOptYear (void)
|
||||
{
|
||||
extern const char *Txt_The_degree_now_has_a_year_for_optional_courses;
|
||||
extern const char *Txt_The_degree_has_no_longer_a_year_for_optional_courses;
|
||||
struct Degree *Deg;
|
||||
char Query[512];
|
||||
char YN[1+1];
|
||||
|
||||
Deg = &Gbl.Degs.EditingDeg;
|
||||
|
||||
***** Get parameters from form *****
|
||||
* Get degree code *
|
||||
if ((Deg->DegCod = Deg_GetParamOtherDegCod ()) == -1L)
|
||||
Lay_ShowErrorAndExit ("Code of degree is missing.");
|
||||
|
||||
* Get parameter with optional year *
|
||||
Par_GetParToText ("OptYear",YN,1);
|
||||
Deg->OptYear = (Str_ConvertToUpperLetter (YN[0]) == 'Y');
|
||||
|
||||
***** Update optional year in table of degrees *****
|
||||
sprintf (Query,"UPDATE degrees SET OptYear='%c' WHERE DegCod='%ld'",
|
||||
Deg->OptYear ? 'Y' :
|
||||
'N',
|
||||
Deg->DegCod);
|
||||
DB_QueryUPDATE (Query,"can not update the optional year of a degree");
|
||||
|
||||
***** Write message to show the change made *****
|
||||
sprintf (Gbl.Message,"%s",
|
||||
Deg->OptYear ? Txt_The_degree_now_has_a_year_for_optional_courses :
|
||||
Txt_The_degree_has_no_longer_a_year_for_optional_courses);
|
||||
Lay_ShowAlert (Lay_SUCCESS,Gbl.Message);
|
||||
|
||||
***** Show the form again *****
|
||||
Deg_EditDegrees ();
|
||||
}
|
||||
*/
|
||||
/*****************************************************************************/
|
||||
/************************* Change the WWW of a degree ************************/
|
||||
/*****************************************************************************/
|
||||
|
@ -3967,10 +3807,6 @@ unsigned Deg_GetNumDegsWithUsrs (Rol_Role_t Role,const char *SubQuery)
|
|||
|
||||
bool Deg_CheckIfYearIsValidInDeg (unsigned Year,struct Degree *Deg)
|
||||
{
|
||||
/*
|
||||
return (Year == 0 && Deg->OptYear) ||
|
||||
(Year != 0 && Year >= Deg->FirstYear && Year <= Deg->LastYear);
|
||||
*/
|
||||
return (Year == 0) ||
|
||||
(Year != 0 && Year >= Deg->FirstYear && Year <= Deg->LastYear);
|
||||
}
|
||||
|
|
|
@ -78,7 +78,6 @@ struct Degree
|
|||
char FullName[Deg_MAX_LENGTH_DEGREE_FULL_NAME+1]; // Full name of degree
|
||||
unsigned FirstYear;
|
||||
unsigned LastYear;
|
||||
// bool OptYear;
|
||||
char WWW[Cns_MAX_LENGTH_WWW+1];
|
||||
unsigned NumCourses; // Number of courses in the degree
|
||||
struct Course *LstCrss; // List of courses in this degree
|
||||
|
@ -148,7 +147,6 @@ void Deg_ChangeDegreeType (void);
|
|||
void Deg_ChangeDegreeCtr (void);
|
||||
void Deg_ChangeDegFirstYear (void);
|
||||
void Deg_ChangeDegLastYear (void);
|
||||
// void Deg_ChangeDegOptYear (void);
|
||||
void Deg_ChangeDegWWW (void);
|
||||
void Deg_ChangeDegStatus (void);
|
||||
void Deg_RequestLogo (void);
|
||||
|
|
|
@ -871,7 +871,7 @@ static void Exa_ShowExamAnnouncement (long ExaCod,Exa_TypeViewExamAnnouncement_t
|
|||
fprintf (Gbl.F.Out,"</td>" \
|
||||
"</tr>");
|
||||
|
||||
/***** Year (optional, 1º, 2º, 3º, 4º, 5º...) *****/
|
||||
/***** Year (N.A., 1º, 2º, 3º, 4º, 5º...) *****/
|
||||
fprintf (Gbl.F.Out,"<tr>" \
|
||||
"<td class=\"%s RIGHT_TOP\">"
|
||||
"%s:"
|
||||
|
|
|
@ -307,7 +307,6 @@ void Gbl_InitializeGlobals (void)
|
|||
Gbl.Degs.EditingDeg.FullName[0] = '\0';
|
||||
Gbl.Degs.EditingDeg.FirstYear =
|
||||
Gbl.Degs.EditingDeg.LastYear = 0;
|
||||
// Gbl.Degs.EditingDeg.OptYear = false;
|
||||
Gbl.Degs.EditingDeg.WWW[0] = '\0';
|
||||
Gbl.Degs.EditingDeg.NumCourses = 0;
|
||||
Gbl.Degs.EditingDeg.LstCrss = NULL;
|
||||
|
|
|
@ -463,7 +463,7 @@ struct Globals
|
|||
{
|
||||
long CrsCod;
|
||||
char CrsFullName[Cns_MAX_BYTES_STRING+1];
|
||||
unsigned Year; // Number of year (0 (Optional), 1, 2, 3, 4, 5, 6) in the degree
|
||||
unsigned Year; // Number of year (0 (N.A.), 1, 2, 3, 4, 5, 6) in the degree
|
||||
char Session[Cns_MAX_BYTES_STRING+1]; // Exam session is june, september, etc.
|
||||
struct Date CallDate;
|
||||
struct Date ExamDate;
|
||||
|
|
111
swad_text.c
111
swad_text.c
|
@ -7302,28 +7302,7 @@ const char *Txt_DEGREE_With_courses =
|
|||
#elif L==8
|
||||
"Com disciplinas";
|
||||
#endif
|
||||
/*
|
||||
const char *Txt_DEGREE_With_year_for_optional_courses =
|
||||
#if L==0
|
||||
"Con curso de optativas."; // Necessita traduccio
|
||||
#elif L==1
|
||||
"With year for optional courses."; // Need Übersetzung
|
||||
#elif L==2
|
||||
"With year for optional courses.";
|
||||
#elif L==3
|
||||
"La titulación ya no tiene un curso de optativas.";
|
||||
#elif L==4
|
||||
"With year for optional courses."; // Besoin de traduction
|
||||
#elif L==5
|
||||
"La titulación ya no tiene un curso de optativas."; // Okoteve traducción
|
||||
#elif L==6
|
||||
"Con anno per corsi opzionali.";
|
||||
#elif L==7
|
||||
"With year for optional courses."; // Potrzebujesz tlumaczenie
|
||||
#elif L==8
|
||||
"With year for optional courses."; // Necessita de tradução
|
||||
#endif
|
||||
*/
|
||||
|
||||
const char *Txt_DEGREE_Without_courses =
|
||||
#if L==0
|
||||
"Sense assignatures";
|
||||
|
@ -7344,28 +7323,7 @@ const char *Txt_DEGREE_Without_courses =
|
|||
#elif L==8
|
||||
"Sem disciplinas";
|
||||
#endif
|
||||
/*
|
||||
const char *Txt_DEGREE_Without_year_for_optional_courses =
|
||||
#if L==0
|
||||
"Sin curso de optativas."; // Necessita traduccio
|
||||
#elif L==1
|
||||
"Without year for optional courses."; // Need Übersetzung
|
||||
#elif L==2
|
||||
"Without year for optional courses.";
|
||||
#elif L==3
|
||||
"La titulación ya no tiene un curso de optativas.";
|
||||
#elif L==4
|
||||
"Without year for optional courses."; // Besoin de traduction
|
||||
#elif L==5
|
||||
"La titulación ya no tiene un curso de optativas."; // Okoteve traducción
|
||||
#elif L==6
|
||||
"Senza anno per corsi opzionali.";
|
||||
#elif L==7
|
||||
"Without year for optional courses."; // Potrzebujesz tlumaczenie
|
||||
#elif L==8
|
||||
"Without year for optional courses."; // Necessita de tradução
|
||||
#endif
|
||||
*/
|
||||
|
||||
const char *Txt_Degree_X_removed = // Warning: it is very important to include %s in the following sentences
|
||||
#if L==0
|
||||
"Titulación <strong>%s</strong> eliminada."; // Necessita traduccio
|
||||
|
@ -25808,28 +25766,7 @@ const char *Txt_Opening_of_groups =
|
|||
#elif L==8
|
||||
"Opening of groups"; // Necessita de tradução
|
||||
#endif
|
||||
/*
|
||||
const char *Txt_Opt_BR_year = // Year for optional courses
|
||||
#if L==0
|
||||
"¿Cur.<br />opt.?"; // Necessita traduccio
|
||||
#elif L==1
|
||||
"Opt.<br />year?"; // Need Übersetzung
|
||||
#elif L==2
|
||||
"Opt.<br />year?";
|
||||
#elif L==3
|
||||
"¿Cur.<br />opt.?";
|
||||
#elif L==4
|
||||
"Opt.<br />year?"; // Besoin de traduction
|
||||
#elif L==5
|
||||
"¿Cur.<br />opt.?"; // Okoteve traducción
|
||||
#elif L==6
|
||||
"Opz.<br />anno?";
|
||||
#elif L==7
|
||||
"Opt.<br />rok?";
|
||||
#elif L==8
|
||||
"Opt.<br />year?"; // Necessita de tradução
|
||||
#endif
|
||||
*/
|
||||
|
||||
const char *Txt_Option_a_Import_students_from_the_official_lists =
|
||||
#if L==0
|
||||
"Opción a): Obtenga estudiantes de las listas oficiales"; // Necessita traduccio
|
||||
|
@ -39296,48 +39233,6 @@ const char *Txt_The_degree_X_already_exists = // Warning: it is very important t
|
|||
"The degree <strong>%s</strong> already exists."; // Necessita de tradução
|
||||
#endif
|
||||
|
||||
const char *Txt_The_degree_has_no_longer_a_year_for_optional_courses =
|
||||
#if L==0
|
||||
"La titulación ya no tiene un curso de optativas."; // Necessita traduccio
|
||||
#elif L==1
|
||||
"The degree has no longer a year for optional courses."; // Need Übersetzung
|
||||
#elif L==2
|
||||
"The degree has no longer a year for optional courses.";
|
||||
#elif L==3
|
||||
"La titulación ya no tiene un curso de optativas.";
|
||||
#elif L==4
|
||||
"The degree has no longer a year for optional courses."; // Besoin de traduction
|
||||
#elif L==5
|
||||
"La titulación ya no tiene un curso de optativas."; // Okoteve traducción
|
||||
#elif L==6
|
||||
"La laurea non ha un anno più lungo per corsi opzionali.";
|
||||
#elif L==7
|
||||
"The degree has no longer a year for optional courses."; // Potrzebujesz tlumaczenie
|
||||
#elif L==8
|
||||
"The degree has no longer a year for optional courses."; // Necessita de tradução
|
||||
#endif
|
||||
|
||||
const char *Txt_The_degree_now_has_a_year_for_optional_courses =
|
||||
#if L==0
|
||||
"La titulación ahora tiene un curso de optativas."; // Necessita traduccio
|
||||
#elif L==1
|
||||
"The degree now has a year for optional courses."; // Need Übersetzung
|
||||
#elif L==2
|
||||
"The degree now has a year for optional courses.";
|
||||
#elif L==3
|
||||
"La titulación ahora tiene un curso de optativas.";
|
||||
#elif L==4
|
||||
"The degree now has a year for optional courses."; // Besoin de traduction
|
||||
#elif L==5
|
||||
"La titulación ahora tiene un curso de optativas."; // Okoteve traducción
|
||||
#elif L==6
|
||||
"La laurea ora ha un anno per corsi opzionali.";
|
||||
#elif L==7
|
||||
"The degree now has a year for optional courses."; // Potrzebujesz tlumaczenie
|
||||
#elif L==8
|
||||
"The degree now has a year for optional courses."; // Necessita de tradução
|
||||
#endif
|
||||
|
||||
const char *Txt_The_department_X_already_exists = // Warning: it is very important to include %s in the following sentences
|
||||
#if L==0
|
||||
"El departamento <strong>%s</strong> ya existe."; // Necessita traduccio
|
||||
|
|
Loading…
Reference in New Issue