mirror of https://github.com/acanas/swad-core.git
Version 22.116: May 20, 2023 Changes in rubric scores.
This commit is contained in:
parent
bc17803c4a
commit
4b4b001640
|
@ -650,12 +650,12 @@ a:hover /* Default ==> underlined */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.NOTIF_WHITE {color:#707070; font-size:12pt; white-space:nowrap;}
|
.NOTIF_WHITE {color:#707070; font-size:12pt; white-space:nowrap;}
|
||||||
.NOTIF_GREY {color:#e0e0e0; font-size:12pt; white-space:nowrap;}
|
.NOTIF_GREY {color:#e0e0e0; font-size:12pt; white-space:nowrap;}
|
||||||
.NOTIF_PURPLE {color:#e0e0e0; font-size:12pt; white-space:nowrap;}
|
.NOTIF_PURPLE {color:#e0e0e0; font-size:12pt; white-space:nowrap;}
|
||||||
.NOTIF_BLUE {color:white; font-size:12pt; white-space:nowrap;}
|
.NOTIF_BLUE {color:white; font-size:12pt; white-space:nowrap;}
|
||||||
.NOTIF_YELLOW {color:#b3b0b3; font-size:12pt; white-space:nowrap;}
|
.NOTIF_YELLOW {color:#b3b0b3; font-size:12pt; white-space:nowrap;}
|
||||||
.NOTIF_PINK {color:white; font-size:12pt; white-space:nowrap;}
|
.NOTIF_PINK {color:white; font-size:12pt; white-space:nowrap;}
|
||||||
.NOTIF_DARK {color:#e0e0e0; font-size:12pt; white-space:nowrap;}
|
.NOTIF_DARK {color:#e0e0e0; font-size:12pt; white-space:nowrap;}
|
||||||
|
|
||||||
/* Creating filter from RGB: https://codepen.io/sosuke/pen/Pjoqqp */
|
/* Creating filter from RGB: https://codepen.io/sosuke/pen/Pjoqqp */
|
||||||
.NOTIF_ICO_WHITE {filter: invert(45%) sepia(0%) saturate(14%) hue-rotate(159deg) brightness(96%) contrast(89%);} /* #707070 */
|
.NOTIF_ICO_WHITE {filter: invert(45%) sepia(0%) saturate(14%) hue-rotate(159deg) brightness(96%) contrast(89%);} /* #707070 */
|
||||||
|
|
|
@ -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.
|
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.115 (2023-05-19)"
|
#define Log_PLATFORM_VERSION "SWAD 22.116 (2023-05-20)"
|
||||||
#define CSS_FILE "swad22.107.36.css"
|
#define CSS_FILE "swad22.107.36.css"
|
||||||
#define JS_FILE "swad22.49.js"
|
#define JS_FILE "swad22.49.js"
|
||||||
/*
|
/*
|
||||||
|
Version 22.116: May 20, 2023 Changes in rubric scores. (337093 lines)
|
||||||
Version 22.115: May 19, 2023 Generalization of rubric scores. (337010 lines)
|
Version 22.115: May 19, 2023 Generalization of rubric scores. (337010 lines)
|
||||||
1 change necessary in database:
|
1 change necessary in database:
|
||||||
CREATE TABLE IF NOT EXISTS rub_scores (Type ENUM('non','asg','prj','cfe','exa','gam','rub','doc','mrk','att','for','svy') NOT NULL DEFAULT 'non',Cod INT NOT NULL,UsrCod INT NOT NULL DEFAULT -1,CriCod INT NOT NULL,EvlCod INT NOT NULL DEFAULT -1,Score DOUBLE PRECISION NOT NULL DEFAULT 0,UNIQUE INDEX(Type,Cod,UsrCod,CriCod));
|
CREATE TABLE IF NOT EXISTS rub_scores (Type ENUM('non','asg','prj','cfe','exa','gam','rub','doc','mrk','att','for','svy') NOT NULL DEFAULT 'non',Cod INT NOT NULL,UsrCod INT NOT NULL DEFAULT -1,CriCod INT NOT NULL,EvlCod INT NOT NULL DEFAULT -1,Score DOUBLE PRECISION NOT NULL DEFAULT 0,UNIQUE INDEX(Type,Cod,UsrCod,CriCod));
|
||||||
|
|
|
@ -70,22 +70,6 @@ static const char *RubCri_ParValues[RubCri_NUM_VALUES] =
|
||||||
#define RubCri_WEIGHT_MAX 1.0
|
#define RubCri_WEIGHT_MAX 1.0
|
||||||
#define RubCri_WEIGHT_STEP 0.000001
|
#define RubCri_WEIGHT_STEP 0.000001
|
||||||
|
|
||||||
/*****************************************************************************/
|
|
||||||
/******************************* Private types *******************************/
|
|
||||||
/*****************************************************************************/
|
|
||||||
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
RubCri_DONT_PUT_COLUMN_FOR_ICONS,
|
|
||||||
RubCri_PUT_COLUMN_FOR_ICONS,
|
|
||||||
} RubCri_PutColumnForIcons_t;
|
|
||||||
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
RubCri_DONT_PUT_COLUMNS_FOR_SCORE,
|
|
||||||
RubCri_PUT_COLUMNS_FOR_SCORE,
|
|
||||||
} RubCri_PutColumnsForScore_t;
|
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/***************************** Private prototypes ****************************/
|
/***************************** Private prototypes ****************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -118,16 +102,19 @@ static void RubCri_WriteIndex (const struct RubCri_Criterion *Criterion,
|
||||||
static void RubCri_WriteTitle (const struct RubCri_Criterion *Criterion);
|
static void RubCri_WriteTitle (const struct RubCri_Criterion *Criterion);
|
||||||
static void RubCri_WriteLink (const struct RubCri_Criterion *Criterion);
|
static void RubCri_WriteLink (const struct RubCri_Criterion *Criterion);
|
||||||
static void RubCri_WriteMinimumMaximum (const struct RubCri_Criterion *Criterion);
|
static void RubCri_WriteMinimumMaximum (const struct RubCri_Criterion *Criterion);
|
||||||
|
static void RubCri_WriteTxt (const char *Txt);
|
||||||
static void RubCri_WriteWeight (const struct RubCri_Criterion *Criterion);
|
static void RubCri_WriteWeight (const struct RubCri_Criterion *Criterion);
|
||||||
static void RubCri_WriteTotalLabel (unsigned ColSpan);
|
static void RubCri_WriteTotalLabel (unsigned ColSpan);
|
||||||
|
static void RubCri_WriteTotalEmpty (void);
|
||||||
static void RubCri_WriteTotalValue (double Total);
|
static void RubCri_WriteTotalValue (double Total);
|
||||||
|
|
||||||
static bool RubCri_ComputeRubricScore (Rsc_Type_t Type,long Cod,long UsrCod,
|
static bool RubCri_ComputeRubricScore (Rsc_Type_t Type,long Cod,long UsrCod,
|
||||||
struct Rub_Node **TOS,long RubCod,
|
struct Rub_Node **TOS,long RubCod,
|
||||||
double *RubricScore);
|
double *RubricScore);
|
||||||
|
|
||||||
static void RubCri_PutTableHeadingForCriteria (RubCri_PutColumnForIcons_t PutColumnForIcons,
|
static void RubCri_PutTableHeadingForSeeing (void);
|
||||||
RubCri_PutColumnsForScore_t PutColumnsForScore);
|
static void RubCri_PutTableHeadingForEdition (void);
|
||||||
|
static void RubCri_PutTableHeadingForScoring (void);
|
||||||
|
|
||||||
static void RubCri_GetAndCheckRubricAndCriterion (struct Rub_Rubrics *Rubrics);
|
static void RubCri_GetAndCheckRubricAndCriterion (struct Rub_Rubrics *Rubrics);
|
||||||
|
|
||||||
|
@ -187,12 +174,15 @@ static void RubCri_PutFormNewCriterion (struct Rub_Rubrics *Rubrics,
|
||||||
Frm_BeginFormTable (ActNewRubCri,NULL,Rub_PutPars,Rubrics);
|
Frm_BeginFormTable (ActNewRubCri,NULL,Rub_PutPars,Rubrics);
|
||||||
|
|
||||||
/***** Table heading *****/
|
/***** Table heading *****/
|
||||||
RubCri_PutTableHeadingForCriteria (RubCri_DONT_PUT_COLUMN_FOR_ICONS,
|
RubCri_PutTableHeadingForEdition ();
|
||||||
RubCri_DONT_PUT_COLUMNS_FOR_SCORE);
|
|
||||||
|
|
||||||
/***** Begin row *****/
|
/***** Begin row *****/
|
||||||
HTM_TR_Begin (NULL);
|
HTM_TR_Begin (NULL);
|
||||||
|
|
||||||
|
/***** Icons *****/
|
||||||
|
HTM_TD_Begin ("class=\"BT\"");
|
||||||
|
HTM_TD_End ();
|
||||||
|
|
||||||
/***** Index *****/
|
/***** Index *****/
|
||||||
HTM_TD_Begin ("class=\"RT\"");
|
HTM_TD_Begin ("class=\"RT\"");
|
||||||
Lay_WriteIndex (MaxCriInd + 1,"BIG_INDEX");
|
Lay_WriteIndex (MaxCriInd + 1,"BIG_INDEX");
|
||||||
|
@ -615,8 +605,7 @@ static void RubCri_ListOneOrMoreCriteriaForSeeing (unsigned NumCriteria,
|
||||||
HTM_TABLE_BeginWideMarginPadding (5);
|
HTM_TABLE_BeginWideMarginPadding (5);
|
||||||
|
|
||||||
/***** Write the heading *****/
|
/***** Write the heading *****/
|
||||||
RubCri_PutTableHeadingForCriteria (RubCri_DONT_PUT_COLUMN_FOR_ICONS,
|
RubCri_PutTableHeadingForSeeing ();
|
||||||
RubCri_DONT_PUT_COLUMNS_FOR_SCORE);
|
|
||||||
|
|
||||||
/***** Write rows *****/
|
/***** Write rows *****/
|
||||||
for (NumCriterion = 0, The_ResetRowColor ();
|
for (NumCriterion = 0, The_ResetRowColor ();
|
||||||
|
@ -681,8 +670,7 @@ static void RubCri_ListOneOrMoreCriteriaForEdition (struct Rub_Rubrics *Rubrics,
|
||||||
HTM_TABLE_BeginWideMarginPadding (5);
|
HTM_TABLE_BeginWideMarginPadding (5);
|
||||||
|
|
||||||
/***** Write the heading *****/
|
/***** Write the heading *****/
|
||||||
RubCri_PutTableHeadingForCriteria (RubCri_PUT_COLUMN_FOR_ICONS,
|
RubCri_PutTableHeadingForEdition ();
|
||||||
RubCri_DONT_PUT_COLUMNS_FOR_SCORE);
|
|
||||||
|
|
||||||
/***** Write rows *****/
|
/***** Write rows *****/
|
||||||
for (NumCriterion = 0, The_ResetRowColor ();
|
for (NumCriterion = 0, The_ResetRowColor ();
|
||||||
|
@ -823,8 +811,7 @@ static void RubCri_ListOneOrMoreCriteriaInProject (struct Prj_Projects *Projects
|
||||||
double WeightedSum = 0.0;
|
double WeightedSum = 0.0;
|
||||||
|
|
||||||
/***** Write the heading *****/
|
/***** Write the heading *****/
|
||||||
RubCri_PutTableHeadingForCriteria (RubCri_DONT_PUT_COLUMN_FOR_ICONS,
|
RubCri_PutTableHeadingForScoring ();
|
||||||
RubCri_PUT_COLUMNS_FOR_SCORE);
|
|
||||||
|
|
||||||
/***** Write rows *****/
|
/***** Write rows *****/
|
||||||
for (NumCriterion = 0, The_ResetRowColor ();
|
for (NumCriterion = 0, The_ResetRowColor ();
|
||||||
|
@ -840,22 +827,25 @@ static void RubCri_ListOneOrMoreCriteriaInProject (struct Prj_Projects *Projects
|
||||||
/***** Begin row *****/
|
/***** Begin row *****/
|
||||||
HTM_TR_Begin (NULL);
|
HTM_TR_Begin (NULL);
|
||||||
|
|
||||||
/***** Index, title, link, minimum/maximum values
|
/***** Index, title, link *****/
|
||||||
and weight of criterion *****/
|
|
||||||
RubCri_WriteIndex (&Criterion,Anchor);
|
RubCri_WriteIndex (&Criterion,Anchor);
|
||||||
RubCri_WriteTitle (&Criterion);
|
RubCri_WriteTitle (&Criterion);
|
||||||
RubCri_WriteLink (&Criterion);
|
RubCri_WriteLink (&Criterion);
|
||||||
RubCri_WriteMinimumMaximum (&Criterion);
|
|
||||||
RubCri_WriteWeight (&Criterion);
|
|
||||||
|
|
||||||
/***** Criterion score *****/
|
/***** Criterion score *****/
|
||||||
HTM_TD_Begin ("class=\"RT DAT_%s %s\"",
|
HTM_TD_Begin ("class=\"RT NO_BR %s\"",The_GetColorRows ());
|
||||||
The_GetSuffix (),
|
|
||||||
The_GetColorRows ());
|
/* Minimum value */
|
||||||
|
HTM_SPAN_Begin ("class=\"DAT_LIGHT_%s\"",The_GetSuffix ());
|
||||||
|
HTM_Double (Criterion.Values[RubCri_MIN]);
|
||||||
|
HTM_Txt ("≤");
|
||||||
|
HTM_NBSP ();
|
||||||
|
HTM_SPAN_End ();
|
||||||
|
|
||||||
switch (Criterion.Link.Type)
|
switch (Criterion.Link.Type)
|
||||||
{
|
{
|
||||||
case Rsc_NONE:
|
case Rsc_NONE:
|
||||||
CriterionScore = Rub_DB_GetScore (Rsc_PROJECT,Projects->Prj.PrjCod,-1L,Criterion.CriCod);
|
CriterionScore = Rub_DB_GetScore (Rsc_PROJECT,Projects->Prj.PrjCod,-1L,Criterion.CriCod);
|
||||||
if (ICanFill)
|
if (ICanFill)
|
||||||
{
|
{
|
||||||
Frm_BeginFormAnchor (ActChgPrjSco,Anchor);
|
Frm_BeginFormAnchor (ActChgPrjSco,Anchor);
|
||||||
|
@ -873,23 +863,44 @@ static void RubCri_ListOneOrMoreCriteriaInProject (struct Prj_Projects *Projects
|
||||||
Frm_EndForm ();
|
Frm_EndForm ();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
HTM_Double2Decimals (CriterionScore);
|
{
|
||||||
|
HTM_SPAN_Begin ("class=\"DAT_%s\"",The_GetSuffix ());
|
||||||
|
HTM_Double2Decimals (CriterionScore);
|
||||||
|
HTM_SPAN_End ();
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case Rsc_RUBRIC:
|
case Rsc_RUBRIC:
|
||||||
if (RubCri_ComputeRubricScore (Rsc_PROJECT,Projects->Prj.PrjCod,-1L,
|
if (RubCri_ComputeRubricScore (Rsc_PROJECT,Projects->Prj.PrjCod,-1L,
|
||||||
TOS,Criterion.Link.Cod,
|
TOS,Criterion.Link.Cod,
|
||||||
&CriterionScore))
|
&CriterionScore))
|
||||||
Err_RecursiveRubric ();
|
Err_RecursiveRubric ();
|
||||||
else
|
else
|
||||||
HTM_Double2Decimals (CriterionScore);
|
{
|
||||||
|
HTM_SPAN_Begin ("class=\"DAT_%s\"",The_GetSuffix ());
|
||||||
|
HTM_Double2Decimals (CriterionScore);
|
||||||
|
HTM_SPAN_End ();
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
Err_NoPermission ();
|
Err_NoPermission ();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Maximum value */
|
||||||
|
HTM_SPAN_Begin ("class=\"DAT_LIGHT_%s\"",The_GetSuffix ());
|
||||||
|
HTM_NBSP ();
|
||||||
|
HTM_Txt ("≤");
|
||||||
|
HTM_Double (Criterion.Values[RubCri_MAX]);
|
||||||
|
HTM_SPAN_End ();
|
||||||
|
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
|
||||||
|
/***** Weight *****/
|
||||||
|
RubCri_WriteTxt ("×");
|
||||||
|
RubCri_WriteWeight (&Criterion);
|
||||||
|
|
||||||
/***** Weighted score *****/
|
/***** Weighted score *****/
|
||||||
|
RubCri_WriteTxt ("=");
|
||||||
HTM_TD_Begin ("class=\"RT DAT_%s %s\"",
|
HTM_TD_Begin ("class=\"RT DAT_%s %s\"",
|
||||||
The_GetSuffix (),
|
The_GetSuffix (),
|
||||||
The_GetColorRows ());
|
The_GetColorRows ());
|
||||||
|
@ -908,9 +919,11 @@ static void RubCri_ListOneOrMoreCriteriaInProject (struct Prj_Projects *Projects
|
||||||
|
|
||||||
/***** Write total row *****/
|
/***** Write total row *****/
|
||||||
HTM_TR_Begin (NULL);
|
HTM_TR_Begin (NULL);
|
||||||
RubCri_WriteTotalLabel (5);
|
RubCri_WriteTotalLabel (3);
|
||||||
RubCri_WriteTotalValue (SumOfWeights);
|
|
||||||
RubCri_WriteTotalValue (SumOfScores);
|
RubCri_WriteTotalValue (SumOfScores);
|
||||||
|
RubCri_WriteTotalEmpty ();
|
||||||
|
RubCri_WriteTotalValue (SumOfWeights);
|
||||||
|
RubCri_WriteTotalEmpty ();
|
||||||
RubCri_WriteTotalValue (WeightedSum);
|
RubCri_WriteTotalValue (WeightedSum);
|
||||||
HTM_TR_End ();
|
HTM_TR_End ();
|
||||||
}
|
}
|
||||||
|
@ -961,7 +974,6 @@ static void RubCri_WriteMinimumMaximum (const struct RubCri_Criterion *Criterion
|
||||||
{
|
{
|
||||||
RubCri_ValueRange_t ValueRange;
|
RubCri_ValueRange_t ValueRange;
|
||||||
|
|
||||||
/***** Minimum and maximum values of criterion *****/
|
|
||||||
for (ValueRange = (RubCri_ValueRange_t) 0;
|
for (ValueRange = (RubCri_ValueRange_t) 0;
|
||||||
ValueRange <= (RubCri_ValueRange_t) (RubCri_NUM_VALUES - 1);
|
ValueRange <= (RubCri_ValueRange_t) (RubCri_NUM_VALUES - 1);
|
||||||
ValueRange++)
|
ValueRange++)
|
||||||
|
@ -972,6 +984,17 @@ static void RubCri_WriteMinimumMaximum (const struct RubCri_Criterion *Criterion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/********************** Write table cell with a text *************************/
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
static void RubCri_WriteTxt (const char *Txt)
|
||||||
|
{
|
||||||
|
HTM_TD_Begin ("class=\"CT DAT_%s %s\"",The_GetSuffix (),The_GetColorRows ());
|
||||||
|
HTM_Txt (Txt);
|
||||||
|
HTM_TD_End ();
|
||||||
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/************** Write table cell with weight value of criterion **************/
|
/************** Write table cell with weight value of criterion **************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -997,6 +1020,12 @@ static void RubCri_WriteTotalLabel (unsigned ColSpan)
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void RubCri_WriteTotalEmpty (void)
|
||||||
|
{
|
||||||
|
HTM_TD_Begin ("class=\"RB LINE_TOP\"");
|
||||||
|
HTM_TD_End ();
|
||||||
|
}
|
||||||
|
|
||||||
static void RubCri_WriteTotalValue (double Total)
|
static void RubCri_WriteTotalValue (double Total)
|
||||||
{
|
{
|
||||||
HTM_TD_Begin ("class=\"RB LINE_TOP DAT_STRONG_%s\"",The_GetSuffix ());
|
HTM_TD_Begin ("class=\"RB LINE_TOP DAT_STRONG_%s\"",The_GetSuffix ());
|
||||||
|
@ -1191,8 +1220,7 @@ void RubCri_GetCriterionDataFromRow (MYSQL_RES *mysql_res,
|
||||||
/****************** Put table heading for rubric criteria ********************/
|
/****************** Put table heading for rubric criteria ********************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
static void RubCri_PutTableHeadingForCriteria (RubCri_PutColumnForIcons_t PutColumnForIcons,
|
static void RubCri_PutTableHeadingForSeeing (void)
|
||||||
RubCri_PutColumnsForScore_t PutColumnsForScore)
|
|
||||||
{
|
{
|
||||||
extern const char *Txt_No_INDEX;
|
extern const char *Txt_No_INDEX;
|
||||||
extern const char *Txt_Criterion;
|
extern const char *Txt_Criterion;
|
||||||
|
@ -1200,31 +1228,76 @@ static void RubCri_PutTableHeadingForCriteria (RubCri_PutColumnForIcons_t PutCol
|
||||||
extern const char *Txt_Minimum;
|
extern const char *Txt_Minimum;
|
||||||
extern const char *Txt_Maximum;
|
extern const char *Txt_Maximum;
|
||||||
extern const char *Txt_Weight;
|
extern const char *Txt_Weight;
|
||||||
extern const char *Txt_Score;
|
|
||||||
char *Title;
|
|
||||||
|
|
||||||
/***** Begin row *****/
|
/***** Begin row *****/
|
||||||
HTM_TR_Begin (NULL);
|
HTM_TR_Begin (NULL);
|
||||||
|
|
||||||
/***** Header cells *****/
|
/***** Header cells *****/
|
||||||
if (PutColumnForIcons == RubCri_PUT_COLUMN_FOR_ICONS)
|
|
||||||
HTM_TH_Empty (1);
|
|
||||||
HTM_TH (Txt_No_INDEX ,HTM_HEAD_RIGHT);
|
HTM_TH (Txt_No_INDEX ,HTM_HEAD_RIGHT);
|
||||||
HTM_TH (Txt_Criterion,HTM_HEAD_LEFT );
|
HTM_TH (Txt_Criterion,HTM_HEAD_LEFT );
|
||||||
HTM_TH (Txt_Source ,HTM_HEAD_LEFT );
|
HTM_TH (Txt_Source ,HTM_HEAD_LEFT );
|
||||||
HTM_TH (Txt_Minimum ,HTM_HEAD_RIGHT);
|
HTM_TH (Txt_Minimum ,HTM_HEAD_RIGHT);
|
||||||
HTM_TH (Txt_Maximum ,HTM_HEAD_RIGHT);
|
HTM_TH (Txt_Maximum ,HTM_HEAD_RIGHT);
|
||||||
HTM_TH (Txt_Weight ,HTM_HEAD_RIGHT);
|
HTM_TH (Txt_Weight ,HTM_HEAD_RIGHT);
|
||||||
if (PutColumnsForScore == RubCri_PUT_COLUMNS_FOR_SCORE)
|
|
||||||
{
|
|
||||||
HTM_TH (Txt_Score,HTM_HEAD_RIGHT);
|
|
||||||
|
|
||||||
if (asprintf (&Title,"%s × %s",
|
/***** End row *****/
|
||||||
Txt_Weight,Txt_Score) < 0)
|
HTM_TR_End ();
|
||||||
Err_NotEnoughMemoryExit ();
|
}
|
||||||
HTM_TH (Title,HTM_HEAD_RIGHT);
|
|
||||||
free (Title);
|
/*****************************************************************************/
|
||||||
}
|
/****************** Put table heading for rubric criteria ********************/
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
static void RubCri_PutTableHeadingForEdition (void)
|
||||||
|
{
|
||||||
|
extern const char *Txt_No_INDEX;
|
||||||
|
extern const char *Txt_Criterion;
|
||||||
|
extern const char *Txt_Source;
|
||||||
|
extern const char *Txt_Minimum;
|
||||||
|
extern const char *Txt_Maximum;
|
||||||
|
extern const char *Txt_Weight;
|
||||||
|
|
||||||
|
/***** Begin row *****/
|
||||||
|
HTM_TR_Begin (NULL);
|
||||||
|
|
||||||
|
/***** Header cells *****/
|
||||||
|
HTM_TH_Empty (1);
|
||||||
|
HTM_TH (Txt_No_INDEX ,HTM_HEAD_RIGHT);
|
||||||
|
HTM_TH (Txt_Criterion,HTM_HEAD_LEFT );
|
||||||
|
HTM_TH (Txt_Source ,HTM_HEAD_LEFT );
|
||||||
|
HTM_TH (Txt_Minimum ,HTM_HEAD_RIGHT);
|
||||||
|
HTM_TH (Txt_Maximum ,HTM_HEAD_RIGHT);
|
||||||
|
HTM_TH (Txt_Weight ,HTM_HEAD_RIGHT);
|
||||||
|
|
||||||
|
/***** End row *****/
|
||||||
|
HTM_TR_End ();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/****************** Put table heading for rubric criteria ********************/
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
static void RubCri_PutTableHeadingForScoring (void)
|
||||||
|
{
|
||||||
|
extern const char *Txt_No_INDEX;
|
||||||
|
extern const char *Txt_Criterion;
|
||||||
|
extern const char *Txt_Source;
|
||||||
|
extern const char *Txt_Weight;
|
||||||
|
extern const char *Txt_Score;
|
||||||
|
extern const char *Txt_Grade;
|
||||||
|
|
||||||
|
/***** Begin row *****/
|
||||||
|
HTM_TR_Begin (NULL);
|
||||||
|
|
||||||
|
/***** Header cells *****/
|
||||||
|
HTM_TH (Txt_No_INDEX ,HTM_HEAD_RIGHT);
|
||||||
|
HTM_TH (Txt_Criterion,HTM_HEAD_LEFT );
|
||||||
|
HTM_TH (Txt_Source ,HTM_HEAD_LEFT );
|
||||||
|
HTM_TH (Txt_Score ,HTM_HEAD_RIGHT);
|
||||||
|
HTM_TH_Empty (1);
|
||||||
|
HTM_TH (Txt_Weight ,HTM_HEAD_RIGHT);
|
||||||
|
HTM_TH_Empty (1);
|
||||||
|
HTM_TH (Txt_Grade ,HTM_HEAD_RIGHT);
|
||||||
|
|
||||||
/***** End row *****/
|
/***** End row *****/
|
||||||
HTM_TR_End ();
|
HTM_TR_End ();
|
||||||
|
|
27
swad_text.c
27
swad_text.c
|
@ -15244,7 +15244,7 @@ const char *Txt_Grade =
|
||||||
#elif L==9 // pt
|
#elif L==9 // pt
|
||||||
"Nota";
|
"Nota";
|
||||||
#elif L==10 // tr
|
#elif L==10 // tr
|
||||||
"Grade"; // Çeviri lazim!
|
"Vasıf";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const char *Txt_Group =
|
const char *Txt_Group =
|
||||||
|
@ -56950,7 +56950,30 @@ const char *Txt_valid_score =
|
||||||
#elif L==10 // tr
|
#elif L==10 // tr
|
||||||
"valid score"; // Çeviri lazim!
|
"valid score"; // Çeviri lazim!
|
||||||
#endif
|
#endif
|
||||||
|
/*
|
||||||
|
const char *Txt_Value = // Score, quantity
|
||||||
|
#if L==1 // ca
|
||||||
|
"Valor";
|
||||||
|
#elif L==2 // de
|
||||||
|
"Wert";
|
||||||
|
#elif L==3 // en
|
||||||
|
"Value";
|
||||||
|
#elif L==4 // es
|
||||||
|
"Valor";
|
||||||
|
#elif L==5 // fr
|
||||||
|
"Valeur";
|
||||||
|
#elif L==6 // gn
|
||||||
|
"Hepykue";
|
||||||
|
#elif L==7 // it
|
||||||
|
"Valore";
|
||||||
|
#elif L==8 // pl
|
||||||
|
"Wartość";
|
||||||
|
#elif L==9 // pt
|
||||||
|
"Valor";
|
||||||
|
#elif L==10 // tr
|
||||||
|
"Değer";
|
||||||
|
#endif
|
||||||
|
*/
|
||||||
const char *Txt_View_all_recipients =
|
const char *Txt_View_all_recipients =
|
||||||
#if L==1 // ca
|
#if L==1 // ca
|
||||||
"Veure tots els destinataris";
|
"Veure tots els destinataris";
|
||||||
|
|
Loading…
Reference in New Issue