Version 21.11.1: Sep 22, 2021 Queries moved to module swad_info_database.

This commit is contained in:
acanas 2021-09-22 08:57:04 +02:00
parent babcd3df60
commit ddf9d0dfdc
7 changed files with 66 additions and 54 deletions

View File

@ -602,13 +602,14 @@ TODO: FIX BUG, URGENT! En las fechas como par
TODO: En las encuestas, que los estudiantes no puedan ver los resultados hasta que no finalice el plazo. TODO: En las encuestas, que los estudiantes no puedan ver los resultados hasta que no finalice el plazo.
*/ */
#define Log_PLATFORM_VERSION "SWAD 21.11 (2021-09-22)" #define Log_PLATFORM_VERSION "SWAD 21.11.1 (2021-09-22)"
#define CSS_FILE "swad20.45.css" #define CSS_FILE "swad20.45.css"
#define JS_FILE "swad20.69.1.js" #define JS_FILE "swad20.69.1.js"
/* /*
TODO: Rename CENTRE to CENTER in help wiki. TODO: Rename CENTRE to CENTER in help wiki.
TODO: Rename ASSESSMENT.Announcements to ASSESSMENT.Calls_for_exams TODO: Rename ASSESSMENT.Announcements to ASSESSMENT.Calls_for_exams
Version 21.11.1: Sep 22, 2021 Queries moved to module swad_info_database. (316237 lines)
Version 21.11: Sep 22, 2021 New module swad_info_database for database queries related to course information. (316228 lines) Version 21.11: Sep 22, 2021 New module swad_info_database for database queries related to course information. (316228 lines)
Version 21.10.1: Sep 21, 2021 Fixed bugs in roles. Reported by Javier Fernández Baldomero and Carmen García Miranda. (316111 lines) Version 21.10.1: Sep 21, 2021 Fixed bugs in roles. Reported by Javier Fernández Baldomero and Carmen García Miranda. (316111 lines)
Version 21.10: Sep 20, 2021 New module swad_indicator_database for database queries related to course indicators. (316112 lines) Version 21.10: Sep 20, 2021 New module swad_indicator_database for database queries related to course indicators. (316112 lines)

View File

@ -48,6 +48,7 @@
#include "swad_hierarchy.h" #include "swad_hierarchy.h"
#include "swad_HTML.h" #include "swad_HTML.h"
#include "swad_ID.h" #include "swad_ID.h"
#include "swad_info_database.h"
#include "swad_match.h" #include "swad_match.h"
#include "swad_message.h" #include "swad_message.h"
#include "swad_notification.h" #include "swad_notification.h"

View File

@ -331,8 +331,8 @@ void Inf_ShowInfo (void)
{ {
/***** Contextual menu *****/ /***** Contextual menu *****/
Mnu_ContextMenuBegin (); Mnu_ContextMenuBegin ();
Inf_PutCheckboxConfirmIHaveReadInfo (); // Checkbox to confirm that... Inf_PutCheckboxConfirmIHaveReadInfo (); // Checkbox to confirm that...
// ...I have read this couse info // ...I have read this couse info
Mnu_ContextMenuEnd (); Mnu_ContextMenuEnd ();
} }
break; break;
@ -344,9 +344,9 @@ void Inf_ShowInfo (void)
{ {
/***** Contextual menu *****/ /***** Contextual menu *****/
Mnu_ContextMenuBegin (); Mnu_ContextMenuBegin ();
Disabled = (Gbl.Usrs.Me.Role.Logged == Rol_NET); // Non-editing teachers can not change the status of checkbox Disabled = (Gbl.Usrs.Me.Role.Logged == Rol_NET); // Non-editing teachers can not change the status of checkbox
Inf_PutCheckboxForceStdsToReadInfo (FromDB.MustBeRead,Disabled); // Checkbox to force students... Inf_PutCheckboxForceStdsToReadInfo (FromDB.MustBeRead,Disabled); // Checkbox to force students...
// ...to read this couse info // ...to read this couse info
Mnu_ContextMenuEnd (); Mnu_ContextMenuEnd ();
} }
break; break;
@ -492,20 +492,7 @@ bool Inf_GetIfIMustReadAnyCrsInfoInThisCrs (void)
Gbl.Crs.Info.MustBeRead[InfoType] = false; Gbl.Crs.Info.MustBeRead[InfoType] = false;
/***** Get info types where students must read info *****/ /***** Get info types where students must read info *****/
NumInfos = (unsigned) NumInfos = Inf_DB_GetInfoTypesfIMustReadInfo (&mysql_res);
DB_QuerySELECT (&mysql_res,"can not get if you must read any course info",
"SELECT InfoType" // row[0]
" FROM crs_info_src"
" WHERE CrsCod=%ld"
" AND MustBeRead='Y'"
" AND InfoType NOT IN"
" (SELECT InfoType"
" FROM crs_info_read"
" WHERE UsrCod=%ld"
" AND CrsCod=%ld)",
Gbl.Hierarchy.Crs.CrsCod,
Gbl.Usrs.Me.UsrDat.UsrCod,
Gbl.Hierarchy.Crs.CrsCod);
/***** Set must-be-read to true for each rown in result *****/ /***** Set must-be-read to true for each rown in result *****/
for (NumInfo = 0; for (NumInfo = 0;
@ -645,20 +632,6 @@ static bool Inf_GetIfIHaveReadFromForm (void)
return Par_GetParToBool ("IHaveRead"); return Par_GetParToBool ("IHaveRead");
} }
/*****************************************************************************/
/********* Remove user's status about reading of course information **********/
/*****************************************************************************/
void Inf_DB_RemoveUsrFromCrsInfoRead (long UsrCod,long CrsCod)
{
/***** Remove user's status about reading of course information *****/
DB_QueryDELETE ("can not set that I have not read course info",
"DELETE FROM crs_info_read"
" WHERE UsrCod=%ld"
" AND CrsCod=%ld",
UsrCod,CrsCod);
}
/*****************************************************************************/ /*****************************************************************************/
/************************** Check if exists a page ***************************/ /************************** Check if exists a page ***************************/
/*****************************************************************************/ /*****************************************************************************/
@ -1835,7 +1808,7 @@ void Inf_RecAndChangePlainTxtInfo (void)
/***** Change info source to "plain text" in database *****/ /***** Change info source to "plain text" in database *****/
Inf_DB_SetInfoSrc (Txt_HTMLFormat[0] ? Inf_PLAIN_TEXT : Inf_DB_SetInfoSrc (Txt_HTMLFormat[0] ? Inf_PLAIN_TEXT :
Inf_NONE); Inf_NONE);
if (Txt_HTMLFormat[0]) if (Txt_HTMLFormat[0])
/***** Show the updated info *****/ /***** Show the updated info *****/
Inf_ShowInfo (); Inf_ShowInfo ();
@ -1874,7 +1847,7 @@ void Inf_RecAndChangeRichTxtInfo (void)
/***** Change info source to "rich text" in database *****/ /***** Change info source to "rich text" in database *****/
Inf_DB_SetInfoSrc (Txt_HTMLFormat[0] ? Inf_RICH_TEXT : Inf_DB_SetInfoSrc (Txt_HTMLFormat[0] ? Inf_RICH_TEXT :
Inf_NONE); Inf_NONE);
if (Txt_HTMLFormat[0]) if (Txt_HTMLFormat[0])
/***** Show the updated info *****/ /***** Show the updated info *****/
Inf_ShowInfo (); Inf_ShowInfo ();

View File

@ -88,7 +88,6 @@ void Inf_WriteMsgYouMustReadInfo (void);
void Inf_ChangeForceReadInfo (void); void Inf_ChangeForceReadInfo (void);
void Inf_ChangeIHaveReadInfo (void); void Inf_ChangeIHaveReadInfo (void);
bool Inf_GetIfIMustReadAnyCrsInfoInThisCrs (void); bool Inf_GetIfIMustReadAnyCrsInfoInThisCrs (void);
void Inf_DB_RemoveUsrFromCrsInfoRead (long UsrCod,long CrsCod);
void Inf_BuildPathPage (long CrsCod,Inf_Type_t InfoType,char PathDir[PATH_MAX + 1]); void Inf_BuildPathPage (long CrsCod,Inf_Type_t InfoType,char PathDir[PATH_MAX + 1]);
void Inf_WriteURLIntoTxtBuffer (char TxtBuffer[Cns_MAX_BYTES_WWW + 1]); void Inf_WriteURLIntoTxtBuffer (char TxtBuffer[Cns_MAX_BYTES_WWW + 1]);
void Inf_SetInfoSrc (void); void Inf_SetInfoSrc (void);

View File

@ -301,3 +301,38 @@ bool Inf_DB_CheckIfIHaveReadInfo (void)
Gbl.Hierarchy.Crs.CrsCod, Gbl.Hierarchy.Crs.CrsCod,
Inf_DB_NamesForInfoType[Gbl.Crs.Info.Type]) != 0); Inf_DB_NamesForInfoType[Gbl.Crs.Info.Type]) != 0);
} }
/*****************************************************************************/
/******************* Get info types where I must read info *******************/
/*****************************************************************************/
unsigned Inf_DB_GetInfoTypesfIMustReadInfo (MYSQL_RES **mysql_res)
{
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get if you must read any course info",
"SELECT InfoType" // row[0]
" FROM crs_info_src"
" WHERE CrsCod=%ld"
" AND MustBeRead='Y'"
" AND InfoType NOT IN"
" (SELECT InfoType"
" FROM crs_info_read"
" WHERE UsrCod=%ld"
" AND CrsCod=%ld)",
Gbl.Hierarchy.Crs.CrsCod,
Gbl.Usrs.Me.UsrDat.UsrCod,
Gbl.Hierarchy.Crs.CrsCod);
}
/*****************************************************************************/
/********* Remove user's status about reading of course information **********/
/*****************************************************************************/
void Inf_DB_RemoveUsrFromCrsInfoRead (long UsrCod,long CrsCod)
{
DB_QueryDELETE ("can not set that I have not read course info",
"DELETE FROM crs_info_read"
" WHERE UsrCod=%ld"
" AND CrsCod=%ld",
UsrCod,CrsCod);
}

View File

@ -67,5 +67,8 @@ void Inf_DB_SetForceRead (bool MustBeRead);
void Inf_DB_SetIHaveRead (bool IHaveRead); void Inf_DB_SetIHaveRead (bool IHaveRead);
bool Inf_DB_CheckIfIHaveReadInfo (void); bool Inf_DB_CheckIfIHaveReadInfo (void);
unsigned Inf_DB_GetInfoTypesfIMustReadInfo (MYSQL_RES **mysql_res);
void Inf_DB_RemoveUsrFromCrsInfoRead (long UsrCod,long CrsCod);
#endif #endif

View File

@ -263,7 +263,7 @@ bool Syl_CheckAndEditSyllabus (struct Syl_Syllabus *Syllabus)
{ {
/***** Button to view *****/ /***** Button to view *****/
Frm_BeginForm (Inf_ActionsSeeInfo[Gbl.Crs.Info.Type]); Frm_BeginForm (Inf_ActionsSeeInfo[Gbl.Crs.Info.Type]);
Btn_PutConfirmButton (Txt_Done); Btn_PutConfirmButton (Txt_Done);
Frm_EndForm (); Frm_EndForm ();
} }
@ -853,29 +853,29 @@ static void Syl_PutFormItemSyllabus (struct Syl_Syllabus *Syllabus,
HTM_TD_Begin ("class=\"%s LM COLOR%u\" style=\"width:%dpx;\"", HTM_TD_Begin ("class=\"%s LM COLOR%u\" style=\"width:%dpx;\"",
StyleSyllabus[Level],Gbl.RowEvenOdd, StyleSyllabus[Level],Gbl.RowEvenOdd,
Level * Syl_WIDTH_NUM_SYLLABUS); Level * Syl_WIDTH_NUM_SYLLABUS);
if (Level == 1) if (Level == 1)
HTM_NBSP ();
Syl_WriteNumItem (NULL,Gbl.F.Out,Level,CodItem);
HTM_NBSP (); HTM_NBSP ();
Syl_WriteNumItem (NULL,Gbl.F.Out,Level,CodItem);
HTM_NBSP ();
HTM_TD_End (); HTM_TD_End ();
} }
/***** Text of the item *****/ /***** Text of the item *****/
HTM_TD_Begin ("colspan=\"%d\" class=\"LM COLOR%u\"", HTM_TD_Begin ("colspan=\"%d\" class=\"LM COLOR%u\"",
Syl_LstItemsSyllabus.NumLevels - Level + 1,Gbl.RowEvenOdd); Syl_LstItemsSyllabus.NumLevels - Level + 1,Gbl.RowEvenOdd);
Frm_BeginForm (NewItem ? (Gbl.Crs.Info.Type == Inf_LECTURES ? ActInsIteSylLec : Frm_BeginForm (NewItem ? (Gbl.Crs.Info.Type == Inf_LECTURES ? ActInsIteSylLec :
ActInsIteSylPra) : ActInsIteSylPra) :
(Gbl.Crs.Info.Type == Inf_LECTURES ? ActModIteSylLec : (Gbl.Crs.Info.Type == Inf_LECTURES ? ActModIteSylLec :
ActModIteSylPra)); ActModIteSylPra));
Syllabus->ParamNumItem = NumItem; Syllabus->ParamNumItem = NumItem;
Syl_PutParamNumItem (&Syllabus->ParamNumItem); Syl_PutParamNumItem (&Syllabus->ParamNumItem);
HTM_INPUT_TEXT ("Txt",Syl_MAX_CHARS_TEXT_ITEM,Text, HTM_INPUT_TEXT ("Txt",Syl_MAX_CHARS_TEXT_ITEM,Text,
HTM_SUBMIT_ON_CHANGE, HTM_SUBMIT_ON_CHANGE,
"size=\"60\" placeholder=\"%s\"%s", "size=\"60\" placeholder=\"%s\"%s",
Txt_Enter_a_new_item_here, Txt_Enter_a_new_item_here,
NewItem ? " autofocus=\"autofocus\"" : NewItem ? " autofocus=\"autofocus\"" :
""); "");
Frm_EndForm (); Frm_EndForm ();
HTM_TD_End (); HTM_TD_End ();
} }