mirror of https://github.com/acanas/swad-core.git
Version 18.11.21
This commit is contained in:
parent
9225511dec
commit
d2b5d7ff03
|
@ -355,10 +355,11 @@ En OpenSWAD:
|
|||
ps2pdf source.ps destination.pdf
|
||||
*/
|
||||
|
||||
#define Log_PLATFORM_VERSION "SWAD 18.11.20 (2018-11-02)"
|
||||
#define Log_PLATFORM_VERSION "SWAD 18.11.21 (2018-11-02)"
|
||||
#define CSS_FILE "swad18.4.css"
|
||||
#define JS_FILE "swad17.17.1.js"
|
||||
/*
|
||||
Version 18.11.21: Nov 02, 2018 Joining building and performing query into one function. (236580 lines)
|
||||
Version 18.11.20: Nov 02, 2018 Joining building and performing query into one function. (236585 lines)
|
||||
Version 18.11.19: Nov 02, 2018 Joining building and performing query into one function. (236465 lines)
|
||||
Version 18.11.18: Nov 02, 2018 Joining building and performing query into one function. (236499 lines)
|
||||
|
|
|
@ -3359,23 +3359,6 @@ void DB_QueryDELETE (const char *MsgError,const char *fmt,...)
|
|||
DB_ExitOnMySQLError (MsgError);
|
||||
}
|
||||
|
||||
void DB_QueryDELETE_new (const char *MsgError)
|
||||
{
|
||||
int Result;
|
||||
|
||||
/***** Check that query string pointer
|
||||
does point to an allocated string *****/
|
||||
if (Gbl.DB.QueryPtr == NULL)
|
||||
Lay_ShowErrorAndExit ("Wrong query string.");
|
||||
|
||||
/***** Query database and free query string pointer *****/
|
||||
Result = mysql_query (&Gbl.mysql,Gbl.DB.QueryPtr); // Returns 0 on success
|
||||
free ((void *) Gbl.DB.QueryPtr);
|
||||
Gbl.DB.QueryPtr = NULL;
|
||||
if (Result)
|
||||
DB_ExitOnMySQLError (MsgError);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/**************** Make other kind of query from database *********************/
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -59,7 +59,6 @@ void DB_QueryUPDATE_new (const char *MsgError);
|
|||
void DB_QueryUPDATE_old (char **Query,const char *MsgError);
|
||||
|
||||
void DB_QueryDELETE (const char *MsgError,const char *fmt,...);
|
||||
void DB_QueryDELETE_new (const char *MsgError);
|
||||
|
||||
void DB_Query_new (const char *MsgError);
|
||||
|
||||
|
|
146
swad_survey.c
146
swad_survey.c
|
@ -1539,30 +1539,30 @@ void Svy_RemoveSurvey (void)
|
|||
Lay_ShowErrorAndExit ("You can not remove this survey.");
|
||||
|
||||
/***** Remove all the users in this survey *****/
|
||||
DB_BuildQuery ("DELETE FROM svy_users WHERE SvyCod=%ld",
|
||||
Svy.SvyCod);
|
||||
DB_QueryDELETE_new ("can not remove users who are answered a survey");
|
||||
DB_QueryDELETE ("can not remove users who are answered a survey",
|
||||
"DELETE FROM svy_users WHERE SvyCod=%ld",
|
||||
Svy.SvyCod);
|
||||
|
||||
/***** Remove all the answers in this survey *****/
|
||||
DB_BuildQuery ("DELETE FROM svy_answers USING svy_questions,svy_answers"
|
||||
" WHERE svy_questions.SvyCod=%ld"
|
||||
" AND svy_questions.QstCod=svy_answers.QstCod",
|
||||
Svy.SvyCod);
|
||||
DB_QueryDELETE_new ("can not remove answers of a survey");
|
||||
DB_QueryDELETE ("can not remove answers of a survey",
|
||||
"DELETE FROM svy_answers USING svy_questions,svy_answers"
|
||||
" WHERE svy_questions.SvyCod=%ld"
|
||||
" AND svy_questions.QstCod=svy_answers.QstCod",
|
||||
Svy.SvyCod);
|
||||
|
||||
/***** Remove all the questions in this survey *****/
|
||||
DB_BuildQuery ("DELETE FROM svy_questions"
|
||||
" WHERE SvyCod=%ld",
|
||||
Svy.SvyCod);
|
||||
DB_QueryDELETE_new ("can not remove questions of a survey");
|
||||
DB_QueryDELETE ("can not remove questions of a survey",
|
||||
"DELETE FROM svy_questions"
|
||||
" WHERE SvyCod=%ld",
|
||||
Svy.SvyCod);
|
||||
|
||||
/***** Remove all the groups of this survey *****/
|
||||
Svy_RemoveAllTheGrpsAssociatedToAndSurvey (Svy.SvyCod);
|
||||
|
||||
/***** Remove survey *****/
|
||||
DB_BuildQuery ("DELETE FROM surveys WHERE SvyCod=%ld",
|
||||
Svy.SvyCod);
|
||||
DB_QueryDELETE_new ("can not remove survey");
|
||||
DB_QueryDELETE ("can not remove survey",
|
||||
"DELETE FROM surveys WHERE SvyCod=%ld",
|
||||
Svy.SvyCod);
|
||||
|
||||
/***** Mark possible notifications as removed *****/
|
||||
Ntf_MarkNotifAsRemoved (Ntf_EVENT_SURVEY,Svy.SvyCod);
|
||||
|
@ -1655,9 +1655,9 @@ void Svy_ResetSurvey (void)
|
|||
Lay_ShowErrorAndExit ("You can not reset this survey.");
|
||||
|
||||
/***** Remove all the users in this survey *****/
|
||||
DB_BuildQuery ("DELETE FROM svy_users WHERE SvyCod=%ld",
|
||||
Svy.SvyCod);
|
||||
DB_QueryDELETE_new ("can not remove users who are answered a survey");
|
||||
DB_QueryDELETE ("can not remove users who are answered a survey",
|
||||
"DELETE FROM svy_users WHERE SvyCod=%ld",
|
||||
Svy.SvyCod);
|
||||
|
||||
/***** Reset all the answers in this survey *****/
|
||||
DB_BuildQuery ("UPDATE svy_answers,svy_questions SET svy_answers.NumUsrs=0"
|
||||
|
@ -2347,8 +2347,9 @@ bool Svy_CheckIfSvyIsAssociatedToGrp (long SvyCod,long GrpCod)
|
|||
static void Svy_RemoveAllTheGrpsAssociatedToAndSurvey (long SvyCod)
|
||||
{
|
||||
/***** Remove groups of the survey *****/
|
||||
DB_BuildQuery ("DELETE FROM svy_grp WHERE SvyCod=%ld",SvyCod);
|
||||
DB_QueryDELETE_new ("can not remove the groups associated to a survey");
|
||||
DB_QueryDELETE ("can not remove the groups associated to a survey",
|
||||
"DELETE FROM svy_grp WHERE SvyCod=%ld",
|
||||
SvyCod);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -2358,9 +2359,10 @@ static void Svy_RemoveAllTheGrpsAssociatedToAndSurvey (long SvyCod)
|
|||
void Svy_RemoveGroup (long GrpCod)
|
||||
{
|
||||
/***** Remove group from all the surveys *****/
|
||||
DB_BuildQuery ("DELETE FROM svy_grp WHERE GrpCod=%ld",GrpCod);
|
||||
DB_QueryDELETE_new ("can not remove group"
|
||||
" from the associations between surveys and groups");
|
||||
DB_QueryDELETE ("can not remove group from the associations"
|
||||
" between surveys and groups",
|
||||
"DELETE FROM svy_grp WHERE GrpCod=%ld",
|
||||
GrpCod);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -2370,12 +2372,12 @@ void Svy_RemoveGroup (long GrpCod)
|
|||
void Svy_RemoveGroupsOfType (long GrpTypCod)
|
||||
{
|
||||
/***** Remove group from all the surveys *****/
|
||||
DB_BuildQuery ("DELETE FROM svy_grp USING crs_grp,svy_grp"
|
||||
" WHERE crs_grp.GrpTypCod=%ld"
|
||||
" AND crs_grp.GrpCod=svy_grp.GrpCod",
|
||||
GrpTypCod);
|
||||
DB_QueryDELETE_new ("can not remove groups of a type"
|
||||
" from the associations between surveys and groups");
|
||||
DB_QueryDELETE ("can not remove groups of a type"
|
||||
" from the associations between surveys and groups",
|
||||
"DELETE FROM svy_grp USING crs_grp,svy_grp"
|
||||
" WHERE crs_grp.GrpTypCod=%ld"
|
||||
" AND crs_grp.GrpCod=svy_grp.GrpCod",
|
||||
GrpTypCod);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -2476,45 +2478,48 @@ void Svy_RemoveSurveys (Sco_Scope_t Scope,long Cod)
|
|||
extern const char *Sco_ScopeDB[Sco_NUM_SCOPES];
|
||||
|
||||
/***** Remove all the users in course surveys *****/
|
||||
DB_BuildQuery ("DELETE FROM svy_users"
|
||||
" USING surveys,svy_users"
|
||||
" WHERE surveys.Scope='%s' AND surveys.Cod=%ld"
|
||||
" AND surveys.SvyCod=svy_users.SvyCod",
|
||||
Sco_ScopeDB[Scope],Cod);
|
||||
DB_QueryDELETE_new ("can not remove users"
|
||||
" who had answered surveys in a place on the hierarchy");
|
||||
DB_QueryDELETE ("can not remove users"
|
||||
" who had answered surveys in a place on the hierarchy",
|
||||
"DELETE FROM svy_users"
|
||||
" USING surveys,svy_users"
|
||||
" WHERE surveys.Scope='%s' AND surveys.Cod=%ld"
|
||||
" AND surveys.SvyCod=svy_users.SvyCod",
|
||||
Sco_ScopeDB[Scope],Cod);
|
||||
|
||||
/***** Remove all the answers in course surveys *****/
|
||||
DB_BuildQuery ("DELETE FROM svy_answers"
|
||||
" USING surveys,svy_questions,svy_answers"
|
||||
" WHERE surveys.Scope='%s' AND surveys.Cod=%ld"
|
||||
" AND surveys.SvyCod=svy_questions.SvyCod"
|
||||
" AND svy_questions.QstCod=svy_answers.QstCod",
|
||||
Sco_ScopeDB[Scope],Cod);
|
||||
DB_QueryDELETE_new ("can not remove answers of surveys in a place on the hierarchy");
|
||||
DB_QueryDELETE ("can not remove answers of surveys"
|
||||
" in a place on the hierarchy",
|
||||
"DELETE FROM svy_answers"
|
||||
" USING surveys,svy_questions,svy_answers"
|
||||
" WHERE surveys.Scope='%s' AND surveys.Cod=%ld"
|
||||
" AND surveys.SvyCod=svy_questions.SvyCod"
|
||||
" AND svy_questions.QstCod=svy_answers.QstCod",
|
||||
Sco_ScopeDB[Scope],Cod);
|
||||
|
||||
/***** Remove all the questions in course surveys *****/
|
||||
DB_BuildQuery ("DELETE FROM svy_questions"
|
||||
" USING surveys,svy_questions"
|
||||
" WHERE surveys.Scope='%s' AND surveys.Cod=%ld"
|
||||
" AND surveys.SvyCod=svy_questions.SvyCod",
|
||||
Sco_ScopeDB[Scope],Cod);
|
||||
DB_QueryDELETE_new ("can not remove questions of surveys in a place on the hierarchy");
|
||||
DB_QueryDELETE ("can not remove questions of surveys"
|
||||
" in a place on the hierarchy",
|
||||
"DELETE FROM svy_questions"
|
||||
" USING surveys,svy_questions"
|
||||
" WHERE surveys.Scope='%s' AND surveys.Cod=%ld"
|
||||
" AND surveys.SvyCod=svy_questions.SvyCod",
|
||||
Sco_ScopeDB[Scope],Cod);
|
||||
|
||||
/***** Remove groups *****/
|
||||
DB_BuildQuery ("DELETE FROM svy_grp"
|
||||
" USING surveys,svy_grp"
|
||||
" WHERE surveys.Scope='%s' AND surveys.Cod=%ld"
|
||||
" AND surveys.SvyCod=svy_grp.SvyCod",
|
||||
Sco_ScopeDB[Scope],Cod);
|
||||
DB_QueryDELETE_new ("can not remove all the groups"
|
||||
" associated to surveys of a course");
|
||||
DB_QueryDELETE ("can not remove all the groups"
|
||||
" associated to surveys of a course",
|
||||
"DELETE FROM svy_grp"
|
||||
" USING surveys,svy_grp"
|
||||
" WHERE surveys.Scope='%s' AND surveys.Cod=%ld"
|
||||
" AND surveys.SvyCod=svy_grp.SvyCod",
|
||||
Sco_ScopeDB[Scope],Cod);
|
||||
|
||||
/***** Remove course surveys *****/
|
||||
DB_BuildQuery ("DELETE FROM surveys"
|
||||
" WHERE Scope='%s' AND Cod=%ld",
|
||||
Sco_ScopeDB[Scope],Cod);
|
||||
DB_QueryDELETE_new ("can not remove all the surveys in a place on the hierarchy");
|
||||
DB_QueryDELETE ("can not remove all the surveys"
|
||||
" in a place on the hierarchy",
|
||||
"DELETE FROM surveys"
|
||||
" WHERE Scope='%s' AND Cod=%ld",
|
||||
Sco_ScopeDB[Scope],Cod);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -2812,8 +2817,9 @@ static long Svy_GetParamQstCod (void)
|
|||
static void Svy_RemAnswersOfAQuestion (long QstCod)
|
||||
{
|
||||
/***** Remove answers *****/
|
||||
DB_BuildQuery ("DELETE FROM svy_answers WHERE QstCod=%ld",QstCod);
|
||||
DB_QueryDELETE_new ("can not remove the answers of a question");
|
||||
DB_QueryDELETE ("can not remove the answers of a question",
|
||||
"DELETE FROM svy_answers WHERE QstCod=%ld",
|
||||
QstCod);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -3049,13 +3055,11 @@ void Svy_ReceiveQst (void)
|
|||
DB_QueryUPDATE_new ("can not update answer");
|
||||
}
|
||||
else // Answer is empty
|
||||
{
|
||||
/* Delete answer from database */
|
||||
DB_BuildQuery ("DELETE FROM svy_answers"
|
||||
" WHERE QstCod=%ld AND AnsInd=%u",
|
||||
SvyQst.QstCod,NumAns);
|
||||
DB_QueryDELETE_new ("can not delete answer");
|
||||
}
|
||||
DB_QueryDELETE ("can not delete answer",
|
||||
"DELETE FROM svy_answers"
|
||||
" WHERE QstCod=%ld AND AnsInd=%u",
|
||||
SvyQst.QstCod,NumAns);
|
||||
}
|
||||
else // If this answer does not exist...
|
||||
{
|
||||
|
@ -3590,9 +3594,9 @@ void Svy_RemoveQst (void)
|
|||
Svy_RemAnswersOfAQuestion (SvyQst.QstCod);
|
||||
|
||||
/* Remove the question itself */
|
||||
DB_BuildQuery ("DELETE FROM svy_questions WHERE QstCod=%ld",
|
||||
SvyQst.QstCod);
|
||||
DB_QueryDELETE_new ("can not remove a question");
|
||||
DB_QueryDELETE ("can not remove a question",
|
||||
"DELETE FROM svy_questions WHERE QstCod=%ld",
|
||||
SvyQst.QstCod);
|
||||
if (!mysql_affected_rows (&Gbl.mysql))
|
||||
Lay_ShowErrorAndExit ("The question to be removed does not exist.");
|
||||
|
||||
|
|
167
swad_test.c
167
swad_test.c
|
@ -729,9 +729,10 @@ static bool Tst_CheckIfNextTstAllowed (void)
|
|||
static void Tst_SetTstStatus (unsigned NumTst,Tst_Status_t TstStatus)
|
||||
{
|
||||
/***** Delete old status from expired sessions *****/
|
||||
DB_BuildQuery ("DELETE FROM tst_status"
|
||||
" WHERE SessionId NOT IN (SELECT SessionId FROM sessions)");
|
||||
DB_QueryDELETE_new ("can not remove old status of tests");
|
||||
DB_QueryDELETE ("can not remove old status of tests",
|
||||
"DELETE FROM tst_status"
|
||||
" WHERE SessionId NOT IN"
|
||||
" (SELECT SessionId FROM sessions)");
|
||||
|
||||
/***** Update database *****/
|
||||
DB_QueryREPLACE ("can not update status of test",
|
||||
|
@ -1611,12 +1612,12 @@ void Tst_RenameTag (void)
|
|||
|
||||
/* Remove old tag in questions where it would be repeated */
|
||||
// New tag existed for a question ==> delete old tag
|
||||
DB_BuildQuery ("DELETE FROM tst_question_tags"
|
||||
" WHERE TagCod=%ld"
|
||||
" AND QstCod IN"
|
||||
" (SELECT QstCod FROM tst_question_tags_tmp)",
|
||||
OldTagCod);
|
||||
DB_QueryDELETE_new ("can not remove a tag from some questions");
|
||||
DB_QueryDELETE ("can not remove a tag from some questions",
|
||||
"DELETE FROM tst_question_tags"
|
||||
" WHERE TagCod=%ld"
|
||||
" AND QstCod IN"
|
||||
" (SELECT QstCod FROM tst_question_tags_tmp)",
|
||||
OldTagCod);
|
||||
|
||||
/* Change old tag to new tag in questions where it would not be repeated */
|
||||
// New tag did not exist for a question ==> change old tag to new tag
|
||||
|
@ -1635,9 +1636,9 @@ void Tst_RenameTag (void)
|
|||
|
||||
/***** Delete old tag from tst_tags
|
||||
because it is not longer used *****/
|
||||
DB_BuildQuery ("DELETE FROM tst_tags WHERE TagCod=%ld",
|
||||
OldTagCod);
|
||||
DB_QueryDELETE_new ("can not remove old tag");
|
||||
DB_QueryDELETE ("can not remove old tag",
|
||||
"DELETE FROM tst_tags WHERE TagCod=%ld",
|
||||
OldTagCod);
|
||||
}
|
||||
else // Renaming is easy
|
||||
{
|
||||
|
@ -6432,10 +6433,10 @@ void Tst_RemoveQst (void)
|
|||
Tst_RemoveUnusedTagsFromCurrentCrs ();
|
||||
|
||||
/* Remove the question itself */
|
||||
DB_BuildQuery ("DELETE FROM tst_questions"
|
||||
" WHERE QstCod=%ld AND CrsCod=%ld",
|
||||
Gbl.Test.QstCod,Gbl.CurrentCrs.Crs.CrsCod);
|
||||
DB_QueryDELETE_new ("can not remove a question");
|
||||
DB_QueryDELETE ("can not remove a question",
|
||||
"DELETE FROM tst_questions"
|
||||
" WHERE QstCod=%ld AND CrsCod=%ld",
|
||||
Gbl.Test.QstCod,Gbl.CurrentCrs.Crs.CrsCod);
|
||||
|
||||
if (!mysql_affected_rows (&Gbl.mysql))
|
||||
Lay_ShowErrorAndExit ("The question to be removed does not exist or belongs to another course.");
|
||||
|
@ -6725,9 +6726,9 @@ static void Tst_InsertAnswersIntoDB (void)
|
|||
static void Tst_RemAnsFromQst (void)
|
||||
{
|
||||
/***** Remove answers *****/
|
||||
DB_BuildQuery ("DELETE FROM tst_answers WHERE QstCod=%ld",
|
||||
Gbl.Test.QstCod);
|
||||
DB_QueryDELETE_new ("can not remove the answers of a question");
|
||||
DB_QueryDELETE ("can not remove the answers of a question",
|
||||
"DELETE FROM tst_answers WHERE QstCod=%ld",
|
||||
Gbl.Test.QstCod);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -6737,9 +6738,9 @@ static void Tst_RemAnsFromQst (void)
|
|||
static void Tst_RemTagsFromQst (void)
|
||||
{
|
||||
/***** Remove tags *****/
|
||||
DB_BuildQuery ("DELETE FROM tst_question_tags WHERE QstCod=%ld",
|
||||
Gbl.Test.QstCod);
|
||||
DB_QueryDELETE_new ("can not remove the tags of a question");
|
||||
DB_QueryDELETE ("can not remove the tags of a question",
|
||||
"DELETE FROM tst_question_tags WHERE QstCod=%ld",
|
||||
Gbl.Test.QstCod);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -6749,15 +6750,15 @@ static void Tst_RemTagsFromQst (void)
|
|||
static void Tst_RemoveUnusedTagsFromCurrentCrs (void)
|
||||
{
|
||||
/***** Remove unused tags from tst_tags *****/
|
||||
DB_BuildQuery ("DELETE FROM tst_tags"
|
||||
" WHERE CrsCod=%ld AND TagCod NOT IN"
|
||||
" (SELECT DISTINCT tst_question_tags.TagCod"
|
||||
" FROM tst_questions,tst_question_tags"
|
||||
" WHERE tst_questions.CrsCod=%ld"
|
||||
" AND tst_questions.QstCod=tst_question_tags.QstCod)",
|
||||
Gbl.CurrentCrs.Crs.CrsCod,
|
||||
Gbl.CurrentCrs.Crs.CrsCod);
|
||||
DB_QueryDELETE_new ("can not remove unused tags");
|
||||
DB_QueryDELETE ("can not remove unused tags",
|
||||
"DELETE FROM tst_tags"
|
||||
" WHERE CrsCod=%ld AND TagCod NOT IN"
|
||||
" (SELECT DISTINCT tst_question_tags.TagCod"
|
||||
" FROM tst_questions,tst_question_tags"
|
||||
" WHERE tst_questions.CrsCod=%ld"
|
||||
" AND tst_questions.QstCod=tst_question_tags.QstCod)",
|
||||
Gbl.CurrentCrs.Crs.CrsCod,
|
||||
Gbl.CurrentCrs.Crs.CrsCod);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -8569,17 +8570,17 @@ static void Tst_GetTestResultQuestionsFromDB (long TstCod)
|
|||
void Tst_RemoveTestResultsMadeByUsrInAllCrss (long UsrCod)
|
||||
{
|
||||
/***** Remove test results made by the specified user *****/
|
||||
DB_BuildQuery ("DELETE FROM tst_exam_questions"
|
||||
" USING tst_exams,tst_exam_questions"
|
||||
" WHERE tst_exams.UsrCod=%ld"
|
||||
" AND tst_exams.TstCod=tst_exam_questions.TstCod",
|
||||
UsrCod);
|
||||
DB_QueryDELETE_new ("can not remove test results made by a user");
|
||||
DB_QueryDELETE ("can not remove test results made by a user",
|
||||
"DELETE FROM tst_exam_questions"
|
||||
" USING tst_exams,tst_exam_questions"
|
||||
" WHERE tst_exams.UsrCod=%ld"
|
||||
" AND tst_exams.TstCod=tst_exam_questions.TstCod",
|
||||
UsrCod);
|
||||
|
||||
DB_BuildQuery ("DELETE FROM tst_exams"
|
||||
" WHERE UsrCod=%ld",
|
||||
UsrCod);
|
||||
DB_QueryDELETE_new ("can not remove test results made by a user");
|
||||
DB_QueryDELETE ("can not remove test results made by a user",
|
||||
"DELETE FROM tst_exams"
|
||||
" WHERE UsrCod=%ld",
|
||||
UsrCod);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -8589,17 +8590,17 @@ void Tst_RemoveTestResultsMadeByUsrInAllCrss (long UsrCod)
|
|||
void Tst_RemoveTestResultsMadeByUsrInCrs (long UsrCod,long CrsCod)
|
||||
{
|
||||
/***** Remove test results made by the specified user *****/
|
||||
DB_BuildQuery ("DELETE FROM tst_exam_questions"
|
||||
" USING tst_exams,tst_exam_questions"
|
||||
" WHERE tst_exams.CrsCod=%ld AND tst_exams.UsrCod=%ld"
|
||||
" AND tst_exams.TstCod=tst_exam_questions.TstCod",
|
||||
CrsCod,UsrCod);
|
||||
DB_QueryDELETE_new ("can not remove test results made by a user in a course");
|
||||
DB_QueryDELETE ("can not remove test results made by a user in a course",
|
||||
"DELETE FROM tst_exam_questions"
|
||||
" USING tst_exams,tst_exam_questions"
|
||||
" WHERE tst_exams.CrsCod=%ld AND tst_exams.UsrCod=%ld"
|
||||
" AND tst_exams.TstCod=tst_exam_questions.TstCod",
|
||||
CrsCod,UsrCod);
|
||||
|
||||
DB_BuildQuery ("DELETE FROM tst_exams"
|
||||
" WHERE CrsCod=%ld AND UsrCod=%ld",
|
||||
CrsCod,UsrCod);
|
||||
DB_QueryDELETE_new ("can not remove test results made by a user in a course");
|
||||
DB_QueryDELETE ("can not remove test results made by a user in a course",
|
||||
"DELETE FROM tst_exams"
|
||||
" WHERE CrsCod=%ld AND UsrCod=%ld",
|
||||
CrsCod,UsrCod);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -8609,17 +8610,17 @@ void Tst_RemoveTestResultsMadeByUsrInCrs (long UsrCod,long CrsCod)
|
|||
void Tst_RemoveCrsTestResults (long CrsCod)
|
||||
{
|
||||
/***** Remove questions of test results made in the course *****/
|
||||
DB_BuildQuery ("DELETE FROM tst_exam_questions"
|
||||
" USING tst_exams,tst_exam_questions"
|
||||
" WHERE tst_exams.CrsCod=%ld"
|
||||
" AND tst_exams.TstCod=tst_exam_questions.TstCod",
|
||||
CrsCod);
|
||||
DB_QueryDELETE_new ("can not remove test results made in a course");
|
||||
DB_QueryDELETE ("can not remove test results made in a course",
|
||||
"DELETE FROM tst_exam_questions"
|
||||
" USING tst_exams,tst_exam_questions"
|
||||
" WHERE tst_exams.CrsCod=%ld"
|
||||
" AND tst_exams.TstCod=tst_exam_questions.TstCod",
|
||||
CrsCod);
|
||||
|
||||
/***** Remove test results made in the course *****/
|
||||
DB_BuildQuery ("DELETE FROM tst_exams WHERE CrsCod=%ld",
|
||||
CrsCod);
|
||||
DB_QueryDELETE_new ("can not remove test results made in a course");
|
||||
DB_QueryDELETE ("can not remove test results made in a course",
|
||||
"DELETE FROM tst_exams WHERE CrsCod=%ld",
|
||||
CrsCod);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -8629,34 +8630,36 @@ void Tst_RemoveCrsTestResults (long CrsCod)
|
|||
void Tst_RemoveCrsTests (long CrsCod)
|
||||
{
|
||||
/***** Remove tests status in the course *****/
|
||||
DB_BuildQuery ("DELETE FROM tst_status WHERE CrsCod=%ld",CrsCod);
|
||||
DB_QueryDELETE_new ("can not remove status of tests of a course");
|
||||
DB_QueryDELETE ("can not remove status of tests of a course",
|
||||
"DELETE FROM tst_status WHERE CrsCod=%ld",
|
||||
CrsCod);
|
||||
|
||||
/***** Remove test configuration of the course *****/
|
||||
DB_BuildQuery ("DELETE FROM tst_config WHERE CrsCod=%ld",
|
||||
CrsCod);
|
||||
DB_QueryDELETE_new ("can not remove configuration of tests of a course");
|
||||
DB_QueryDELETE ("can not remove configuration of tests of a course",
|
||||
"DELETE FROM tst_config WHERE CrsCod=%ld",
|
||||
CrsCod);
|
||||
|
||||
/***** Remove associations between test questions
|
||||
and test tags in the course *****/
|
||||
DB_BuildQuery ("DELETE FROM tst_question_tags"
|
||||
" USING tst_questions,tst_question_tags"
|
||||
" WHERE tst_questions.CrsCod=%ld"
|
||||
" AND tst_questions.QstCod=tst_question_tags.QstCod",
|
||||
CrsCod);
|
||||
DB_QueryDELETE_new ("can not remove tags associated to questions of tests of a course");
|
||||
DB_QueryDELETE ("can not remove tags associated"
|
||||
" to questions of tests of a course",
|
||||
"DELETE FROM tst_question_tags"
|
||||
" USING tst_questions,tst_question_tags"
|
||||
" WHERE tst_questions.CrsCod=%ld"
|
||||
" AND tst_questions.QstCod=tst_question_tags.QstCod",
|
||||
CrsCod);
|
||||
|
||||
/***** Remove test tags in the course *****/
|
||||
DB_BuildQuery ("DELETE FROM tst_tags WHERE CrsCod=%ld",
|
||||
CrsCod);
|
||||
DB_QueryDELETE_new ("can not remove tags of test of a course");
|
||||
DB_QueryDELETE ("can not remove tags of test of a course",
|
||||
"DELETE FROM tst_tags WHERE CrsCod=%ld",
|
||||
CrsCod);
|
||||
|
||||
/***** Remove test answers in the course *****/
|
||||
DB_BuildQuery ("DELETE FROM tst_answers USING tst_questions,tst_answers"
|
||||
" WHERE tst_questions.CrsCod=%ld"
|
||||
" AND tst_questions.QstCod=tst_answers.QstCod",
|
||||
CrsCod);
|
||||
DB_QueryDELETE_new ("can not remove answers of tests of a course");
|
||||
DB_QueryDELETE ("can not remove answers of tests of a course",
|
||||
"DELETE FROM tst_answers USING tst_questions,tst_answers"
|
||||
" WHERE tst_questions.CrsCod=%ld"
|
||||
" AND tst_questions.QstCod=tst_answers.QstCod",
|
||||
CrsCod);
|
||||
|
||||
/***** Remove files with images associated
|
||||
to test questions in the course *****/
|
||||
|
@ -8664,7 +8667,7 @@ void Tst_RemoveCrsTests (long CrsCod)
|
|||
Tst_RemoveAllImgFilesFromStemOfAllQstsInCrs (CrsCod);
|
||||
|
||||
/***** Remove test questions in the course *****/
|
||||
DB_BuildQuery ("DELETE FROM tst_questions WHERE CrsCod=%ld",
|
||||
CrsCod);
|
||||
DB_QueryDELETE_new ("can not remove test questions of a course");
|
||||
DB_QueryDELETE ("can not remove test questions of a course",
|
||||
"DELETE FROM tst_questions WHERE CrsCod=%ld",
|
||||
CrsCod);
|
||||
}
|
||||
|
|
|
@ -565,9 +565,9 @@ static void TT_WriteCrsTimeTableIntoDB (long CrsCod)
|
|||
unsigned Column;
|
||||
|
||||
/***** Remove former timetable *****/
|
||||
DB_BuildQuery ("DELETE FROM timetable_crs WHERE CrsCod=%ld",
|
||||
CrsCod);
|
||||
DB_QueryDELETE_new ("can not remove former timetable");
|
||||
DB_QueryDELETE ("can not remove former timetable",
|
||||
"DELETE FROM timetable_crs WHERE CrsCod=%ld",
|
||||
CrsCod);
|
||||
|
||||
/***** Go across the timetable inserting classes into database *****/
|
||||
for (Weekday = 0;
|
||||
|
@ -614,8 +614,9 @@ static void TT_WriteTutTimeTableIntoDB (long UsrCod)
|
|||
unsigned Column;
|
||||
|
||||
/***** Remove former timetable *****/
|
||||
DB_BuildQuery ("DELETE FROM timetable_tut WHERE UsrCod=%ld",UsrCod);
|
||||
DB_QueryDELETE_new ("can not remove former timetable");
|
||||
DB_QueryDELETE ("can not remove former timetable",
|
||||
"DELETE FROM timetable_tut WHERE UsrCod=%ld",
|
||||
UsrCod);
|
||||
|
||||
/***** Loop over timetable *****/
|
||||
for (Weekday = 0;
|
||||
|
|
|
@ -2581,8 +2581,8 @@ static bool Usr_CheckIfMyBirthdayHasNotBeenCongratulated (void)
|
|||
static void Usr_InsertMyBirthday (void)
|
||||
{
|
||||
/***** Delete old birthdays *****/
|
||||
DB_BuildQuery ("DELETE FROM birthdays_today WHERE Today<>CURDATE()");
|
||||
DB_QueryDELETE_new ("can not delete old birthdays");
|
||||
DB_QueryDELETE ("can not delete old birthdays",
|
||||
"DELETE FROM birthdays_today WHERE Today<>CURDATE()");
|
||||
|
||||
/***** Insert new birthday *****/
|
||||
DB_QueryINSERT ("can not insert birthday",
|
||||
|
@ -9006,8 +9006,9 @@ bool Usr_CheckIfUsrBanned (long UsrCod)
|
|||
|
||||
void Usr_RemoveUsrFromUsrBanned (long UsrCod)
|
||||
{
|
||||
DB_BuildQuery ("DELETE FROM usr_banned WHERE UsrCod=%ld",UsrCod);
|
||||
DB_QueryDELETE_new ("can not remove user from users banned");
|
||||
DB_QueryDELETE ("can not remove user from users banned",
|
||||
"DELETE FROM usr_banned WHERE UsrCod=%ld",
|
||||
UsrCod);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
Loading…
Reference in New Issue