mirror of
https://github.com/acanas/swad-core.git
synced 2024-06-07 17:25:23 +02:00
Version19.197
This commit is contained in:
parent
23abb64f34
commit
b8ca23cb90
|
@ -544,10 +544,11 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - *
|
||||||
En OpenSWAD:
|
En OpenSWAD:
|
||||||
ps2pdf source.ps destination.pdf
|
ps2pdf source.ps destination.pdf
|
||||||
*/
|
*/
|
||||||
#define Log_PLATFORM_VERSION "SWAD 19.196.1 (2020-04-25)"
|
#define Log_PLATFORM_VERSION "SWAD 19.197 (2020-04-26)"
|
||||||
#define CSS_FILE "swad19.193.1.css"
|
#define CSS_FILE "swad19.193.1.css"
|
||||||
#define JS_FILE "swad19.193.1.js"
|
#define JS_FILE "swad19.193.1.js"
|
||||||
/*
|
/*
|
||||||
|
Version 19.197: Apr 26, 2020 Ask user to remove set of questions. (298954 lines)
|
||||||
Version 19.196.1: Apr 25, 2020 Changes in edition of exams. (298857 lines)
|
Version 19.196.1: Apr 25, 2020 Changes in edition of exams. (298857 lines)
|
||||||
Version 19.196: Apr 25, 2020 Changes in edition of sets of questions. (298866 lines)
|
Version 19.196: Apr 25, 2020 Changes in edition of sets of questions. (298866 lines)
|
||||||
Version 19.195.1: Apr 25, 2020 Translation of messages related to sets of questions. (298840 lines)
|
Version 19.195.1: Apr 25, 2020 Translation of messages related to sets of questions. (298840 lines)
|
||||||
|
|
136
swad_exam.c
136
swad_exam.c
|
@ -130,7 +130,7 @@ static void Exa_PutFormsToRemEditOneExam (struct Exa_Exams *Exams,
|
||||||
const struct Exa_Exam *Exam,
|
const struct Exa_Exam *Exam,
|
||||||
const char *Anchor);
|
const char *Anchor);
|
||||||
|
|
||||||
static void Exa_PutParamsOneSet (void *Exams);
|
static void ExaSet_PutParamsOneSet (void *Exams);
|
||||||
static void Exa_PutParamsOneQst (void *Exams);
|
static void Exa_PutParamsOneQst (void *Exams);
|
||||||
static void Exa_PutHiddenParamOrder (Exa_Order_t SelectedOrder);
|
static void Exa_PutHiddenParamOrder (Exa_Order_t SelectedOrder);
|
||||||
static Exa_Order_t Exa_GetParamOrder (void);
|
static Exa_Order_t Exa_GetParamOrder (void);
|
||||||
|
@ -168,6 +168,8 @@ static void ExaSet_UpdateSet (struct ExaSet_Set *Set);
|
||||||
static void Exa_CreateExam (struct Exa_Exam *Exam,const char *Txt);
|
static void Exa_CreateExam (struct Exa_Exam *Exam,const char *Txt);
|
||||||
static void Exa_UpdateExam (struct Exa_Exam *Exam,const char *Txt);
|
static void Exa_UpdateExam (struct Exa_Exam *Exam,const char *Txt);
|
||||||
|
|
||||||
|
static void ExaSet_PutParamSetCod (long SetCod);
|
||||||
|
|
||||||
static void Exa_RemAnswersOfAQuestion (long ExaCod,unsigned QstInd);
|
static void Exa_RemAnswersOfAQuestion (long ExaCod,unsigned QstInd);
|
||||||
|
|
||||||
static unsigned ExaSet_GetMaxSetIndexInExam (long ExaCod);
|
static unsigned ExaSet_GetMaxSetIndexInExam (long ExaCod);
|
||||||
|
@ -484,7 +486,7 @@ void Exa_SeeOneExam (void)
|
||||||
Lay_WrongExamExit ();
|
Lay_WrongExamExit ();
|
||||||
Exam.ExaCod = Exams.ExaCod;
|
Exam.ExaCod = Exams.ExaCod;
|
||||||
|
|
||||||
/***** Get data of exam *****/
|
/***** Get exam data *****/
|
||||||
Exa_GetDataOfExamByCod (&Exam);
|
Exa_GetDataOfExamByCod (&Exam);
|
||||||
|
|
||||||
/***** Show exam *****/
|
/***** Show exam *****/
|
||||||
|
@ -773,15 +775,15 @@ static void Exa_PutFormsToRemEditOneExam (struct Exa_Exams *Exams,
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/************** Put parameter to move/remove one set of questions ****************/
|
/************ Put parameter to move/remove one set of questions **************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
static void Exa_PutParamsOneSet (void *Exams)
|
static void ExaSet_PutParamsOneSet (void *Exams)
|
||||||
{
|
{
|
||||||
if (Exams)
|
if (Exams)
|
||||||
{
|
{
|
||||||
Exa_PutParams (Exams);
|
Exa_PutParams (Exams);
|
||||||
Exa_PutParamSetInd (((struct Exa_Exams *) Exams)->SetInd);
|
ExaSet_PutParamSetCod (((struct Exa_Exams *) Exams)->SetCod);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1043,10 +1045,14 @@ void ExaSet_GetDataOfSetByCod (struct ExaSet_Set *Set)
|
||||||
MYSQL_RES *mysql_res;
|
MYSQL_RES *mysql_res;
|
||||||
MYSQL_ROW row;
|
MYSQL_ROW row;
|
||||||
unsigned long NumRows;
|
unsigned long NumRows;
|
||||||
|
char StrSetInd[Cns_MAX_DECIMAL_DIGITS_UINT + 1];
|
||||||
|
|
||||||
/***** Get data of set from database *****/
|
/***** Get data of set of questions from database *****/
|
||||||
NumRows = DB_QuerySELECT (&mysql_res,"can not get set data",
|
NumRows = DB_QuerySELECT (&mysql_res,"can not get set data",
|
||||||
"SELECT SetInd" // row[0]
|
"SELECT SetCod," // row[0]
|
||||||
|
"SetInd," // row[1]
|
||||||
|
"NumQstsToExam," // row[2]
|
||||||
|
"Title" // row[3]
|
||||||
" FROM exa_sets"
|
" FROM exa_sets"
|
||||||
" WHERE SetCod=%ld"
|
" WHERE SetCod=%ld"
|
||||||
" AND ExaCod=%ld", // Extra check
|
" AND ExaCod=%ld", // Extra check
|
||||||
|
@ -1055,9 +1061,27 @@ void ExaSet_GetDataOfSetByCod (struct ExaSet_Set *Set)
|
||||||
{
|
{
|
||||||
/* Get row */
|
/* Get row */
|
||||||
row = mysql_fetch_row (mysql_res);
|
row = mysql_fetch_row (mysql_res);
|
||||||
|
/*
|
||||||
|
row[0] SetCod
|
||||||
|
row[1] SetInd
|
||||||
|
row[2] NumQstsToExam
|
||||||
|
row[3] Title
|
||||||
|
*/
|
||||||
|
/* Get set code (row[0]) */
|
||||||
|
Set->SetCod = Str_ConvertStrCodToLongCod (row[0]);
|
||||||
|
|
||||||
/* Get index of the set (row[0]) */
|
/* Get set index (row[1]) */
|
||||||
Set->SetInd = Str_ConvertStrToUnsigned (row[0]);
|
Set->SetInd = Str_ConvertStrToUnsigned (row[1]);
|
||||||
|
snprintf (StrSetInd,sizeof (Set->SetInd),
|
||||||
|
"%u",
|
||||||
|
Set->SetInd);
|
||||||
|
|
||||||
|
/* Get set index (row[2]) */
|
||||||
|
Set->NumQstsToExam = Str_ConvertStrToUnsigned (row[2]);
|
||||||
|
|
||||||
|
/* Get the title of the set (row[3]) */
|
||||||
|
Str_Copy (Set->Title,row[3],
|
||||||
|
ExaSet_MAX_BYTES_TITLE);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
/* Initialize to empty set */
|
/* Initialize to empty set */
|
||||||
|
@ -1077,7 +1101,7 @@ void Exa_GetDataOfExamByCod (struct Exa_Exam *Exam)
|
||||||
MYSQL_ROW row;
|
MYSQL_ROW row;
|
||||||
unsigned long NumRows;
|
unsigned long NumRows;
|
||||||
|
|
||||||
/***** Get data of exam from database *****/
|
/***** Get exam data from database *****/
|
||||||
NumRows = DB_QuerySELECT (&mysql_res,"can not get exam data",
|
NumRows = DB_QuerySELECT (&mysql_res,"can not get exam data",
|
||||||
"SELECT exa_exams.ExaCod," // row[0]
|
"SELECT exa_exams.ExaCod," // row[0]
|
||||||
"exa_exams.CrsCod," // row[1]
|
"exa_exams.CrsCod," // row[1]
|
||||||
|
@ -1633,7 +1657,7 @@ void ExaSet_RecFormSet (void)
|
||||||
ExaSet_UpdateSet (&Set); // Update set data in database
|
ExaSet_UpdateSet (&Set); // Update set data in database
|
||||||
}
|
}
|
||||||
|
|
||||||
/***** Put form to create/edit an exam and show sets *****/
|
/***** Show current exam and its sets *****/
|
||||||
Exa_PutFormsOneExam (&Exams,&Exam,&Set,
|
Exa_PutFormsOneExam (&Exams,&Exam,&Set,
|
||||||
false); // It's not a new exam
|
false); // It's not a new exam
|
||||||
}
|
}
|
||||||
|
@ -1828,7 +1852,7 @@ void Exa_RecFormExam (void)
|
||||||
Exa_UpdateExam (&Exam,Txt); // Update exam data in database
|
Exa_UpdateExam (&Exam,Txt); // Update exam data in database
|
||||||
}
|
}
|
||||||
|
|
||||||
/***** Put form to create/edit an exam and show sets *****/
|
/***** Show current exam and its sets *****/
|
||||||
Exa_PutFormsOneExam (&Exams,&Exam,&Set,
|
Exa_PutFormsOneExam (&Exams,&Exam,&Set,
|
||||||
ItsANewExam); // It's not a new exam
|
ItsANewExam); // It's not a new exam
|
||||||
}
|
}
|
||||||
|
@ -2054,12 +2078,6 @@ void ExaSet_RequestCreatOrEditSet (void)
|
||||||
/***** Put form to edit the exam created or updated *****/
|
/***** Put form to edit the exam created or updated *****/
|
||||||
Exa_PutFormEditionExam (&Exams,&Exam,Txt,
|
Exa_PutFormEditionExam (&Exams,&Exam,Txt,
|
||||||
false); // No new exam
|
false); // No new exam
|
||||||
|
|
||||||
/***** Show sets of the exam ready to be edited *****/
|
|
||||||
ExaSet_ListExamSets (&Exams,&Exam,&Set);
|
|
||||||
|
|
||||||
/* Show questions of the exam ready to be edited */
|
|
||||||
// Exa_ListExamQuestions (&Exams,&Exam);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -2083,7 +2101,7 @@ void Exa_RequestNewQuestion (void)
|
||||||
Lay_WrongExamExit ();
|
Lay_WrongExamExit ();
|
||||||
Exam.ExaCod = Exams.ExaCod;
|
Exam.ExaCod = Exams.ExaCod;
|
||||||
|
|
||||||
/***** Get data of exam from database *****/
|
/***** Get exam data from database *****/
|
||||||
Exa_GetDataOfExamByCod (&Exam);
|
Exa_GetDataOfExamByCod (&Exam);
|
||||||
|
|
||||||
/***** Check if exam has events *****/
|
/***** Check if exam has events *****/
|
||||||
|
@ -2123,7 +2141,7 @@ void Exa_ListQuestionsToSelect (void)
|
||||||
Lay_WrongExamExit ();
|
Lay_WrongExamExit ();
|
||||||
Exam.ExaCod = Exams.ExaCod;
|
Exam.ExaCod = Exams.ExaCod;
|
||||||
|
|
||||||
/***** Get data of exam from database *****/
|
/***** Get exam data from database *****/
|
||||||
Exa_GetDataOfExamByCod (&Exam);
|
Exa_GetDataOfExamByCod (&Exam);
|
||||||
|
|
||||||
/***** Check if exam has events *****/
|
/***** Check if exam has events *****/
|
||||||
|
@ -2141,9 +2159,9 @@ void Exa_ListQuestionsToSelect (void)
|
||||||
/**************** Write parameter with index of set of questions *****************/
|
/**************** Write parameter with index of set of questions *****************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
void Exa_PutParamSetInd (unsigned SetInd)
|
static void ExaSet_PutParamSetCod (long SetCod)
|
||||||
{
|
{
|
||||||
Par_PutHiddenParamUnsigned (NULL,"SetInd",SetInd);
|
Par_PutHiddenParamUnsigned (NULL,"SetCod",SetCod);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -2359,13 +2377,13 @@ static void ExaSet_ListExamSets (struct Exa_Exams *Exams,
|
||||||
/***** Get maximum set index *****/
|
/***** Get maximum set index *****/
|
||||||
MaxSetInd = ExaSet_GetMaxSetIndexInExam (Exam->ExaCod);
|
MaxSetInd = ExaSet_GetMaxSetIndexInExam (Exam->ExaCod);
|
||||||
|
|
||||||
/***** Get data of set of questionss from database *****/
|
/***** Get data of set of questions from database *****/
|
||||||
NumSets = (unsigned)
|
NumSets = (unsigned)
|
||||||
DB_QuerySELECT (&mysql_res,"can not get exam set of questionss",
|
DB_QuerySELECT (&mysql_res,"can not get sets of questions",
|
||||||
"SELECT exa_sets.SetCod," // row[0]
|
"SELECT SetCod," // row[0]
|
||||||
"exa_sets.SetInd," // row[1]
|
"SetInd," // row[1]
|
||||||
"exa_sets.NumQstsToExam," // row[2]
|
"NumQstsToExam," // row[2]
|
||||||
"exa_sets.Title" // row[3]
|
"Title" // row[3]
|
||||||
" FROM exa_sets"
|
" FROM exa_sets"
|
||||||
" WHERE ExaCod=%ld"
|
" WHERE ExaCod=%ld"
|
||||||
" ORDER BY SetInd",
|
" ORDER BY SetInd",
|
||||||
|
@ -2383,7 +2401,7 @@ static void ExaSet_ListExamSets (struct Exa_Exams *Exams,
|
||||||
Exam->ExaCod,MaxSetInd,
|
Exam->ExaCod,MaxSetInd,
|
||||||
NumSets,mysql_res,
|
NumSets,mysql_res,
|
||||||
ICanEditSets);
|
ICanEditSets);
|
||||||
else // This exam has no sets
|
else // This exam has no sets
|
||||||
Ale_ShowAlert (Ale_INFO,Txt_This_exam_has_no_sets_of_questions);
|
Ale_ShowAlert (Ale_INFO,Txt_This_exam_has_no_sets_of_questions);
|
||||||
|
|
||||||
/***** Free structure that stores the query result *****/
|
/***** Free structure that stores the query result *****/
|
||||||
|
@ -2519,8 +2537,7 @@ static void ExaSet_ListOneOrMoreSetsForEdition (struct Exa_Exams *Exams,
|
||||||
if (ICanEditSets)
|
if (ICanEditSets)
|
||||||
{
|
{
|
||||||
Frm_StartForm (ActReqRemExaSet);
|
Frm_StartForm (ActReqRemExaSet);
|
||||||
Exa_PutParams (Exams);
|
ExaSet_PutParamsOneSet (Exams);
|
||||||
Exa_PutParamQstInd (Set.SetInd);
|
|
||||||
Ico_PutIconRemove ();
|
Ico_PutIconRemove ();
|
||||||
Frm_EndForm ();
|
Frm_EndForm ();
|
||||||
}
|
}
|
||||||
|
@ -2531,7 +2548,7 @@ static void ExaSet_ListOneOrMoreSetsForEdition (struct Exa_Exams *Exams,
|
||||||
if (ICanEditSets && Set.SetInd > 1)
|
if (ICanEditSets && Set.SetInd > 1)
|
||||||
{
|
{
|
||||||
Lay_PutContextualLinkOnlyIcon (ActUp_ExaSet,NULL,
|
Lay_PutContextualLinkOnlyIcon (ActUp_ExaSet,NULL,
|
||||||
Exa_PutParamsOneSet,Exams,
|
ExaSet_PutParamsOneSet,Exams,
|
||||||
"arrow-up.svg",
|
"arrow-up.svg",
|
||||||
Str_BuildStringStr (Txt_Move_up_X,
|
Str_BuildStringStr (Txt_Move_up_X,
|
||||||
StrSetInd));
|
StrSetInd));
|
||||||
|
@ -2544,7 +2561,7 @@ static void ExaSet_ListOneOrMoreSetsForEdition (struct Exa_Exams *Exams,
|
||||||
if (ICanEditSets && Set.SetInd < MaxSetInd)
|
if (ICanEditSets && Set.SetInd < MaxSetInd)
|
||||||
{
|
{
|
||||||
Lay_PutContextualLinkOnlyIcon (ActDwnExaSet,NULL,
|
Lay_PutContextualLinkOnlyIcon (ActDwnExaSet,NULL,
|
||||||
Exa_PutParamsOneSet,Exams,
|
ExaSet_PutParamsOneSet,Exams,
|
||||||
"arrow-down.svg",
|
"arrow-down.svg",
|
||||||
Str_BuildStringStr (Txt_Move_down_X,
|
Str_BuildStringStr (Txt_Move_down_X,
|
||||||
StrSetInd));
|
StrSetInd));
|
||||||
|
@ -2881,7 +2898,7 @@ void Exa_AddQuestionsToExam (void)
|
||||||
Lay_WrongExamExit ();
|
Lay_WrongExamExit ();
|
||||||
Exam.ExaCod = Exams.ExaCod;
|
Exam.ExaCod = Exams.ExaCod;
|
||||||
|
|
||||||
/***** Get data of exam from database *****/
|
/***** Get exam data from database *****/
|
||||||
Exa_GetDataOfExamByCod (&Exam);
|
Exa_GetDataOfExamByCod (&Exam);
|
||||||
|
|
||||||
/***** Check if exam has events *****/
|
/***** Check if exam has events *****/
|
||||||
|
@ -2990,6 +3007,46 @@ static unsigned Exa_CountNumQuestionsInList (const struct Exa_Exams *Exams)
|
||||||
|
|
||||||
void ExaSet_RequestRemoveSet (void)
|
void ExaSet_RequestRemoveSet (void)
|
||||||
{
|
{
|
||||||
|
extern const char *Txt_Do_you_really_want_to_remove_the_set_of_questions_X;
|
||||||
|
extern const char *Txt_Remove_set_of_questions;
|
||||||
|
struct Exa_Exams Exams;
|
||||||
|
struct Exa_Exam Exam;
|
||||||
|
struct ExaSet_Set Set;
|
||||||
|
|
||||||
|
/***** Reset exams context *****/
|
||||||
|
Exa_ResetExams (&Exams);
|
||||||
|
|
||||||
|
/***** Reset exam and set *****/
|
||||||
|
Exa_ResetExam (&Exam);
|
||||||
|
ExaSet_ResetSet (&Set);
|
||||||
|
|
||||||
|
/***** Get parameters *****/
|
||||||
|
Exa_GetParams (&Exams);
|
||||||
|
if (Exams.ExaCod <= 0)
|
||||||
|
Lay_WrongExamExit ();
|
||||||
|
Set.ExaCod = Exam.ExaCod = Exams.ExaCod;
|
||||||
|
Set.SetCod = ExaSet_GetParamSetCod ();
|
||||||
|
if (Set.SetCod <= 0)
|
||||||
|
Lay_WrongSetExit ();
|
||||||
|
|
||||||
|
/***** Get exam data from database *****/
|
||||||
|
Exa_GetDataOfExamByCod (&Exam);
|
||||||
|
if (!Exa_CheckIfEditable (&Exam))
|
||||||
|
Lay_NoPermissionExit ();
|
||||||
|
|
||||||
|
/***** Get set data from database *****/
|
||||||
|
ExaSet_GetDataOfSetByCod (&Set);
|
||||||
|
|
||||||
|
/***** Show question and button to remove question *****/
|
||||||
|
Ale_ShowAlertAndButton (ActRemExaSet,NULL,NULL,
|
||||||
|
ExaSet_PutParamsOneSet,&Exams,
|
||||||
|
Btn_REMOVE_BUTTON,Txt_Remove_set_of_questions,
|
||||||
|
Ale_QUESTION,Txt_Do_you_really_want_to_remove_the_set_of_questions_X,
|
||||||
|
Set.Title);
|
||||||
|
|
||||||
|
/***** Show current exam and its sets *****/
|
||||||
|
Exa_PutFormsOneExam (&Exams,&Exam,&Set,
|
||||||
|
false); // It's not a new exam
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -3000,7 +3057,6 @@ void ExaSet_RemoveSet (void)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/************ Move up position of a set of questions in an exam **************/
|
/************ Move up position of a set of questions in an exam **************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -3041,7 +3097,7 @@ void Exa_RequestRemoveQst (void)
|
||||||
Lay_WrongExamExit ();
|
Lay_WrongExamExit ();
|
||||||
Exam.ExaCod = Exams.ExaCod;
|
Exam.ExaCod = Exams.ExaCod;
|
||||||
|
|
||||||
/***** Get data of exam from database *****/
|
/***** Get exam data from database *****/
|
||||||
Exa_GetDataOfExamByCod (&Exam);
|
Exa_GetDataOfExamByCod (&Exam);
|
||||||
|
|
||||||
/***** Check if exam has events *****/
|
/***** Check if exam has events *****/
|
||||||
|
@ -3091,7 +3147,7 @@ void Exa_RemoveQst (void)
|
||||||
Lay_WrongExamExit ();
|
Lay_WrongExamExit ();
|
||||||
Exam.ExaCod = Exams.ExaCod;
|
Exam.ExaCod = Exams.ExaCod;
|
||||||
|
|
||||||
/***** Get data of exam from database *****/
|
/***** Get exam data from database *****/
|
||||||
Exa_GetDataOfExamByCod (&Exam);
|
Exa_GetDataOfExamByCod (&Exam);
|
||||||
|
|
||||||
/***** Check if exam has events *****/
|
/***** Check if exam has events *****/
|
||||||
|
@ -3162,7 +3218,7 @@ void Exa_MoveUpQst (void)
|
||||||
Lay_WrongExamExit ();
|
Lay_WrongExamExit ();
|
||||||
Exam.ExaCod = Exams.ExaCod;
|
Exam.ExaCod = Exams.ExaCod;
|
||||||
|
|
||||||
/***** Get data of exam from database *****/
|
/***** Get exam data from database *****/
|
||||||
Exa_GetDataOfExamByCod (&Exam);
|
Exa_GetDataOfExamByCod (&Exam);
|
||||||
|
|
||||||
/***** Check if exam has events *****/
|
/***** Check if exam has events *****/
|
||||||
|
@ -3224,7 +3280,7 @@ void Exa_MoveDownQst (void)
|
||||||
Lay_WrongExamExit ();
|
Lay_WrongExamExit ();
|
||||||
Exam.ExaCod = Exams.ExaCod;
|
Exam.ExaCod = Exams.ExaCod;
|
||||||
|
|
||||||
/***** Get data of exam from database *****/
|
/***** Get exam data from database *****/
|
||||||
Exa_GetDataOfExamByCod (&Exam);
|
Exa_GetDataOfExamByCod (&Exam);
|
||||||
|
|
||||||
/***** Check if exam has events *****/
|
/***** Check if exam has events *****/
|
||||||
|
@ -3368,7 +3424,7 @@ void Exa_RequestNewEvent (void)
|
||||||
Lay_WrongExamExit ();
|
Lay_WrongExamExit ();
|
||||||
Exam.ExaCod = Exams.ExaCod;
|
Exam.ExaCod = Exams.ExaCod;
|
||||||
|
|
||||||
/***** Get data of exam from database *****/
|
/***** Get exam data from database *****/
|
||||||
Exa_GetDataOfExamByCod (&Exam);
|
Exa_GetDataOfExamByCod (&Exam);
|
||||||
|
|
||||||
/***** Show exam *****/
|
/***** Show exam *****/
|
||||||
|
|
|
@ -162,7 +162,6 @@ void ExaSet_RequestCreatOrEditSet (void);
|
||||||
void Exa_RequestNewQuestion (void);
|
void Exa_RequestNewQuestion (void);
|
||||||
void Exa_ListQuestionsToSelect (void);
|
void Exa_ListQuestionsToSelect (void);
|
||||||
|
|
||||||
void Exa_PutParamSetInd (unsigned SetInd);
|
|
||||||
void Exa_PutParamQstInd (unsigned QstInd);
|
void Exa_PutParamQstInd (unsigned QstInd);
|
||||||
unsigned Exa_GetParamQstInd (void);
|
unsigned Exa_GetParamQstInd (void);
|
||||||
long Exa_GetQstCodFromQstInd (long ExaCod,unsigned QstInd);
|
long Exa_GetQstCodFromQstInd (long ExaCod,unsigned QstInd);
|
||||||
|
|
|
@ -381,7 +381,7 @@ void ExaEvt_GetDataOfEventByCod (struct ExaEvt_Event *Event)
|
||||||
unsigned long NumRows;
|
unsigned long NumRows;
|
||||||
Dat_StartEndTime_t StartEndTime;
|
Dat_StartEndTime_t StartEndTime;
|
||||||
|
|
||||||
/***** Get data of exam event from database *****/
|
/***** Get exam data event from database *****/
|
||||||
NumRows = (unsigned) DB_QuerySELECT (&mysql_res,"can not get events",
|
NumRows = (unsigned) DB_QuerySELECT (&mysql_res,"can not get events",
|
||||||
"SELECT EvtCod," // row[ 0]
|
"SELECT EvtCod," // row[ 0]
|
||||||
"ExaCod," // row[ 1]
|
"ExaCod," // row[ 1]
|
||||||
|
@ -1300,7 +1300,7 @@ void ExaEvt_GetAndCheckParameters (struct Exa_Exams *Exams,
|
||||||
if ((Event->EvtCod = ExaEvt_GetParamEvtCod ()) <= 0)
|
if ((Event->EvtCod = ExaEvt_GetParamEvtCod ()) <= 0)
|
||||||
Lay_WrongEventExit ();
|
Lay_WrongEventExit ();
|
||||||
|
|
||||||
/***** Get data of exam and event from database *****/
|
/***** Get exam data and event from database *****/
|
||||||
Exa_GetDataOfExamByCod (Exam);
|
Exa_GetDataOfExamByCod (Exam);
|
||||||
ExaEvt_GetDataOfEventByCod (Event);
|
ExaEvt_GetDataOfEventByCod (Event);
|
||||||
|
|
||||||
|
|
|
@ -169,7 +169,7 @@ void ExaRes_ShowMyExaResultsInExa (void)
|
||||||
Lay_WrongExamExit ();
|
Lay_WrongExamExit ();
|
||||||
Exam.ExaCod = Exams.ExaCod;
|
Exam.ExaCod = Exams.ExaCod;
|
||||||
|
|
||||||
/***** Get data of exam from database *****/
|
/***** Get exam data from database *****/
|
||||||
Exa_GetDataOfExamByCod (&Exam);
|
Exa_GetDataOfExamByCod (&Exam);
|
||||||
|
|
||||||
/***** Exam begin *****/
|
/***** Exam begin *****/
|
||||||
|
@ -472,7 +472,7 @@ void ExaRes_ShowAllExaResultsInEvt (void)
|
||||||
if ((Event.EvtCod = ExaEvt_GetParamEvtCod ()) <= 0)
|
if ((Event.EvtCod = ExaEvt_GetParamEvtCod ()) <= 0)
|
||||||
Lay_WrongEventExit ();
|
Lay_WrongEventExit ();
|
||||||
|
|
||||||
/***** Get data of exam and event *****/
|
/***** Get exam data and event *****/
|
||||||
Exa_GetDataOfExamByCod (&Exam);
|
Exa_GetDataOfExamByCod (&Exam);
|
||||||
ExaEvt_GetDataOfEventByCod (&Event);
|
ExaEvt_GetDataOfEventByCod (&Event);
|
||||||
|
|
||||||
|
|
|
@ -1493,6 +1493,15 @@ void Lay_WrongExamExit (void)
|
||||||
Lay_ShowErrorAndExit ("Wrong exam.");
|
Lay_ShowErrorAndExit ("Wrong exam.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/********* Write error message and exit when wrong set of questions **********/
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
void Lay_WrongSetExit (void)
|
||||||
|
{
|
||||||
|
Lay_ShowErrorAndExit ("Wrong set of questions.");
|
||||||
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/************** Write error message and exit when wrong event ****************/
|
/************** Write error message and exit when wrong event ****************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
|
@ -74,6 +74,7 @@ void Lay_WrongScopeExit (void);
|
||||||
void Lay_WrongOrderExit (void);
|
void Lay_WrongOrderExit (void);
|
||||||
void Lay_WrongTypeOfViewExit (void);
|
void Lay_WrongTypeOfViewExit (void);
|
||||||
void Lay_WrongExamExit (void);
|
void Lay_WrongExamExit (void);
|
||||||
|
void Lay_WrongSetExit (void);
|
||||||
void Lay_WrongEventExit (void);
|
void Lay_WrongEventExit (void);
|
||||||
void Lay_NoPermissionExit (void);
|
void Lay_NoPermissionExit (void);
|
||||||
void Lay_ShowErrorAndExit (const char *Txt);
|
void Lay_ShowErrorAndExit (const char *Txt);
|
||||||
|
|
42
swad_text.c
42
swad_text.c
|
@ -9438,6 +9438,27 @@ const char *Txt_Do_you_really_want_to_remove_the_selected_questions =
|
||||||
"Você realmente deseja remover as perguntas selecionadas?";
|
"Você realmente deseja remover as perguntas selecionadas?";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
const char *Txt_Do_you_really_want_to_remove_the_set_of_questions_X = // Warning: it is very important to include %s in the following sentences
|
||||||
|
#if L==1 // ca
|
||||||
|
"¿De veres voleu eliminar el conjunt de preguntes <strong>%s</strong>?";
|
||||||
|
#elif L==2 // de
|
||||||
|
"Wollen Sie die Satz von Fragen <strong>%s</strong> wirklich entfernen?";
|
||||||
|
#elif L==3 // en
|
||||||
|
"Do you really want to remove the set of questions <strong>%s</strong>?";
|
||||||
|
#elif L==4 // es
|
||||||
|
"¿Realmente desea eliminar el conjunto de preguntas <strong>%s</strong>?";
|
||||||
|
#elif L==5 // fr
|
||||||
|
"Voulez-vous vraiment supprimer l'ensemble de questions <strong>%s</strong>?";
|
||||||
|
#elif L==6 // gn
|
||||||
|
"¿Realmente desea eliminar el conjunto de preguntas <strong>%s</strong>?"; // Okoteve traducción
|
||||||
|
#elif L==7 // it
|
||||||
|
"Vuoi realmente rimuovere il set di domande <strong>%s</strong>?";
|
||||||
|
#elif L==8 // pl
|
||||||
|
"Czy na pewno chcesz usunac zestaw pytań <strong>%s</strong>?";
|
||||||
|
#elif L==9 // pt
|
||||||
|
"Você realmente deseja remover o conjunto de perguntas <strong>%s</strong>?";
|
||||||
|
#endif
|
||||||
|
|
||||||
const char *Txt_Do_you_really_want_to_remove_the_survey_X = // Warning: it is very important to include %s in the following sentences
|
const char *Txt_Do_you_really_want_to_remove_the_survey_X = // Warning: it is very important to include %s in the following sentences
|
||||||
#if L==1 // ca
|
#if L==1 // ca
|
||||||
"Realment voleu eliminar l'enquesta <strong>%s</strong>?";
|
"Realment voleu eliminar l'enquesta <strong>%s</strong>?";
|
||||||
|
@ -34099,6 +34120,27 @@ const char *Txt_Remove_record_field =
|
||||||
"Remover campo de cartão";
|
"Remover campo de cartão";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
const char *Txt_Remove_set_of_questions =
|
||||||
|
#if L==1 // ca
|
||||||
|
"Eliminar conjunt de preguntes";
|
||||||
|
#elif L==2 // de
|
||||||
|
"Entfernen Satz von Fragen";
|
||||||
|
#elif L==3 // en
|
||||||
|
"Remove set of questions";
|
||||||
|
#elif L==4 // es
|
||||||
|
"Eliminar conjunto de preguntas";
|
||||||
|
#elif L==5 // fr
|
||||||
|
"Supprimer ensemble de questions";
|
||||||
|
#elif L==6 // gn
|
||||||
|
"Eliminar conjunto de preguntas"; // Okoteve traducción
|
||||||
|
#elif L==7 // it
|
||||||
|
"Rimuovere set di domande";
|
||||||
|
#elif L==8 // pl
|
||||||
|
"Usuń zestaw pytań";
|
||||||
|
#elif L==9 // pt
|
||||||
|
"Remover conjunto de perguntas";
|
||||||
|
#endif
|
||||||
|
|
||||||
const char *Txt_Remove_survey =
|
const char *Txt_Remove_survey =
|
||||||
#if L==1 // ca
|
#if L==1 // ca
|
||||||
"Eliminar enquesta";
|
"Eliminar enquesta";
|
||||||
|
|
Loading…
Reference in New Issue
Block a user