mirror of https://github.com/acanas/swad-core.git
Version 22.76: Mar 17, 2023 Fixed moving rubric criteria up and down.
This commit is contained in:
parent
c4b5199fb7
commit
09bfa8fb79
|
@ -844,15 +844,14 @@ const struct Act_Actions ActLst_Actions[ActLst_NUM_ACTIONS] =
|
|||
[ActReqRemRub ] = {1957,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Rub_AskRemRubric ,NULL},
|
||||
[ActRemRub ] = {1958,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Rub_RemoveRubric ,NULL},
|
||||
|
||||
[ActFrmNewRubCri ] = {1959,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,RubCri_ReqCreatOrEditCriterion ,NULL},
|
||||
[ActNewRubCri ] = {1960,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,RubCri_ReceiveFormCriterion ,NULL},
|
||||
[ActReqRemRubCri ] = {1961,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,RubCri_ReqRemCriterion ,NULL},
|
||||
[ActRemRubCri ] = {1962,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,RubCri_RemoveCriterion ,NULL},
|
||||
[ActUp_RubCri ] = {1963,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,RubCri_MoveUpCriterion ,NULL},
|
||||
[ActDwnRubCri ] = {1964,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,RubCri_MoveDownCriterion ,NULL},
|
||||
[ActChgTitRubCri ] = {1965,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,RubCri_ChangeCriterionTitle ,NULL},
|
||||
[ActChgMinRubCri ] = {1966,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,RubCri_ChangeMinValueCriterion ,NULL},
|
||||
[ActChgMaxRubCri ] = {1967,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,RubCri_ChangeMaxValueCriterion ,NULL},
|
||||
[ActNewRubCri ] = {1959,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,RubCri_ReceiveFormCriterion ,NULL},
|
||||
[ActReqRemRubCri ] = {1960,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,RubCri_ReqRemCriterion ,NULL},
|
||||
[ActRemRubCri ] = {1961,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,RubCri_RemoveCriterion ,NULL},
|
||||
[ActUp_RubCri ] = {1962,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,RubCri_MoveUpCriterion ,NULL},
|
||||
[ActDwnRubCri ] = {1963,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,RubCri_MoveDownCriterion ,NULL},
|
||||
[ActChgTitRubCri ] = {1964,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,RubCri_ChangeCriterionTitle ,NULL},
|
||||
[ActChgMinRubCri ] = {1965,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,RubCri_ChangeMinValueCriterion ,NULL},
|
||||
[ActChgMaxRubCri ] = {1966,-1,TabUnk,ActSeeAllRub ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,RubCri_ChangeMaxValueCriterion ,NULL},
|
||||
|
||||
// TabFil ******************************************************************
|
||||
// Actions in menu:
|
||||
|
@ -3843,13 +3842,12 @@ Act_Action_t ActLst_FromActCodToAction[1 + ActLst_MAX_ACTION_COD] = // Do not re
|
|||
ActChgRub, // #1956
|
||||
ActReqRemRub, // #1957
|
||||
ActRemRub, // #1958
|
||||
ActFrmNewRubCri, // #1959
|
||||
ActNewRubCri, // #1960
|
||||
ActReqRemRubCri, // #1961
|
||||
ActRemRubCri, // #1962
|
||||
ActUp_RubCri, // #1963
|
||||
ActDwnRubCri, // #1964
|
||||
ActChgTitRubCri, // #1965
|
||||
ActChgMinRubCri, // #1966
|
||||
ActChgMaxRubCri, // #1967
|
||||
ActNewRubCri, // #1959
|
||||
ActReqRemRubCri, // #1960
|
||||
ActRemRubCri, // #1961
|
||||
ActUp_RubCri, // #1962
|
||||
ActDwnRubCri, // #1963
|
||||
ActChgTitRubCri, // #1964
|
||||
ActChgMinRubCri, // #1965
|
||||
ActChgMaxRubCri, // #1966
|
||||
};
|
||||
|
|
|
@ -767,15 +767,14 @@
|
|||
#define ActReqRemRub (ActChgCrsTT1stDay + 225)
|
||||
#define ActRemRub (ActChgCrsTT1stDay + 226)
|
||||
|
||||
#define ActFrmNewRubCri (ActChgCrsTT1stDay + 227)
|
||||
#define ActNewRubCri (ActChgCrsTT1stDay + 228)
|
||||
#define ActReqRemRubCri (ActChgCrsTT1stDay + 229)
|
||||
#define ActRemRubCri (ActChgCrsTT1stDay + 230)
|
||||
#define ActUp_RubCri (ActChgCrsTT1stDay + 231)
|
||||
#define ActDwnRubCri (ActChgCrsTT1stDay + 232)
|
||||
#define ActChgTitRubCri (ActChgCrsTT1stDay + 233)
|
||||
#define ActChgMinRubCri (ActChgCrsTT1stDay + 234)
|
||||
#define ActChgMaxRubCri (ActChgCrsTT1stDay + 235)
|
||||
#define ActNewRubCri (ActChgCrsTT1stDay + 227)
|
||||
#define ActReqRemRubCri (ActChgCrsTT1stDay + 228)
|
||||
#define ActRemRubCri (ActChgCrsTT1stDay + 229)
|
||||
#define ActUp_RubCri (ActChgCrsTT1stDay + 230)
|
||||
#define ActDwnRubCri (ActChgCrsTT1stDay + 231)
|
||||
#define ActChgTitRubCri (ActChgCrsTT1stDay + 232)
|
||||
#define ActChgMinRubCri (ActChgCrsTT1stDay + 233)
|
||||
#define ActChgMaxRubCri (ActChgCrsTT1stDay + 234)
|
||||
|
||||
/*****************************************************************************/
|
||||
/******************************** Files tab **********************************/
|
||||
|
@ -1768,7 +1767,7 @@
|
|||
|
||||
#define ActLst_NUM_ACTIONS (ActChgMyTT1stDay + 1)
|
||||
|
||||
#define ActLst_MAX_ACTION_COD 1967
|
||||
#define ActLst_MAX_ACTION_COD 1966
|
||||
|
||||
#define ActLst_DEFAULT_ACTION_AFTER_LOGIN ActSeeGblTL
|
||||
|
||||
|
|
|
@ -629,11 +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.75 (2023-03-17)"
|
||||
#define Log_PLATFORM_VERSION "SWAD 22.76 (2023-03-17)"
|
||||
#define CSS_FILE "swad22.57.1.css"
|
||||
#define JS_FILE "swad22.49.js"
|
||||
/*
|
||||
Version 22.75.1: Mar 17, 2023 Fixed up and down criteria. (? lines)
|
||||
Version 22.76: Mar 17, 2023 Fixed moving rubric criteria up and down. (337585 lines)
|
||||
Version 22.75: Mar 17, 2023 New module swad_rubric_criteria. (337631 lines)
|
||||
Code refactoring in exams.
|
||||
2 changes necessary in database:
|
||||
|
|
|
@ -154,7 +154,6 @@ void ExaSet_GetDataOfSetByCod (struct ExaSet_Set *Set)
|
|||
{
|
||||
MYSQL_RES *mysql_res;
|
||||
MYSQL_ROW row;
|
||||
char StrSetInd[Cns_MAX_DECIMAL_DIGITS_UINT + 1];
|
||||
|
||||
/***** Trivial check *****/
|
||||
if (Set->SetCod <= 0)
|
||||
|
@ -184,7 +183,6 @@ void ExaSet_GetDataOfSetByCod (struct ExaSet_Set *Set)
|
|||
|
||||
/* Get set index (row[2]) */
|
||||
Set->SetInd = Str_ConvertStrToUnsigned (row[2]);
|
||||
snprintf (StrSetInd,sizeof (Set->SetInd),"%u",Set->SetInd);
|
||||
|
||||
/* Get set index (row[3]) */
|
||||
Set->NumQstsToPrint = Str_ConvertStrToUnsigned (row[3]);
|
||||
|
@ -653,7 +651,6 @@ static void ExaSet_ListOneOrMoreSetsForEdition (struct Exa_Exams *Exams,
|
|||
struct ExaSet_Set Set;
|
||||
MYSQL_ROW row;
|
||||
char *Anchor;
|
||||
char StrSetInd[Cns_MAX_DECIMAL_DIGITS_UINT + 1];
|
||||
|
||||
/***** Trivial check *****/
|
||||
if (!NumSets)
|
||||
|
@ -687,7 +684,6 @@ static void ExaSet_ListOneOrMoreSetsForEdition (struct Exa_Exams *Exams,
|
|||
|
||||
/* Get set index (row[1]) */
|
||||
Set.SetInd = Str_ConvertStrToUnsigned (row[1]);
|
||||
snprintf (StrSetInd,sizeof (Set.SetInd),"%u",Set.SetInd);
|
||||
|
||||
/* Get number of questions to exam (row[2]) */
|
||||
Set.NumQstsToPrint = Str_ConvertStrToUnsigned (row[2]);
|
||||
|
@ -1467,7 +1463,7 @@ void ExaSet_MoveDownSet (void)
|
|||
{
|
||||
/* Indexes of sets to be exchanged */
|
||||
SetIndBottom = Exa_DB_GetNextSetIndexInExam (Exams.Exam.ExaCod,SetIndTop);
|
||||
if (SetIndBottom == 0)
|
||||
if (SetIndBottom == 0) // 0 means error reading from database
|
||||
Err_ShowErrorAndExit ("Wrong set index.");
|
||||
|
||||
/* Exchange sets */
|
||||
|
|
|
@ -20,35 +20,26 @@
|
|||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/*****************************************************************************/
|
||||
/********************************* Headers ***********************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
#define _GNU_SOURCE // For asprintf
|
||||
#include <float.h> // For DBL_MAX
|
||||
#include <linux/limits.h> // For PATH_MAX
|
||||
#include <stddef.h> // For NULL
|
||||
#include <stdio.h> // For asprintf
|
||||
#include <stdlib.h> // For free
|
||||
#include <mysql/mysql.h> // To access MySQL databases
|
||||
#include <string.h> // For string functions
|
||||
|
||||
#include "swad_action_list.h"
|
||||
#include "swad_alert.h"
|
||||
#include "swad_box.h"
|
||||
#include "swad_database.h"
|
||||
#include "swad_error.h"
|
||||
#include "swad_figure.h"
|
||||
#include "swad_form.h"
|
||||
#include "swad_global.h"
|
||||
#include "swad_HTML.h"
|
||||
#include "swad_match.h"
|
||||
#include "swad_match_result.h"
|
||||
#include "swad_pagination.h"
|
||||
#include "swad_parameter.h"
|
||||
#include "swad_parameter_code.h"
|
||||
#include "swad_question_database.h"
|
||||
#include "swad_role.h"
|
||||
#include "swad_rubric.h"
|
||||
#include "swad_rubric_criteria.h"
|
||||
#include "swad_rubric_database.h"
|
||||
#include "swad_test.h"
|
||||
#include "swad_test_visibility.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
/************** External global variables from others modules ****************/
|
||||
|
@ -60,9 +51,6 @@ extern struct Globals Gbl;
|
|||
/***************************** Private constants *****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
#define RubCri_MAX_SELECTED_QUESTIONS 10000
|
||||
#define RubCri_MAX_BYTES_LIST_SELECTED_QUESTIONS (RubCri_MAX_SELECTED_QUESTIONS * (Cns_MAX_DECIMAL_DIGITS_LONG + 1))
|
||||
|
||||
// Form parameters for minimum/maximum criterion values
|
||||
static const char *RubCri_ParValues[RubCri_NUM_VALUES] =
|
||||
{
|
||||
|
@ -70,10 +58,6 @@ static const char *RubCri_ParValues[RubCri_NUM_VALUES] =
|
|||
[RubCri_MAX] = "MaxVal",
|
||||
};
|
||||
|
||||
/*****************************************************************************/
|
||||
/************************** Public types and constants ***********************/
|
||||
/*****************************************************************************/
|
||||
|
||||
/*****************************************************************************/
|
||||
/***************************** Private prototypes ****************************/
|
||||
/*****************************************************************************/
|
||||
|
@ -104,189 +88,6 @@ static void RubCri_GetAndCheckPars (struct Rub_Rubrics *Rubrics,
|
|||
static void RubCri_ExchangeCriteria (long RubCod,
|
||||
unsigned CriIndTop,unsigned CriIndBottom);
|
||||
|
||||
/*****************************************************************************/
|
||||
/********************************* Headers ***********************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
#include <stdbool.h> // For boolean type
|
||||
#include <mysql/mysql.h> // To access MySQL databases
|
||||
#include <string.h> // For string functions
|
||||
|
||||
#include "swad_action_list.h"
|
||||
#include "swad_box.h"
|
||||
#include "swad_button.h"
|
||||
#include "swad_database.h"
|
||||
#include "swad_error.h"
|
||||
#include "swad_form.h"
|
||||
#include "swad_parameter.h"
|
||||
#include "swad_rubric.h"
|
||||
#include "swad_rubric_criteria.h"
|
||||
#include "swad_rubric_database.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
/************** External global variables from others modules ****************/
|
||||
/*****************************************************************************/
|
||||
|
||||
extern struct Globals Gbl;
|
||||
|
||||
/*****************************************************************************/
|
||||
/***************************** Private prototypes ****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
|
||||
/*****************************************************************************/
|
||||
/********************** Initialize a new citerion to zero ********************/
|
||||
/*****************************************************************************/
|
||||
|
||||
void RubCri_CriterionConstructor (struct RubCri_Criterion *Criterion)
|
||||
{
|
||||
Criterion->CriCod = -1L;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/*************** Free memory allocated for rubric criterion ******************/
|
||||
/*****************************************************************************/
|
||||
|
||||
void RubCri_CriterionDestructor (struct RubCri_Criterion *Criterion)
|
||||
{
|
||||
Criterion->CriCod = -1L;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/******************* List a rubric criterion for edition *********************/
|
||||
/*****************************************************************************/
|
||||
|
||||
void RubCri_ListCriterionForEdition (struct RubCri_Criterion *Criterion,
|
||||
unsigned CriInd,bool CriterionExists,
|
||||
const char *Anchor)
|
||||
{
|
||||
extern const char *Txt_Criterion_removed;
|
||||
|
||||
/***** Number of criterion *****/
|
||||
HTM_TD_Begin ("class=\"RT %s\"",The_GetColorRows ());
|
||||
Lay_WriteIndex (CriInd,"BIG_INDEX");
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Write criterion code *****/
|
||||
HTM_TD_Begin ("class=\"CT DAT_SMALL_%s %s CT\"",
|
||||
The_GetSuffix (),The_GetColorRows ());
|
||||
HTM_TxtF ("%ld ",Criterion->CriCod);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Write title *****/
|
||||
HTM_TD_Begin ("class=\"LT %s\"",The_GetColorRows ());
|
||||
HTM_ARTICLE_Begin (Anchor);
|
||||
if (CriterionExists)
|
||||
/* Write title */
|
||||
RubCri_WriteCriterionTitle (Criterion); // Visible
|
||||
else
|
||||
{
|
||||
HTM_SPAN_Begin ("class=\"DAT_LIGHT_%s\"",
|
||||
The_GetSuffix ());
|
||||
HTM_Txt (Txt_Criterion_removed);
|
||||
HTM_SPAN_End ();
|
||||
}
|
||||
HTM_ARTICLE_End ();
|
||||
HTM_TD_End ();
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/***************** Put icon to add a new criterion to rubric *****************/
|
||||
/*****************************************************************************/
|
||||
|
||||
void RubCri_PutIconToAddNewCriterion (void *Rubrics)
|
||||
{
|
||||
Ico_PutContextualIconToAdd (ActFrmNewRubCri,NULL,Rub_PutPars,Rubrics);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/***************** Put button to add new criteria to rubric ******************/
|
||||
/*****************************************************************************/
|
||||
|
||||
void RubCri_PutButtonToAddNewCriterion (struct Rub_Rubrics *Rubrics)
|
||||
{
|
||||
extern const char *Txt_New_criterion;
|
||||
|
||||
Frm_BeginForm (ActFrmNewRubCri);
|
||||
Rub_PutPars (Rubrics);
|
||||
|
||||
Btn_PutConfirmButton (Txt_New_criterion);
|
||||
|
||||
Frm_EndForm ();
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/****************** Write parameter with index of criterion ******************/
|
||||
/*****************************************************************************/
|
||||
|
||||
void RubCri_PutParCriInd (unsigned CriInd)
|
||||
{
|
||||
Par_PutParUnsigned (NULL,"CriInd",CriInd);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/******************* Get parameter with index of criterion *******************/
|
||||
/*****************************************************************************/
|
||||
|
||||
unsigned RubCri_GetParCriInd (void)
|
||||
{
|
||||
long CriInd;
|
||||
|
||||
if ((CriInd = Par_GetParLong ("CriInd")) <= 0) // In rubrics, criterion index should be 1, 2, 3...
|
||||
Err_WrongCriterionIndexExit ();
|
||||
|
||||
return (unsigned) CriInd;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/************ Request the creation or edition of a rubric criterion **********/
|
||||
/*****************************************************************************/
|
||||
|
||||
void RubCri_ReqCreatOrEditCriterion (void)
|
||||
{
|
||||
struct Rub_Rubrics Rubrics;
|
||||
struct RubCri_Criterion Criterion;
|
||||
bool ItsANewCriterion;
|
||||
char Txt[Cns_MAX_BYTES_TEXT + 1];
|
||||
|
||||
/***** Check if I can edit rubrics *****/
|
||||
if (!Rub_CheckIfICanEditRubrics ())
|
||||
Err_NoPermissionExit ();
|
||||
|
||||
/***** Reset rubrics context *****/
|
||||
Rub_ResetRubrics (&Rubrics);
|
||||
Rub_ResetRubric (&Rubrics.Rubric);
|
||||
RubCri_ResetCriterion (&Criterion);
|
||||
|
||||
/***** Get parameters *****/
|
||||
Rub_GetPars (&Rubrics,true);
|
||||
Rubrics.CriCod = Criterion.CriCod = ParCod_GetPar (ParCod_Cri);
|
||||
ItsANewCriterion = (Criterion.CriCod <= 0);
|
||||
|
||||
/***** Get exam data from database *****/
|
||||
Rub_GetDataOfRubricByCod (&Rubrics.Rubric);
|
||||
Rub_DB_GetRubricTxt (Rubrics.Rubric.RubCod,Txt);
|
||||
|
||||
/***** Get rubric data *****/
|
||||
if (ItsANewCriterion)
|
||||
/* Initialize to empty rubric */
|
||||
Rub_ResetRubric (&Rubrics.Rubric);
|
||||
else
|
||||
{
|
||||
/* Get rubric data from database */
|
||||
RubCri_GetDataOfCriterionByCod (&Criterion);
|
||||
Rubrics.CriCod = Criterion.CriCod;
|
||||
}
|
||||
|
||||
/***** Put form to edit the rubric created or updated *****/
|
||||
Rub_PutFormEditionRubric (&Rubrics,Txt,
|
||||
false); // No new rubric
|
||||
}
|
||||
|
||||
/****************************************************************************************************************************/
|
||||
/******************************************************* Headers ************************************************************/
|
||||
/****************************************************************************************************************************/
|
||||
|
||||
/*****************************************************************************/
|
||||
/*************** Put parameter to edit one rubric criterion ******************/
|
||||
/*****************************************************************************/
|
||||
|
@ -308,7 +109,6 @@ void RubCri_GetDataOfCriterionByCod (struct RubCri_Criterion *Criterion)
|
|||
{
|
||||
MYSQL_RES *mysql_res;
|
||||
MYSQL_ROW row;
|
||||
char StrCriInd[Cns_MAX_DECIMAL_DIGITS_UINT + 1];
|
||||
RubCri_ValueRange_t ValueRange;
|
||||
|
||||
/***** Trivial check *****/
|
||||
|
@ -340,7 +140,6 @@ void RubCri_GetDataOfCriterionByCod (struct RubCri_Criterion *Criterion)
|
|||
|
||||
/* Get criterion index (row[2]) */
|
||||
Criterion->CriInd = Str_ConvertStrToUnsigned (row[2]);
|
||||
snprintf (StrCriInd,sizeof (Criterion->CriInd),"%u",Criterion->CriInd);
|
||||
|
||||
/* Get criterion minimum and maximum values (row[3], row[4]) */
|
||||
for (ValueRange = (RubCri_ValueRange_t) 0;
|
||||
|
@ -699,7 +498,6 @@ static void RubCri_ListOneOrMoreCriteriaForEdition (struct Rub_Rubrics *Rubrics,
|
|||
struct RubCri_Criterion Criterion;
|
||||
MYSQL_ROW row;
|
||||
char *Anchor;
|
||||
char StrCriInd[Cns_MAX_DECIMAL_DIGITS_UINT + 1];
|
||||
RubCri_ValueRange_t ValueRange;
|
||||
|
||||
/***** Trivial check *****/
|
||||
|
@ -735,7 +533,6 @@ static void RubCri_ListOneOrMoreCriteriaForEdition (struct Rub_Rubrics *Rubrics,
|
|||
|
||||
/* Get criterion index (row[1]) */
|
||||
Criterion.CriInd = Str_ConvertStrToUnsigned (row[1]);
|
||||
snprintf (StrCriInd,sizeof (Criterion.CriInd),"%u",Criterion.CriInd);
|
||||
|
||||
/* Get minimum value (row[2]) and maximum value (row[3]) */
|
||||
for (ValueRange = (RubCri_ValueRange_t) 0;
|
||||
|
@ -1071,7 +868,7 @@ void RubCri_MoveDownCriterion (void)
|
|||
{
|
||||
/* Indexes of criteria to be exchanged */
|
||||
CriIndBottom = Rub_DB_GetNextCriterionIndexInRubric (Rubrics.Rubric.RubCod,CriIndTop);
|
||||
if (CriIndBottom == 0)
|
||||
if (CriIndBottom == 0) // 0 means error reading from database
|
||||
Err_ShowErrorAndExit ("Wrong criterion index.");
|
||||
|
||||
/* Exchange criteria */
|
||||
|
@ -1152,33 +949,3 @@ static void RubCri_ExchangeCriteria (long RubCod,
|
|||
/***** Unlock table *****/
|
||||
DB_UnlockTables ();
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/********************** Show title of rubric criterion ***********************/
|
||||
/*****************************************************************************/
|
||||
|
||||
void RubCri_WriteCriterionTitle (const struct RubCri_Criterion *Criterion)
|
||||
{
|
||||
RubCri_ValueRange_t ValueRange;
|
||||
|
||||
/***** Begin table *****/
|
||||
HTM_TABLE_BeginWide ();
|
||||
|
||||
/***** Title *****/
|
||||
HTM_TD_Begin ("class=\"CRI_TITLE\"");
|
||||
HTM_Txt (Criterion->Title);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Minimum and maximum values *****/
|
||||
for (ValueRange = (RubCri_ValueRange_t) 0;
|
||||
ValueRange <= (RubCri_ValueRange_t) (RubCri_NUM_VALUES - 1);
|
||||
ValueRange++)
|
||||
{
|
||||
HTM_TD_Begin ("class=\"CRI_VALUE\"");
|
||||
HTM_Double (Criterion->Values[ValueRange]);
|
||||
HTM_TD_End ();
|
||||
}
|
||||
|
||||
/***** End table *****/
|
||||
HTM_TABLE_End ();
|
||||
}
|
||||
|
|
|
@ -33,25 +33,6 @@
|
|||
/***************************** Public prototypes *****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
void RubCri_CriterionConstructor (struct RubCri_Criterion *Criterion);
|
||||
void RubCri_CriterionDestructor (struct RubCri_Criterion *Criterion);
|
||||
|
||||
void RubCri_ListCriterionForEdition (struct RubCri_Criterion *Criterion,
|
||||
unsigned CriInd,bool CriterionExists,
|
||||
const char *Anchor);
|
||||
|
||||
void RubCri_PutIconToAddNewCriterion (void *Rubrics);
|
||||
void RubCri_PutButtonToAddNewCriterion (struct Rub_Rubrics *Rubrics);
|
||||
|
||||
void RubCri_PutParCriInd (unsigned CriInd);
|
||||
unsigned RubCri_GetParCriInd (void);
|
||||
|
||||
void RubCri_ReqCreatOrEditCriterion (void);
|
||||
|
||||
/*****************************************************************************/
|
||||
/***************************** Public prototypes *****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
void RubCri_GetDataOfCriterionByCod (struct RubCri_Criterion *Criterion);
|
||||
|
||||
void RubCri_ReceiveFormCriterion (void);
|
||||
|
@ -70,6 +51,4 @@ void RubCri_RemoveCriterion (void);
|
|||
void RubCri_MoveUpCriterion (void);
|
||||
void RubCri_MoveDownCriterion (void);
|
||||
|
||||
void RubCri_WriteCriterionTitle (const struct RubCri_Criterion *Criterion);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -426,16 +426,16 @@ void Rub_DB_UpdateCriteriaIndexesInRubricGreaterThan (long RubCod,unsigned CriIn
|
|||
/****************** Change index of a criterion in a rubric ******************/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Rub_DB_UpdateCriterionIndex (long CriInd,long RubCod,long CriCod)
|
||||
void Rub_DB_UpdateCriterionIndex (long CriInd,long CriCod,long RubCod)
|
||||
{
|
||||
DB_QueryUPDATE ("can not exchange indexes of criteria",
|
||||
"UPDATE rub_criteria"
|
||||
" SET CriInd=%ld"
|
||||
" WHERE RubCod=%ld"
|
||||
" AND CriCod=%ld",
|
||||
" WHERE CriCod=%ld"
|
||||
" AND RubCod=%ld", // Extra check
|
||||
CriInd,
|
||||
RubCod,
|
||||
CriCod);
|
||||
CriCod,
|
||||
RubCod);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -60,7 +60,7 @@ void Rub_DB_UpdateCriterionTitle (long CriCod,long RubCod,
|
|||
void Rub_DB_UpdateCriterionValue (long CriCod,long RubCod,
|
||||
RubCri_ValueRange_t ValueRange,double Value);
|
||||
void Rub_DB_UpdateCriteriaIndexesInRubricGreaterThan (long RubCod,unsigned CriInd);
|
||||
void Rub_DB_UpdateCriterionIndex (long CriInd,long RubCod,long CriCod);
|
||||
void Rub_DB_UpdateCriterionIndex (long CriInd,long CriCod,long RubCod);
|
||||
void Rub_DB_LockTable (void);
|
||||
|
||||
unsigned Rub_DB_GetNumCriteriaInRubric (long RubCod);
|
||||
|
|
|
@ -14046,27 +14046,188 @@ const char *Txt_Actions[ActLst_NUM_ACTIONS] =
|
|||
"Remove rubric" // Çeviri lazim!
|
||||
#endif
|
||||
,
|
||||
[ActFrmNewRubCri] =
|
||||
[ActNewRubCri] =
|
||||
#if L==1 // ca
|
||||
"Edit new rubric criterion" // Necessita traducció
|
||||
"Create new rubric criterion" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"Edit new rubric criterion" // Need Übersetzung
|
||||
"Create new rubric criterion" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
"Edit new rubric criterion"
|
||||
"Create new rubric criterion"
|
||||
#elif L==4 // es
|
||||
"Editar nuevo criterio de rúbrica"
|
||||
"Crear nuevo criterio de rúbrica"
|
||||
#elif L==5 // fr
|
||||
"Edit new rubric criterion" // Besoin de traduction
|
||||
"Create new rubric criterion" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"Editar nuevo criterio de rúbrica" // Okoteve traducción
|
||||
"Crear nuevo criterio de rúbrica" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Edit new rubric criterion" // Bisogno di traduzione
|
||||
"Create new rubric criterion" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"Edit new rubric criterion" // Potrzebujesz tlumaczenie
|
||||
"Create new rubric criterion" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"Edit new rubric criterion" // Precisa de tradução
|
||||
"Create new rubric criterion" // Precisa de tradução
|
||||
#elif L==10 // tr
|
||||
"Edit new rubric criterion" // Çeviri lazim!
|
||||
"Create new rubric criterion" // Çeviri lazim!
|
||||
#endif
|
||||
,
|
||||
[ActReqRemRubCri] =
|
||||
#if L==1 // ca
|
||||
"Request rubric criterion removal" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"Request rubric criterion removal" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
"Request rubric criterion removal"
|
||||
#elif L==4 // es
|
||||
"Solicitar eliminación de criterio de rúbrica"
|
||||
#elif L==5 // fr
|
||||
"Request rubric criterion removal" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"Solicitar eliminación de criterio de rúbrica" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Request rubric criterion removal" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"Request rubric criterion removal" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"Request rubric criterion removal" // Precisa de tradução
|
||||
#elif L==10 // tr
|
||||
"Request rubric criterion removal" // Çeviri lazim!
|
||||
#endif
|
||||
,
|
||||
[ActRemRubCri] =
|
||||
#if L==1 // ca
|
||||
"Remove rubric criterion" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"Remove rubric criterion" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
"Remove rubric criterion"
|
||||
#elif L==4 // es
|
||||
"Eliminar criterio de rúbrica"
|
||||
#elif L==5 // fr
|
||||
"Remove rubric criterion" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"Eliminar criterio de rúbrica" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Remove rubric criterion" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"Remove rubric criterion" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"Remove rubric criterion" // Precisa de tradução
|
||||
#elif L==10 // tr
|
||||
"Remove rubric criterion" // Çeviri lazim!
|
||||
#endif
|
||||
,
|
||||
[ActUp_RubCri] =
|
||||
#if L==1 // ca
|
||||
"Move up rubric criterion" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"Move up rubric criterion" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
"Move up rubric criterion"
|
||||
#elif L==4 // es
|
||||
"Mover hacia arriba criterio de rúbrica"
|
||||
#elif L==5 // fr
|
||||
"Move up rubric criterion" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"Mover hacia arriba criterio de rúbrica" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Move up rubric criterion" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"Move up rubric criterion" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"Move up rubric criterion" // Precisa de tradução
|
||||
#elif L==10 // tr
|
||||
"Move up rubric criterion" // Çeviri lazim!
|
||||
#endif
|
||||
,
|
||||
[ActDwnRubCri] =
|
||||
#if L==1 // ca
|
||||
"Move down rubric criterion" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"Move down rubric criterion" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
"Move down rubric criterion"
|
||||
#elif L==4 // es
|
||||
"Mover hacia abajo criterio de rúbrica"
|
||||
#elif L==5 // fr
|
||||
"Move down rubric criterion" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"Mover hacia abajo criterio de rúbrica" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Move down rubric criterion" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"Move down rubric criterion" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"Move down rubric criterion" // Precisa de tradução
|
||||
#elif L==10 // tr
|
||||
"Move down rubric criterion" // Çeviri lazim!
|
||||
#endif
|
||||
,
|
||||
[ActChgTitRubCri] =
|
||||
#if L==1 // ca
|
||||
"Change rubric criterion title" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"Change rubric criterion title" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
"Change rubric criterion title"
|
||||
#elif L==4 // es
|
||||
"Cambiar título de criterio de rúbrica"
|
||||
#elif L==5 // fr
|
||||
"Change rubric criterion title" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"Cambiar título de criterio de rúbrica" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Change rubric criterion title" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"Change rubric criterion title" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"Change rubric criterion title" // Precisa de tradução
|
||||
#elif L==10 // tr
|
||||
"Change rubric criterion title" // Çeviri lazim!
|
||||
#endif
|
||||
,
|
||||
[ActChgMinRubCri] =
|
||||
#if L==1 // ca
|
||||
"Change minimum value of rubric criterion" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"Change minimum value of rubric criterion" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
"Change minimum value of rubric criterion"
|
||||
#elif L==4 // es
|
||||
"Cambiar valor mínimo de criterio de rúbrica"
|
||||
#elif L==5 // fr
|
||||
"Change minimum value of rubric criterion" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"Cambiar valor mínimo de criterio de rúbrica" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Change minimum value of rubric criterion" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"Change minimum value of rubric criterion" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"Change minimum value of rubric criterion" // Precisa de tradução
|
||||
#elif L==10 // tr
|
||||
"Change minimum value of rubric criterion" // Çeviri lazim!
|
||||
#endif
|
||||
,
|
||||
[ActChgMaxRubCri] =
|
||||
#if L==1 // ca
|
||||
"Change maximum value of rubric criterion" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"Change maximum value of rubric criterion" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
"Change maximum value of rubric criterion"
|
||||
#elif L==4 // es
|
||||
"Cambiar valor máximo de criterio de rúbrica"
|
||||
#elif L==5 // fr
|
||||
"Change maximum value of rubric criterion" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"Cambiar valor máximo de criterio de rúbrica" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Change maximum value of rubric criterion" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"Change maximum value of rubric criterion" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"Change maximum value of rubric criterion" // Precisa de tradução
|
||||
#elif L==10 // tr
|
||||
"Change maximum value of rubric criterion" // Çeviri lazim!
|
||||
#endif
|
||||
,
|
||||
[ActSeeAdmDocIns] =
|
||||
|
|
Loading…
Reference in New Issue