Version19.156.3

This commit is contained in:
acanas 2020-03-30 16:40:12 +02:00
parent ede01923f7
commit 62f596e0de
3 changed files with 61 additions and 38 deletions

View File

@ -13251,10 +13251,10 @@ INSERT INTO log SELECT * FROM log_full WHERE YEAR(ClickTime) = 2011; Hecho
INSERT INTO log SELECT * FROM log_full WHERE YEAR(ClickTime) = 2012; Hecho
INSERT INTO log SELECT * FROM log_full WHERE YEAR(ClickTime) = 2013; Hecho
INSERT INTO log SELECT * FROM log_full WHERE ClickTime>='20140101' AND ClickTime<'20140201'; Hecho
INSERT INTO log SELECT * FROM log_full WHERE ClickTime>='20140201' AND ClickTime<'20140301';
INSERT INTO log SELECT * FROM log_full WHERE ClickTime>='20140301' AND ClickTime<'20140401';
INSERT INTO log SELECT * FROM log_full WHERE ClickTime>='20140401' AND ClickTime<'20140501';
INSERT INTO log SELECT * FROM log_full WHERE ClickTime>='20140501' AND ClickTime<'20140601';
INSERT INTO log SELECT * FROM log_full WHERE ClickTime>='20140201' AND ClickTime<'20140301'; Hecho
INSERT INTO log SELECT * FROM log_full WHERE ClickTime>='20140301' AND ClickTime<'20140401'; Hecho
INSERT INTO log SELECT * FROM log_full WHERE ClickTime>='20140401' AND ClickTime<'20140501'; Hecho
INSERT INTO log SELECT * FROM log_full WHERE ClickTime>='20140501' AND ClickTime<'20140601'; Hecho
INSERT INTO log SELECT * FROM log_full WHERE ClickTime>='20140601' AND ClickTime<'20140701';
INSERT INTO log SELECT * FROM log_full WHERE ClickTime>='20140701' AND ClickTime<'20140801';
INSERT INTO log SELECT * FROM log_full WHERE ClickTime>='20140801' AND ClickTime<'20140901';

View File

@ -497,7 +497,7 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - *
En OpenSWAD:
ps2pdf source.ps destination.pdf
*/
#define Log_PLATFORM_VERSION "SWAD 19.156.2 (2020-03-29)"
#define Log_PLATFORM_VERSION "SWAD 19.156.3 (2020-03-29)"
#define CSS_FILE "swad19.146.css"
#define JS_FILE "swad19.153.js"
/*
@ -528,6 +528,8 @@ Param
El examen se muestra en pantalla tomándolo del examen en la base de datos, no del formulario.
Cuando el alumno pulsa en "He terminado" se le pregunta si está seguro y se vuelve a mostrar el examen cogiéndolo de la base de datos.
Version 19.156.4: Mar 29, 2020 Test exam is stored in database when it's generated. (? lines)
Version 19.156.3: Mar 29, 2020 Code refactoring in tests. (284585 lines)
Version 19.156.2: Mar 29, 2020 Test exam with start date and end date. (284568 lines)
Version 19.156.1: Mar 29, 2020 List of test exams with start date and end date. (284557 lines)
Version 19.156: Mar 28, 2020 New action to confirm assessment of test exam.

View File

@ -129,6 +129,8 @@ static void Tst_FreeTagsList (struct Tst_Tags *Tags);
static void Tst_ShowFormRequestTest (struct Tst_Test *Test);
static void Tst_PutCheckBoxAllowTeachers (bool AllowTeachers);
static void Tst_GetQuestionsAndAnswersFromForm (struct TsR_Result *Result);
static bool Tst_CheckIfNextTstAllowed (void);
static void Tst_SetTstStatus (unsigned NumTst,Tst_Status_t TstStatus);
@ -475,10 +477,8 @@ static void Tst_ShowFormRequestTest (struct Tst_Test *Test)
void Tst_ShowNewTest (void)
{
extern const char *Hlp_ASSESSMENT_Tests;
extern const char *The_ClassFormInBox[The_NUM_THEMES];
extern const char *Txt_No_questions_found_matching_your_search_criteria;
extern const char *Txt_Test;
extern const char *Txt_Allow_teachers_to_consult_this_test;
extern const char *Txt_Done_assess_test;
struct Tst_Test Test;
MYSQL_RES *mysql_res;
@ -497,12 +497,7 @@ void Tst_ShowNewTest (void)
{
/***** Get questions *****/
Tst_GetQuestionsForTest (&Test,&mysql_res);
if (Test.NumQsts == 0) // Query database
{
Ale_ShowAlert (Ale_INFO,Txt_No_questions_found_matching_your_search_criteria);
Tst_ShowFormRequestTest (&Test); // Show the form again
}
else
if (Test.NumQsts)
{
/***** Get and update number of hits *****/
NumAccessesTst = Tst_GetNumAccessesTst () + 1;
@ -524,19 +519,10 @@ void Tst_ShowNewTest (void)
Par_PutHiddenParamUnsigned (NULL,"NumQst",Test.NumQsts);
/***** List the questions *****/
HTM_TABLE_BeginWideMarginPadding (10);
Tst_ShowTestQuestionsWhenSeeing (Test.NumQsts,mysql_res);
HTM_TABLE_End ();
/***** Test result will be saved? *****/
HTM_DIV_Begin ("class=\"CM\"");
HTM_LABEL_Begin ("class=\"%s\"",The_ClassFormInBox[Gbl.Prefs.Theme]);
HTM_INPUT_CHECKBOX ("AllowTchs",HTM_DONT_SUBMIT_ON_CHANGE,
"value=\"Y\""
" checked=\"checked\""); // By default, teachers can see test result
HTM_TxtF ("&nbsp;%s",Txt_Allow_teachers_to_consult_this_test);
HTM_LABEL_End ();
HTM_DIV_End ();
Tst_PutCheckBoxAllowTeachers (true);
/***** End form *****/
Btn_PutConfirmButton (Txt_Done_assess_test);
@ -552,6 +538,11 @@ void Tst_ShowNewTest (void)
if (Gbl.Usrs.Me.Role.Logged == Rol_STD)
Tst_UpdateLastAccTst (Test.NumQsts);
}
else // No questions found
{
Ale_ShowAlert (Ale_INFO,Txt_No_questions_found_matching_your_search_criteria);
Tst_ShowFormRequestTest (&Test); // Show the form again
}
/***** Free structure that stores the query result *****/
DB_FreeMySQLResult (&mysql_res);
@ -564,6 +555,27 @@ void Tst_ShowNewTest (void)
Tst_TstDestructor (&Test);
}
/*****************************************************************************/
/************ Put checkbox to allow teachers to see test result **************/
/*****************************************************************************/
static void Tst_PutCheckBoxAllowTeachers (bool AllowTeachers)
{
extern const char *The_ClassFormInBox[The_NUM_THEMES];
extern const char *Txt_Allow_teachers_to_consult_this_test;
/***** Test result will be available for teachers? *****/
HTM_DIV_Begin ("class=\"CM\"");
HTM_LABEL_Begin ("class=\"%s\"",The_ClassFormInBox[Gbl.Prefs.Theme]);
HTM_INPUT_CHECKBOX ("AllowTchs",HTM_DONT_SUBMIT_ON_CHANGE,
"value=\"Y\"%s",
AllowTeachers ? " checked=\"checked\"" : // Teachers can see test result
"");
HTM_TxtF ("&nbsp;%s",Txt_Allow_teachers_to_consult_this_test);
HTM_LABEL_End ();
HTM_DIV_End ();
}
/*****************************************************************************/
/********************* Request the assessment of a test **********************/
/*****************************************************************************/
@ -962,26 +974,35 @@ static void Tst_ShowTestQuestionsWhenSeeing (unsigned NumQsts,
struct Tst_Question Question;
MYSQL_ROW row;
/***** Write rows *****/
for (NumQst = 0;
NumQst < NumQsts;
NumQst++)
if (NumQsts)
{
Gbl.RowEvenOdd = NumQst % 2;
/***** Begin table *****/
HTM_TABLE_BeginWideMarginPadding (10);
/* Create test question */
Tst_QstConstructor (&Question);
/***** Write one row for each question *****/
for (NumQst = 0;
NumQst < NumQsts;
NumQst++)
{
Gbl.RowEvenOdd = NumQst % 2;
/* Get question code (row[0]) */
row = mysql_fetch_row (mysql_res);
if ((Question.QstCod = Str_ConvertStrCodToLongCod (row[0])) < 0)
Lay_ShowErrorAndExit ("Wrong code of question.");
/* Create test question */
Tst_QstConstructor (&Question);
/* Show question */
Tst_ShowOneTestQuestionWhenSeeing (NumQst,&Question);
/* Get question code (row[0]) */
row = mysql_fetch_row (mysql_res);
if ((Question.QstCod = Str_ConvertStrCodToLongCod (row[0])) < 0)
Lay_ShowErrorAndExit ("Wrong code of question.");
/* Destroy test question */
Tst_QstDestructor (&Question);
/* Show question */
Tst_ShowOneTestQuestionWhenSeeing (NumQst,&Question);
/* Destroy test question */
Tst_QstDestructor (&Question);
}
/***** End table *****/
HTM_TABLE_End ();
}
}