Version 22.104.4: May 04, 2023 Changes in lists. Changes in project edition.

This commit is contained in:
acanas 2023-05-04 20:56:35 +02:00
parent 69af32cbe0
commit 4985df7d78
5 changed files with 154 additions and 145 deletions

View File

@ -2630,7 +2630,8 @@ table.CELLS_PAD_10 > tbody > tr > td {padding:10px;}
display:inline-block;
list-style-type:none;
padding:0;
margin:12px 0;
/* margin:12px 0; */
margin:0;
text-align:left;
vertical-align:middle;
}

View File

@ -629,10 +629,11 @@ TODO: Emilce Barrera Mesa: Podr
TODO: Emilce Barrera Mesa: Mis estudiantes presentan muchas dificultades a la hora de poner la foto porque la plataforma es muy exigente respecto al fondo de la imagen.
*/
#define Log_PLATFORM_VERSION "SWAD 22.104.3 (2023-05-04)"
#define CSS_FILE "swad22.103.css"
#define Log_PLATFORM_VERSION "SWAD 22.104.4 (2023-05-04)"
#define CSS_FILE "swad22.104.4.css"
#define JS_FILE "swad22.49.js"
/*
Version 22.104.4: May 04, 2023 Changes in lists. Changes in project edition. (342853 lines)
Version 22.104.3: May 04, 2023 Changes in project configuration. (338043 lines)
Version 22.104.2: May 04, 2023 Rubrics in project. Changes in input numbers. (338022 lines)
Version 22.104.1: May 04, 2023 Rubrics in project. Code refactoring in file browsers. (338014 lines)

View File

@ -3733,174 +3733,181 @@ static void Prj_PutFormProject (struct Prj_Projects *Projects,
/***** 1. Project members *****/
if (!ItsANewProject) // Existing project
{
Box_BoxTableBegin (NULL,Txt_Members,
NULL,NULL,
NULL,Box_NOT_CLOSABLE,2);
Projects->View = Prj_EDIT_ONE_PROJECT;
for (NumRoleToShow = 0;
NumRoleToShow < Prj_NUM_ROLES_TO_SHOW;
NumRoleToShow++)
Prj_ShowProjectMembersWithARole (Projects,Prj_RolesToShow[NumRoleToShow]);
Box_BoxTableEnd ();
HTM_FIELDSET_Begin ();
HTM_LEYEND (Txt_Members);
HTM_TABLE_BeginWidePadding (2);
Projects->View = Prj_EDIT_ONE_PROJECT;
for (NumRoleToShow = 0;
NumRoleToShow < Prj_NUM_ROLES_TO_SHOW;
NumRoleToShow++)
Prj_ShowProjectMembersWithARole (Projects,Prj_RolesToShow[NumRoleToShow]);
HTM_TABLE_End ();
HTM_FIELDSET_End ();
}
/***** 2. Project data *****/
/* Begin data form */
Frm_BeginForm (ItsANewProject ? ActNewPrj :
ActChgPrj);
Prj_PutCurrentPars (Projects);
HTM_FIELDSET_Begin ();
HTM_LEYEND (Txt_Data);
/* Begin box and table */
Box_BoxTableBegin (NULL,Txt_Data,
NULL,NULL,
NULL,Box_NOT_CLOSABLE,2);
/* Begin data form */
Frm_BeginForm (ItsANewProject ? ActNewPrj :
ActChgPrj);
Prj_PutCurrentPars (Projects);
/* Project title */
HTM_TR_Begin (NULL);
/* Begin table */
HTM_TABLE_BeginWidePadding (2);
/* Label */
Frm_LabelColumn ("RT","Title",Txt_Title);
/* Project title */
HTM_TR_Begin (NULL);
/* Data */
HTM_TD_Begin ("class=\"LT\"");
HTM_INPUT_TEXT ("Title",Prj_MAX_CHARS_TITLE,Projects->Prj.Title,
HTM_DONT_SUBMIT_ON_CHANGE,
"id=\"Title\""
" class=\"TITLE_DESCRIPTION_WIDTH INPUT_%s\""
" required=\"required\"",
The_GetSuffix ());
HTM_TD_End ();
/* Label */
Frm_LabelColumn ("RT","Title",Txt_Title);
HTM_TR_End ();
/* Data */
HTM_TD_Begin ("class=\"LT\"");
HTM_INPUT_TEXT ("Title",Prj_MAX_CHARS_TITLE,Projects->Prj.Title,
HTM_DONT_SUBMIT_ON_CHANGE,
"id=\"Title\""
" class=\"TITLE_DESCRIPTION_WIDTH INPUT_%s\""
" required=\"required\"",
The_GetSuffix ());
HTM_TD_End ();
/* Department */
HTM_TR_Begin (NULL);
HTM_TR_End ();
/* Label */
Frm_LabelColumn ("RT",Par_CodeStr[ParCod_Dpt],Txt_Department);
/* Department */
HTM_TR_Begin (NULL);
/* Data */
HTM_TD_Begin ("class=\"LT\"");
if (asprintf (&SelectClass,"TITLE_DESCRIPTION_WIDTH INPUT_%s",
The_GetSuffix ()) < 0)
Err_NotEnoughMemoryExit ();
Dpt_WriteSelectorDepartment (Gbl.Hierarchy.Ins.InsCod, // Departments in current institution
Projects->Prj.DptCod, // Selected department
Par_CodeStr[ParCod_Dpt], // Parameter name
SelectClass, // Selector class
0, // First option
Txt_Another_department, // Text when no department selected
HTM_DONT_SUBMIT_ON_CHANGE);
free (SelectClass);
HTM_TD_End ();
/* Label */
Frm_LabelColumn ("RT",Par_CodeStr[ParCod_Dpt],Txt_Department);
HTM_TR_End ();
/* Data */
HTM_TD_Begin ("class=\"LT\"");
if (asprintf (&SelectClass,"TITLE_DESCRIPTION_WIDTH INPUT_%s",
The_GetSuffix ()) < 0)
Err_NotEnoughMemoryExit ();
Dpt_WriteSelectorDepartment (Gbl.Hierarchy.Ins.InsCod, // Departments in current institution
Projects->Prj.DptCod, // Selected department
Par_CodeStr[ParCod_Dpt], // Parameter name
SelectClass, // Selector class
0, // First option
Txt_Another_department, // Text when no department selected
HTM_DONT_SUBMIT_ON_CHANGE);
free (SelectClass);
HTM_TD_End ();
/* Assigned? */
HTM_TR_Begin (NULL);
HTM_TR_End ();
HTM_TD_Begin ("class=\"RM FORM_IN_%s\"",The_GetSuffix ());
HTM_TxtColon (Txt_Assigned_QUESTION);
HTM_TD_End ();
/* Assigned? */
HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"LM\"");
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"name=\"Assigned\" class=\"INPUT_%s\"",
The_GetSuffix ());
HTM_OPTION (HTM_Type_STRING,"Y",
Projects->Prj.Assigned == Prj_ASSIGNED, // Selected?
HTM_OPTION_ENABLED,
"%s",Txt_Yes);
HTM_OPTION (HTM_Type_STRING,"N",
Projects->Prj.Assigned == Prj_NONASSIG, // Selected?
HTM_OPTION_ENABLED,
"%s",Txt_No);
HTM_SELECT_End ();
HTM_TD_End ();
HTM_TD_Begin ("class=\"RM FORM_IN_%s\"",The_GetSuffix ());
HTM_TxtColon (Txt_Assigned_QUESTION);
HTM_TD_End ();
HTM_TR_End ();
/* Number of students */
HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"RM FORM_IN_%s\"",The_GetSuffix ());
HTM_TxtColon (Txt_Number_of_students);
HTM_TD_End ();
HTM_TD_Begin ("class=\"LM\"");
HTM_INPUT_LONG ("NumStds",(long) 0,(long) UINT_MAX,(long) Projects->Prj.NumStds,
HTM_DONT_SUBMIT_ON_CHANGE,false,
"class=\"INPUT_%s\"",
The_GetSuffix ());
HTM_TD_End ();
HTM_TR_End ();
/* Proposal */
HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"RM FORM_IN_%s\"",The_GetSuffix ());
HTM_TxtColon (Txt_Proposal);
HTM_TD_End ();
HTM_TD_Begin ("class=\"LM\"");
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"name=\"Proposal\""
" class=\"TITLE_DESCRIPTION_WIDTH INPUT_%s\"",
The_GetSuffix ());
for (Proposal = (Prj_Proposal_t) 0;
Proposal <= (Prj_Proposal_t) (Prj_NUM_PROPOSAL_TYPES - 1);
Proposal++)
{
ProposalUnsigned = (unsigned) Proposal;
HTM_OPTION (HTM_Type_UNSIGNED,&ProposalUnsigned,
Projects->Prj.Proposal == Proposal, // Selected?
HTM_TD_Begin ("class=\"LM\"");
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"name=\"Assigned\" class=\"INPUT_%s\"",
The_GetSuffix ());
HTM_OPTION (HTM_Type_STRING,"Y",
Projects->Prj.Assigned == Prj_ASSIGNED, // Selected?
HTM_OPTION_ENABLED,
"%s",Txt_PROJECT_STATUS[Proposal]);
}
HTM_SELECT_End ();
HTM_TD_End ();
"%s",Txt_Yes);
HTM_OPTION (HTM_Type_STRING,"N",
Projects->Prj.Assigned == Prj_NONASSIG, // Selected?
HTM_OPTION_ENABLED,
"%s",Txt_No);
HTM_SELECT_End ();
HTM_TD_End ();
HTM_TR_End ();
HTM_TR_End ();
/* Description of the project */
Prj_EditOneProjectTxtArea ("Description",Txt_Description,
Projects->Prj.Description,12,
true); // Required
/* Number of students */
HTM_TR_Begin (NULL);
/* Required knowledge to carry out the project */
Prj_EditOneProjectTxtArea ("Knowledge",Txt_Required_knowledge,
Projects->Prj.Knowledge,4,
false); // Not required
HTM_TD_Begin ("class=\"RM FORM_IN_%s\"",The_GetSuffix ());
HTM_TxtColon (Txt_Number_of_students);
HTM_TD_End ();
/* Required materials to carry out the project */
Prj_EditOneProjectTxtArea ("Materials",Txt_Required_materials,
Projects->Prj.Materials,4,
false); // Not required
HTM_TD_Begin ("class=\"LM\"");
HTM_INPUT_LONG ("NumStds",(long) 0,(long) UINT_MAX,(long) Projects->Prj.NumStds,
HTM_DONT_SUBMIT_ON_CHANGE,false,
"class=\"INPUT_%s\"",
The_GetSuffix ());
HTM_TD_End ();
/* URL for additional info */
HTM_TR_Begin (NULL);
HTM_TR_End ();
/* Label */
Frm_LabelColumn ("RT","WWW",Txt_URL);
/* Proposal */
HTM_TR_Begin (NULL);
/* Data */
HTM_TD_Begin ("class=\"LT DAT_%s\"",The_GetSuffix ());
HTM_INPUT_URL ("URL",Projects->Prj.URL,HTM_DONT_SUBMIT_ON_CHANGE,
"class=\"TITLE_DESCRIPTION_WIDTH INPUT_%s\"",
The_GetSuffix ());
HTM_TD_End ();
HTM_TD_Begin ("class=\"RM FORM_IN_%s\"",The_GetSuffix ());
HTM_TxtColon (Txt_Proposal);
HTM_TD_End ();
HTM_TR_End ();
HTM_TD_Begin ("class=\"LM\"");
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"name=\"Proposal\""
" class=\"TITLE_DESCRIPTION_WIDTH INPUT_%s\"",
The_GetSuffix ());
for (Proposal = (Prj_Proposal_t) 0;
Proposal <= (Prj_Proposal_t) (Prj_NUM_PROPOSAL_TYPES - 1);
Proposal++)
{
ProposalUnsigned = (unsigned) Proposal;
HTM_OPTION (HTM_Type_UNSIGNED,&ProposalUnsigned,
Projects->Prj.Proposal == Proposal, // Selected?
HTM_OPTION_ENABLED,
"%s",Txt_PROJECT_STATUS[Proposal]);
}
HTM_SELECT_End ();
HTM_TD_End ();
/* End table, send button and end box */
if (ItsANewProject)
Box_BoxTableWithButtonEnd (Btn_CREATE_BUTTON,Txt_Create_project);
else
Box_BoxTableWithButtonEnd (Btn_CONFIRM_BUTTON,Txt_Save_changes);
HTM_TR_End ();
/* End data form */
Frm_EndForm ();
/* Description of the project */
Prj_EditOneProjectTxtArea ("Description",Txt_Description,
Projects->Prj.Description,12,
true); // Required
/* Required knowledge to carry out the project */
Prj_EditOneProjectTxtArea ("Knowledge",Txt_Required_knowledge,
Projects->Prj.Knowledge,4,
false); // Not required
/* Required materials to carry out the project */
Prj_EditOneProjectTxtArea ("Materials",Txt_Required_materials,
Projects->Prj.Materials,4,
false); // Not required
/* URL for additional info */
HTM_TR_Begin (NULL);
/* Label */
Frm_LabelColumn ("RT","WWW",Txt_URL);
/* Data */
HTM_TD_Begin ("class=\"LT DAT_%s\"",The_GetSuffix ());
HTM_INPUT_URL ("URL",Projects->Prj.URL,HTM_DONT_SUBMIT_ON_CHANGE,
"class=\"TITLE_DESCRIPTION_WIDTH INPUT_%s\"",
The_GetSuffix ());
HTM_TD_End ();
HTM_TR_End ();
/* End table */
HTM_TABLE_End ();
/* Send button */
if (ItsANewProject)
Btn_PutButton (Btn_CREATE_BUTTON,Txt_Create_project);
else
Btn_PutButton (Btn_CONFIRM_BUTTON,Txt_Save_changes);
/* End data form */
Frm_EndForm ();
HTM_FIELDSET_End ();
/***** End project box *****/
Box_BoxEnd ();

View File

@ -42,7 +42,6 @@
#include "swad_global.h"
#include "swad_parameter.h"
#include "swad_parameter_code.h"
#include "swad_project.h"
#include "swad_project_database.h"
#include "swad_resource_database.h"
#include "swad_rubric.h"

View File

@ -27,6 +27,7 @@
/********************************* Headers ***********************************/
/*****************************************************************************/
#include "swad_project.h"
#include "swad_rubric_type.h"
/*****************************************************************************/