diff --git a/swad_changelog.h b/swad_changelog.h index 0c5b56a4..85373b19 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -553,7 +553,7 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - * En OpenSWAD: ps2pdf source.ps destination.pdf */ -#define Log_PLATFORM_VERSION "SWAD 20.36.31 (2021-03-01)" +#define Log_PLATFORM_VERSION "SWAD 20.36.32 (2021-03-01)" #define CSS_FILE "swad20.33.9.css" #define JS_FILE "swad20.6.2.js" /* @@ -601,6 +601,7 @@ TODO: DNI de un estudiante sale err TODO: BUG: Cuando un tipo de grupo sólo tiene un grupo, inscribirse es voluntario, el estudiante sólo puede pertenecer a un grupo, y se inscribe en él, debería poder desapuntarse. Ahora no puede. TODO: Salvador Romero Cortés: @acanas opción para editar posts + Version 20.36.32: Mar 01, 2021 Query moved to module swad_timeline_database. (305444 lines) Version 20.36.31: Mar 01, 2021 Code refactoring in timeline favourites. (305432 lines) Version 20.36.30: Feb 28, 2021 Code refactoring in timeline favourites. (305411 lines) Version 20.36.29: Feb 28, 2021 Code refactoring in module swad_timeline_database. (305457 lines) diff --git a/swad_timeline_database.c b/swad_timeline_database.c index a4b2d7d3..cd7cb72f 100644 --- a/swad_timeline_database.c +++ b/swad_timeline_database.c @@ -857,7 +857,6 @@ void TL_DB_UpdateFirstLastPubCodsInSession (long FirstPubCod) Gbl.Session.Id); } - /*****************************************************************************/ /****************** Check if a user has favourited a note ********************/ /*****************************************************************************/ @@ -924,13 +923,13 @@ unsigned TL_DB_GetListUsrsHaveFaved (TL_Fav_WhatToFav_t WhatToFav, { const char *Table[TL_Fav_NUM_WHAT_TO_FAV] = { - "tl_notes_fav", - "tl_comments_fav", + [TL_Fav_NOTE] = "tl_notes_fav", + [TL_Fav_COMM] = "tl_comments_fav", }; const char *Field[TL_Fav_NUM_WHAT_TO_FAV] = { - "NotCod", - "PubCod", + [TL_Fav_NOTE] = "NotCod", + [TL_Fav_COMM] = "PubCod", }; /***** Get list of users who have marked a note/comment as favourite from database *****/ @@ -997,3 +996,20 @@ static void TL_DB_UnmarkAsFav (const char *Table,const char *Field,long Cod) Table, Field,Cod,Gbl.Usrs.Me.UsrDat.UsrCod); } + +/*****************************************************************************/ +/****************** Remove shared publication from database ******************/ +/*****************************************************************************/ + +void TL_DB_RemoveSharedPub (long NotCod) + { + /***** Remove shared publication *****/ + DB_QueryDELETE ("can not remove a publication", + "DELETE FROM tl_pubs" + " WHERE NotCod=%ld" + " AND PublisherCod=%ld" + " AND PubType=%u", // Extra check: shared note + NotCod, + Gbl.Usrs.Me.UsrDat.UsrCod, + (unsigned) TL_Pub_SHARED_NOTE); + } diff --git a/swad_timeline_database.h b/swad_timeline_database.h index f571b8c8..f1a72490 100644 --- a/swad_timeline_database.h +++ b/swad_timeline_database.h @@ -126,4 +126,7 @@ void TL_DB_MarkCommAsFav (long PubCod); void TL_DB_UnmarkNoteAsFav (long NotCod); void TL_DB_UnmarkCommAsFav (long PubCod); +/******************************** Shared *************************************/ +void TL_DB_RemoveSharedPub (long NotCod); + #endif diff --git a/swad_timeline_favourite.c b/swad_timeline_favourite.c index f01ac543..abfed30f 100644 --- a/swad_timeline_favourite.c +++ b/swad_timeline_favourite.c @@ -457,15 +457,15 @@ static void TL_Fav_ShowUsrsWhoHaveMarkedAsFav (TL_Fav_WhatToFav_t WhatToFav, unsigned NumFavs, TL_Usr_HowManyUsrs_t HowManyUsrs) { - TL_Frm_Action_t Action[TL_Fav_NUM_WHAT_TO_FAV] = + static const TL_Frm_Action_t Action[TL_Fav_NUM_WHAT_TO_FAV] = { - TL_Frm_ALL_FAV_NOTE, - TL_Frm_ALL_FAV_COMM, + [TL_Fav_NOTE] = TL_Frm_ALL_FAV_NOTE, + [TL_Fav_COMM] = TL_Frm_ALL_FAV_COMM, }; - const char *ParamFormat[TL_Fav_NUM_WHAT_TO_FAV] = + static const char *ParamFormat[TL_Fav_NUM_WHAT_TO_FAV] = { - "NotCod=%ld", - "PubCod=%ld", + [TL_Fav_NOTE] = "NotCod=%ld", + [TL_Fav_COMM] = "PubCod=%ld", }; MYSQL_RES *mysql_res; unsigned NumFirstUsrs; @@ -473,10 +473,11 @@ static void TL_Fav_ShowUsrsWhoHaveMarkedAsFav (TL_Fav_WhatToFav_t WhatToFav, /***** Get users who have marked this note as favourite *****/ if (NumFavs) /***** Get list of users from database *****/ - NumFirstUsrs = TL_DB_GetListUsrsHaveFaved (WhatToFav,Cod,UsrCod, - HowManyUsrs == TL_Usr_SHOW_FEW_USRS ? TL_Usr_DEF_USRS_SHOWN : - TL_Usr_MAX_USRS_SHOWN, - &mysql_res); + NumFirstUsrs = + TL_DB_GetListUsrsHaveFaved (WhatToFav,Cod,UsrCod, + HowManyUsrs == TL_Usr_SHOW_FEW_USRS ? TL_Usr_DEF_USRS_SHOWN : + TL_Usr_MAX_USRS_SHOWN, + &mysql_res); else NumFirstUsrs = 0; diff --git a/swad_timeline_share.c b/swad_timeline_share.c index ac76ff33..4dabcc0a 100644 --- a/swad_timeline_share.c +++ b/swad_timeline_share.c @@ -185,17 +185,10 @@ static void TL_Sha_UnsNote (struct TL_Not_Note *Not) Gbl.Usrs.Me.Logged && // I am logged... !Usr_ItsMe (Not->UsrCod)) // ...but I am not the author if (TL_Sha_CheckIfNoteIsSharedByUsr (Not->NotCod, - Gbl.Usrs.Me.UsrDat.UsrCod)) // I am a sharer + Gbl.Usrs.Me.UsrDat.UsrCod)) // I am a sharer { /***** Delete publication from database *****/ - DB_QueryDELETE ("can not remove a publication", - "DELETE FROM tl_pubs" - " WHERE NotCod=%ld" - " AND PublisherCod=%ld" - " AND PubType=%u", - Not->NotCod, - Gbl.Usrs.Me.UsrDat.UsrCod, - (unsigned) TL_Pub_SHARED_NOTE); + TL_DB_RemoveSharedPub (Not->NotCod); /***** Update number of times this note is shared *****/ TL_Sha_UpdateNumTimesANoteHasBeenShared (Not);