mirror of https://github.com/acanas/swad-core.git
Version 17.0.4
This commit is contained in:
parent
f63a0c9b90
commit
e9e23d3fdf
|
@ -2258,9 +2258,9 @@ a:hover img.CENTRE_PHOTO_SHOW
|
|||
.TAG_SEL {box-sizing:border-box; width:346px;}
|
||||
.TAG_TXT {box-sizing:border-box; width:346px;}
|
||||
.STEM {box-sizing:border-box; width:700px;}
|
||||
.ANS {color:#404040; font-size:13pt; font-weight:bold;}
|
||||
.ANS_OK {color:#008000; font-size:13pt; font-weight:bold;}
|
||||
.ANS_BAD {color:red; font-size:13pt; font-weight:bold;}
|
||||
.ANS {color:#404040; font-size:12pt;}
|
||||
.ANS_OK {color:#008000; font-size:12pt; font-weight:bold;}
|
||||
.ANS_BAD {color:red; font-size:12pt; font-weight:bold;}
|
||||
.ANS_STR {box-sizing:border-box; width:600px;}
|
||||
.TEST_SUBTITLE
|
||||
{
|
||||
|
@ -2271,7 +2271,6 @@ a:hover img.CENTRE_PHOTO_SHOW
|
|||
vertical-align:middle;
|
||||
}
|
||||
.TEST_NUM_QST {color:#808080; font-size:20pt; font-weight:bold;}
|
||||
.TEST {color:#404040; font-size:12pt;}
|
||||
.TEST_EXA {color:#404040; font-size:12pt;}
|
||||
.TEST_EXA_LIGHT {color:#A0A0A0; font-size:12pt;}
|
||||
.TEST_EDI {color:#404040; font-size:12pt;}
|
||||
|
|
|
@ -232,6 +232,8 @@
|
|||
|
||||
// TODO: Cuando sólo se cambian los grupos y no el rol de un profesor ya existente, no sale ningún mensaje. se haga lo que se haga en la edición debería salir un mensaje del tipo "Cambios realizados"
|
||||
|
||||
// TODO: Debería haber un modo "ver" en las actividades, como en los documentos, para que el profesor tenga la visión del estudiante.
|
||||
|
||||
// TODO: "Solicitar inscripción" como superusuario: "Usted no tiene permiso para realizar esta acción"
|
||||
|
||||
// TODO: Poner icono con enlace a días festivos en calendario de centro, titulación y asignatura, además del actual calendario de institución
|
||||
|
@ -250,13 +252,14 @@
|
|||
/****************************** Public constants *****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
#define Log_PLATFORM_VERSION "SWAD 17.0.3 (2017-09-14)"
|
||||
#define Log_PLATFORM_VERSION "SWAD 17.0.4 (2017-09-15)"
|
||||
#define CSS_FILE "swad17.0.css"
|
||||
#define JS_FILE "swad16.206.3.js"
|
||||
|
||||
// Number of lines (includes comments but not blank lines) has been got with the following command:
|
||||
// nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*?.h sql/swad*.sql | tail -1
|
||||
/*
|
||||
Version 17.0.4: Sep 14, 2017 Show current question with answers when playing a game. (227379 lines)
|
||||
Version 17.0.3: Sep 14, 2017 Action to show current question with answers when playing a game. (227350 lines)
|
||||
1 change necessary in database:
|
||||
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1673','es','N','Mostrar respuestas de pregunta juego');
|
||||
|
|
44
swad_game.c
44
swad_game.c
|
@ -2954,7 +2954,8 @@ static void Gam_ListOneOrMoreQuestionsForEdition (struct Game *Game,
|
|||
"TEST_IMG_EDIT_LIST_STEM_CONTAINER",
|
||||
"TEST_IMG_EDIT_LIST_STEM");
|
||||
Tst_WriteQstFeedback (row[3],"TEST_EDI_LIGHT");
|
||||
Tst_WriteAnswersGameResult (Game,NumQst,QstCod);
|
||||
Tst_WriteAnswersGameResult (Game,NumQst,QstCod,
|
||||
"TEST_EDI",true); // Show result
|
||||
|
||||
fprintf (Gbl.F.Out,"</td>"
|
||||
"</tr>");
|
||||
|
@ -3535,12 +3536,13 @@ void Gam_PlayGameShowAnswers (void)
|
|||
|
||||
static void Gam_PlayGameShowQuestionAndAnswers (bool ShowAnswers)
|
||||
{
|
||||
char Query[256];
|
||||
char Query[512];
|
||||
MYSQL_RES *mysql_res;
|
||||
MYSQL_ROW row;
|
||||
struct Game Game;
|
||||
unsigned QstInd;
|
||||
int NxtQstInd;
|
||||
long QstCod;
|
||||
|
||||
/***** Get parameters *****/
|
||||
/* Get game code */
|
||||
|
@ -3552,14 +3554,17 @@ static void Gam_PlayGameShowQuestionAndAnswers (bool ShowAnswers)
|
|||
|
||||
/***** Get data of question from database *****/
|
||||
/*
|
||||
row[0] QstCod
|
||||
row[1] Stem
|
||||
row[2] ImageName
|
||||
row[3] ImageTitle
|
||||
row[4] ImageURL
|
||||
row[0] AnsType
|
||||
row[1] QstCod
|
||||
row[2] Stem
|
||||
row[3] ImageName
|
||||
row[4] ImageTitle
|
||||
row[5] ImageURL
|
||||
*/
|
||||
sprintf (Query,"SELECT tst_questions.QstCod,"
|
||||
"tst_questions.Stem,"
|
||||
sprintf (Query,"SELECT "
|
||||
"tst_questions.QstCod,"
|
||||
"tst_questions.AnsType,"
|
||||
"tst_questions.Stem,"
|
||||
"tst_questions.ImageName,"
|
||||
"tst_questions.ImageTitle,"
|
||||
"tst_questions.ImageURL"
|
||||
|
@ -3580,15 +3585,28 @@ static void Gam_PlayGameShowQuestionAndAnswers (bool ShowAnswers)
|
|||
fprintf (Gbl.F.Out,"<div class=\"GAM_PLAY_NUM_QST\">%u</div>",
|
||||
QstInd + 1);
|
||||
|
||||
/* Write the stem (row[1]) and the image (row[2], row[3], row[4]) */
|
||||
/* Write the stem (row[2]) and the image (row[3], row[4], row[5]) */
|
||||
fprintf (Gbl.F.Out,"<div class=\"GAM_PLAY_QST_CONTAINER\">");
|
||||
Tst_WriteQstStem (row[1],"GAM_PLAY_QST");
|
||||
Img_GetImageNameTitleAndURLFromRow (row[2],row[3],row[4],&Gbl.Test.Image);
|
||||
Tst_WriteQstStem (row[2],"GAM_PLAY_QST");
|
||||
Img_GetImageNameTitleAndURLFromRow (row[3],row[4],row[5],&Gbl.Test.Image);
|
||||
Img_ShowImage (&Gbl.Test.Image,
|
||||
"TEST_IMG_EDIT_LIST_STEM_CONTAINER",
|
||||
"TEST_IMG_EDIT_LIST_STEM");
|
||||
|
||||
/* Write answers? */
|
||||
if (ShowAnswers)
|
||||
fprintf (Gbl.F.Out,"answers");
|
||||
{
|
||||
/* Get question code (row[0]) */
|
||||
if ((QstCod = Str_ConvertStrCodToLongCod (row[0])) <= 0)
|
||||
Lay_ShowErrorAndExit ("Error: wrong question code.");
|
||||
|
||||
/* Get answer type (row[1]) */
|
||||
Gbl.Test.AnswerType = Tst_ConvertFromStrAnsTypDBToAnsTyp (row[1]);
|
||||
|
||||
/* Write answers */
|
||||
Tst_WriteAnswersGameResult (&Game,QstInd,QstCod,
|
||||
"GAM_PLAY_QST",false); // Don't show result
|
||||
}
|
||||
fprintf (Gbl.F.Out,"</div>");
|
||||
|
||||
/* End container for number and question */
|
||||
|
|
51
swad_test.c
51
swad_test.c
|
@ -204,7 +204,10 @@ static void Tst_WriteTFAnsAssessTest (unsigned NumQst,MYSQL_RES *mysql_res,
|
|||
static void Tst_WriteChoiceAnsViewTest (unsigned NumQst,long QstCod,bool Shuffle);
|
||||
static void Tst_WriteChoiceAnsAssessTest (unsigned NumQst,MYSQL_RES *mysql_res,
|
||||
double *ScoreThisQst,bool *AnswerIsNotBlank);
|
||||
static void Tst_WriteChoiceAnsViewGame (struct Game *Game,unsigned NumQst,long QstCod);
|
||||
static void Tst_WriteChoiceAnsViewGame (struct Game *Game,
|
||||
unsigned NumQst,long QstCod,
|
||||
const char *Class,
|
||||
bool ShowResult);
|
||||
|
||||
static void Tst_WriteTextAnsViewTest (unsigned NumQst);
|
||||
static void Tst_WriteTextAnsAssessTest (unsigned NumQst,MYSQL_RES *mysql_res,
|
||||
|
@ -1038,11 +1041,12 @@ void Tst_WriteQstAndAnsTest (Tst_ActionToDoWithQuestions_t ActionToDoWithQuestio
|
|||
case Tst_SELECT_QUESTIONS_FOR_GAME:
|
||||
break;
|
||||
case Tst_SHOW_GAME_TO_ANSWER:
|
||||
// TODO: Change this!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
Tst_WriteAnswersTestToAnswer (NumQst,QstCod,(row[3][0] == 'Y'));
|
||||
Tst_WriteAnswersGameResult (Game,NumQst,QstCod,
|
||||
"GAM_PLAY_QST",false); // Don't show result
|
||||
break;
|
||||
case Tst_SHOW_GAME_RESULT:
|
||||
Tst_WriteAnswersGameResult (Game,NumQst,QstCod);
|
||||
Tst_WriteAnswersGameResult (Game,NumQst,QstCod,
|
||||
"GAM_PLAY_QST",true); // Show result
|
||||
break;
|
||||
}
|
||||
fprintf (Gbl.F.Out,"</td>"
|
||||
|
@ -3537,10 +3541,11 @@ static void Tst_WriteAnswersTestResult (unsigned NumQst,long QstCod,
|
|||
/************** Write answers of a question when viewing a game **************/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Tst_WriteAnswersGameResult (struct Game *Game,unsigned NumQst,long QstCod)
|
||||
void Tst_WriteAnswersGameResult (struct Game *Game,unsigned NumQst,long QstCod,
|
||||
const char *Class,bool ShowResult)
|
||||
{
|
||||
/***** Write parameter with question code *****/
|
||||
Tst_WriteParamQstCod (NumQst,QstCod);
|
||||
// Tst_WriteParamQstCod (NumQst,QstCod);
|
||||
|
||||
/***** Write answer depending on type *****/
|
||||
switch (Gbl.Test.AnswerType)
|
||||
|
@ -3553,7 +3558,8 @@ void Tst_WriteAnswersGameResult (struct Game *Game,unsigned NumQst,long QstCod)
|
|||
break;
|
||||
case Tst_ANS_UNIQUE_CHOICE:
|
||||
case Tst_ANS_MULTIPLE_CHOICE:
|
||||
Tst_WriteChoiceAnsViewGame (Game,NumQst,QstCod);
|
||||
Tst_WriteChoiceAnsViewGame (Game,NumQst,QstCod,
|
||||
Class,ShowResult);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
@ -3765,7 +3771,7 @@ static void Tst_WriteChoiceAnsViewTest (unsigned NumQst,long QstCod,bool Shuffle
|
|||
NumQst,NumOpt,
|
||||
NumQst,Index);
|
||||
fprintf (Gbl.F.Out,"<td class=\"LEFT_TOP\">"
|
||||
"<label for=\"Ans%06u_%u\" class=\"TEST\">"
|
||||
"<label for=\"Ans%06u_%u\" class=\"ANS\">"
|
||||
"%c) "
|
||||
"</label>"
|
||||
"</td>",
|
||||
|
@ -3774,7 +3780,7 @@ static void Tst_WriteChoiceAnsViewTest (unsigned NumQst,long QstCod,bool Shuffle
|
|||
|
||||
/***** Write the option text *****/
|
||||
fprintf (Gbl.F.Out,"<td class=\"LEFT_TOP\">"
|
||||
"<label for=\"Ans%06u_%u\" class=\"TEST_EXA\">"
|
||||
"<label for=\"Ans%06u_%u\" class=\"ANS\">"
|
||||
"%s"
|
||||
"</label>",
|
||||
NumQst,NumOpt,
|
||||
|
@ -3940,14 +3946,14 @@ static void Tst_WriteChoiceAnsAssessTest (unsigned NumQst,MYSQL_RES *mysql_res,
|
|||
fprintf (Gbl.F.Out,"</td>");
|
||||
|
||||
/* Answer letter (a, b, c,...) */
|
||||
fprintf (Gbl.F.Out,"<td class=\"TEST LEFT_TOP\">"
|
||||
fprintf (Gbl.F.Out,"<td class=\"ANS LEFT_TOP\">"
|
||||
"%c) "
|
||||
"</td>",
|
||||
'a' + (char) NumOpt);
|
||||
|
||||
/* Answer text and feedback */
|
||||
fprintf (Gbl.F.Out,"<td class=\"LEFT_TOP\">"
|
||||
"<div class=\"TEST_EXA\">"
|
||||
"<div class=\"ANS\">"
|
||||
"%s",
|
||||
Gbl.Test.Answer.Options[Indexes[NumOpt]].Text);
|
||||
Img_ShowImage (&Gbl.Test.Answer.Options[Indexes[NumOpt]].Image,
|
||||
|
@ -4037,7 +4043,10 @@ static void Tst_WriteChoiceAnsAssessTest (unsigned NumQst,MYSQL_RES *mysql_res,
|
|||
/******** Write single or multiple choice answer when viewing a test *********/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Tst_WriteChoiceAnsViewGame (struct Game *Game,unsigned NumQst,long QstCod)
|
||||
static void Tst_WriteChoiceAnsViewGame (struct Game *Game,
|
||||
unsigned NumQst,long QstCod,
|
||||
const char *Class,
|
||||
bool ShowResult)
|
||||
{
|
||||
unsigned NumOpt;
|
||||
MYSQL_RES *mysql_res;
|
||||
|
@ -4097,27 +4106,31 @@ static void Tst_WriteChoiceAnsViewGame (struct Game *Game,unsigned NumQst,long Q
|
|||
/***** Write letter of this option *****/
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
"<td class=\"LEFT_TOP\">"
|
||||
"<label for=\"Ans%06u_%u\" class=\"TEST\">"
|
||||
"<label for=\"Ans%06u_%u\" class=\"%s\">"
|
||||
"%c) "
|
||||
"</label>"
|
||||
"</td>",
|
||||
NumQst,NumOpt,
|
||||
NumQst,NumOpt,Class,
|
||||
'a' + (char) NumOpt);
|
||||
|
||||
/***** Write the option text *****/
|
||||
fprintf (Gbl.F.Out,"<td class=\"LEFT_TOP\">"
|
||||
"<label for=\"Ans%06u_%u\" class=\"TEST_EXA\">"
|
||||
"<label for=\"Ans%06u_%u\" class=\"%s\">"
|
||||
"%s"
|
||||
"</label>",
|
||||
NumQst,NumOpt,
|
||||
NumQst,NumOpt,Class,
|
||||
Gbl.Test.Answer.Options[NumOpt].Text);
|
||||
Img_ShowImage (&Gbl.Test.Answer.Options[NumOpt].Image,
|
||||
"TEST_IMG_SHOW_ANS_CONTAINER",
|
||||
"TEST_IMG_SHOW_ANS");
|
||||
fprintf (Gbl.F.Out,"</td>");
|
||||
|
||||
/* Get number of users who selected this answer and draw proportional bar */
|
||||
Gam_GetAndDrawBarNumUsrsWhoAnswered (Game,QstCod,AnsInd);
|
||||
/***** Show result (number of users who answered? *****/
|
||||
if (ShowResult)
|
||||
/* Get number of users who selected this answer
|
||||
and draw proportional bar */
|
||||
Gam_GetAndDrawBarNumUsrsWhoAnswered (Game,QstCod,AnsInd);
|
||||
|
||||
fprintf (Gbl.F.Out,"</tr>");
|
||||
}
|
||||
|
||||
|
@ -4259,7 +4272,7 @@ static void Tst_WriteTextAnsAssessTest (unsigned NumQst,MYSQL_RES *mysql_res,
|
|||
NumOpt++)
|
||||
{
|
||||
/* Answer letter (a, b, c,...) */
|
||||
fprintf (Gbl.F.Out,"<td class=\"TEST LEFT_TOP\">"
|
||||
fprintf (Gbl.F.Out,"<td class=\"ANS LEFT_TOP\">"
|
||||
"%c) "
|
||||
"</td>",
|
||||
'a' + (char) NumOpt);
|
||||
|
|
|
@ -158,7 +158,8 @@ void Tst_ListQuestionsToSelect (void);
|
|||
bool Tst_GetOneQuestionByCod (long QstCod,MYSQL_RES **mysql_res);
|
||||
void Tst_WriteParamEditQst (void);
|
||||
unsigned Tst_GetAnswersQst (long QstCod,MYSQL_RES **mysql_res,bool Shuffle);
|
||||
void Tst_WriteAnswersGameResult (struct Game *Game,unsigned NumQst,long QstCod);
|
||||
void Tst_WriteAnswersGameResult (struct Game *Game,unsigned NumQst,long QstCod,
|
||||
const char *Class,bool ShowResult);
|
||||
void Tst_WriteAnsTF (char AnsTF);
|
||||
void Tst_CheckIfNumberOfAnswersIsOne (void);
|
||||
|
||||
|
|
Loading…
Reference in New Issue