diff --git a/swad_changelog.h b/swad_changelog.h
index 35e1bd6fd..c385fba43 100644
--- a/swad_changelog.h
+++ b/swad_changelog.h
@@ -259,6 +259,7 @@
// 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.2.2: Sep 17, 2017 New option for projects. Not finished. (? lines)
Version 17.2.1: Sep 17, 2017 New option for projects. Not finished. (229884 lines)
Version 17.2: Sep 17, 2017 New option for projects. Not finished. (229575 lines)
12 changes necessary in database:
diff --git a/swad_project.c b/swad_project.c
index 38285bd52..805e61dfb 100644
--- a/swad_project.c
+++ b/swad_project.c
@@ -74,7 +74,7 @@ static void Prj_PutFormToSelectWhichGroupsToShow (void);
static void Prj_ParamsWhichGroupsToShow (void);
static void Prj_ShowOneProject (long PrjCod,bool PrintView);
static void Prj_WritePrjAuthor (struct Project *Prj);
-static void Prj_WriteAssignmentFolder (struct Project *Prj,bool PrintView);
+static void Prj_WriteProjectFolder (struct Project *Prj,bool PrintView);
static void Prj_GetParamPrjOrder (void);
static void Prj_PutFormsToRemEditOnePrj (long PrjCod,bool Hidden);
@@ -190,7 +190,7 @@ static void Prj_PutHeadForSeeing (bool PrintView)
{
extern const char *Txt_START_END_TIME_HELP[Dat_NUM_START_END_TIME];
extern const char *Txt_START_END_TIME[Dat_NUM_START_END_TIME];
- extern const char *Txt_Assignment;
+ extern const char *Txt_Project;
extern const char *Txt_Upload_files_QUESTION;
extern const char *Txt_Folder;
Dat_StartEndTime_t Order;
@@ -234,7 +234,7 @@ static void Prj_PutHeadForSeeing (bool PrintView)
"%s"
""
"",
- Txt_Assignment,
+ Txt_Project,
Txt_Upload_files_QUESTION,
Txt_Folder);
}
@@ -446,7 +446,7 @@ static void Prj_ShowOneProject (long PrjCod,bool PrintView)
fprintf (Gbl.F.Out," COLOR%u",Gbl.RowEvenOdd);
fprintf (Gbl.F.Out,"\">");
if (Prj.SendWork == Prj_SEND_WORK)
- Prj_WriteAssignmentFolder (&Prj,PrintView);
+ Prj_WriteProjectFolder (&Prj,PrintView);
fprintf (Gbl.F.Out,""
"");
@@ -500,7 +500,7 @@ static void Prj_WritePrjAuthor (struct Project *Prj)
/*********************** Write the folder of a project ***********************/
/*****************************************************************************/
-static void Prj_WriteAssignmentFolder (struct Project *Prj,bool PrintView)
+static void Prj_WriteProjectFolder (struct Project *Prj,bool PrintView)
{
extern const char *Txt_Upload_file_or_create_folder_in_FOLDER;
extern const char *Txt_Folder;
@@ -940,7 +940,7 @@ void Prj_ReqRemProject (void)
void Prj_RemoveProject (void)
{
- extern const char *Txt_Assignment_X_removed;
+ extern const char *Txt_Project_X_removed;
char Query[512];
struct Project Prj;
@@ -965,7 +965,7 @@ void Prj_RemoveProject (void)
DB_QueryDELETE (Query,"can not remove project");
/***** Write message to show the change made *****/
- sprintf (Gbl.Alert.Txt,Txt_Assignment_X_removed,
+ sprintf (Gbl.Alert.Txt,Txt_Project_X_removed,
Prj.Title);
Ale_ShowAlert (Ale_SUCCESS,Gbl.Alert.Txt);
@@ -979,7 +979,7 @@ void Prj_RemoveProject (void)
void Prj_HideProject (void)
{
- extern const char *Txt_Assignment_X_is_now_hidden;
+ extern const char *Txt_Project_X_is_now_hidden;
char Query[512];
struct Project Prj;
@@ -997,7 +997,7 @@ void Prj_HideProject (void)
DB_QueryUPDATE (Query,"can not hide project");
/***** Write message to show the change made *****/
- sprintf (Gbl.Alert.Txt,Txt_Assignment_X_is_now_hidden,
+ sprintf (Gbl.Alert.Txt,Txt_Project_X_is_now_hidden,
Prj.Title);
Ale_ShowAlert (Ale_SUCCESS,Gbl.Alert.Txt);
@@ -1011,7 +1011,7 @@ void Prj_HideProject (void)
void Prj_ShowProject (void)
{
- extern const char *Txt_Assignment_X_is_now_visible;
+ extern const char *Txt_Project_X_is_now_visible;
char Query[512];
struct Project Prj;
@@ -1029,7 +1029,7 @@ void Prj_ShowProject (void)
DB_QueryUPDATE (Query,"can not show project");
/***** Write message to show the change made *****/
- sprintf (Gbl.Alert.Txt,Txt_Assignment_X_is_now_visible,
+ sprintf (Gbl.Alert.Txt,Txt_Project_X_is_now_visible,
Prj.Title);
Ale_ShowAlert (Ale_SUCCESS,Gbl.Alert.Txt);
@@ -1070,7 +1070,7 @@ void Prj_RequestCreatOrEditPrj (void)
extern const char *Txt_Create_project;
extern const char *Txt_Save;
struct Project Prj;
- bool ItsANewAssignment;
+ bool ItsANewProject;
char Txt[Cns_MAX_BYTES_TEXT + 1];
/***** Get parameters *****/
@@ -1079,10 +1079,10 @@ void Prj_RequestCreatOrEditPrj (void)
Gbl.Prjs.CurrentPage = Pag_GetParamPagNum (Pag_PROJECTS);
/***** Get the code of the project *****/
- ItsANewAssignment = ((Prj.PrjCod = Prj_GetParamPrjCod ()) == -1L);
+ ItsANewProject = ((Prj.PrjCod = Prj_GetParamPrjCod ()) == -1L);
/***** Get from the database the data of the project *****/
- if (ItsANewAssignment)
+ if (ItsANewProject)
{
/* Initialize to empty project */
Prj.PrjCod = -1L;
@@ -1104,7 +1104,7 @@ void Prj_RequestCreatOrEditPrj (void)
}
/***** Start form *****/
- if (ItsANewAssignment)
+ if (ItsANewProject)
{
Act_FormStart (ActNewPrj);
Gbl.Prjs.PrjCodToEdit = -1L;
@@ -1117,7 +1117,7 @@ void Prj_RequestCreatOrEditPrj (void)
Prj_PutParams ();
/***** Start box and table *****/
- if (ItsANewAssignment)
+ if (ItsANewProject)
Box_StartBoxTable (NULL,Txt_New_project,NULL,
Hlp_ASSESSMENT_Projects_new_project,Box_NOT_CLOSABLE,2);
else
@@ -1167,7 +1167,7 @@ void Prj_RequestCreatOrEditPrj (void)
""
""
@@ -1177,7 +1177,7 @@ void Prj_RequestCreatOrEditPrj (void)
Prj_ShowLstGrpsToEditProject (Prj.PrjCod);
/***** End table, send button and end box *****/
- if (ItsANewAssignment)
+ if (ItsANewProject)
Box_EndBoxTableWithButton (Btn_CREATE_BUTTON,Txt_Create_project);
else
Box_EndBoxTableWithButton (Btn_CONFIRM_BUTTON,Txt_Save);
@@ -1263,15 +1263,15 @@ void Prj_RecFormProject (void)
extern const char *Txt_You_can_not_disable_file_uploading_once_folders_have_been_created;
struct Project OldPrj; // Current assigment data in database
struct Project NewPrj; // Project data received from form
- bool ItsANewAssignment;
- bool NewAssignmentIsCorrect = true;
+ bool ItsANewProject;
+ bool NewProjectIsCorrect = true;
char Txt[Cns_MAX_BYTES_TEXT + 1];
/***** Get the code of the project *****/
NewPrj.PrjCod = Prj_GetParamPrjCod ();
- ItsANewAssignment = (NewPrj.PrjCod < 0);
+ ItsANewProject = (NewPrj.PrjCod < 0);
- if (ItsANewAssignment)
+ if (ItsANewProject)
{
/***** Reset old (current, not existing) project data *****/
OldPrj.PrjCod = -1L;
@@ -1311,7 +1311,7 @@ void Prj_RecFormProject (void)
/* If title of project was in database... */
if (Prj_CheckIfSimilarProjectsExists ("Title",NewPrj.Title,NewPrj.PrjCod))
{
- NewAssignmentIsCorrect = false;
+ NewProjectIsCorrect = false;
sprintf (Gbl.Alert.Txt,Txt_Already_existed_a_project_with_the_title_X,
NewPrj.Title);
Ale_ShowAlert (Ale_WARNING,Gbl.Alert.Txt);
@@ -1324,7 +1324,7 @@ void Prj_RecFormProject (void)
{
if (Prj_CheckIfSimilarProjectsExists ("Folder",NewPrj.Folder,NewPrj.PrjCod)) // If folder of project was in database...
{
- NewAssignmentIsCorrect = false;
+ NewProjectIsCorrect = false;
sprintf (Gbl.Alert.Txt,Txt_Already_existed_a_project_with_the_folder_X,
NewPrj.Folder);
Ale_ShowAlert (Ale_WARNING,Gbl.Alert.Txt);
@@ -1332,7 +1332,7 @@ void Prj_RecFormProject (void)
}
else // Folder name not valid
{
- NewAssignmentIsCorrect = false;
+ NewProjectIsCorrect = false;
Ale_ShowAlert (Ale_WARNING,Gbl.Alert.Txt);
}
}
@@ -1342,7 +1342,7 @@ void Prj_RecFormProject (void)
{
if (Brw_CheckIfExistsFolderAssigmentForAnyUsr (OldPrj.Folder))
{
- NewAssignmentIsCorrect = false;
+ NewProjectIsCorrect = false;
Ale_ShowAlert (Ale_WARNING,Txt_You_can_not_disable_file_uploading_once_folders_have_been_created);
}
}
@@ -1351,17 +1351,17 @@ void Prj_RecFormProject (void)
}
else // If there is not a project title
{
- NewAssignmentIsCorrect = false;
+ NewProjectIsCorrect = false;
Ale_ShowAlert (Ale_WARNING,Txt_You_must_specify_the_title_of_the_project);
}
/***** Create a new project or update an existing one *****/
- if (NewAssignmentIsCorrect)
+ if (NewProjectIsCorrect)
{
/* Get groups for this projects */
Grp_GetParCodsSeveralGrps ();
- if (ItsANewAssignment)
+ if (ItsANewProject)
{
Prj_CreateProject (&NewPrj,Txt); // Add new project to database
@@ -1373,8 +1373,8 @@ void Prj_RecFormProject (void)
{
if (OldPrj.Folder[0] && NewPrj.Folder[0])
if (strcmp (OldPrj.Folder,NewPrj.Folder)) // Folder name has changed
- NewAssignmentIsCorrect = Brw_UpdateFoldersAssigmentsIfExistForAllUsrs (OldPrj.Folder,NewPrj.Folder);
- if (NewAssignmentIsCorrect)
+ NewProjectIsCorrect = Brw_UpdateFoldersAssigmentsIfExistForAllUsrs (OldPrj.Folder,NewPrj.Folder);
+ if (NewProjectIsCorrect)
{
Prj_UpdateProject (&NewPrj,Txt);
@@ -1777,8 +1777,7 @@ unsigned Prj_GetNumCoursesWithProjects (Sco_Scope_t Scope)
/*****************************************************************************/
/************************** Get number of projects ***************************/
/*****************************************************************************/
-// Returns the number of projects
-// in this location (all the platform, current degree or current course)
+// Returns the number of projects in this location
unsigned Prj_GetNumProjects (Sco_Scope_t Scope)
{
diff --git a/swad_text.c b/swad_text.c
index 29ddb7f94..94cdbdd5e 100644
--- a/swad_text.c
+++ b/swad_text.c
@@ -3858,7 +3858,7 @@ const char *Txt_Banner =
const char *Txt_Banner_X_removed = // Warning: it is very important to include %s in the following sentences
#if L==1
- "Banner %s eliminado."; // Necessita traduccio
+ "Banner %s eliminat.";
#elif L==2
"Werbebanner %s entfernt.";
#elif L==3
@@ -3874,7 +3874,7 @@ const char *Txt_Banner_X_removed = // Warning: it is very important to include %
#elif L==8
"Banner %s usuniety.";
#elif L==9
- "Banner %s removed."; // Necessita de tradução
+ "Banner %s removido.";
#endif
const char *Txt_Banners =
@@ -30638,6 +30638,90 @@ const char *Txt_Private_available_to_certain_users_identified =
"Privado, disponível para alguns usuários identificados";
#endif
+const char *Txt_Project =
+#if L==1
+ "Projecte";
+#elif L==2
+ "Projekt";
+#elif L==3
+ "Project";
+#elif L==4
+ "Proyecto";
+#elif L==5
+ "Projet";
+#elif L==6
+ "Proyecto"; // Okoteve traducción
+#elif L==7
+ "Progetto";
+#elif L==8
+ "Projekt";
+#elif L==9
+ "Projeto";
+#endif
+
+const char *Txt_Project_X_is_now_hidden = // Warning: it is very important to include %s in the following sentences
+#if L==1
+ "El projecte %s ara està ocult.";
+#elif L==2
+ "Die Projekt %s ist jetzt ausgeblendet.";
+#elif L==3
+ "Project %s is now hidden.";
+#elif L==4
+ "El proyecto %s ahora está oculto.";
+#elif L==5
+ "Le project %s est maintenant caché.";
+#elif L==6
+ "El proyecto %s ahora está oculto."; // Okoteve traducción
+#elif L==7
+ "Il progetto %s è ora nascosto.";
+#elif L==8
+ "Projekt %s jest ukryte.";
+#elif L==9
+ "O projeto %s é agora oculto.";
+#endif
+
+const char *Txt_Project_X_is_now_visible = // Warning: it is very important to include %s in the following sentences
+#if L==1
+ "El projecte %s ara està visible.";
+#elif L==2
+ "Die Projekt %s ist jetzt sichtbar.";
+#elif L==3
+ "Project %s is now visible.";
+#elif L==4
+ "El proyecto %s ahora está visible.";
+#elif L==5
+ "Le project %s est maintenant visible.";
+#elif L==6
+ "El proyecto %s ahora está visible."; // Okoteve traducción
+#elif L==7
+ "Il progetto %s è ora nascosto.";
+#elif L==8
+ "Projekt %s jest teraz widoczne.";
+#elif L==9
+ "O projeto %s é agora visível.";
+#endif
+
+const char *Txt_Project_X_removed = // Warning: it is very important to include %s in the following sentences
+#if L==1
+ "Projecte %s eliminat.";
+#elif L==2
+ "Projekt %s entfernt.";
+#elif L==3
+ "Project %s removed.";
+#elif L==4
+ "Proyecto %s eliminado.";
+#elif L==5
+ "Projet %s supprimé.";
+#elif L==6
+ "Proyecto %s eliminado."; // Okoteve traducción
+#elif L==7
+ "Progetto %s rimosso.";
+#elif L==8
+ "Projekt %s usuniety.";
+#elif L==9
+ "Projeto %s removido.";
+#endif
+
const char *Txt_Projects =
#if L==1
"Projectes";