Version 23.87: Jul 16, 2024 Changes in layout of project filters.

This commit is contained in:
acanas 2024-07-16 14:59:55 +02:00
parent 3bdb133611
commit eabfd1716f
8 changed files with 324 additions and 224 deletions

View File

@ -241,23 +241,23 @@ static void Agd_ShowFormToSelPast__FutureEvents (const struct Agd_Agenda *Agenda
}; };
Set_BeginOneSettingSelector (); Set_BeginOneSettingSelector ();
for (PstFut = Agd_PAST___EVENTS; for (PstFut = Agd_PAST___EVENTS;
PstFut <= Agd_FUTURE_EVENTS; PstFut <= Agd_FUTURE_EVENTS;
PstFut++) PstFut++)
{ {
Set_BeginPref ((Agenda->Past__FutureEvents & (1 << PstFut))); Set_BeginPref ((Agenda->Past__FutureEvents & (1 << PstFut)));
Frm_BeginForm (ActSeeMyAgd); Frm_BeginForm (ActSeeMyAgd);
Agd_PutParsMyAgenda (Agenda->Past__FutureEvents ^ (1 << PstFut), // Toggle Agd_PutParsMyAgenda (Agenda->Past__FutureEvents ^ (1 << PstFut), // Toggle
Agenda->PrivatPublicEvents, Agenda->PrivatPublicEvents,
Agenda->HiddenVisiblEvents, Agenda->HiddenVisiblEvents,
Agenda->SelectedOrder, Agenda->SelectedOrder,
Agenda->CurrentPage, Agenda->CurrentPage,
-1L); -1L);
Ico_PutSettingIconLink (Icon[PstFut],Ico_BLACK, Ico_PutSettingIconLink (Icon[PstFut],Ico_BLACK,
Txt_AGENDA_PAST___FUTURE_EVENTS[PstFut]); Txt_AGENDA_PAST___FUTURE_EVENTS[PstFut]);
Frm_EndForm (); Frm_EndForm ();
Set_EndPref (); Set_EndPref ();
} }
Set_EndOneSettingSelector (); Set_EndOneSettingSelector ();
} }
@ -280,23 +280,23 @@ static void Agd_ShowFormToSelPrivatPublicEvents (const struct Agd_Agenda *Agenda
}; };
Set_BeginOneSettingSelector (); Set_BeginOneSettingSelector ();
for (PrvPub = Agd_PRIVAT_EVENTS; for (PrvPub = Agd_PRIVAT_EVENTS;
PrvPub <= Agd_PUBLIC_EVENTS; PrvPub <= Agd_PUBLIC_EVENTS;
PrvPub++) PrvPub++)
{ {
Set_BeginPref ((Agenda->PrivatPublicEvents & (1 << PrvPub))); Set_BeginPref ((Agenda->PrivatPublicEvents & (1 << PrvPub)));
Frm_BeginForm (ActSeeMyAgd); Frm_BeginForm (ActSeeMyAgd);
Agd_PutParsMyAgenda (Agenda->Past__FutureEvents, Agd_PutParsMyAgenda (Agenda->Past__FutureEvents,
Agenda->PrivatPublicEvents ^ (1 << PrvPub), // Toggle Agenda->PrivatPublicEvents ^ (1 << PrvPub), // Toggle
Agenda->HiddenVisiblEvents, Agenda->HiddenVisiblEvents,
Agenda->SelectedOrder, Agenda->SelectedOrder,
Agenda->CurrentPage, Agenda->CurrentPage,
-1L); -1L);
Ico_PutSettingIconLink (Icon[PrvPub].Icon,Icon[PrvPub].Color, Ico_PutSettingIconLink (Icon[PrvPub].Icon,Icon[PrvPub].Color,
Txt_AGENDA_PRIVAT_PUBLIC_EVENTS[PrvPub]); Txt_AGENDA_PRIVAT_PUBLIC_EVENTS[PrvPub]);
Frm_EndForm (); Frm_EndForm ();
Set_EndPref (); Set_EndPref ();
} }
Set_EndOneSettingSelector (); Set_EndOneSettingSelector ();
} }
@ -311,24 +311,24 @@ static void Agd_ShowFormToSelHiddenVisiblEvents (const struct Agd_Agenda *Agenda
HidVis_HiddenOrVisible_t HiddenOrVisible; HidVis_HiddenOrVisible_t HiddenOrVisible;
Set_BeginOneSettingSelector (); Set_BeginOneSettingSelector ();
for (HiddenOrVisible = HidVis_HIDDEN; for (HiddenOrVisible = HidVis_HIDDEN;
HiddenOrVisible <= HidVis_VISIBLE; HiddenOrVisible <= HidVis_VISIBLE;
HiddenOrVisible++) HiddenOrVisible++)
{ {
Set_BeginPref ((Agenda->HiddenVisiblEvents & (1 << HiddenOrVisible))); Set_BeginPref ((Agenda->HiddenVisiblEvents & (1 << HiddenOrVisible)));
Frm_BeginForm (ActSeeMyAgd); Frm_BeginForm (ActSeeMyAgd);
Agd_PutParsMyAgenda (Agenda->Past__FutureEvents, Agd_PutParsMyAgenda (Agenda->Past__FutureEvents,
Agenda->PrivatPublicEvents, Agenda->PrivatPublicEvents,
Agenda->HiddenVisiblEvents ^ (1 << HiddenOrVisible), // Toggle Agenda->HiddenVisiblEvents ^ (1 << HiddenOrVisible), // Toggle
Agenda->SelectedOrder, Agenda->SelectedOrder,
Agenda->CurrentPage, Agenda->CurrentPage,
-1L); -1L);
Ico_PutSettingIconLink (Ico_HiddenVisible[HiddenOrVisible].Icon, Ico_PutSettingIconLink (Ico_HiddenVisible[HiddenOrVisible].Icon,
Ico_HiddenVisible[HiddenOrVisible].Color, Ico_HiddenVisible[HiddenOrVisible].Color,
Txt_AGENDA_HIDDEN_VISIBLE_EVENTS[HiddenOrVisible]); Txt_AGENDA_HIDDEN_VISIBLE_EVENTS[HiddenOrVisible]);
Frm_EndForm (); Frm_EndForm ();
Set_EndPref (); Set_EndPref ();
} }
Set_EndOneSettingSelector (); Set_EndOneSettingSelector ();
} }

View File

@ -633,10 +633,11 @@ Me sale este error, no s
"can npt create received message (duplicated entry '243218-2160773' for key 'UsrCod_MsgCod') "can npt create received message (duplicated entry '243218-2160773' for key 'UsrCod_MsgCod')
*/ */
#define Log_PLATFORM_VERSION "SWAD 23.86 (2024-07-15)" #define Log_PLATFORM_VERSION "SWAD 23.87 (2024-07-16)"
#define CSS_FILE "swad23.67.2.css" #define CSS_FILE "swad23.67.2.css"
#define JS_FILE "swad23.79.js" #define JS_FILE "swad23.79.js"
/* /*
Version 23.87: Jul 16, 2024 Changes in layout of project filters. (335321 lines)
Version 23.86: Jul 15, 2024 Fixed bug in list of centers. Version 23.86: Jul 15, 2024 Fixed bug in list of centers.
Changes in selection of users in projects. Changes in selection of users in projects.
Code refactoring in projects. (335225 lines) Code refactoring in projects. (335225 lines)

View File

@ -4295,10 +4295,7 @@ void Grp_ShowFormToSelWhichGrps (Act_Action_t Action,
extern const char *Txt_GROUP_WHICH_GROUPS[2]; extern const char *Txt_GROUP_WHICH_GROUPS[2];
Grp_WhichGroups_t WhichGrps; Grp_WhichGroups_t WhichGrps;
/***** Begin setting selector *****/
Set_BeginOneSettingSelector (); Set_BeginOneSettingSelector ();
/***** Put icons to select which groups *****/
for (WhichGrps = Grp_MY_GROUPS; for (WhichGrps = Grp_MY_GROUPS;
WhichGrps <= Grp_ALL_GROUPS; WhichGrps <= Grp_ALL_GROUPS;
WhichGrps++) WhichGrps++)
@ -4314,8 +4311,6 @@ void Grp_ShowFormToSelWhichGrps (Act_Action_t Action,
Frm_EndForm (); Frm_EndForm ();
Set_EndPref (); Set_EndPref ();
} }
/***** End setting selector *****/
Set_EndOneSettingSelector (); Set_EndOneSettingSelector ();
} }

View File

@ -2542,39 +2542,35 @@ static void Mch_ShowFormColumns (const struct Mch_Match *Match)
"4col.png", // 4 columns "4col.png", // 4 columns
}; };
/***** Begin selector *****/
Set_BeginOneSettingSelector (); Set_BeginOneSettingSelector ();
for (NumCols = 1;
NumCols <= Mch_MAX_COLS;
NumCols++)
{
/* Begin container for this option */
HTM_DIV_Begin ("class=\"%s\"",
(Match->Status.NumCols == NumCols) ? "MCH_NUM_COL_ON" :
"MCH_NUM_COL_OFF");
for (NumCols = 1; /* Begin form */
NumCols <= Mch_MAX_COLS; Frm_BeginForm (ActChgNumColMch);
NumCols++) ParCod_PutPar (ParCod_Mch,Match->MchCod); // Current match being played
{ Mch_PutParNumCols (NumCols); // Number of columns
/* Begin container for this option */
HTM_DIV_Begin ("class=\"%s\"",
(Match->Status.NumCols == NumCols) ? "MCH_NUM_COL_ON" :
"MCH_NUM_COL_OFF");
/* Begin form */ /* Number of columns */
Frm_BeginForm (ActChgNumColMch); if (asprintf (&Title,"%u %s",NumCols,
ParCod_PutPar (ParCod_Mch,Match->MchCod); // Current match being played NumCols == 1 ? Txt_column :
Mch_PutParNumCols (NumCols); // Number of columns Txt_columns) < 0)
Err_NotEnoughMemoryExit ();
Ico_PutSettingIconLink (NumColsIcon[NumCols],Ico_BLACK,Title);
free (Title);
/* Number of columns */ /* End form */
if (asprintf (&Title,"%u %s",NumCols, Frm_EndForm ();
NumCols == 1 ? Txt_column :
Txt_columns) < 0)
Err_NotEnoughMemoryExit ();
Ico_PutSettingIconLink (NumColsIcon[NumCols],Ico_BLACK,Title);
free (Title);
/* End form */ /* End container for this option */
Frm_EndForm (); HTM_DIV_End ();
}
/* End container for this option */
HTM_DIV_End ();
}
/***** End selector *****/
Set_EndOneSettingSelector (); Set_EndOneSettingSelector ();
} }

View File

@ -204,9 +204,9 @@ static void Prj_ShowPrjsInCurrentPage (void *Projects);
static void Prj_ShowFormToFilterByMy_All (const struct Prj_Projects *Projects); static void Prj_ShowFormToFilterByMy_All (const struct Prj_Projects *Projects);
static void Prj_ShowFormToFilterByRoleInPrj (const struct Prj_Projects *Projects); static void Prj_ShowFormToFilterByRoleInPrj (const struct Prj_Projects *Projects);
static void Prj_ShowFormToFilterByAssign (const struct Prj_Projects *Projects); static void Prj_ShowFormToFilterByAssignation (const struct Prj_Projects *Projects);
static void Prj_ShowFormToFilterByHidden (const struct Prj_Projects *Projects); static void Prj_ShowFormToFilterByHidden (const struct Prj_Projects *Projects);
static void Prj_ShowFormToFilterByWarning (const struct Prj_Projects *Projects); static void Prj_ShowFormToFilterByFaultiness (const struct Prj_Projects *Projects);
static void Prj_ShowFormToFilterByReview (const struct Prj_Projects *Projects); static void Prj_ShowFormToFilterByReview (const struct Prj_Projects *Projects);
static void Prj_ShowFormToFilterByDpt (const struct Prj_Projects *Projects); static void Prj_ShowFormToFilterByDpt (const struct Prj_Projects *Projects);
@ -542,12 +542,23 @@ static void Prj_ShowPrjsInCurrentPage (void *Projects)
extern const char *Hlp_ASSESSMENT_Projects; extern const char *Hlp_ASSESSMENT_Projects;
extern const char *Txt_Projects; extern const char *Txt_Projects;
extern const char *Txt_Filters; extern const char *Txt_Filters;
extern const char *Txt_Users;
extern const char *Txt_Roles;
extern const char *Txt_Assignation;
extern const char *Txt_Visibility;
extern const char *Txt_Faultiness;
extern const char *Txt_Review;
extern const char *Txt_Department;
extern const char *Txt_No_projects; extern const char *Txt_No_projects;
struct Pag_Pagination Pagination; struct Pag_Pagination Pagination;
unsigned NumPrj; unsigned NumPrj;
if (Projects) if (Projects)
{ {
/***** Students will see only visible projects *****/
if (Gbl.Usrs.Me.Role.Logged == Rol_STD)
((struct Prj_Projects *) Projects)->Filter.Hidden &= ~(1 << HidVis_HIDDEN);
/***** Get list of projects *****/ /***** Get list of projects *****/
Prj_GetListProjects ((struct Prj_Projects *) Projects); Prj_GetListProjects ((struct Prj_Projects *) Projects);
@ -566,29 +577,81 @@ static void Prj_ShowPrjsInCurrentPage (void *Projects)
HTM_FIELDSET_Begin (NULL); HTM_FIELDSET_Begin (NULL);
HTM_LEGEND (Txt_Filters); HTM_LEGEND (Txt_Filters);
/* 1st. row */ HTM_TABLE_BeginPadding (2);
Set_BeginSettingsHead ();
Prj_ShowFormToFilterByMy_All ((struct Prj_Projects *) Projects); // TODO: Put the following in a loop
Prj_ShowFormToFilterByRoleInPrj ((struct Prj_Projects *) Projects);
Prj_ShowFormToFilterByAssign ((struct Prj_Projects *) Projects);
switch (Gbl.Usrs.Me.Role.Logged)
{
case Rol_NET:
case Rol_TCH:
case Rol_SYS_ADM:
Prj_ShowFormToFilterByHidden ((struct Prj_Projects *) Projects);
break;
default: // Students will see only visible projects
break;
}
Prj_ShowFormToFilterByWarning ((struct Prj_Projects *) Projects);
Prj_ShowFormToFilterByReview ((struct Prj_Projects *) Projects);
Set_EndSettingsHead (); /***** Users *****/
HTM_TR_Begin (NULL);
Frm_LabelColumn ("Frm_C1 RT","",Txt_Users);
HTM_TD_Begin ("class=\"Frm_C2 LT\"");
HTM_LABEL_Begin ("class=\"FORM_IN_%s\"",The_GetSuffix ());
Prj_ShowFormToFilterByMy_All ((struct Prj_Projects *) Projects);
HTM_LABEL_End ();
HTM_TD_End ();
HTM_TR_End ();
/* 2nd. row */ /***** Roles in project *****/
Prj_ShowFormToFilterByDpt ((struct Prj_Projects *) Projects); HTM_TR_Begin (NULL);
Frm_LabelColumn ("Frm_C1 RT","",Txt_Roles);
HTM_TD_Begin ("class=\"Frm_C2 LT\"");
HTM_LABEL_Begin ("class=\"FORM_IN_%s\"",The_GetSuffix ());
Prj_ShowFormToFilterByRoleInPrj ((struct Prj_Projects *) Projects);
HTM_LABEL_End ();
HTM_TD_End ();
HTM_TR_End ();
/***** Assignation to students *****/
HTM_TR_Begin (NULL);
Frm_LabelColumn ("Frm_C1 RT","",Txt_Assignation);
HTM_TD_Begin ("class=\"Frm_C2 LT\"");
HTM_LABEL_Begin ("class=\"FORM_IN_%s\"",The_GetSuffix ());
Prj_ShowFormToFilterByAssignation ((struct Prj_Projects *) Projects);
HTM_LABEL_End ();
HTM_TD_End ();
HTM_TR_End ();
/***** Hidden/visible projects *****/
HTM_TR_Begin (NULL);
Frm_LabelColumn ("Frm_C1 RT","",Txt_Visibility);
HTM_TD_Begin ("class=\"Frm_C2 LT\"");
HTM_LABEL_Begin ("class=\"FORM_IN_%s\"",The_GetSuffix ());
Prj_ShowFormToFilterByHidden ((struct Prj_Projects *) Projects);
HTM_LABEL_End ();
HTM_TD_End ();
HTM_TR_End ();
/***** Faultiness *****/
HTM_TR_Begin (NULL);
Frm_LabelColumn ("Frm_C1 RT","",Txt_Faultiness);
HTM_TD_Begin ("class=\"Frm_C2 LT\"");
HTM_LABEL_Begin ("class=\"FORM_IN_%s\"",The_GetSuffix ());
Prj_ShowFormToFilterByFaultiness ((struct Prj_Projects *) Projects);
HTM_LABEL_End ();
HTM_TD_End ();
HTM_TR_End ();
/***** Review status *****/
HTM_TR_Begin (NULL);
Frm_LabelColumn ("Frm_C1 RT","",Txt_Review);
HTM_TD_Begin ("class=\"Frm_C2 LT\"");
HTM_LABEL_Begin ("class=\"FORM_IN_%s\"",The_GetSuffix ());
Prj_ShowFormToFilterByReview ((struct Prj_Projects *) Projects);
HTM_LABEL_End ();
HTM_TD_End ();
HTM_TR_End ();
/***** Department *****/
HTM_TR_Begin (NULL);
Frm_LabelColumn ("Frm_C1 RT","",Txt_Department);
HTM_TD_Begin ("class=\"Frm_C2 LT\"");
HTM_LABEL_Begin ("class=\"FORM_IN_%s\"",The_GetSuffix ());
Prj_ShowFormToFilterByDpt ((struct Prj_Projects *) Projects);
HTM_LABEL_End ();
HTM_TD_End ();
HTM_TR_End ();
HTM_TABLE_End ();
/* End fieldset */ /* End fieldset */
HTM_FIELDSET_End (); HTM_FIELDSET_End ();
@ -670,7 +733,6 @@ static void Prj_ShowFormToFilterByMy_All (const struct Prj_Projects *Projects)
1 << Usr_WHO_SELECTED | 1 << Usr_WHO_SELECTED |
1 << Usr_WHO_ALL; 1 << Usr_WHO_ALL;
Set_BeginOneSettingSelector ();
for (Who = (Usr_Who_t) 1; for (Who = (Usr_Who_t) 1;
Who <= (Usr_Who_t) (Usr_NUM_WHO - 1); Who <= (Usr_Who_t) (Usr_NUM_WHO - 1);
Who++) Who++)
@ -696,7 +758,6 @@ static void Prj_ShowFormToFilterByMy_All (const struct Prj_Projects *Projects)
Frm_EndForm (); Frm_EndForm ();
Set_EndPref (); Set_EndPref ();
} }
Set_EndOneSettingSelector ();
} }
/*****************************************************************************/ /*****************************************************************************/
@ -709,7 +770,6 @@ static void Prj_ShowFormToFilterByRoleInPrj (const struct Prj_Projects *Projects
struct Prj_Filter Filter; struct Prj_Filter Filter;
Prj_RoleInProject_t RoleInPrj; Prj_RoleInProject_t RoleInPrj;
Set_BeginOneSettingSelector ();
for (RoleInPrj = (Prj_RoleInProject_t) 0; for (RoleInPrj = (Prj_RoleInProject_t) 0;
RoleInPrj <= (Prj_RoleInProject_t) (Prj_NUM_ROLES_IN_PROJECT - 1); RoleInPrj <= (Prj_RoleInProject_t) (Prj_NUM_ROLES_IN_PROJECT - 1);
RoleInPrj++) RoleInPrj++)
@ -729,24 +789,22 @@ static void Prj_ShowFormToFilterByRoleInPrj (const struct Prj_Projects *Projects
-1L, -1L,
Usr_USE_LIST_SELECTED_USERS); Usr_USE_LIST_SELECTED_USERS);
Ico_PutSettingIconLink (RoleIcon[RoleInPrj],Ico_BLACK, Ico_PutSettingIconLink (RoleIcon[RoleInPrj],Ico_BLACK,
Txt_PROJECT_ROLES_SINGUL_Abc[RoleInPrj]); Txt_PROJECT_ROLES_SINGUL_Abc[RoleInPrj]);
Frm_EndForm (); Frm_EndForm ();
Set_EndPref (); Set_EndPref ();
} }
Set_EndOneSettingSelector ();
} }
/*****************************************************************************/ /*****************************************************************************/
/*********** Show form to select assigned / non-assigned projects ************/ /*********** Show form to select assigned / non-assigned projects ************/
/*****************************************************************************/ /*****************************************************************************/
static void Prj_ShowFormToFilterByAssign (const struct Prj_Projects *Projects) static void Prj_ShowFormToFilterByAssignation (const struct Prj_Projects *Projects)
{ {
extern const char *Txt_PROJECT_NONASSIGNED_ASSIGNED_PLURAL[Prj_NUM_ASSIGNED]; extern const char *Txt_PROJECT_NONASSIGNED_ASSIGNED_PLURAL[Prj_NUM_ASSIGNED];
struct Prj_Filter Filter; struct Prj_Filter Filter;
Prj_Assigned_t Assign; Prj_Assigned_t Assign;
Set_BeginOneSettingSelector ();
for (Assign = (Prj_Assigned_t) 0; for (Assign = (Prj_Assigned_t) 0;
Assign <= (Prj_Assigned_t) (Prj_NUM_ASSIGNED - 1); Assign <= (Prj_Assigned_t) (Prj_NUM_ASSIGNED - 1);
Assign++) Assign++)
@ -770,7 +828,6 @@ static void Prj_ShowFormToFilterByAssign (const struct Prj_Projects *Projects)
Frm_EndForm (); Frm_EndForm ();
Set_EndPref (); Set_EndPref ();
} }
Set_EndOneSettingSelector ();
} }
/*****************************************************************************/ /*****************************************************************************/
@ -792,7 +849,6 @@ static void Prj_ShowFormToFilterByHidden (const struct Prj_Projects *Projects)
[HidVis_VISIBLE] = {"eye.svg" ,Ico_GREEN}, [HidVis_VISIBLE] = {"eye.svg" ,Ico_GREEN},
}; };
Set_BeginOneSettingSelector ();
for (HidVis = (HidVis_HiddenOrVisible_t) 0; for (HidVis = (HidVis_HiddenOrVisible_t) 0;
HidVis <= (HidVis_HiddenOrVisible_t) (HidVis_NUM_HIDDEN_VISIBLE - 1); HidVis <= (HidVis_HiddenOrVisible_t) (HidVis_NUM_HIDDEN_VISIBLE - 1);
HidVis++) HidVis++)
@ -817,14 +873,13 @@ static void Prj_ShowFormToFilterByHidden (const struct Prj_Projects *Projects)
Frm_EndForm (); Frm_EndForm ();
Set_EndPref (); Set_EndPref ();
} }
Set_EndOneSettingSelector ();
} }
/*****************************************************************************/ /*****************************************************************************/
/************** Show form to select faulty/faultless projects ****************/ /************** Show form to select faulty/faultless projects ****************/
/*****************************************************************************/ /*****************************************************************************/
static void Prj_ShowFormToFilterByWarning (const struct Prj_Projects *Projects) static void Prj_ShowFormToFilterByFaultiness (const struct Prj_Projects *Projects)
{ {
extern const char *Txt_PROJECT_FAULTY_FAULTLESS_PROJECTS[Prj_NUM_FAULTINESS]; extern const char *Txt_PROJECT_FAULTY_FAULTLESS_PROJECTS[Prj_NUM_FAULTINESS];
struct Prj_Filter Filter; struct Prj_Filter Filter;
@ -839,7 +894,6 @@ static void Prj_ShowFormToFilterByWarning (const struct Prj_Projects *Projects)
[Prj_FAULTLESS] = {"check-circle.svg" ,Ico_GREEN }, [Prj_FAULTLESS] = {"check-circle.svg" ,Ico_GREEN },
}; };
Set_BeginOneSettingSelector ();
for (Faultiness = (Prj_Faultiness_t) 0; for (Faultiness = (Prj_Faultiness_t) 0;
Faultiness <= (Prj_Faultiness_t) (Prj_NUM_FAULTINESS - 1); Faultiness <= (Prj_Faultiness_t) (Prj_NUM_FAULTINESS - 1);
Faultiness++) Faultiness++)
@ -864,7 +918,6 @@ static void Prj_ShowFormToFilterByWarning (const struct Prj_Projects *Projects)
Frm_EndForm (); Frm_EndForm ();
Set_EndPref (); Set_EndPref ();
} }
Set_EndOneSettingSelector ();
} }
/*****************************************************************************/ /*****************************************************************************/
@ -877,7 +930,6 @@ static void Prj_ShowFormToFilterByReview (const struct Prj_Projects *Projects)
struct Prj_Filter Filter; struct Prj_Filter Filter;
Prj_ReviewStatus_t ReviewStatus; Prj_ReviewStatus_t ReviewStatus;
Set_BeginOneSettingSelector ();
for (ReviewStatus = (Prj_ReviewStatus_t) 0; for (ReviewStatus = (Prj_ReviewStatus_t) 0;
ReviewStatus <= (Prj_ReviewStatus_t) (Prj_NUM_REVIEW_STATUS - 1); ReviewStatus <= (Prj_ReviewStatus_t) (Prj_NUM_REVIEW_STATUS - 1);
ReviewStatus++) ReviewStatus++)
@ -902,7 +954,6 @@ static void Prj_ShowFormToFilterByReview (const struct Prj_Projects *Projects)
Frm_EndForm (); Frm_EndForm ();
Set_EndPref (); Set_EndPref ();
} }
Set_EndOneSettingSelector ();
} }
/*****************************************************************************/ /*****************************************************************************/
@ -916,37 +967,34 @@ static void Prj_ShowFormToFilterByDpt (const struct Prj_Projects *Projects)
char *SelectClass; char *SelectClass;
/***** Begin form *****/ /***** Begin form *****/
HTM_DIV_Begin (NULL); Frm_BeginForm (ActSeeAllPrj);
Frm_BeginForm (ActSeeAllPrj); Filter.Who = Projects->Filter.Who;
Filter.Who = Projects->Filter.Who; Filter.RolPrj = Projects->Filter.RolPrj;
Filter.RolPrj = Projects->Filter.RolPrj; Filter.Assign = Projects->Filter.Assign;
Filter.Assign = Projects->Filter.Assign; Filter.Hidden = Projects->Filter.Hidden;
Filter.Hidden = Projects->Filter.Hidden; Filter.Faulti = Projects->Filter.Faulti;
Filter.Faulti = Projects->Filter.Faulti; Filter.Review = Projects->Filter.Review;
Filter.Review = Projects->Filter.Review; Filter.DptCod = Prj_FILTER_DPT_DEFAULT; // Do not put department parameter here
Filter.DptCod = Prj_FILTER_DPT_DEFAULT; // Do not put department parameter here Prj_PutPars (&Filter,
Prj_PutPars (&Filter, Projects->SelectedOrder,
Projects->SelectedOrder, Projects->CurrentPage,
Projects->CurrentPage, -1L,
-1L, Usr_USE_LIST_SELECTED_USERS);
Usr_USE_LIST_SELECTED_USERS);
/***** Write selector with departments *****/ /***** Write selector with departments *****/
if (asprintf (&SelectClass,"Frm_C2_INPUT INPUT_%s", if (asprintf (&SelectClass,"Frm_C2_INPUT INPUT_%s",The_GetSuffix ()) < 0)
The_GetSuffix ()) < 0) Err_NotEnoughMemoryExit ();
Err_NotEnoughMemoryExit (); Dpt_WriteSelectorDepartment (Gbl.Hierarchy.Node[Hie_INS].HieCod, // Departments in current institution
Dpt_WriteSelectorDepartment (Gbl.Hierarchy.Node[Hie_INS].HieCod, // Departments in current institution Projects->Filter.DptCod, // Selected department
Projects->Filter.DptCod, // Selected department Prj_PAR_FILTER_DPT_COD_NAME, // Parameter name
Prj_PAR_FILTER_DPT_COD_NAME, // Parameter name SelectClass, // Selector class
SelectClass, // Selector class -1L, // First option
-1L, // First option Txt_Any_department, // Text when no department selected
Txt_Any_department, // Text when no department selected HTM_SUBMIT_ON_CHANGE);
HTM_SUBMIT_ON_CHANGE); free (SelectClass);
free (SelectClass);
/***** End form *****/ /***** End form *****/
Frm_EndForm (); Frm_EndForm ();
HTM_DIV_End ();
} }
/*****************************************************************************/ /*****************************************************************************/
@ -1169,24 +1217,13 @@ static unsigned Prj_GetParAssign (void)
static unsigned Prj_GetParHidden (void) static unsigned Prj_GetParHidden (void)
{ {
switch (Gbl.Usrs.Me.Role.Logged) return (unsigned)
{ Par_GetParUnsignedLong (Prj_PAR_FILTER_HID_VIS_NAME,
case Rol_STD: // Students can view only visible projects 0,
return (unsigned) (1 << HidVis_VISIBLE); // Only visible projects (1 << HidVis_HIDDEN) |
case Rol_NET: (1 << HidVis_VISIBLE),
case Rol_TCH: (unsigned) Prj_FILTER_HIDDEN_DEFAULT |
case Rol_SYS_ADM: (unsigned) Prj_FILTER_VISIBL_DEFAULT);
return (unsigned)
Par_GetParUnsignedLong (Prj_PAR_FILTER_HID_VIS_NAME,
0,
(1 << HidVis_HIDDEN) |
(1 << HidVis_VISIBLE),
(unsigned) Prj_FILTER_HIDDEN_DEFAULT |
(unsigned) Prj_FILTER_VISIBL_DEFAULT);
default:
Err_WrongRoleExit ();
return Prj_NEW_PRJ_HIDDEN_VISIBL_DEFAULT; // Not reached
}
} }
static unsigned Prj_GetParFaulti (void) static unsigned Prj_GetParFaulti (void)

View File

@ -519,27 +519,6 @@ unsigned Prj_DB_GetListProjects (MYSQL_RES **mysql_res,
case Prj_ORDER_START_TIME: case Prj_ORDER_START_TIME:
case Prj_ORDER_END_TIME: case Prj_ORDER_END_TIME:
case Prj_ORDER_TITLE: case Prj_ORDER_TITLE:
Ale_ShowAlert (Ale_INFO,
"SELECT prj_projects.PrjCod"
" FROM prj_projects LEFT JOIN prj_users"
" ON prj_projects.PrjCod=prj_users.PrjCod"
" WHERE prj_projects.CrsCod=%ld"
"%s"
"%s"
"%s"
"%s"
"%s"
" ORDER BY %s",
Gbl.Hierarchy.Node[Hie_CRS].HieCod,
AssignSubQuery,
HidVisSubQuery,
ReviewSubQuery,
DptCodSubQuery,
RolPrjSubQuery[Projects->Filter.RolPrj],
OrderBySubQuery[Projects->SelectedOrder]);
NumPrjsFromDB = (unsigned) NumPrjsFromDB = (unsigned)
DB_QuerySELECT (mysql_res,"can not get projects", DB_QuerySELECT (mysql_res,"can not get projects",
"SELECT prj_projects.PrjCod" "SELECT prj_projects.PrjCod"

View File

@ -2804,6 +2804,29 @@ const char *Txt_START_END_TIME[Dat_NUM_START_END_TIME] =
#endif #endif
}; };
const char *Txt_Assignation = // Project assigned/non-assigned to students
#if L==1 // ca
"Assignaci&oacute;";
#elif L==2 // de
"Zuweisung";
#elif L==3 // en
"Assignation";
#elif L==4 // es
"Asignaci&oacute;n";
#elif L==5 // fr
"Assignation";
#elif L==6 // gn
"Assignaci&oacute;n"; // Okoteve traducción
#elif L==7 // it
"Assegnazione";
#elif L==8 // pl
"Ustalenie";
#elif L==9 // pt
"Atribui&ccedil;&atilde,o";
#elif L==10 // tr
"Atama";
#endif
const char *Txt_Assignments_area = const char *Txt_Assignments_area =
#if L==1 // ca #if L==1 // ca
"Zona d'activitats"; "Zona d'activitats";
@ -12445,6 +12468,29 @@ const char *Txt_Failed_email_confirmation_key =
"Failed email confirmation key."; // Çeviri lazim! "Failed email confirmation key."; // Çeviri lazim!
#endif #endif
const char *Txt_Faultiness = // In projects
#if L==1 // ca
"Defectuositat";
#elif L==2 // de
"Mangelhaftigkeit";
#elif L==3 // en
"Faultiness";
#elif L==4 // es
"Defectuosos";
#elif L==5 // fr
"D&eacute;fectueux";
#elif L==6 // gn
"Defectuosos"; // Okoteve traducción
#elif L==7 // it
"Difettosi";
#elif L==8 // pl
"Wadliwo&sacute;&cacute;";
#elif L==9 // pt
"Defeituosos";
#elif L==10 // tr
"Kusurlu";
#endif
const char *Txt_Feedback = const char *Txt_Feedback =
#if L==1 // ca #if L==1 // ca
"Realimentaci&oacute;"; "Realimentaci&oacute;";
@ -34775,7 +34821,7 @@ const char *Txt_Review =
#elif L==5 // fr #elif L==5 // fr
"Examen"; "Examen";
#elif L==6 // gn #elif L==6 // gn
"Revisi&oacute;n"; // Okoteve traducción "Hechajey";
#elif L==7 // it #elif L==7 // it
"Revisione"; "Revisione";
#elif L==8 // pl #elif L==8 // pl
@ -34798,7 +34844,7 @@ const char *Txt_Role =
#elif L==5 // fr #elif L==5 // fr
"R&ocirc;le"; "R&ocirc;le";
#elif L==6 // gn #elif L==6 // gn
"Rol"; // Okoteve traducción "Kuatia";
#elif L==7 // it #elif L==7 // it
"Ruolo"; "Ruolo";
#elif L==8 // pl #elif L==8 // pl
@ -34806,7 +34852,30 @@ const char *Txt_Role =
#elif L==9 // pt #elif L==9 // pt
"Papel"; "Papel";
#elif L==10 // tr #elif L==10 // tr
"Role"; // Çeviri lazim! "Rol";
#endif
const char *Txt_Roles =
#if L==1 // ca
"Rols";
#elif L==2 // de
"Rollen";
#elif L==3 // en
"Roles";
#elif L==4 // es
"Roles";
#elif L==5 // fr
"R&ocirc;les";
#elif L==6 // gn
"Kuatia";
#elif L==7 // it
"Ruoli";
#elif L==8 // pl
"Role";
#elif L==9 // pt
"Pap&eacute;is";
#elif L==10 // tr
"Roller";
#endif #endif
const char *Txt_ROLE_STATS[Sta_NUM_ROLES_STAT] = const char *Txt_ROLE_STATS[Sta_NUM_ROLES_STAT] =
@ -56841,6 +56910,29 @@ const char *Txt_View_homework =
"View homework"; // Çeviri lazim! "View homework"; // Çeviri lazim!
#endif #endif
const char *Txt_Visibility =
#if L==1 // ca
"Visibilitat";
#elif L==2 // de
"Sichtweite";
#elif L==3 // en
"Visibility";
#elif L==4 // es
"Visibilidad";
#elif L==5 // fr
"Visibilit&eacute;";
#elif L==6 // gn
"Visibilidad"; // Okoteve traducción
#elif L==7 // it
"Visibilit&agrave;";
#elif L==8 // pl
"Widoczno&sacute;&cacute;";
#elif L==9 // pt
"Visibilidade";
#elif L==10 // tr
"G&ouml;r&uuml;n&uuml;rl&uuml;&gbreve;&uuml;k";
#endif
const char *Txt_Visible = const char *Txt_Visible =
#if L==1 // ca #if L==1 // ca
"Visible"; "Visible";
@ -56853,7 +56945,7 @@ const char *Txt_Visible =
#elif L==5 // fr #elif L==5 // fr
"Visible"; "Visible";
#elif L==6 // gn #elif L==6 // gn
"Visible"; // Okoteve traducción "Ojehecha";
#elif L==7 // it #elif L==7 // it
"Visibile"; "Visibile";
#elif L==8 // pl #elif L==8 // pl

View File

@ -3579,44 +3579,44 @@ void Usr_ShowFormsToSelectUsrListType (Act_Action_t NextAction,
const char *OnSubmit) const char *OnSubmit)
{ {
Set_BeginSettingsHead (); Set_BeginSettingsHead ();
Set_BeginOneSettingSelector (); Set_BeginOneSettingSelector ();
/***** Select Set_USR_LIST_AS_CLASS_PHOTO *****/ /***** Select Set_USR_LIST_AS_CLASS_PHOTO *****/
Set_BeginPref (Gbl.Usrs.Me.ListType == Set_USR_LIST_AS_CLASS_PHOTO); Set_BeginPref (Gbl.Usrs.Me.ListType == Set_USR_LIST_AS_CLASS_PHOTO);
Set_FormToSelectUsrListType (NextAction,FuncPars,Args,OnSubmit, Set_FormToSelectUsrListType (NextAction,FuncPars,Args,OnSubmit,
Set_USR_LIST_AS_CLASS_PHOTO); Set_USR_LIST_AS_CLASS_PHOTO);
/* Number of columns in the class photo */ /* Number of columns in the class photo */
Frm_BeginFormAnchor (NextAction,Usr_USER_LIST_SECTION_ID); Frm_BeginFormAnchor (NextAction,Usr_USER_LIST_SECTION_ID);
Grp_PutParsCodGrps (); Grp_PutParsCodGrps ();
Set_PutParUsrListType (Set_USR_LIST_AS_CLASS_PHOTO); Set_PutParUsrListType (Set_USR_LIST_AS_CLASS_PHOTO);
Set_PutParListWithPhotos (); Set_PutParListWithPhotos ();
Usr_PutSelectorNumColsClassPhoto (); Usr_PutSelectorNumColsClassPhoto ();
if (FuncPars) if (FuncPars)
FuncPars (Args); FuncPars (Args);
Frm_EndForm (); Frm_EndForm ();
Set_EndPref (); Set_EndPref ();
/***** Select Usr_LIST_AS_LISTING *****/ /***** Select Usr_LIST_AS_LISTING *****/
Set_BeginPref (Gbl.Usrs.Me.ListType == Set_USR_LIST_AS_LISTING); Set_BeginPref (Gbl.Usrs.Me.ListType == Set_USR_LIST_AS_LISTING);
Set_FormToSelectUsrListType (NextAction,FuncPars,Args,OnSubmit, Set_FormToSelectUsrListType (NextAction,FuncPars,Args,OnSubmit,
Set_USR_LIST_AS_LISTING); Set_USR_LIST_AS_LISTING);
/* See the photos in list? */ /* See the photos in list? */
Frm_BeginFormAnchor (NextAction,Usr_USER_LIST_SECTION_ID); Frm_BeginFormAnchor (NextAction,Usr_USER_LIST_SECTION_ID);
Grp_PutParsCodGrps (); Grp_PutParsCodGrps ();
Set_PutParUsrListType (Set_USR_LIST_AS_LISTING); Set_PutParUsrListType (Set_USR_LIST_AS_LISTING);
if (FuncPars) if (FuncPars)
FuncPars (Args); FuncPars (Args);
Usr_PutCheckboxListWithPhotos (); Usr_PutCheckboxListWithPhotos ();
Frm_EndForm (); Frm_EndForm ();
Set_EndPref (); Set_EndPref ();
Set_EndOneSettingSelector (); Set_EndOneSettingSelector ();
Set_EndSettingsHead (); Set_EndSettingsHead ();
} }