diff --git a/swad_API.c b/swad_API.c index 1be41997..a8dbe25b 100644 --- a/swad_API.c +++ b/swad_API.c @@ -3249,15 +3249,7 @@ int swad__markNotificationsAsRead (struct soap *soap, if ((NtfCod = Str_ConvertStrCodToLongCod (LongStr)) > 0) { /***** Mark notification as read in the database *****/ - DB_QueryUPDATE ("can not mark notification as read", - "UPDATE ntf_notifications" - " SET Status=(Status | %u)" - " WHERE NtfCod=%ld" - " AND ToUsrCod=%ld", - (unsigned) Ntf_STATUS_BIT_READ, - (long) NtfCod, - Gbl.Usrs.Me.UsrDat.UsrCod); - + Ntf_DB_MarkNotifAsSeenUsingNtfCod (NtfCod); NumNtfsMarkedAsRead++; } } diff --git a/swad_assignment.c b/swad_assignment.c index a94e28f1..fd94706c 100644 --- a/swad_assignment.c +++ b/swad_assignment.c @@ -522,7 +522,7 @@ static void Asg_ShowOneAssignment (struct Asg_Assignments *Assignments, Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd; /***** Mark possible notification as seen *****/ - Ntf_DB_MarkNotifAsSeenByMe (Ntf_EVENT_ASSIGNMENT,AsgCod); + Ntf_DB_MarkNotifAsSeenUsingCod (Ntf_EVENT_ASSIGNMENT,AsgCod); } /*****************************************************************************/ diff --git a/swad_browser.c b/swad_browser.c index fc0021ef..1fad652b 100644 --- a/swad_browser.c +++ b/swad_browser.c @@ -8163,25 +8163,25 @@ void Brw_ShowFileMetadata (void) case Brw_SHOW_DOC_GRP: case Brw_ADMI_DOC_CRS: case Brw_ADMI_DOC_GRP: - Ntf_DB_MarkNotifAsSeenByMe (Ntf_EVENT_DOCUMENT_FILE, - FileMetadata.FilCod); + Ntf_DB_MarkNotifAsSeenUsingCod (Ntf_EVENT_DOCUMENT_FILE, + FileMetadata.FilCod); break; case Brw_ADMI_TCH_CRS: case Brw_ADMI_TCH_GRP: - Ntf_DB_MarkNotifAsSeenByMe (Ntf_EVENT_TEACHERS_FILE, - FileMetadata.FilCod); + Ntf_DB_MarkNotifAsSeenUsingCod (Ntf_EVENT_TEACHERS_FILE, + FileMetadata.FilCod); break; case Brw_ADMI_SHR_CRS: case Brw_ADMI_SHR_GRP: - Ntf_DB_MarkNotifAsSeenByMe (Ntf_EVENT_SHARED_FILE, - FileMetadata.FilCod); + Ntf_DB_MarkNotifAsSeenUsingCod (Ntf_EVENT_SHARED_FILE, + FileMetadata.FilCod); break; case Brw_SHOW_MRK_CRS: case Brw_SHOW_MRK_GRP: case Brw_ADMI_MRK_CRS: case Brw_ADMI_MRK_GRP: - Ntf_DB_MarkNotifAsSeenByMe (Ntf_EVENT_MARKS_FILE, - FileMetadata.FilCod); + Ntf_DB_MarkNotifAsSeenUsingCod (Ntf_EVENT_MARKS_FILE, + FileMetadata.FilCod); break; default: break; @@ -8309,25 +8309,25 @@ void Brw_DownloadFile (void) case Brw_SHOW_DOC_GRP: case Brw_ADMI_DOC_CRS: case Brw_ADMI_DOC_GRP: - Ntf_DB_MarkNotifAsSeenByMe (Ntf_EVENT_DOCUMENT_FILE, - FileMetadata.FilCod); + Ntf_DB_MarkNotifAsSeenUsingCod (Ntf_EVENT_DOCUMENT_FILE, + FileMetadata.FilCod); break; case Brw_ADMI_TCH_CRS: case Brw_ADMI_TCH_GRP: - Ntf_DB_MarkNotifAsSeenByMe (Ntf_EVENT_TEACHERS_FILE, - FileMetadata.FilCod); + Ntf_DB_MarkNotifAsSeenUsingCod (Ntf_EVENT_TEACHERS_FILE, + FileMetadata.FilCod); break; case Brw_ADMI_SHR_CRS: case Brw_ADMI_SHR_GRP: - Ntf_DB_MarkNotifAsSeenByMe (Ntf_EVENT_SHARED_FILE, - FileMetadata.FilCod); + Ntf_DB_MarkNotifAsSeenUsingCod (Ntf_EVENT_SHARED_FILE, + FileMetadata.FilCod); break; case Brw_SHOW_MRK_CRS: case Brw_SHOW_MRK_GRP: case Brw_ADMI_MRK_CRS: case Brw_ADMI_MRK_GRP: - Ntf_DB_MarkNotifAsSeenByMe (Ntf_EVENT_MARKS_FILE, - FileMetadata.FilCod); + Ntf_DB_MarkNotifAsSeenUsingCod (Ntf_EVENT_MARKS_FILE, + FileMetadata.FilCod); break; default: break; diff --git a/swad_call_for_exam.c b/swad_call_for_exam.c index f788b4f7..2833365f 100644 --- a/swad_call_for_exam.c +++ b/swad_call_for_exam.c @@ -551,7 +551,7 @@ void Cfe_ListCallsForExamsSee (void) Cfe_ListCallsForExams (&CallsForExams,Cfe_NORMAL_VIEW); /***** Mark possible notifications as seen *****/ - Ntf_DB_MarkNotifsInCrsAsSeenByMe (Ntf_EVENT_CALL_FOR_EXAM); + Ntf_DB_MarkNotifsInCrsAsSeen (Ntf_EVENT_CALL_FOR_EXAM); } /*****************************************************************************/ diff --git a/swad_changelog.h b/swad_changelog.h index 0622a0e8..6a5e79e1 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -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.54.6 (2021-11-09)" +#define Log_PLATFORM_VERSION "SWAD 21.54.7 (2021-11-09)" #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.54.7: Nov 09, 2021 Queries moved from API module to database modules. (322175 lines) Version 21.54.6: Nov 09, 2021 Code refactoring in notifications. (322164 lines) Version 21.54.5: Nov 09, 2021 Queries moved from API module to database modules. (322185 lines) Version 21.54.4: Nov 09, 2021 Queries moved from API module to database modules. (322222 lines) diff --git a/swad_enrolment.c b/swad_enrolment.c index e8ddbe8b..b483ea03 100644 --- a/swad_enrolment.c +++ b/swad_enrolment.c @@ -457,7 +457,7 @@ void Enr_ReqAcceptRegisterInCrs (void) Err_WrongRoleExit (); break; } - Ntf_DB_MarkNotifsInCrsAsSeenByMe (NotifyEvent); + Ntf_DB_MarkNotifsInCrsAsSeen (NotifyEvent); } /*****************************************************************************/ @@ -2341,7 +2341,8 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected) HTM_TR_End (); /***** Mark possible notification as seen *****/ - Ntf_DB_MarkNotifAsSeenByMe (Ntf_EVENT_ENROLMENT_REQUEST,ReqCod); + Ntf_DB_MarkNotifAsSeenUsingCod (Ntf_EVENT_ENROLMENT_REQUEST, + ReqCod); } else // User does not exists or user already belongs to course ==> remove pair from crs_requests table Enr_RemUsrEnrolmentRequestInCrs (UsrDat.UsrCod,Crs.CrsCod); diff --git a/swad_forum.c b/swad_forum.c index ae446a24..0373c213 100644 --- a/swad_forum.c +++ b/swad_forum.c @@ -781,15 +781,15 @@ static void For_ShowPostsOfAThread (struct For_Forums *Forums, { case For_FORUM_COURSE_TCHS: case For_FORUM_COURSE_USRS: - Ntf_DB_MarkNotifAsSeenByMe (Ntf_EVENT_FORUM_POST_COURSE, - Forums->PstCod); + Ntf_DB_MarkNotifAsSeenUsingCod (Ntf_EVENT_FORUM_POST_COURSE, + Forums->PstCod); break; default: break; } if (Thread.NumMyPosts) - Ntf_DB_MarkNotifAsSeenByMe (Ntf_EVENT_FORUM_REPLY, - Forums->PstCod); + Ntf_DB_MarkNotifAsSeenUsingCod (Ntf_EVENT_FORUM_REPLY, + Forums->PstCod); } /***** End table *****/ diff --git a/swad_message.c b/swad_message.c index 54acc461..2566275e 100644 --- a/swad_message.c +++ b/swad_message.c @@ -1211,7 +1211,7 @@ void Msg_ExpRecMsg (void) Msg_DB_ExpandRcvMsg (Messages.ExpandedMsgCod); /***** Mark possible notification as seen *****/ - Ntf_DB_MarkNotifAsSeenByMe (Ntf_EVENT_MESSAGE,Messages.ExpandedMsgCod); + Ntf_DB_MarkNotifAsSeenUsingCod (Ntf_EVENT_MESSAGE,Messages.ExpandedMsgCod); /***** Show again the messages *****/ Msg_ShowRecMsgs (); diff --git a/swad_notice.c b/swad_notice.c index becd7c91..ebbaf87b 100644 --- a/swad_notice.c +++ b/swad_notice.c @@ -431,7 +431,7 @@ void Not_ShowNotices (Not_Listing_t TypeNoticesListing,long HighlightNotCod) DB_FreeMySQLResult (&mysql_res); /***** Mark possible notification as seen *****/ - Ntf_DB_MarkNotifsInCrsAsSeenByMe (Ntf_EVENT_NOTICE); + Ntf_DB_MarkNotifsInCrsAsSeen (Ntf_EVENT_NOTICE); } /*****************************************************************************/ diff --git a/swad_notification_database.c b/swad_notification_database.c index 9e1d894e..5cecebc9 100644 --- a/swad_notification_database.c +++ b/swad_notification_database.c @@ -125,7 +125,23 @@ void Ntf_DB_MarkPendingNtfsAsSent (long ToUsrCod) /**************** Set one possible notification as seen by me ****************/ /*****************************************************************************/ -void Ntf_DB_MarkNotifAsSeenByMe (Ntf_NotifyEvent_t NotifyEvent,long Cod) +void Ntf_DB_MarkNotifAsSeenUsingNtfCod (long NtfCod) + { + DB_QueryUPDATE ("can not set notification as seen", + "UPDATE ntf_notifications" + " SET Status=(Status | %u)" + " WHERE NtfCod=%ld" + " AND ToUsrCod=%ld", + (unsigned) Ntf_STATUS_BIT_READ, + NtfCod, + Gbl.Usrs.Me.UsrDat.UsrCod); + } + +/*****************************************************************************/ +/**************** Set one possible notification as seen by me ****************/ +/*****************************************************************************/ + +void Ntf_DB_MarkNotifAsSeenUsingCod (Ntf_NotifyEvent_t NotifyEvent,long Cod) { /***** Trivial check: if no code specified, nothing to do *****/ if (Cod <= 0) // If the user code is specified @@ -148,7 +164,7 @@ void Ntf_DB_MarkNotifAsSeenByMe (Ntf_NotifyEvent_t NotifyEvent,long Cod) /** Set all notifications of this type in the current course as seen by me ***/ /*****************************************************************************/ -void Ntf_DB_MarkNotifsInCrsAsSeenByMe (Ntf_NotifyEvent_t NotifyEvent) +void Ntf_DB_MarkNotifsInCrsAsSeen (Ntf_NotifyEvent_t NotifyEvent) { DB_QueryUPDATE ("can not set notification(s) as seen", "UPDATE ntf_notifications" diff --git a/swad_notification_database.h b/swad_notification_database.h index 826be77c..3b260ff6 100644 --- a/swad_notification_database.h +++ b/swad_notification_database.h @@ -48,8 +48,9 @@ void Ntf_DB_StoreNotifyEventToUsr (Ntf_NotifyEvent_t NotifyEvent, void Ntf_DB_UpdateMyLastAccessToNotifications (void); void Ntf_DB_MarkAllMyNotifAsSeen (void); void Ntf_DB_MarkPendingNtfsAsSent (long ToUsrCod); -void Ntf_DB_MarkNotifAsSeenByMe (Ntf_NotifyEvent_t NotifyEvent,long Cod); -void Ntf_DB_MarkNotifsInCrsAsSeenByMe (Ntf_NotifyEvent_t NotifyEvent); +void Ntf_DB_MarkNotifAsSeenUsingNtfCod (long NtfCod); +void Ntf_DB_MarkNotifAsSeenUsingCod (Ntf_NotifyEvent_t NotifyEvent,long Cod); +void Ntf_DB_MarkNotifsInCrsAsSeen (Ntf_NotifyEvent_t NotifyEvent); void Ntf_DB_MarkNotifsAsSeen (Ntf_NotifyEvent_t NotifyEvent); void Ntf_DB_MarkNotifToOneUsrAsRemoved (Ntf_NotifyEvent_t NotifyEvent,long Cod,long ToUsrCod); void Ntf_DB_MarkNotifInCrsAsRemoved (long ToUsrCod,long CrsCod); diff --git a/swad_profile.c b/swad_profile.c index 2459baa6..cc5db123 100644 --- a/swad_profile.c +++ b/swad_profile.c @@ -280,7 +280,8 @@ void Prf_GetUsrDatAndShowUserProfile (void) /***** If it's not me, mark possible notification as seen *****/ if (!Usr_ItsMe (Gbl.Usrs.Other.UsrDat.UsrCod)) // Not me - Ntf_DB_MarkNotifAsSeenByMe (Ntf_EVENT_FOLLOWER,Gbl.Usrs.Other.UsrDat.UsrCod); + Ntf_DB_MarkNotifAsSeenUsingCod (Ntf_EVENT_FOLLOWER, + Gbl.Usrs.Other.UsrDat.UsrCod); } /*****************************************************************************/ diff --git a/swad_survey.c b/swad_survey.c index d66e3078..656eef77 100644 --- a/swad_survey.c +++ b/swad_survey.c @@ -702,7 +702,7 @@ static void Svy_ShowOneSurvey (struct Svy_Surveys *Surveys, /***** Mark possible notification as seen *****/ if (Svy.Scope == HieLvl_CRS) // Only course surveys are notified - Ntf_DB_MarkNotifAsSeenByMe (Ntf_EVENT_SURVEY,Svy.Cod); + Ntf_DB_MarkNotifAsSeenUsingCod (Ntf_EVENT_SURVEY,Svy.Cod); if (ShowOnlyThisSvyComplete) {