mirror of https://github.com/acanas/swad-core.git
Version19.37
This commit is contained in:
parent
65fdd65f53
commit
c0d40cb834
|
@ -487,14 +487,15 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - *
|
|||
En OpenSWAD:
|
||||
ps2pdf source.ps destination.pdf
|
||||
*/
|
||||
#define Log_PLATFORM_VERSION "SWAD 19.36 (2019-10-15)"
|
||||
#define Log_PLATFORM_VERSION "SWAD 19.37 (2019-10-16)"
|
||||
#define CSS_FILE "swad19.36.css"
|
||||
#define JS_FILE "swad19.35.js"
|
||||
/*
|
||||
// TODO: Perico: poner un candado de bloqueo de creación/edición de proyectos (por ejemplo en asignaturas obsoletas)
|
||||
// TODO: Hacer un nuevo rol en los TFG: tutor externo (profesor de áreas no vinculadas con el centro, profesionales de empresas, etc.)
|
||||
|
||||
Version 19.36: Oct 15, 2019 Some CSS styles converted to CSS classes. (245424 lines)
|
||||
Version 19.37: Oct 16, 2019 New filter to select projects with problems. Not yet filtered. (245543 lines)
|
||||
Version 19.36: Oct 16, 2019 Some CSS styles converted to CSS classes. (245424 lines)
|
||||
Version 19.35: Oct 15, 2019 Changes in CSS. (245373 lines)
|
||||
Version 19.34.2: Oct 14, 2019 Fixed bug in IDs.
|
||||
Fixed bug in timetable.
|
||||
|
|
|
@ -61,6 +61,7 @@ extern struct Globals Gbl;
|
|||
#define Prj_PARAM_MY__ALL_NAME "My_All"
|
||||
#define Prj_PARAM_PRE_NON_NAME "PreNon"
|
||||
#define Prj_PARAM_HID_VIS_NAME "HidVis"
|
||||
#define Prj_PARAM_FAULTIN_NAME "Faulti"
|
||||
|
||||
/***** Type of view when writing one project *****/
|
||||
typedef enum
|
||||
|
@ -121,16 +122,19 @@ static void Prj_ShowProjectsInCurrentPage (void);
|
|||
static void Prj_ShowFormToFilterByMy_All (void);
|
||||
static void Prj_ShowFormToFilterByPreassignedNonPreassig (void);
|
||||
static void Prj_ShowFormToFilterByHidden (void);
|
||||
static void Prj_ShowFormToFilterByWarning (void);
|
||||
static void Prj_ShowFormToFilterByDpt (void);
|
||||
|
||||
static void Prj_PutCurrentParams (void);
|
||||
static void Prj_PutHiddenParamMy_All (Prj_WhoseProjects_t My_All);
|
||||
static void Prj_PutHiddenParamPreNon (unsigned PreNon);
|
||||
static void Prj_PutHiddenParamHidVis (unsigned HidVis);
|
||||
static void Prj_PutHiddenParamFaulti (unsigned Faulti);
|
||||
static void Prj_PutHiddenParamDptCod (long DptCod);
|
||||
static void Prj_GetHiddenParamMy_All (void);
|
||||
static void Prj_GetHiddenParamPreNon (void);
|
||||
static void Prj_GetHiddenParamHidVis (void);
|
||||
static void Prj_GetHiddenParamFaulti (void);
|
||||
static void Prj_GetHiddenParamDptCod (void);
|
||||
static void Prj_GetParams (void);
|
||||
|
||||
|
@ -312,7 +316,9 @@ static void Prj_ShowProjectsInCurrentPage (void)
|
|||
default: // Students will see only visible projects
|
||||
break;
|
||||
}
|
||||
Prj_ShowFormToFilterByWarning ();
|
||||
Set_EndSettingsHead ();
|
||||
|
||||
/* 2nd. row */
|
||||
Prj_ShowFormToFilterByDpt ();
|
||||
|
||||
|
@ -411,6 +417,7 @@ static void Prj_ShowFormToFilterByMy_All (void)
|
|||
Filter.My_All = My_All;
|
||||
Filter.PreNon = Gbl.Prjs.Filter.PreNon;
|
||||
Filter.HidVis = Gbl.Prjs.Filter.HidVis;
|
||||
Filter.Faulti = Gbl.Prjs.Filter.Faulti;
|
||||
Filter.DptCod = Gbl.Prjs.Filter.DptCod;
|
||||
Prj_PutParams (&Filter,
|
||||
Gbl.Prjs.SelectedOrder,
|
||||
|
@ -446,6 +453,7 @@ static void Prj_ShowFormToFilterByPreassignedNonPreassig (void)
|
|||
Filter.My_All = Gbl.Prjs.Filter.My_All;
|
||||
Filter.PreNon = Gbl.Prjs.Filter.PreNon ^ (1 << PreNon); // Toggle
|
||||
Filter.HidVis = Gbl.Prjs.Filter.HidVis;
|
||||
Filter.Faulti = Gbl.Prjs.Filter.Faulti;
|
||||
Filter.DptCod = Gbl.Prjs.Filter.DptCod;
|
||||
Prj_PutParams (&Filter,
|
||||
Gbl.Prjs.SelectedOrder,
|
||||
|
@ -486,6 +494,7 @@ static void Prj_ShowFormToFilterByHidden (void)
|
|||
Filter.My_All = Gbl.Prjs.Filter.My_All;
|
||||
Filter.PreNon = Gbl.Prjs.Filter.PreNon;
|
||||
Filter.HidVis = Gbl.Prjs.Filter.HidVis ^ (1 << HidVis); // Toggle
|
||||
Filter.Faulti = Gbl.Prjs.Filter.Faulti;
|
||||
Filter.DptCod = Gbl.Prjs.Filter.DptCod;
|
||||
Prj_PutParams (&Filter,
|
||||
Gbl.Prjs.SelectedOrder,
|
||||
|
@ -499,6 +508,47 @@ static void Prj_ShowFormToFilterByHidden (void)
|
|||
Set_EndOneSettingSelector ();
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/************** Show form to select faulty/faultless projects ****************/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Prj_ShowFormToFilterByWarning (void)
|
||||
{
|
||||
extern const char *Txt_PROJECT_FAULTY_FAULTLESS_PROJECTS[Prj_NUM_FAULTINESS];
|
||||
struct Prj_Filter Filter;
|
||||
Prj_Faultiness_t Faultiness;
|
||||
static const char *FaultinessIcon[Prj_NUM_FAULTINESS] =
|
||||
{
|
||||
"exclamation-triangle.svg", // Prj_FAULTY
|
||||
"check-circle.svg", // Prj_FAULTLESS
|
||||
};
|
||||
|
||||
Set_StartOneSettingSelector ();
|
||||
for (Faultiness = (Prj_Faultiness_t) 0;
|
||||
Faultiness <= (Prj_Faultiness_t) (Prj_NUM_FAULTINESS - 1);
|
||||
Faultiness++)
|
||||
{
|
||||
fprintf (Gbl.F.Out,"<div class=\"%s\">",
|
||||
(Gbl.Prjs.Filter.Faulti & (1 << Faultiness)) ? "PREF_ON" :
|
||||
"PREF_OFF");
|
||||
Frm_StartForm (ActSeePrj);
|
||||
Filter.My_All = Gbl.Prjs.Filter.My_All;
|
||||
Filter.PreNon = Gbl.Prjs.Filter.PreNon;
|
||||
Filter.HidVis = Gbl.Prjs.Filter.HidVis;
|
||||
Filter.Faulti = Gbl.Prjs.Filter.Faulti ^ (1 << Faultiness); // Toggle
|
||||
Filter.DptCod = Gbl.Prjs.Filter.DptCod;
|
||||
Prj_PutParams (&Filter,
|
||||
Gbl.Prjs.SelectedOrder,
|
||||
Gbl.Prjs.CurrentPage,
|
||||
-1L);
|
||||
Ico_PutSettingIconLink (FaultinessIcon[Faultiness],
|
||||
Txt_PROJECT_FAULTY_FAULTLESS_PROJECTS[Faultiness]);
|
||||
Frm_EndForm ();
|
||||
fprintf (Gbl.F.Out,"</div>");
|
||||
}
|
||||
Set_EndOneSettingSelector ();
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/*************** Show form to filter projects by department ******************/
|
||||
/*****************************************************************************/
|
||||
|
@ -514,6 +564,7 @@ static void Prj_ShowFormToFilterByDpt (void)
|
|||
Filter.My_All = Gbl.Prjs.Filter.My_All;
|
||||
Filter.PreNon = Gbl.Prjs.Filter.PreNon;
|
||||
Filter.HidVis = Gbl.Prjs.Filter.HidVis;
|
||||
Filter.Faulti = Gbl.Prjs.Filter.Faulti;
|
||||
Filter.DptCod = Prj_FILTER_DPT_DEFAULT; // Do not put department parameter here
|
||||
Prj_PutParams (&Filter,
|
||||
Gbl.Prjs.SelectedOrder,
|
||||
|
@ -566,6 +617,10 @@ void Prj_PutParams (struct Prj_Filter *Filter,
|
|||
(unsigned) Prj_FILTER_VISIBL_DEFAULT))
|
||||
Prj_PutHiddenParamHidVis (Filter->HidVis);
|
||||
|
||||
if (Filter->Faulti != ((unsigned) Prj_FILTER_FAULTY_DEFAULT |
|
||||
(unsigned) Prj_FILTER_FAULTLESS_DEFAULT))
|
||||
Prj_PutHiddenParamFaulti (Filter->Faulti);
|
||||
|
||||
if (Filter->DptCod != Prj_FILTER_DPT_DEFAULT)
|
||||
Prj_PutHiddenParamDptCod (Filter->DptCod);
|
||||
|
||||
|
@ -605,6 +660,11 @@ static void Prj_PutHiddenParamHidVis (unsigned HidVis)
|
|||
Par_PutHiddenParamUnsigned (Prj_PARAM_HID_VIS_NAME,HidVis);
|
||||
}
|
||||
|
||||
static void Prj_PutHiddenParamFaulti (unsigned Faulti)
|
||||
{
|
||||
Par_PutHiddenParamUnsigned (Prj_PARAM_FAULTIN_NAME,Faulti);
|
||||
}
|
||||
|
||||
static void Prj_PutHiddenParamDptCod (long DptCod)
|
||||
{
|
||||
Par_PutHiddenParamUnsigned (Dpt_PARAM_DPT_COD_NAME,DptCod);
|
||||
|
@ -655,6 +715,16 @@ static void Prj_GetHiddenParamHidVis (void)
|
|||
}
|
||||
}
|
||||
|
||||
static void Prj_GetHiddenParamFaulti (void)
|
||||
{
|
||||
Gbl.Prjs.Filter.Faulti = (unsigned) Par_GetParToUnsignedLong (Prj_PARAM_FAULTIN_NAME,
|
||||
0,
|
||||
(1 << Prj_FAULTY) |
|
||||
(1 << Prj_FAULTLESS),
|
||||
(unsigned) Prj_FILTER_FAULTY_DEFAULT |
|
||||
(unsigned) Prj_FILTER_FAULTLESS_DEFAULT);
|
||||
}
|
||||
|
||||
static void Prj_GetHiddenParamDptCod (void)
|
||||
{
|
||||
Gbl.Prjs.Filter.DptCod = Par_GetParToLong (Dpt_PARAM_DPT_COD_NAME);
|
||||
|
@ -670,6 +740,7 @@ static void Prj_GetParams (void)
|
|||
Prj_GetHiddenParamMy_All ();
|
||||
Prj_GetHiddenParamPreNon ();
|
||||
Prj_GetHiddenParamHidVis ();
|
||||
Prj_GetHiddenParamFaulti ();
|
||||
Prj_GetHiddenParamDptCod ();
|
||||
|
||||
/***** Get order and page *****/
|
||||
|
|
|
@ -76,6 +76,16 @@ typedef enum
|
|||
#define Prj_FILTER_HIDDEN_DEFAULT (1 << Prj_HIDDEN) // on
|
||||
#define Prj_FILTER_VISIBL_DEFAULT (1 << Prj_VISIBL) // on
|
||||
|
||||
/* Faulty/faultless project */
|
||||
#define Prj_NUM_FAULTINESS 2
|
||||
typedef enum
|
||||
{
|
||||
Prj_FAULTY = 0,
|
||||
Prj_FAULTLESS = 1,
|
||||
} Prj_Faultiness_t;
|
||||
#define Prj_FILTER_FAULTY_DEFAULT (1 << Prj_FAULTY) // on
|
||||
#define Prj_FILTER_FAULTLESS_DEFAULT (1 << Prj_FAULTLESS) // on
|
||||
|
||||
/* Project department */
|
||||
#define Prj_FILTER_DPT_DEFAULT -1L // Any department
|
||||
|
||||
|
@ -85,6 +95,7 @@ struct Prj_Filter
|
|||
Prj_WhoseProjects_t My_All; // Show my / all projects
|
||||
unsigned PreNon; // Show preassigned / non preassigned projects
|
||||
unsigned HidVis; // Show hidden / visible projects
|
||||
unsigned Faulti; // Show faulty / faultless projects
|
||||
long DptCod; // Show projects of this department
|
||||
};
|
||||
|
||||
|
|
46
swad_text.c
46
swad_text.c
|
@ -30859,7 +30859,6 @@ const char *Txt_PROJECT_ROLES_PLURAL_abc[Prj_NUM_ROLES_IN_PROJECT] =
|
|||
#endif
|
||||
};
|
||||
|
||||
|
||||
const char *Txt_PROJECT_STATUS[Prj_NUM_PROPOSAL_TYPES] =
|
||||
{
|
||||
#if L==1 // ca // Prj_PROPOSAL_NEW
|
||||
|
@ -30923,6 +30922,51 @@ const char *Txt_PROJECT_STATUS[Prj_NUM_PROPOSAL_TYPES] =
|
|||
#endif
|
||||
};
|
||||
|
||||
const char *Txt_PROJECT_FAULTY_FAULTLESS_PROJECTS[Prj_NUM_FAULTINESS] =
|
||||
{
|
||||
// Prj_FAULTY
|
||||
#if L==1 // ca
|
||||
"Projectes defectuosos"
|
||||
#elif L==2 // de
|
||||
"Fehlerhafte Projekte"
|
||||
#elif L==3 // en
|
||||
"Faulty projects"
|
||||
#elif L==4 // es
|
||||
"Proyectos defectuosos"
|
||||
#elif L==5 // fr
|
||||
"Projets défectueux"
|
||||
#elif L==6 // gn
|
||||
"Proyectos defectuosos" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Progetti difettosi"
|
||||
#elif L==8 // pl
|
||||
"Wadliwe projekty"
|
||||
#elif L==9 // pt
|
||||
"Projetos defeituosos"
|
||||
#endif
|
||||
,
|
||||
// Prj_FAULTLESS
|
||||
#if L==1 // ca
|
||||
"Projectes correctos"
|
||||
#elif L==2 // de
|
||||
"Fehlerfreie Projekte"
|
||||
#elif L==3 // en
|
||||
"Faultless projects"
|
||||
#elif L==4 // es
|
||||
"Proyectos correctos"
|
||||
#elif L==5 // fr
|
||||
"Projets sans faille"
|
||||
#elif L==6 // gn
|
||||
"Proyectos correctos" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Progetti corretti"
|
||||
#elif L==8 // pl
|
||||
"Bezbłędne projekty"
|
||||
#elif L==9 // pt
|
||||
"Projetos sem falhas"
|
||||
#endif
|
||||
};
|
||||
|
||||
const char *Txt_PROJECT_MY_ALL_PROJECTS[Prj_NUM_WHOSE_PROJECTS] =
|
||||
{
|
||||
// Prj_MY__PROJECTS
|
||||
|
|
Loading…
Reference in New Issue