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.
*/
#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 JS_FILE "swad20.69.1.js"
/*
TODO: Rename CENTRE to CENTER in help wiki.
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.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)

View File

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

View File

@ -331,8 +331,8 @@ void Inf_ShowInfo (void)
{
/***** Contextual menu *****/
Mnu_ContextMenuBegin ();
Inf_PutCheckboxConfirmIHaveReadInfo (); // Checkbox to confirm that...
// ...I have read this couse info
Inf_PutCheckboxConfirmIHaveReadInfo (); // Checkbox to confirm that...
// ...I have read this couse info
Mnu_ContextMenuEnd ();
}
break;
@ -344,9 +344,9 @@ void Inf_ShowInfo (void)
{
/***** Contextual menu *****/
Mnu_ContextMenuBegin ();
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...
// ...to read this couse info
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...
// ...to read this couse info
Mnu_ContextMenuEnd ();
}
break;
@ -492,20 +492,7 @@ bool Inf_GetIfIMustReadAnyCrsInfoInThisCrs (void)
Gbl.Crs.Info.MustBeRead[InfoType] = false;
/***** Get info types where students must read info *****/
NumInfos = (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);
NumInfos = Inf_DB_GetInfoTypesfIMustReadInfo (&mysql_res);
/***** Set must-be-read to true for each rown in result *****/
for (NumInfo = 0;
@ -645,20 +632,6 @@ static bool Inf_GetIfIHaveReadFromForm (void)
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 ***************************/
/*****************************************************************************/
@ -1835,7 +1808,7 @@ void Inf_RecAndChangePlainTxtInfo (void)
/***** Change info source to "plain text" in database *****/
Inf_DB_SetInfoSrc (Txt_HTMLFormat[0] ? Inf_PLAIN_TEXT :
Inf_NONE);
Inf_NONE);
if (Txt_HTMLFormat[0])
/***** Show the updated info *****/
Inf_ShowInfo ();
@ -1874,7 +1847,7 @@ void Inf_RecAndChangeRichTxtInfo (void)
/***** Change info source to "rich text" in database *****/
Inf_DB_SetInfoSrc (Txt_HTMLFormat[0] ? Inf_RICH_TEXT :
Inf_NONE);
Inf_NONE);
if (Txt_HTMLFormat[0])
/***** Show the updated info *****/
Inf_ShowInfo ();

View File

@ -88,7 +88,6 @@ void Inf_WriteMsgYouMustReadInfo (void);
void Inf_ChangeForceReadInfo (void);
void Inf_ChangeIHaveReadInfo (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_WriteURLIntoTxtBuffer (char TxtBuffer[Cns_MAX_BYTES_WWW + 1]);
void Inf_SetInfoSrc (void);

View File

@ -301,3 +301,38 @@ bool Inf_DB_CheckIfIHaveReadInfo (void)
Gbl.Hierarchy.Crs.CrsCod,
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);
bool Inf_DB_CheckIfIHaveReadInfo (void);
unsigned Inf_DB_GetInfoTypesfIMustReadInfo (MYSQL_RES **mysql_res);
void Inf_DB_RemoveUsrFromCrsInfoRead (long UsrCod,long CrsCod);
#endif

View File

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