Version 17.26.7

This commit is contained in:
Antonio Cañas Vargas 2017-11-30 12:07:19 +01:00
parent 7d597c4322
commit 2614cfd359
2 changed files with 64 additions and 14 deletions

View File

@ -268,7 +268,7 @@
/****************************** Public constants *****************************/
/*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 17.26.6 (2017-11-30)"
#define Log_PLATFORM_VERSION "SWAD 17.26.7 (2017-11-30)"
#define CSS_FILE "swad17.25.4.css"
#define JS_FILE "swad17.17.1.js"
@ -281,9 +281,10 @@ enscript -1 --color --file-align=2 --highlight --line-numbers -o - * > swad17.26
enscript -2 --landscape --file-align=2 --highlight --line-numbers -o - * > swad17.26.5_bn_2_columnas.ps
enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - * > swad17.26.5_color_2_columnas.ps
En OpenSWAD:
ps2pdf fuente.ps destino.pdf
ps2pdf source.ps destination.pdf
*/
/*
Version 17.26.7: Nov 30, 2017 Fixed bug in surveys. (234438 lines)
Version 17.26.6: Nov 30, 2017 Fixed bug in surveys. (234400 lines)
Version 17.26.5: Nov 26, 2017 Maximum number of columns in class photo changed from 50 to 100. (234391 lines)
Version 17.26.4: Nov 13, 2017 Session expires in 8 hours. (234388 lines)

View File

@ -64,7 +64,7 @@ const char *Svy_StrAnswerTypesDB[Svy_NUM_ANS_TYPES] =
#define Svy_MAX_ANSWERS_PER_QUESTION 10
struct SurveyQuestion
struct SurveyQuestion // Must be initialized to 0 before using it
{
long QstCod;
unsigned QstInd;
@ -144,12 +144,15 @@ static void Svy_FreeTextChoiceAnswer (struct SurveyQuestion *SvyQst,unsigned Num
static unsigned Svy_GetQstIndFromQstCod (long QstCod);
static unsigned Svy_GetNextQuestionIndexInSvy (long SvyCod);
static void Svy_ListSvyQuestions (struct Survey *Svy,struct SurveyQuestion *SvyQst);
static void Svy_ListSvyQuestions (struct Survey *Svy,
struct SurveyQuestion *SvyQst);
static void Svy_PutParamsToEditQuestion (void);
static void Svy_PutIconToAddNewQuestion (void);
static void Svy_PutButtonToCreateNewQuestion (void);
static void Svy_WriteQstStem (const char *Stem);
static void Svy_WriteAnswersOfAQst (struct Survey *Svy,struct SurveyQuestion *SvyQst,bool PutFormAnswerSurvey);
static void Svy_WriteAnswersOfAQst (struct Survey *Svy,
struct SurveyQuestion *SvyQst,
bool PutFormAnswerSurvey);
static void Svy_DrawBarNumUsrs (unsigned NumUsrs,unsigned MaxUsrs);
static void Svy_PutIconToRemoveOneQst (void);
@ -169,6 +172,9 @@ void Svy_SeeAllSurveys (void)
{
struct SurveyQuestion SvyQst;
/***** Initialize question to zero *****/
Svy_InitQst (&SvyQst);
/***** Get parameters *****/
Svy_GetParamSvyOrder ();
Grp_GetParamWhichGrps ();
@ -1483,6 +1489,9 @@ void Svy_AskRemSurvey (void)
struct Survey Svy;
struct SurveyQuestion SvyQst;
/***** Initialize question to zero *****/
Svy_InitQst (&SvyQst);
/***** Get parameters *****/
Svy_GetParamSvyOrder ();
Grp_GetParamWhichGrps ();
@ -1520,6 +1529,9 @@ void Svy_RemoveSurvey (void)
struct Survey Svy;
struct SurveyQuestion SvyQst;
/***** Initialize question to zero *****/
Svy_InitQst (&SvyQst);
/***** Get survey code *****/
if ((Svy.SvyCod = Svy_GetParamSvyCod ()) == -1L)
Lay_ShowErrorAndExit ("Code of survey is missing.");
@ -1577,6 +1589,9 @@ void Svy_AskResetSurvey (void)
struct Survey Svy;
struct SurveyQuestion SvyQst;
/***** Initialize question to zero *****/
Svy_InitQst (&SvyQst);
/***** Get parameters *****/
Svy_GetParamSvyOrder ();
Grp_GetParamWhichGrps ();
@ -1629,6 +1644,9 @@ void Svy_ResetSurvey (void)
struct Survey Svy;
struct SurveyQuestion SvyQst;
/***** Initialize question to zero *****/
Svy_InitQst (&SvyQst);
/***** Get survey code *****/
if ((Svy.SvyCod = Svy_GetParamSvyCod ()) == -1L)
Lay_ShowErrorAndExit ("Code of survey is missing.");
@ -1670,6 +1688,9 @@ void Svy_HideSurvey (void)
struct Survey Svy;
struct SurveyQuestion SvyQst;
/***** Initialize question to zero *****/
Svy_InitQst (&SvyQst);
/***** Get survey code *****/
if ((Svy.SvyCod = Svy_GetParamSvyCod ()) == -1L)
Lay_ShowErrorAndExit ("Code of survey is missing.");
@ -1704,6 +1725,9 @@ void Svy_UnhideSurvey (void)
struct Survey Svy;
struct SurveyQuestion SvyQst;
/***** Initialize question to zero *****/
Svy_InitQst (&SvyQst);
/***** Get survey code *****/
if ((Svy.SvyCod = Svy_GetParamSvyCod ()) == -1L)
Lay_ShowErrorAndExit ("Code of survey is missing.");
@ -1767,6 +1791,9 @@ void Svy_RequestCreatOrEditSvy (void)
bool ItsANewSurvey;
char Txt[Cns_MAX_BYTES_TEXT + 1];
/***** Initialize question to zero *****/
Svy_InitQst (&SvyQst);
/***** Get parameters *****/
Svy_GetParamSvyOrder ();
Grp_GetParamWhichGrps ();
@ -2074,6 +2101,9 @@ void Svy_RecFormSurvey (void)
unsigned NumUsrsToBeNotifiedByEMail;
char Txt[Cns_MAX_BYTES_TEXT + 1];
/***** Initialize question to zero *****/
Svy_InitQst (&SvyQst);
/***** Get the code of the survey *****/
ItsANewSurvey = ((NewSvy.SvyCod = Svy_GetParamSvyCod ()) == -1L);
@ -2559,6 +2589,8 @@ void Svy_RequestEditQuestion (void)
/***** Initialize question to zero *****/
Svy_InitQst (&SvyQst);
/***** Initialize text to empty string *****/
Txt[0] = '\0';
/***** Get survey code *****/
@ -2877,7 +2909,8 @@ static unsigned Svy_GetAnswersQst (long QstCod,MYSQL_RES **mysql_res)
/******************* Allocate memory for a choice answer *********************/
/*****************************************************************************/
static bool Svy_AllocateTextChoiceAnswer (struct SurveyQuestion *SvyQst,unsigned NumAns)
static bool Svy_AllocateTextChoiceAnswer (struct SurveyQuestion *SvyQst,
unsigned NumAns)
{
Svy_FreeTextChoiceAnswer (SvyQst,NumAns);
if ((SvyQst->AnsChoice[NumAns].Text = malloc (Svy_MAX_BYTES_ANSWER + 1)) == NULL)
@ -2936,7 +2969,7 @@ void Svy_ReceiveQst (void)
bool ThereIsEndOfAnswers;
bool Error = false;
/***** Initialize new question to zero *****/
/***** Initialize question to zero *****/
Svy_InitQst (&SvyQst);
/***** Get parameters from form *****/
@ -3152,7 +3185,8 @@ static unsigned Svy_GetNextQuestionIndexInSvy (long SvyCod)
/************************ List the questions of a survey *********************/
/*****************************************************************************/
static void Svy_ListSvyQuestions (struct Survey *Svy,struct SurveyQuestion *SvyQst)
static void Svy_ListSvyQuestions (struct Survey *Svy,
struct SurveyQuestion *SvyQst)
{
extern const char *Hlp_ASSESSMENT_Surveys_questions;
extern const char *Txt_Questions;
@ -3174,7 +3208,8 @@ static void Svy_ListSvyQuestions (struct Survey *Svy,struct SurveyQuestion *SvyQ
/***** Get data of questions from database *****/
sprintf (Query,"SELECT QstCod,QstInd,AnsType,Stem"
" FROM svy_questions WHERE SvyCod=%ld ORDER BY QstInd",
" FROM svy_questions"
" WHERE SvyCod=%ld ORDER BY QstInd",
Svy->SvyCod);
NumQsts = (unsigned) DB_QuerySELECT (Query,&mysql_res,"can not get data of a question");
@ -3366,7 +3401,9 @@ static void Svy_WriteQstStem (const char *Stem)
/************** Get and write the answers of a survey question ***************/
/*****************************************************************************/
static void Svy_WriteAnswersOfAQst (struct Survey *Svy,struct SurveyQuestion *SvyQst,bool PutFormAnswerSurvey)
static void Svy_WriteAnswersOfAQst (struct Survey *Svy,
struct SurveyQuestion *SvyQst,
bool PutFormAnswerSurvey)
{
unsigned NumAnswers;
unsigned NumAns;
@ -3531,6 +3568,9 @@ void Svy_RequestRemoveQst (void)
long SvyCod;
struct SurveyQuestion SvyQst;
/***** Initialize question to zero *****/
Svy_InitQst (&SvyQst);
/***** Get parameters from form *****/
/* Get survey code */
if ((SvyCod = Svy_GetParamSvyCod ()) == -1L)
@ -3567,6 +3607,9 @@ void Svy_RemoveQst (void)
long SvyCod;
struct SurveyQuestion SvyQst;
/***** Initialize question to zero *****/
Svy_InitQst (&SvyQst);
/***** Get parameters from form *****/
/* Get survey code */
if ((SvyCod = Svy_GetParamSvyCod ()) == -1L)
@ -3615,6 +3658,9 @@ void Svy_ReceiveSurveyAnswers (void)
struct Survey Svy;
struct SurveyQuestion SvyQst;
/***** Initialize question to zero *****/
Svy_InitQst (&SvyQst);
/***** Get survey code *****/
if ((Svy.SvyCod = Svy_GetParamSvyCod ()) == -1L)
Lay_ShowErrorAndExit ("Code of survey is missing.");
@ -3660,8 +3706,10 @@ static void Svy_ReceiveAndStoreUserAnswersToASurvey (long SvyCod)
SvyCod);
DB_QuerySELECT (Query,&mysql_res,"can not get questions of a survey");
if ((NumQsts = (unsigned) DB_QuerySELECT (Query,&mysql_res,"can not get surveys"))) // The survey has questions
if ((NumQsts = (unsigned) DB_QuerySELECT (Query,&mysql_res,
"can not get surveys")))
{
// This survey has questions
/***** Get questions *****/
for (NumQst = 0;
NumQst < NumQsts;
@ -3684,12 +3732,13 @@ static void Svy_ReceiveAndStoreUserAnswersToASurvey (long SvyCod)
{
Par_GetNextStrUntilSeparParamMult (&Ptr,UnsignedStr,10);
if (sscanf (UnsignedStr,"%u",&AnsInd) == 1)
// Parameter exists, so user has marked this answer, so store it in database
// Parameter exists ==> user has checked this answer
// ==> store it in database
Svy_IncreaseAnswerInDB (QstCod,AnsInd);
}
}
}
else // The survey has no questions and answers
else // This survey has no questions
Lay_ShowErrorAndExit ("Error: this survey has no questions.");
/***** Free structure that stores the query result *****/
@ -3711,7 +3760,7 @@ static void Svy_IncreaseAnswerInDB (long QstCod,unsigned AnsInd)
sprintf (Query,"UPDATE svy_answers SET NumUsrs=NumUsrs+1"
" WHERE QstCod=%ld AND AnsInd=%u",
QstCod,AnsInd);
DB_QueryINSERT (Query,"can not register your answer to the survey");
DB_QueryUPDATE (Query,"can not register your answer to the survey");
}
/*****************************************************************************/