Version 22.104.2: May 04, 2023 Rubrics in project. Changes in input numbers.

This commit is contained in:
acanas 2023-05-04 09:31:30 +02:00
parent 6a92148fa5
commit 6252a1018b
8 changed files with 120 additions and 115 deletions

View File

@ -1366,7 +1366,8 @@ void HTM_INPUT_LONG (const char *Name,long Min,long Max,long Value,
void HTM_INPUT_FLOAT (const char *Name,double Min,double Max,
double Step, // Use 0 for "any"
double Value,bool Disabled,
double Value,
HTM_SubmitOnChange_t SubmitOnChange,bool Disabled,
const char *fmt,...)
{
va_list ap;
@ -1404,6 +1405,9 @@ void HTM_INPUT_FLOAT (const char *Name,double Min,double Max,
}
}
if (SubmitOnChange == HTM_SUBMIT_ON_CHANGE)
HTM_Txt (" onchange=\"this.form.submit();return false;\"");
HTM_Txt (" />");
}

View File

@ -171,7 +171,10 @@ void HTM_INPUT_PASSWORD (const char *Name,const char *PlaceHolder,
void HTM_INPUT_LONG (const char *Name,long Min,long Max,long Value,
HTM_SubmitOnChange_t SubmitOnChange,bool Disabled,
const char *fmt,...);
void HTM_INPUT_FLOAT (const char *Name,double Min,double Max,double Step,double Value,bool Disabled,
void HTM_INPUT_FLOAT (const char *Name,double Min,double Max,
double Step, // Use 0 for "any"
double Value,
HTM_SubmitOnChange_t SubmitOnChange,bool Disabled,
const char *fmt,...);
void HTM_INPUT_RADIO (const char *Name,HTM_SubmitOnClick_t SubmitOnClick,
const char *fmt,...);

View File

@ -358,7 +358,8 @@ static void CtrCfg_Latitude (void)
-90.0, // South Pole
90.0, // North Pole
0.0, // step="any"
Gbl.Hierarchy.Ctr.Coord.Latitude,false,
Gbl.Hierarchy.Ctr.Coord.Latitude,
HTM_SUBMIT_ON_CHANGE,false,
"class=\"INPUT_COORD INPUT_%s\""
" required=\"required\"",
The_GetSuffix ());
@ -385,7 +386,8 @@ static void CtrCfg_Longitude (void)
-180.0, // West
180.0, // East
0.0, // step="any"
Gbl.Hierarchy.Ctr.Coord.Longitude,false,
Gbl.Hierarchy.Ctr.Coord.Longitude,
HTM_SUBMIT_ON_CHANGE,false,
"class=\"INPUT_COORD INPUT_%s\""
" required=\"required\"",
The_GetSuffix ());
@ -412,7 +414,8 @@ static void CtrCfg_Altitude (void)
-413.0, // Dead Sea shore
8848.0, // Mount Everest
0.0, // step="any"
Gbl.Hierarchy.Ctr.Coord.Altitude,false,
Gbl.Hierarchy.Ctr.Coord.Altitude,
HTM_SUBMIT_ON_CHANGE,false,
"class=\"INPUT_COORD INPUT_%s\""
" required=\"required\"",
The_GetSuffix ());

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.1 (2023-05-04)"
#define Log_PLATFORM_VERSION "SWAD 22.104.2 (2023-05-04)"
#define CSS_FILE "swad22.103.css"
#define JS_FILE "swad22.49.js"
/*
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)
Version 22.104: May 03, 2023 Rubrics in project. Not finished. (338000 lines)
3 changes necessary in database:

View File

@ -1372,7 +1372,8 @@ void Exa_PutFormEditionExam (struct Exa_Exams *Exams,
HTM_TD_End ();
HTM_TD_Begin ("class=\"LM\"");
HTM_INPUT_FLOAT ("MaxGrade",0.0,DBL_MAX,0.01,Exams->Exam.MaxGrade,false,
HTM_INPUT_FLOAT ("MaxGrade",0.0,DBL_MAX,0.01,Exams->Exam.MaxGrade,
HTM_DONT_SUBMIT_ON_CHANGE,false,
" class=\"INPUT_%s\" required=\"required\"",
The_GetSuffix ());
HTM_TD_End ();

View File

@ -1367,7 +1367,8 @@ static void Gam_PutFormsEditionGame (struct Gam_Games *Games,
HTM_TD_End ();
HTM_TD_Begin ("class=\"LM\"");
HTM_INPUT_FLOAT ("MaxGrade",0.0,DBL_MAX,0.01,Games->Game.MaxGrade,false,
HTM_INPUT_FLOAT ("MaxGrade",0.0,DBL_MAX,0.01,Games->Game.MaxGrade,
HTM_DONT_SUBMIT_ON_CHANGE,false,
" class=\"INPUT_%s\" required=\"required\"",
The_GetSuffix ());
HTM_TD_End ();

View File

@ -463,7 +463,7 @@ void Rub_ShowRubricInProject (struct Prj_Projects *Projects,
HTM_TR_Begin (NULL);
/***** Rubric title *****/
HTM_TD_Begin ("class=\"LT ASG_TITLE_%s %s\"",
HTM_TD_Begin ("colspan=\"8\" class=\"LT ASG_TITLE_%s %s\"",
The_GetSuffix (),The_GetColorRows ());
HTM_TxtColonNBSP (WhichRubricTxt);
HTM_Txt (Rubric->Title);
@ -476,7 +476,7 @@ void Rub_ShowRubricInProject (struct Prj_Projects *Projects,
HTM_TR_Begin (NULL);
/***** Text of the rubric *****/
HTM_TD_Begin ("class=\"LT PAR DAT_%s %s\"",
HTM_TD_Begin ("colspan=\"8\" class=\"LT PAR DAT_%s %s\"",
The_GetSuffix (),The_GetColorRows ());
Str_ChangeFormat (Str_FROM_HTML,Str_TO_RIGOROUS_HTML,
Rubric->Txt,Cns_MAX_BYTES_TEXT,false); // Convert from HTML to rigorous HTML
@ -487,16 +487,8 @@ void Rub_ShowRubricInProject (struct Prj_Projects *Projects,
/***** End 2nd row of this rubric *****/
HTM_TR_End ();
/***** Begin 4rd row of this rubric *****/
HTM_TR_Begin (NULL);
/***** Write criteria of this rubric *****/
HTM_TD_Begin ("class=\"LT %s\"",The_GetColorRows ());
RubCri_ListCriteriaInProject (Projects,Rubric->RubCod,ICanFill);
HTM_TD_End ();
/***** End 3rd row of this rubric *****/
HTM_TR_End ();
/***** Write criteria of this rubric *****/
RubCri_ListCriteriaInProject (Projects,Rubric->RubCod,ICanFill);
/***** Change color for next rubric *****/
The_ChangeRowColor ();

View File

@ -42,6 +42,7 @@
#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"
@ -218,7 +219,8 @@ static void RubCri_PutFormNewCriterion (struct Rub_Rubrics *Rubrics,
HTM_TD_Begin ("class=\"RT\"");
HTM_INPUT_FLOAT (RubCri_ParValues[ValueRange],
0.0,DBL_MAX,RubCri_SCORE_STEP,
Rubrics->Criterion.Values[ValueRange],false,
Rubrics->Criterion.Values[ValueRange],
HTM_DONT_SUBMIT_ON_CHANGE,false,
" class=\"INPUT_FLOAT INPUT_%s\" required=\"required\"",
The_GetSuffix ());
HTM_TD_End ();
@ -230,7 +232,8 @@ static void RubCri_PutFormNewCriterion (struct Rub_Rubrics *Rubrics,
RubCri_WEIGHT_MIN,
RubCri_WEIGHT_MAX,
RubCri_WEIGHT_STEP,
Rubrics->Criterion.Weight,false,
Rubrics->Criterion.Weight,
HTM_DONT_SUBMIT_ON_CHANGE,false,
" class=\"INPUT_FLOAT INPUT_%s\" required=\"required\"",
The_GetSuffix ());
HTM_TD_End ();
@ -777,7 +780,8 @@ static void RubCri_ListOneOrMoreCriteriaForEdition (struct Rub_Rubrics *Rubrics,
RubCri_PutParsOneCriterion (Rubrics);
HTM_INPUT_FLOAT (RubCri_ParValues[ValueRange],
0.0,DBL_MAX,RubCri_SCORE_STEP,
Rubrics->Criterion.Values[ValueRange],false,
Rubrics->Criterion.Values[ValueRange],
HTM_SUBMIT_ON_CHANGE,false,
" class=\"INPUT_FLOAT INPUT_%s\""
" required=\"required\"",
The_GetSuffix ());
@ -793,7 +797,8 @@ static void RubCri_ListOneOrMoreCriteriaForEdition (struct Rub_Rubrics *Rubrics,
RubCri_WEIGHT_MIN,
RubCri_WEIGHT_MAX,
RubCri_WEIGHT_STEP,
Rubrics->Criterion.Weight,false,
Rubrics->Criterion.Weight,
HTM_SUBMIT_ON_CHANGE,false,
" class=\"INPUT_FLOAT INPUT_%s\""
" required=\"required\"",
The_GetSuffix ());
@ -827,111 +832,106 @@ static void RubCri_ListOneOrMoreCriteriaInProject (struct Prj_Projects *Projects
char *Anchor;
double Score = 0.0;
/***** Begin table *****/
HTM_TABLE_BeginWideMarginPadding (5);
/***** Write the heading *****/
RubCri_PutTableHeadingForCriteria (RubCri_DONT_PUT_COLUMN_FOR_ICONS,
RubCri_PUT_COLUMNS_FOR_SCORE);
/***** Write the heading *****/
RubCri_PutTableHeadingForCriteria (RubCri_DONT_PUT_COLUMN_FOR_ICONS,
RubCri_PUT_COLUMNS_FOR_SCORE);
/***** Write rows *****/
for (NumCriterion = 0, The_ResetRowColor ();
NumCriterion < NumCriteria;
NumCriterion++, The_ChangeRowColor ())
{
/***** Create criterion of questions *****/
RubCri_ResetCriterion (&Criterion);
/***** Write rows *****/
for (NumCriterion = 0, The_ResetRowColor ();
NumCriterion < NumCriteria;
NumCriterion++, The_ChangeRowColor ())
{
/***** Create criterion of questions *****/
RubCri_ResetCriterion (&Criterion);
/***** Get criterion data *****/
RubCri_GetCriterionDataFromRow (mysql_res,&Criterion);
/***** Get criterion data *****/
RubCri_GetCriterionDataFromRow (mysql_res,&Criterion);
/***** Build anchor string *****/
Frm_SetAnchorStr (Criterion.CriCod,&Anchor);
/***** Build anchor string *****/
Frm_SetAnchorStr (Criterion.CriCod,&Anchor);
/***** Begin row *****/
HTM_TR_Begin (NULL);
/***** Begin row *****/
HTM_TR_Begin (NULL);
/***** Index *****/
HTM_TD_Begin ("class=\"RT %s\"",The_GetColorRows ());
Lay_WriteIndex (Criterion.CriInd,"BIG_INDEX");
HTM_TD_End ();
/***** Index *****/
HTM_TD_Begin ("class=\"RT %s\"",The_GetColorRows ());
Lay_WriteIndex (Criterion.CriInd,"BIG_INDEX");
/***** Title *****/
HTM_TD_Begin ("class=\"LT DAT_%s %s\"",
The_GetSuffix (),
The_GetColorRows ());
HTM_ARTICLE_Begin (Anchor);
HTM_Txt (Criterion.Title);
HTM_ARTICLE_End ();
HTM_TD_End ();
/***** Link to resource *****/
HTM_TD_Begin ("class=\"LT DAT_%s %s\"",
The_GetSuffix (),
The_GetColorRows ());
Rsc_WriteLinkName (&Criterion.Link,Frm_DONT_PUT_FORM_TO_GO);
HTM_TD_End ();
/***** Minimum and maximum values of criterion *****/
for (ValueRange = (RubCri_ValueRange_t) 0;
ValueRange <= (RubCri_ValueRange_t) (RubCri_NUM_VALUES - 1);
ValueRange++)
{
HTM_TD_Begin ("class=\"RT DAT_%s %s\"",
The_GetSuffix (),
The_GetColorRows ());
HTM_Double (Criterion.Values[ValueRange]);
HTM_TD_End ();
}
/***** Title *****/
HTM_TD_Begin ("class=\"LT DAT_%s %s\"",
The_GetSuffix (),
The_GetColorRows ());
HTM_ARTICLE_Begin (Anchor);
HTM_Txt (Criterion.Title);
HTM_ARTICLE_End ();
HTM_TD_End ();
/***** Criterion weight *****/
HTM_TD_Begin ("class=\"RT DAT_%s %s\"",
The_GetSuffix (),
The_GetColorRows ());
HTM_Double (Criterion.Weight);
HTM_TD_End ();
/***** Link to resource *****/
HTM_TD_Begin ("class=\"LT DAT_%s %s\"",
The_GetSuffix (),
The_GetColorRows ());
Rsc_WriteLinkName (&Criterion.Link,Frm_DONT_PUT_FORM_TO_GO);
HTM_TD_End ();
/***** Criterion score *****/
HTM_TD_Begin ("class=\"RT DAT_%s %s\"",
The_GetSuffix (),
The_GetColorRows ());
/* Get score from database */
Score = Prj_DB_GetScore (Projects->Prj.PrjCod,
Criterion.CriCod);
/***** Minimum and maximum values of criterion *****/
for (ValueRange = (RubCri_ValueRange_t) 0;
ValueRange <= (RubCri_ValueRange_t) (RubCri_NUM_VALUES - 1);
ValueRange++)
/* Show score */
if (ICanFill)
{
HTM_TD_Begin ("class=\"RT DAT_%s %s\"",
The_GetSuffix (),
The_GetColorRows ());
HTM_Double (Criterion.Values[ValueRange]);
HTM_TD_End ();
Frm_BeginFormAnchor (ActChgPrjSco,Anchor);
Prj_PutCurrentPars (Projects);
ParCod_PutPar (ParCod_Cri,Criterion.CriCod);
HTM_INPUT_FLOAT ("Score",
Criterion.Values[RubCri_MIN],
Criterion.Values[RubCri_MAX],
RubCri_SCORE_STEP,
Score,
HTM_SUBMIT_ON_CHANGE,false,
" class=\"INPUT_FLOAT INPUT_%s\""
" required=\"required\"",
The_GetSuffix ());
Frm_EndForm ();
}
else
HTM_Double (Score);
HTM_TD_End ();
/***** Criterion weight *****/
HTM_TD_Begin ("class=\"RT DAT_%s %s\"",
The_GetSuffix (),
The_GetColorRows ());
HTM_Double (Criterion.Weight);
HTM_TD_End ();
/***** Criterion score x weight *****/
HTM_TD_Begin ("class=\"RT DAT_%s %s\"",
The_GetSuffix (),
The_GetColorRows ());
HTM_Double (Criterion.Weight);
HTM_TD_End ();
/***** Criterion score *****/
HTM_TD_Begin ("class=\"RT DAT_%s %s\"",
The_GetSuffix (),
The_GetColorRows ());
/* Get score from database */
Score = Prj_DB_GetScore (Projects->Prj.PrjCod,
Criterion.CriCod);
/* Show score */
if (ICanFill)
{
Frm_BeginFormAnchor (ActChgPrjSco,Anchor);
Prj_PutCurrentPars (Projects);
ParCod_PutPar (ParCod_Cri,Criterion.CriCod);
HTM_INPUT_FLOAT ("Score",
Criterion.Values[RubCri_MIN],
Criterion.Values[RubCri_MAX],
RubCri_SCORE_STEP,
Score,false,
" class=\"INPUT_FLOAT INPUT_%s\""
" required=\"required\"",
The_GetSuffix ());
Frm_EndForm ();
}
else
HTM_Double (Score);
HTM_TD_End ();
/***** Criterion score x weight *****/
HTM_TD_Begin ("class=\"RT DAT_%s %s\"",
The_GetSuffix (),
The_GetColorRows ());
HTM_Double (Criterion.Weight);
HTM_TD_End ();
/***** End row *****/
HTM_TR_End ();
}
/***** End table *****/
HTM_TABLE_End ();
/***** End row *****/
HTM_TR_End ();
}
}
/*****************************************************************************/