mirror of https://github.com/acanas/swad-core.git
Version 22.83.4: Mar 28, 2023 Code refactoring in rubrics and exams.
This commit is contained in:
parent
0350f81df0
commit
7d9f0572bf
|
@ -629,10 +629,11 @@ TODO: Emilce Barrera Mesa: Podr
|
||||||
TODO: Emilce Barrera Mesa: Mis estudiantes presentan muchas dificultades a la hora de poner la foto porque la plataforma es muy exigente respecto al fondo de la imagen.
|
TODO: Emilce Barrera Mesa: Mis estudiantes presentan muchas dificultades a la hora de poner la foto porque la plataforma es muy exigente respecto al fondo de la imagen.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
#define Log_PLATFORM_VERSION "SWAD 22.83.3 (2023-03-27)"
|
#define Log_PLATFORM_VERSION "SWAD 22.83.4 (2023-03-28)"
|
||||||
#define CSS_FILE "swad22.78.15.css"
|
#define CSS_FILE "swad22.78.15.css"
|
||||||
#define JS_FILE "swad22.49.js"
|
#define JS_FILE "swad22.49.js"
|
||||||
/*
|
/*
|
||||||
|
Version 22.83.4: Mar 28, 2023 Code refactoring in rubrics and exams. (338221 lines)
|
||||||
Version 22.83.3: Mar 27, 2023 Changes in rubric criteria. (338218 lines)
|
Version 22.83.3: Mar 27, 2023 Changes in rubric criteria. (338218 lines)
|
||||||
Version 22.83.2: Mar 27, 2023 Changes in rubric criteria. (338189 lines)
|
Version 22.83.2: Mar 27, 2023 Changes in rubric criteria. (338189 lines)
|
||||||
Version 22.83.1: Mar 27, 2023 Changes in rubric criteria. (338297 lines)
|
Version 22.83.1: Mar 27, 2023 Changes in rubric criteria. (338297 lines)
|
||||||
|
|
|
@ -128,11 +128,12 @@ unsigned Dpt_DB_GetDepartmentDataByCod (MYSQL_RES **mysql_res,long DptCod)
|
||||||
" AND crs_users.Role=%u"
|
" AND crs_users.Role=%u"
|
||||||
" GROUP BY dpt_departments.DptCod)"
|
" GROUP BY dpt_departments.DptCod)"
|
||||||
" UNION "
|
" UNION "
|
||||||
"(SELECT InsCod," // row[0]
|
"(SELECT DptCod," // row[0]
|
||||||
"ShortName," // row[1]
|
"InsCod," // row[1]
|
||||||
"FullName," // row[2]
|
"ShortName," // row[2]
|
||||||
"WWW," // row[3]
|
"FullName," // row[3]
|
||||||
"0" // row[4]
|
"WWW," // row[4]
|
||||||
|
"0" // row[5]
|
||||||
" FROM dpt_departments"
|
" FROM dpt_departments"
|
||||||
" WHERE DptCod=%ld"
|
" WHERE DptCod=%ld"
|
||||||
" AND DptCod NOT IN"
|
" AND DptCod NOT IN"
|
||||||
|
|
|
@ -704,14 +704,15 @@ bool Exa_DB_CheckIfSimilarSetExists (const struct ExaSet_Set *Set,
|
||||||
/****************** Get set index given exam and set code ********************/
|
/****************** Get set index given exam and set code ********************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
unsigned Exa_DB_GetSetIndFromSetCod (long ExaCod,long SetCod)
|
unsigned Exa_DB_GetSetIndFromSetCod (const struct ExaSet_Set *Set)
|
||||||
{
|
{
|
||||||
return DB_QuerySELECTUnsigned ("can not get set index",
|
return DB_QuerySELECTUnsigned ("can not get set index",
|
||||||
"SELECT SetInd" // row[0]
|
"SELECT SetInd" // row[0]
|
||||||
" FROM exa_sets"
|
" FROM exa_sets"
|
||||||
" WHERE SetCod=%u"
|
" WHERE SetCod=%u"
|
||||||
" AND ExaCod=%ld", // Extra check
|
" AND ExaCod=%ld", // Extra check
|
||||||
SetCod,ExaCod);
|
Set->SetCod,
|
||||||
|
Set->ExaCod);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -795,14 +796,14 @@ unsigned Exa_DB_GetNextSetIndexInExam (long ExaCod,unsigned SetInd)
|
||||||
/******************* Remove a set of questions from an exam ******************/
|
/******************* Remove a set of questions from an exam ******************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
void Exa_DB_RemoveSetFromExam (long SetCod,long ExaCod)
|
void Exa_DB_RemoveSetFromExam (const struct ExaSet_Set *Set)
|
||||||
{
|
{
|
||||||
DB_QueryDELETE ("can not remove set",
|
DB_QueryDELETE ("can not remove set",
|
||||||
"DELETE FROM exa_sets"
|
"DELETE FROM exa_sets"
|
||||||
" WHERE SetCod=%ld"
|
" WHERE SetCod=%ld"
|
||||||
" AND ExaCod=%ld", // Extra check
|
" AND ExaCod=%ld", // Extra check
|
||||||
SetCod,
|
Set->SetCod,
|
||||||
ExaCod);
|
Set->ExaCod);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -1060,7 +1061,7 @@ void Exa_DB_RemoveSetQuestion (long QstCod,long SetCod)
|
||||||
/*************** Remove the questions in a set of questions ******************/
|
/*************** Remove the questions in a set of questions ******************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
void Exa_DB_RemoveAllSetQuestionsFromSet (long SetCod,long ExaCod)
|
void Exa_DB_RemoveAllSetQuestionsFromSet (const struct ExaSet_Set *Set)
|
||||||
{
|
{
|
||||||
DB_QueryDELETE ("can not remove questions associated to set",
|
DB_QueryDELETE ("can not remove questions associated to set",
|
||||||
"DELETE FROM exa_set_questions"
|
"DELETE FROM exa_set_questions"
|
||||||
|
@ -1069,8 +1070,8 @@ void Exa_DB_RemoveAllSetQuestionsFromSet (long SetCod,long ExaCod)
|
||||||
" WHERE exa_set_questions.SetCod=%ld"
|
" WHERE exa_set_questions.SetCod=%ld"
|
||||||
" AND exa_set_questions.SetCod=exa_sets.SetCod"
|
" AND exa_set_questions.SetCod=exa_sets.SetCod"
|
||||||
" AND exa_sets.ExaCod=%ld", // Extra check
|
" AND exa_sets.ExaCod=%ld", // Extra check
|
||||||
SetCod,
|
Set->SetCod,
|
||||||
ExaCod);
|
Set->ExaCod);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
|
@ -67,12 +67,12 @@ unsigned Exa_DB_GetExamSets (MYSQL_RES **mysql_res,long ExaCod);
|
||||||
unsigned Exa_DB_GetSetDataByCod (MYSQL_RES **mysql_res,long SetCod);
|
unsigned Exa_DB_GetSetDataByCod (MYSQL_RES **mysql_res,long SetCod);
|
||||||
bool Exa_DB_CheckIfSimilarSetExists (const struct ExaSet_Set *Set,
|
bool Exa_DB_CheckIfSimilarSetExists (const struct ExaSet_Set *Set,
|
||||||
const char Title[ExaSet_MAX_BYTES_TITLE + 1]);
|
const char Title[ExaSet_MAX_BYTES_TITLE + 1]);
|
||||||
unsigned Exa_DB_GetSetIndFromSetCod (long ExaCod,long SetCod);
|
unsigned Exa_DB_GetSetIndFromSetCod (const struct ExaSet_Set *Set);
|
||||||
long Exa_DB_GetSetCodFromSetInd (long ExaCod,unsigned SetInd);
|
long Exa_DB_GetSetCodFromSetInd (long ExaCod,unsigned SetInd);
|
||||||
unsigned Exa_DB_GetMaxSetIndexInExam (long ExaCod);
|
unsigned Exa_DB_GetMaxSetIndexInExam (long ExaCod);
|
||||||
unsigned Exa_DB_GetPrevSetIndexInExam (long ExaCod,unsigned SetInd);
|
unsigned Exa_DB_GetPrevSetIndexInExam (long ExaCod,unsigned SetInd);
|
||||||
unsigned Exa_DB_GetNextSetIndexInExam (long ExaCod,unsigned SetInd);
|
unsigned Exa_DB_GetNextSetIndexInExam (long ExaCod,unsigned SetInd);
|
||||||
void Exa_DB_RemoveSetFromExam (long SetCod,long ExaCod);
|
void Exa_DB_RemoveSetFromExam (const struct ExaSet_Set *Set);
|
||||||
void Exa_DB_RemoveAllSetsFromExam (long ExaCod);
|
void Exa_DB_RemoveAllSetsFromExam (long ExaCod);
|
||||||
void Exa_DB_RemoveAllSetsFromCrs (long CrsCod);
|
void Exa_DB_RemoveAllSetsFromCrs (long CrsCod);
|
||||||
|
|
||||||
|
@ -91,7 +91,7 @@ unsigned Exa_DB_GetMediaFromStemOfQst (MYSQL_RES **mysql_res,long QstCod,long Se
|
||||||
unsigned Exa_DB_GetAllMediaFomStemOfAllQstsFromExam (MYSQL_RES **mysql_res,long ExaCod);
|
unsigned Exa_DB_GetAllMediaFomStemOfAllQstsFromExam (MYSQL_RES **mysql_res,long ExaCod);
|
||||||
unsigned Exa_DB_GetAllMediaFomStemOfAllQstsFromCrs (MYSQL_RES **mysql_res,long CrsCod);
|
unsigned Exa_DB_GetAllMediaFomStemOfAllQstsFromCrs (MYSQL_RES **mysql_res,long CrsCod);
|
||||||
void Exa_DB_RemoveSetQuestion (long QstCod,long SetCod);
|
void Exa_DB_RemoveSetQuestion (long QstCod,long SetCod);
|
||||||
void Exa_DB_RemoveAllSetQuestionsFromSet (long SetCod,long ExaCod);
|
void Exa_DB_RemoveAllSetQuestionsFromSet (const struct ExaSet_Set *Set);
|
||||||
void Exa_DB_RemoveAllSetQuestionsFromExam (long ExaCod);
|
void Exa_DB_RemoveAllSetQuestionsFromExam (long ExaCod);
|
||||||
void Exa_DB_RemoveAllSetQuestionsFromCrs (long CrsCod);
|
void Exa_DB_RemoveAllSetQuestionsFromCrs (long CrsCod);
|
||||||
|
|
||||||
|
|
|
@ -1354,10 +1354,10 @@ void ExaSet_RemoveSet (void)
|
||||||
|
|
||||||
/***** Remove the set from all tables *****/
|
/***** Remove the set from all tables *****/
|
||||||
/* Remove questions associated to set */
|
/* Remove questions associated to set */
|
||||||
Exa_DB_RemoveAllSetQuestionsFromSet (Set.SetCod,Set.ExaCod);
|
Exa_DB_RemoveAllSetQuestionsFromSet (&Set);
|
||||||
|
|
||||||
/* Remove the set itself */
|
/* Remove the set itself */
|
||||||
Exa_DB_RemoveSetFromExam (Set.SetCod,Set.ExaCod);
|
Exa_DB_RemoveSetFromExam (&Set);
|
||||||
|
|
||||||
/* Change indexes of sets greater than this */
|
/* Change indexes of sets greater than this */
|
||||||
Exa_DB_UpdateSetIndexesInExamGreaterThan (Set.ExaCod,Set.SetInd);
|
Exa_DB_UpdateSetIndexesInExamGreaterThan (Set.ExaCod,Set.SetInd);
|
||||||
|
@ -1395,7 +1395,7 @@ void ExaSet_MoveUpSet (void)
|
||||||
Err_NoPermissionExit ();
|
Err_NoPermissionExit ();
|
||||||
|
|
||||||
/***** Get set index *****/
|
/***** Get set index *****/
|
||||||
SetIndBottom = Exa_DB_GetSetIndFromSetCod (Exams.Exam.ExaCod,Set.SetCod);
|
SetIndBottom = Exa_DB_GetSetIndFromSetCod (&Set);
|
||||||
|
|
||||||
/***** Move up set *****/
|
/***** Move up set *****/
|
||||||
if (SetIndBottom > 1)
|
if (SetIndBottom > 1)
|
||||||
|
@ -1442,7 +1442,7 @@ void ExaSet_MoveDownSet (void)
|
||||||
Err_NoPermissionExit ();
|
Err_NoPermissionExit ();
|
||||||
|
|
||||||
/***** Get set index *****/
|
/***** Get set index *****/
|
||||||
SetIndTop = Exa_DB_GetSetIndFromSetCod (Exams.Exam.ExaCod,Set.SetCod);
|
SetIndTop = Exa_DB_GetSetIndFromSetCod (&Set);
|
||||||
|
|
||||||
/***** Get maximum set index *****/
|
/***** Get maximum set index *****/
|
||||||
MaxSetInd = Exa_DB_GetMaxSetIndexInExam (Exams.Exam.ExaCod);
|
MaxSetInd = Exa_DB_GetMaxSetIndexInExam (Exams.Exam.ExaCod);
|
||||||
|
|
|
@ -839,8 +839,8 @@ void RubCri_ResetCriterion (struct RubCri_Criterion *Criterion)
|
||||||
// Default values minimum/maximum criterion values
|
// Default values minimum/maximum criterion values
|
||||||
static double RubCri_DefaultValues[RubCri_NUM_VALUES] =
|
static double RubCri_DefaultValues[RubCri_NUM_VALUES] =
|
||||||
{
|
{
|
||||||
[RubCri_MIN] = 0.0,
|
[RubCri_MIN] = 0.0,
|
||||||
[RubCri_MAX] = 0.1,
|
[RubCri_MAX] = 10.0,
|
||||||
};
|
};
|
||||||
RubCri_ValueRange_t ValueRange;
|
RubCri_ValueRange_t ValueRange;
|
||||||
|
|
||||||
|
@ -919,10 +919,10 @@ void RubCri_RemoveCriterion (void)
|
||||||
// Exa_DB_RemoveAllSetQuestionsFromSet (Criterion.CriCod,Criterion.RubCod);
|
// Exa_DB_RemoveAllSetQuestionsFromSet (Criterion.CriCod,Criterion.RubCod);
|
||||||
|
|
||||||
/* Remove the criterion itself */
|
/* Remove the criterion itself */
|
||||||
Rub_DB_RemoveCriterionFromRubric (Criterion.CriCod,Criterion.RubCod);
|
Rub_DB_RemoveCriterionFromRubric (&Criterion);
|
||||||
|
|
||||||
/* Change indexes of criteria greater than this */
|
/* Change indexes of criteria greater than this */
|
||||||
Rub_DB_UpdateCriteriaIndexesInRubricGreaterThan (Criterion.RubCod,Criterion.CriInd);
|
Rub_DB_UpdateCriteriaIndexesInRubricGreaterThan (&Criterion);
|
||||||
|
|
||||||
/***** Write message *****/
|
/***** Write message *****/
|
||||||
Ale_ShowAlert (Ale_SUCCESS,Txt_Criterion_removed);
|
Ale_ShowAlert (Ale_SUCCESS,Txt_Criterion_removed);
|
||||||
|
|
|
@ -451,15 +451,15 @@ void Rub_DB_UpdateCriterionWeight (const struct RubCri_Criterion *Criterion)
|
||||||
/************ Update indexes of criteria greater than a given one ************/
|
/************ Update indexes of criteria greater than a given one ************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
void Rub_DB_UpdateCriteriaIndexesInRubricGreaterThan (long RubCod,unsigned CriInd)
|
void Rub_DB_UpdateCriteriaIndexesInRubricGreaterThan (const struct RubCri_Criterion *Criterion)
|
||||||
{
|
{
|
||||||
DB_QueryUPDATE ("can not update indexes of criteria",
|
DB_QueryUPDATE ("can not update indexes of criteria",
|
||||||
"UPDATE rub_criteria"
|
"UPDATE rub_criteria"
|
||||||
" SET CriInd=CriInd-1"
|
" SET CriInd=CriInd-1"
|
||||||
" WHERE RubCod=%ld"
|
" WHERE RubCod=%ld"
|
||||||
" AND CriInd>%u",
|
" AND CriInd>%u",
|
||||||
RubCod,
|
Criterion->RubCod,
|
||||||
CriInd);
|
Criterion->CriInd);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -773,14 +773,14 @@ double Rub_DB_GetNumCriteriaPerRubric (HieLvl_Level_t Scope)
|
||||||
/*********************** Remove criterion from a rubric **********************/
|
/*********************** Remove criterion from a rubric **********************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
void Rub_DB_RemoveCriterionFromRubric (long CriCod,long RubCod)
|
void Rub_DB_RemoveCriterionFromRubric (const struct RubCri_Criterion *Criterion)
|
||||||
{
|
{
|
||||||
DB_QueryDELETE ("can not remove rubric criterion",
|
DB_QueryDELETE ("can not remove rubric criterion",
|
||||||
"DELETE FROM rub_criteria"
|
"DELETE FROM rub_criteria"
|
||||||
" WHERE CriCod=%ld"
|
" WHERE CriCod=%ld"
|
||||||
" AND RubCod=%ld",
|
" AND RubCod=%ld", // Extra check
|
||||||
CriCod,
|
Criterion->CriCod,
|
||||||
RubCod);
|
Criterion->RubCod);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
|
@ -60,7 +60,7 @@ void Rub_DB_UpdateCriterionLink (const struct RubCri_Criterion *Criterion);
|
||||||
void Rub_DB_UpdateCriterionValue (const struct RubCri_Criterion *Criterion,
|
void Rub_DB_UpdateCriterionValue (const struct RubCri_Criterion *Criterion,
|
||||||
RubCri_ValueRange_t ValueRange);
|
RubCri_ValueRange_t ValueRange);
|
||||||
void Rub_DB_UpdateCriterionWeight (const struct RubCri_Criterion *Criterion);
|
void Rub_DB_UpdateCriterionWeight (const struct RubCri_Criterion *Criterion);
|
||||||
void Rub_DB_UpdateCriteriaIndexesInRubricGreaterThan (long RubCod,unsigned CriInd);
|
void Rub_DB_UpdateCriteriaIndexesInRubricGreaterThan (const struct RubCri_Criterion *Criterion);
|
||||||
void Rub_DB_UpdateCriterionIndex (long CriInd,long CriCod,long RubCod);
|
void Rub_DB_UpdateCriterionIndex (long CriInd,long CriCod,long RubCod);
|
||||||
void Rub_DB_LockTable (void);
|
void Rub_DB_LockTable (void);
|
||||||
|
|
||||||
|
@ -77,7 +77,7 @@ bool Rub_DB_CheckIfSimilarCriterionExists (const struct RubCri_Criterion *Criter
|
||||||
|
|
||||||
double Rub_DB_GetNumCriteriaPerRubric (HieLvl_Level_t Scope);
|
double Rub_DB_GetNumCriteriaPerRubric (HieLvl_Level_t Scope);
|
||||||
|
|
||||||
void Rub_DB_RemoveCriterionFromRubric (long CriCod,long RubCod);
|
void Rub_DB_RemoveCriterionFromRubric (const struct RubCri_Criterion *Criterion);
|
||||||
void Rub_DB_RemoveRubricCriteria (long RubCod);
|
void Rub_DB_RemoveRubricCriteria (long RubCod);
|
||||||
void Rub_DB_RemoveCrsRubricCriteria (long CrsCod);
|
void Rub_DB_RemoveCrsRubricCriteria (long CrsCod);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue