Version 17.21

This commit is contained in:
Antonio Cañas Vargas 2017-10-07 22:08:38 +02:00
parent 041faac9ea
commit 2a04ef351d
7 changed files with 156 additions and 157 deletions

View File

@ -948,8 +948,8 @@ CREATE TABLE IF NOT EXISTS projects (
Preassigned ENUM('N','Y') NOT NULL DEFAULT 'N',
NumStds INT NOT NULL DEFAULT 1,
Proposal ENUM('new','modified','unmodified') NOT NULL DEFAULT 'new',
StartTime DATETIME NOT NULL,
EndTime DATETIME NOT NULL,
CreatTime DATETIME NOT NULL,
ModifTime DATETIME NOT NULL,
Title VARCHAR(2047) NOT NULL,
Description TEXT NOT NULL,
Knowledge TEXT NOT NULL,
@ -957,7 +957,9 @@ CREATE TABLE IF NOT EXISTS projects (
URL VARCHAR(255) NOT NULL,
UNIQUE INDEX(PrjCod),
INDEX(CrsCod,Hidden),
INDEX(CrsCod,DptCod));
INDEX(CrsCod,CreatTime),
INDEX(CrsCod,ModifTime),
INDEX(CrsCod,DptCod);
--
-- Table sessions: stores the information of open sessions
--

View File

@ -256,13 +256,27 @@
/****************************** Public constants *****************************/
/*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 17.20.7 (2017-10-07)"
#define Log_PLATFORM_VERSION "SWAD 17.21 (2017-10-07)"
#define CSS_FILE "swad17.0.css"
#define JS_FILE "swad17.17.1.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 17.21: Oct 07, 2017 Start and end dates in projects are replaced by time of creation and time of modification. (233106 lines)
8 changes necessary in database:
ALTER TABLE projects ADD COLUMN CreatTime DATETIME AFTER EndTime;
ALTER TABLE projects ADD COLUMN ModifTime DATETIME AFTER CreatTime;
UPDATE projects SET CreatTime=StartTime;
UPDATE projects SET ModifTime=CreatTime;
ALTER TABLE projects CHANGE COLUMN CreatTime CreatTime DATETIME NOT NULL;
ALTER TABLE projects CHANGE COLUMN ModifTime ModifTime DATETIME NOT NULL;
ALTER TABLE projects ADD INDEX(CrsCod,CreatTime);
ALTER TABLE projects ADD INDEX(CrsCod,ModifTime);
2 more changes necessary in database:
ALTER TABLE projects DROP COLUMN StartTime;
ALTER TABLE projects DROP COLUMN EndTime;
Version 17.20.7: Oct 07, 2017 Only publishers can remove subtrees in project documents. (233105 lines)
Version 17.20.6: Oct 07, 2017 Fixed bug in project documents. (233027 lines)
Version 17.20.5: Oct 07, 2017 Title of project is now a link to show the project and its documents. (233024 lines)

View File

@ -2016,8 +2016,8 @@ mysql> DESCRIBE projects;
| Preassigned | enum('N','Y') | NO | | N | |
| NumStds | int(11) | NO | | 1 | |
| Proposal | enum('new','modified','unmodified') | NO | | new | |
| StartTime | datetime | NO | | NULL | |
| EndTime | datetime | NO | | NULL | |
| CreatTime | datetime | NO | | NULL | |
| ModifTime | datetime | NO | | NULL | |
| Title | varchar(2047) | NO | | NULL | |
| Description | text | NO | | NULL | |
| Knowledge | text | NO | | NULL | |
@ -2034,8 +2034,8 @@ mysql> DESCRIBE projects;
"Preassigned ENUM('N','Y') NOT NULL DEFAULT 'N',"
"NumStds INT NOT NULL DEFAULT 1,"
"Proposal ENUM('new','modified','unmodified') NOT NULL DEFAULT 'new',"
"StartTime DATETIME NOT NULL,"
"EndTime DATETIME NOT NULL,"
"CreatTime DATETIME NOT NULL,"
"ModifTime DATETIME NOT NULL,"
"Title VARCHAR(2047) NOT NULL," // Prj_MAX_BYTES_PROJECT_TITLE
"Description TEXT NOT NULL," // Cns_MAX_BYTES_TEXT
"Knowledge TEXT NOT NULL," // Cns_MAX_BYTES_TEXT
@ -2043,6 +2043,8 @@ mysql> DESCRIBE projects;
"URL VARCHAR(255) NOT NULL," // Cns_MAX_BYTES_WWW
"UNIQUE INDEX(PrjCod),"
"INDEX(CrsCod,Hidden),"
"INDEX(CrsCod,CreatTime),"
"INDEX(CrsCod,ModifTime),"
"INDEX(CrsCod,DptCod))");
/***** Table sessions *****/

View File

@ -3929,18 +3929,25 @@ static void Brw_PutIconsFileBrowser (void)
break;
case Brw_ICON_VIEW:
Ico_PutContextualIconToView (Brw_ActFromAdmToSee[Gbl.FileBrowser.Type],
Brw_PutHiddenParamFullTreeIfSelected);
Brw_PutHiddenParamFullTreeIfSelected);
break;
case Brw_ICON_EDIT:
Ico_PutContextualIconToEdit (Brw_ActFromSeeToAdm[Gbl.FileBrowser.Type],
Brw_PutHiddenParamFullTreeIfSelected);
Brw_PutHiddenParamFullTreeIfSelected);
break;
}
/***** Put icon to show a figure *****/
if (Gbl.FileBrowser.Type != Brw_ADMI_WORKS_CRS &&
Gbl.FileBrowser.Type != Brw_ADMI_ASSIG_CRS)
Brw_PutIconShowFigure ();
switch (Gbl.FileBrowser.Type)
{
case Brw_ADMI_WORKS_CRS:
case Brw_ADMI_ASSIG_CRS:
case Brw_ADMI_DOCUM_PRJ:
break;
default:
Brw_PutIconShowFigure ();
break;
}
}
static void Brw_PutIconShowFigure (void)

View File

@ -60,8 +60,6 @@ typedef enum
Prj_EDIT_ONE_PROJECT,
} Prj_ProjectView_t;
#define Prj_INTERVAL_DEFAULT ((time_t) 365 * (time_t) 24 * (time_t) 60 * (time_t) 60) // 1 year
const Prj_RoleInProject_t Prj_RolesToShow[] =
{
Prj_ROLE_TUT, // Tutor
@ -647,42 +645,38 @@ static void Prj_ShowOneProject (struct Project *Prj,Prj_ProjectView_t ProjectVie
}
fprintf (Gbl.F.Out,"</td>");
/* Start date/time */
/* Creation date/time */
UniqueId++;
fprintf (Gbl.F.Out,"<td id=\"asg_date_start_%u\" class=\"%s LEFT_TOP",
fprintf (Gbl.F.Out,"<td id=\"prj_creat_%u\" class=\"%s LEFT_TOP",
UniqueId,
Prj->Hidden ? (Prj->Open ? "DATE_GREEN_LIGHT" :
"DATE_RED_LIGHT") :
(Prj->Open ? "DATE_GREEN" :
"DATE_RED"));
Prj->Hidden ? "DATE_BLUE_LIGHT" :
"DATE_BLUE");
if (ProjectView == Prj_LIST_PROJECTS)
fprintf (Gbl.F.Out," COLOR%u",Gbl.RowEvenOdd);
fprintf (Gbl.F.Out,"\">"
"<script type=\"text/javascript\">"
"writeLocalDateHMSFromUTC('asg_date_start_%u',%ld,"
"writeLocalDateHMSFromUTC('prj_creat_%u',%ld,"
"%u,'<br />','%s',true,true,0x7);"
"</script>"
"</td>",
UniqueId,Prj->TimeUTC[Dat_START_TIME],
UniqueId,Prj->CreatTime,
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
/* End date/time */
/* Modification date/time */
UniqueId++;
fprintf (Gbl.F.Out,"<td id=\"asg_date_end_%u\" class=\"%s LEFT_TOP",
fprintf (Gbl.F.Out,"<td id=\"prj_modif_%u\" class=\"%s LEFT_TOP",
UniqueId,
Prj->Hidden ? (Prj->Open ? "DATE_GREEN_LIGHT" :
"DATE_RED_LIGHT") :
(Prj->Open ? "DATE_GREEN" :
"DATE_RED"));
Prj->Hidden ? "DATE_BLUE_LIGHT" :
"DATE_BLUE");
if (ProjectView == Prj_LIST_PROJECTS)
fprintf (Gbl.F.Out," COLOR%u",Gbl.RowEvenOdd);
fprintf (Gbl.F.Out,"\">"
"<script type=\"text/javascript\">"
"writeLocalDateHMSFromUTC('asg_date_end_%u',%ld,"
"writeLocalDateHMSFromUTC('prj_modif_%u',%ld,"
"%u,'<br />','%s',true,true,0x7);"
"</script>"
"</td>",
UniqueId,Prj->TimeUTC[Dat_END_TIME],
UniqueId,Prj->ModifTime,
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
/* Project title */
@ -878,36 +872,32 @@ static void Prj_ShowTableAllProjectsOneRow (struct Project *Prj)
/***** Start date/time *****/
UniqueId++;
fprintf (Gbl.F.Out,"<td id=\"asg_date_start_%u\" class=\"LEFT_TOP COLOR%u %s\">"
fprintf (Gbl.F.Out,"<td id=\"prj_creat_%u\" class=\"LEFT_TOP COLOR%u %s\">"
"<script type=\"text/javascript\">"
"writeLocalDateHMSFromUTC('asg_date_start_%u',%ld,"
"writeLocalDateHMSFromUTC('prj_creat_%u',%ld,"
"%u,'<br />','%s',true,true,0x7);"
"</script>"
"</td>",
UniqueId,
Gbl.RowEvenOdd,
Prj->Hidden ? (Prj->Open ? "DATE_GREEN_LIGHT" :
"DATE_RED_LIGHT") :
(Prj->Open ? "DATE_GREEN" :
"DATE_RED"),
UniqueId,Prj->TimeUTC[Dat_START_TIME],
Prj->Hidden ? "DATE_BLUE_LIGHT" :
"DATE_BLUE",
UniqueId,Prj->CreatTime,
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
/***** End date/time *****/
UniqueId++;
fprintf (Gbl.F.Out,"<td id=\"asg_date_end_%u\" class=\"LEFT_TOP COLOR%u %s\">"
fprintf (Gbl.F.Out,"<td id=\"prj_modif_%u\" class=\"LEFT_TOP COLOR%u %s\">"
"<script type=\"text/javascript\">"
"writeLocalDateHMSFromUTC('asg_date_end_%u',%ld,"
"writeLocalDateHMSFromUTC('prj_modif_%u',%ld,"
"%u,'<br />','%s',true,true,0x7);"
"</script>"
"</td>",
UniqueId,
Gbl.RowEvenOdd,
Prj->Hidden ? (Prj->Open ? "DATE_GREEN_LIGHT" :
"DATE_RED_LIGHT") :
(Prj->Open ? "DATE_GREEN" :
"DATE_RED"),
UniqueId,Prj->TimeUTC[Dat_END_TIME],
Prj->Hidden ? "DATE_BLUE_LIGHT" :
"DATE_BLUE",
UniqueId,Prj->ModifTime,
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
/***** Project title *****/
@ -1905,24 +1895,24 @@ void Prj_GetListProjects (void)
switch (Gbl.Prjs.SelectedOrder)
{
case Prj_ORDER_START_TIME:
sprintf (OrderBySubQuery,"projects.StartTime DESC,"
"projects.EndTime DESC,"
sprintf (OrderBySubQuery,"projects.CreatTime DESC,"
"projects.ModifTime DESC,"
"projects.Title");
break;
case Prj_ORDER_END_TIME:
sprintf (OrderBySubQuery,"projects.EndTime DESC,"
"projects.StartTime DESC,"
sprintf (OrderBySubQuery,"projects.ModifTime DESC,"
"projects.CreatTime DESC,"
"projects.Title");
break;
case Prj_ORDER_TITLE:
sprintf (OrderBySubQuery,"projects.Title,"
"projects.StartTime DESC,"
"projects.EndTime DESC");
"projects.CreatTime DESC,"
"projects.ModifTime DESC");
break;
case Prj_ORDER_DEPARTMENT:
sprintf (OrderBySubQuery,"departments.FullName,"
"projects.StartTime DESC,"
"projects.EndTime DESC,"
"projects.CreatTime DESC,"
"projects.ModifTime DESC,"
"projects.Title");
break;
}
@ -2054,9 +2044,8 @@ void Prj_GetDataOfProjectByCod (struct Project *Prj)
{
/***** Build query *****/
sprintf (Query,"SELECT PrjCod,CrsCod,DptCod,Hidden,Preassigned,NumStds,Proposal,"
"UNIX_TIMESTAMP(StartTime),"
"UNIX_TIMESTAMP(EndTime),"
"NOW() BETWEEN StartTime AND EndTime,"
"UNIX_TIMESTAMP(CreatTime),"
"UNIX_TIMESTAMP(ModifTime),"
"Title,Description,Knowledge,Materials,URL"
" FROM projects"
" WHERE PrjCod=%ld AND CrsCod=%ld",
@ -2069,14 +2058,13 @@ void Prj_GetDataOfProjectByCod (struct Project *Prj)
row[ 4]: Preassigned
row[ 5]: NumStds
row[ 6]: Proposal
row[ 7]: UNIX_TIMESTAMP(StartTime)
row[ 8]: UNIX_TIMESTAMP(EndTime)
row[ 9]: NOW() BETWEEN StartTime AND EndTime
row[10]: Title
row[11]: Description
row[12]: Knowledge
row[13]: Materials
row[14]: URL
row[ 7]: UNIX_TIMESTAMP(CreatTime)
row[ 8]: UNIX_TIMESTAMP(ModifTime)
row[ 9]: Title
row[10]: Description
row[11]: Knowledge
row[12]: Materials
row[13]: URL
*/
/***** Get data of project *****/
@ -2117,14 +2105,13 @@ static void Prj_GetDataOfProject (struct Project *Prj,const char *Query)
row[ 4]: Preassigned
row[ 5]: NumStds
row[ 6]: Proposal
row[ 7]: UNIX_TIMESTAMP(StartTime)
row[ 8]: UNIX_TIMESTAMP(EndTime)
row[ 9]: NOW() BETWEEN StartTime AND EndTime
row[10]: Title
row[11]: Description
row[12]: Knowledge
row[13]: Materials
row[14]: URL
row[ 7]: UNIX_TIMESTAMP(CreatTime)
row[ 8]: UNIX_TIMESTAMP(ModifTime)
row[ 9]: Title
row[10]: Description
row[11]: Knowledge
row[12]: Materials
row[13]: URL
*/
/* Get code of the project (row[0]) */
@ -2161,33 +2148,30 @@ static void Prj_GetDataOfProject (struct Project *Prj,const char *Query)
break;
}
/* Get start date (row[7] holds the start UTC time) */
Prj->TimeUTC[Dat_START_TIME] = Dat_GetUNIXTimeFromStr (row[7]);
/* Get creation date/time (row[7] holds the creation UTC time) */
Prj->CreatTime = Dat_GetUNIXTimeFromStr (row[7]);
/* Get end date (row[8] holds the end UTC time) */
Prj->TimeUTC[Dat_END_TIME ] = Dat_GetUNIXTimeFromStr (row[8]);
/* Get modification date/time (row[8] holds the modification UTC time) */
Prj->ModifTime = Dat_GetUNIXTimeFromStr (row[8]);
/* Get whether the project is open or closed (row[9]) */
Prj->Open = (row[9][0] == '1');
/* Get the title of the project (row[10]) */
Str_Copy (Prj->Title,row[10],
/* Get the title of the project (row[9]) */
Str_Copy (Prj->Title,row[9],
Prj_MAX_BYTES_PROJECT_TITLE);
/* Get the description of the project (row[11]) */
Str_Copy (Prj->Description,row[11],
/* Get the description of the project (row[10]) */
Str_Copy (Prj->Description,row[10],
Cns_MAX_BYTES_TEXT);
/* Get the required knowledge for the project (row[12]) */
Str_Copy (Prj->Knowledge,row[12],
/* Get the required knowledge for the project (row[11]) */
Str_Copy (Prj->Knowledge,row[11],
Cns_MAX_BYTES_TEXT);
/* Get the required materials for the project (row[13]) */
Str_Copy (Prj->Materials,row[13],
/* Get the required materials for the project (row[12]) */
Str_Copy (Prj->Materials,row[12],
Cns_MAX_BYTES_TEXT);
/* Get the URL of the project (row[14]) */
Str_Copy (Prj->URL,row[14],
/* Get the URL of the project (row[13]) */
Str_Copy (Prj->URL,row[13],
Cns_MAX_BYTES_WWW);
}
@ -2208,9 +2192,8 @@ static void Prj_ResetProject (struct Project *Prj)
Prj->Preassigned = Prj_PREASSIGNED_DEFAULT;
Prj->NumStds = 1;
Prj->Proposal = Prj_PROPOSAL_DEFAULT;
Prj->TimeUTC[Dat_START_TIME] =
Prj->TimeUTC[Dat_END_TIME ] = (time_t) 0;
Prj->Open = false;
Prj->CreatTime =
Prj->ModifTime = (time_t) 0;
Prj->Title[0] = '\0';
Prj->DptCod = -1L; // Unknown department
Prj->Description[0] = '\0';
@ -2483,10 +2466,8 @@ static void Prj_RequestCreatOrEditPrj (long PrjCod)
{
/* Initialize to empty project */
Prj_ResetProject (&Prj);
Prj.TimeUTC[Dat_START_TIME] = Gbl.StartExecutionTimeUTC;
Prj.TimeUTC[Dat_END_TIME ] = Gbl.StartExecutionTimeUTC +
Prj_INTERVAL_DEFAULT;
Prj.Open = true;
Prj.CreatTime = Gbl.StartExecutionTimeUTC;
Prj.ModifTime = Gbl.StartExecutionTimeUTC;
Prj.DptCod = Gbl.Usrs.Me.UsrDat.Tch.DptCod; // Default: my department
}
else
@ -2583,9 +2564,6 @@ static void Prj_PutFormProject (struct Project *Prj,bool ItsANewProject)
The_ClassForm[Gbl.Prefs.Theme],Txt_Title,
Prj_MAX_CHARS_PROJECT_TITLE,Prj->Title);
/* Project start and end dates */
Dat_PutFormStartEndClientLocalDateTimes (Prj->TimeUTC,Dat_FORM_SECONDS_ON);
/* Department */
fprintf (Gbl.F.Out,"<tr>"
"<td class=\"RIGHT_MIDDLE\">"
@ -2804,10 +2782,6 @@ void Prj_RecFormProject (void)
if (ICanEditProject)
{
/* Get start/end date-times */
Prj.TimeUTC[Dat_START_TIME] = Dat_GetTimeUTCFromForm ("StartTimeUTC");
Prj.TimeUTC[Dat_END_TIME ] = Dat_GetTimeUTCFromForm ("EndTimeUTC" );
/* Get project title */
Par_GetParToText ("Title",Prj.Title,Prj_MAX_BYTES_PROJECT_TITLE);
@ -2840,13 +2814,6 @@ void Prj_RecFormProject (void)
/* Get degree WWW */
Par_GetParToText ("URL",Prj.URL,Cns_MAX_BYTES_WWW);
/***** Adjust dates *****/
if (Prj.TimeUTC[Dat_START_TIME] == 0)
Prj.TimeUTC[Dat_START_TIME] = Gbl.StartExecutionTimeUTC;
if (Prj.TimeUTC[Dat_END_TIME] == 0)
Prj.TimeUTC[Dat_END_TIME] = Prj.TimeUTC[Dat_START_TIME] +
Prj_INTERVAL_DEFAULT;
/***** Check if title is correct *****/
if (!Prj.Title[0]) // If there is not a project title
{
@ -2859,17 +2826,19 @@ void Prj_RecFormProject (void)
{
if (ItsANewProject)
{
/* Create project */
Prj_CreateProject (&Prj); // Add new project to database
/***** Write success message *****/
/* Write success message */
sprintf (Gbl.Alert.Txt,Txt_Created_new_project_X,Prj.Title);
Ale_ShowAlert (Ale_SUCCESS,Gbl.Alert.Txt);
}
else if (NewProjectIsCorrect)
{
/* Update project */
Prj_UpdateProject (&Prj);
/***** Write success message *****/
/* Write success message */
Ale_ShowAlert (Ale_SUCCESS,Txt_The_project_has_been_modified);
}
}
@ -2897,10 +2866,14 @@ static void Prj_CreateProject (struct Project *Prj)
Cns_MAX_BYTES_TEXT * 3 +
Cns_MAX_BYTES_WWW];
/***** Set dates to now *****/
Prj->CreatTime =
Prj->ModifTime = Gbl.StartExecutionTimeUTC;
/***** Create a new project *****/
sprintf (Query,"INSERT INTO projects"
" (CrsCod,DptCod,Hidden,Preassigned,NumStds,Proposal,"
"StartTime,EndTime,"
"CreatTime,ModifTime,"
"Title,Description,Knowledge,Materials,URL)"
" VALUES"
" (%ld,%ld,'%c','%c',%u,'%s',"
@ -2914,8 +2887,8 @@ static void Prj_CreateProject (struct Project *Prj)
'N',
Prj->NumStds,
Prj_Proposal_DB[Prj->Proposal],
Prj->TimeUTC[Dat_START_TIME],
Prj->TimeUTC[Dat_END_TIME ],
Prj->CreatTime,
Prj->ModifTime,
Prj->Title,
Prj->Description,
Prj->Knowledge,
@ -2945,11 +2918,13 @@ static void Prj_UpdateProject (struct Project *Prj)
Cns_MAX_BYTES_TEXT*3 +
Cns_MAX_BYTES_WWW];
/***** Adjust date of last edition to now *****/
Prj->ModifTime = Gbl.StartExecutionTimeUTC;
/***** Update the data of the project *****/
sprintf (Query,"UPDATE projects SET "
"DptCod=%ld,Hidden='%c',Preassigned='%c',NumStds=%u,Proposal='%s',"
"StartTime=FROM_UNIXTIME(%ld),"
"EndTime=FROM_UNIXTIME(%ld),"
"ModifTime=FROM_UNIXTIME(%ld),"
"Title='%s',"
"Description='%s',Knowledge='%s',Materials='%s',URL='%s'"
" WHERE PrjCod=%ld AND CrsCod=%ld",
@ -2960,8 +2935,7 @@ static void Prj_UpdateProject (struct Project *Prj)
'N',
Prj->NumStds,
Prj_Proposal_DB[Prj->Proposal],
Prj->TimeUTC[Dat_START_TIME],
Prj->TimeUTC[Dat_END_TIME ],
Prj->ModifTime,
Prj->Title,
Prj->Description,
Prj->Knowledge,

View File

@ -75,8 +75,8 @@ struct Project
Prj_Preassigned_t Preassigned;
unsigned NumStds;
Prj_Proposal_t Proposal;
time_t TimeUTC[Dat_NUM_START_END_TIME];
bool Open;
time_t CreatTime;
time_t ModifTime;
char Title[Prj_MAX_BYTES_PROJECT_TITLE + 1];
long DptCod;
char *Description;

View File

@ -30919,44 +30919,44 @@ const char *Txt_PROJECT_ORDER[Prj_NUM_ORDERS] =
{
// Prj_ORDER_START_TIME
#if L==1
"Inici"
"Data de creaci&oacute;"
#elif L==2
"Start"
"Datum der Erstellung"
#elif L==3
"Start"
"Date of creation"
#elif L==4
"Inicio"
"Fecha de creaci&oacute;n"
#elif L==5
"D&eacute;but"
"Date de cr&eacute;ation"
#elif L==6
"&Ntilde;epyr&utilde;"
"Fecha de creaci&oacute;n" // Okoteve traducción
#elif L==7
"Inizio"
"Data di creazione"
#elif L==8
"Pocz&aogon;tek"
"Data utworzenia"
#elif L==9
"In&iacute;cio"
"Data da cria&ccedil;&atilde;o"
#endif
,
// Prj_ORDER_END_TIME
#if L==1
"Final"
"&Uacute;ltima edici&oacute;"
#elif L==2
"Ende"
"Letzte Ausgabe"
#elif L==3
"End"
"Last edition"
#elif L==4
"Final"
"&Uacute;ltima edici&oacute;n"
#elif L==5
"Fin"
"Derni&egrave;re &eacute;dition"
#elif L==6
"Paha"
"&Uacute;ltima edici&oacute;n" // Okoteve traducción
#elif L==7
"Fine"
"Ultima edizione"
#elif L==8
"Koniec"
"Ostatnie wydanie"
#elif L==9
"Fim"
"&Uacute;ltima edi&ccedil;&atilde;o"
#endif
,
// Prj_ORDER_TITLE
@ -31006,44 +31006,44 @@ const char *Txt_PROJECT_ORDER_HELP[Prj_NUM_ORDERS] =
{
// Prj_ORDER_START_TIME
#if L==1
"Ordenar per data de comen&ccedil;ament"
"Ordenar per data de creaci&oacute;"
#elif L==2
"Sortieren nach Startdatum"
"Sortieren nach Erstellungsdatum"
#elif L==3
"Sort by start date"
"Sort by date of creation"
#elif L==4
"Ordenar por fecha de comienzo"
"Ordenar por fecha de creaci&oacute;n"
#elif L==5
"Trier par date de d&eacute;but"
"Trier par date de cr&eacute;ation"
#elif L==6
"Ordenar por fecha de comienzo" // Okoteve traducción
"Ordenar por fecha de creaci&oacute;n" // Okoteve traducción
#elif L==7
"Ordina per data di inizio"
"Ordina per data di creazione"
#elif L==8
"Sortuj wedlug daty rozpoczecia"
"Sortuj wed&lstrok;ug daty utworzenia"
#elif L==9
"Classificar por data de in&iacute;cio"
"Classificar por data de cria&ccedil;&atilde;o"
#endif
,
// Prj_ORDER_END_TIME
#if L==1
"Ordenar per data de finalitzaci&oacute;"
"Ordenar per data de l'&uacute;ltima edici&oacute;"
#elif L==2
"Sortieren nach Enddatum"
"Sortieren nach letzten Ausgabe"
#elif L==3
"Sort by end date"
"Sort by date of last edition"
#elif L==4
"Ordenar por fecha de finalizaci&oacute;n"
"Ordenar por fecha de &uacute;ltima edici&oacute;n"
#elif L==5
"Trier par date de fin"
"Trier par date de derni&egrave;re &eacute;dition"
#elif L==6
"Ordenar por fecha de finalizaci&oacute;n" // Okoteve traducción
"Ordenar por fecha de &uacute;ltima edici&oacute;n" // Okoteve traducción
#elif L==7
"Ordina per data di fine"
"Ordina per data dell'ultima edizione"
#elif L==8
"Sortuj wedlug daty zakonczenia"
"Sortuj wed&lstrok;ug daty ostatniej edycji"
#elif L==9
"Classificar por data de t&eacute;rmino"
"Classificar por data da &uacute;ltima edi&ccedil;&atilde;o"
#endif
,
// Prj_ORDER_TITLE