diff --git a/swad_action_list.c b/swad_action_list.c index 9ef94c08..d5812559 100644 --- a/swad_action_list.c +++ b/swad_action_list.c @@ -1344,7 +1344,7 @@ const struct Act_Actions ActLst_Actions[ActLst_NUM_ACTIONS] = [ActReqDatBrf ] = {1047,-1,TabUnk,ActAdmBrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Brw_ShowFileMetadata ,NULL}, [ActChgDatBrf ] = {1048,-1,TabUnk,ActAdmBrf ,0x3F8,0x3C4,0x3C4,0x3C4,0x3C4,0x3C4,0x3C4,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Brw_ChgFileMetadata ,NULL}, [ActDowBrf ] = {1123,-1,TabUnk,ActAdmBrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_DOWNLD_FILE,Brw_DownloadFile ,NULL ,NULL}, - [ActReqRemOldBrf ] = {1488,-1,TabUnk,ActAdmBrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Brw_AskRemoveOldFiles ,NULL}, + [ActReqRemOldBrf ] = {1488,-1,TabUnk,ActAdmBrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Brw_AskRemoveOldFilesBriefcase ,NULL}, [ActRemOldBrf ] = {1489,-1,TabUnk,ActAdmBrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Brw_RemoveOldFilesBriefcase ,NULL}, // TabUsr ****************************************************************** diff --git a/swad_browser.c b/swad_browser.c index 236ab777..b620ec39 100644 --- a/swad_browser.c +++ b/swad_browser.c @@ -1065,7 +1065,6 @@ static void Brw_SetPathFileBrowser (void); static void Brw_CreateFoldersAssignmentsIfNotExist (long ZoneUsrCod); static void Brw_AskEditWorksCrsInternal (__attribute__((unused)) void *Args); -static void Brw_ShowFileBrowserNormal (void); static void Brw_ShowFileBrowsersAsgWrkCrs (void); static void Brw_ShowFileBrowsersAsgWrkUsr (void); @@ -1735,6 +1734,7 @@ void Brw_GetParAndInitFileBrowser (void) case ActReqDatAssPrj: case ActChgDatAssPrj: case ActDowAssPrj: + case ActChgPrjSco: Gbl.FileBrowser.Type = Brw_ADMI_ASS_PRJ; break; @@ -2696,13 +2696,16 @@ static void Brw_AskEditWorksCrsInternal (__attribute__((unused)) void *Args) /*********** Show normal file browser (not for assignments-works) ************/ /*****************************************************************************/ -static void Brw_ShowFileBrowserNormal (void) +void Brw_ShowFileBrowserNormal (void) { /***** Write top before showing file browser *****/ Brw_WriteTopBeforeShowingFileBrowser (); /****** Show the file browser *****/ Brw_ShowFileBrowser (); + + /***** Put legal notice *****/ + Brw_PutLegalNotice (); } /*****************************************************************************/ @@ -2792,6 +2795,9 @@ static void Brw_ShowFileBrowsersAsgWrkCrs (void) /***** End table and box *****/ Box_BoxTableEnd (); + + /***** Put legal notice *****/ + Brw_PutLegalNotice (); } /*****************************************************************************/ @@ -2812,6 +2818,23 @@ static void Brw_ShowFileBrowsersAsgWrkUsr (void) Gbl.FileBrowser.Type = Brw_ADMI_WRK_USR; Brw_InitializeFileBrowser (); Brw_ShowFileBrowser (); + + /***** Put legal notice *****/ + Brw_PutLegalNotice (); + } + +/*****************************************************************************/ +/******************** Put legal notice about files hosted ********************/ +/*****************************************************************************/ + +void Brw_PutLegalNotice (void) + { + extern const char *Txt_Disclaimer_the_files_hosted_here_; + + /***** Legal notice *****/ + Ale_ShowAlert (Ale_INFO,Txt_Disclaimer_the_files_hosted_here_, + Cfg_PLATFORM_SHORT_NAME, + Cfg_PLATFORM_RESPONSIBLE_EMAIL); } /*****************************************************************************/ @@ -3035,9 +3058,6 @@ static void Brw_ShowFileBrowserOrWorksInternal (__attribute__((unused)) void *Ar void Brw_ShowAgainFileBrowserOrWorks (void) { - extern const char *Txt_Files_of_marks_must_contain_a_table_in_HTML_format_; - extern const char *Txt_Disclaimer_the_files_hosted_here_; - if (Brw_GetIfUsrAssigWorksFileBrowser ()) Brw_ShowFileBrowsersAsgWrkUsr (); else if (Brw_GetIfCrsAssigWorksFileBrowser ()) @@ -3046,22 +3066,6 @@ void Brw_ShowAgainFileBrowserOrWorks (void) Prj_ShowOneProject (); else Brw_ShowFileBrowserNormal (); - - /***** Help *****/ - switch (Gbl.FileBrowser.Type) - { - case Brw_ADMI_MRK_CRS: - case Brw_ADMI_MRK_GRP: - Ale_ShowAlert (Ale_INFO,Txt_Files_of_marks_must_contain_a_table_in_HTML_format_); - break; - default: - break; - } - - /***** Legal notice *****/ - Ale_ShowAlert (Ale_INFO,Txt_Disclaimer_the_files_hosted_here_, - Cfg_PLATFORM_SHORT_NAME, - Cfg_PLATFORM_RESPONSIBLE_EMAIL); } /*****************************************************************************/ @@ -3096,6 +3100,7 @@ static void Brw_ShowFileBrowser (void) extern const char *Txt_Temporary_private_storage_area; extern const char *Txt_Project_documents; extern const char *Txt_Project_assessment; + extern const char *Txt_Files_of_marks_must_contain_a_table_in_HTML_format_; static const char **Brw_TitleOfFileBrowser[Brw_NUM_TYPES_FILE_BROWSER] = { @@ -3272,6 +3277,17 @@ static void Brw_ShowFileBrowser (void) Box_BoxEnd (); HTM_SECTION_End (); + + /***** Help *****/ + switch (Gbl.FileBrowser.Type) + { + case Brw_ADMI_MRK_CRS: + case Brw_ADMI_MRK_GRP: + Ale_ShowAlert (Ale_INFO,Txt_Files_of_marks_must_contain_a_table_in_HTML_format_); + break; + default: + break; + } } /*****************************************************************************/ @@ -7371,7 +7387,7 @@ void Brw_SetDocumentAsVisible (void) Gbl.Usrs.Other.UsrDat.UsrCod); /***** Show again the file browser *****/ - Brw_ShowAgainFileBrowserOrWorks (); + Brw_ShowFileBrowserNormal (); } /*****************************************************************************/ @@ -7395,7 +7411,7 @@ void Brw_SetDocumentAsHidden (void) Gbl.Usrs.Other.UsrDat.UsrCod); /***** Show again the file browser *****/ - Brw_ShowAgainFileBrowserOrWorks (); + Brw_ShowFileBrowserNormal (); } /*****************************************************************************/ @@ -9696,7 +9712,7 @@ static void Brw_PutLinkToAskRemOldFiles (void) /************** Write a form fo confirm removing of old files ****************/ /*****************************************************************************/ -void Brw_AskRemoveOldFiles (void) +void Brw_AskRemoveOldFilesBriefcase (void) { extern const char *Txt_Remove_old_files; extern const char *Txt_Remove_files_older_than_PART_1_OF_2; @@ -9781,7 +9797,7 @@ void Brw_RemoveOldFilesBriefcase (void) } /***** Show again the file browser *****/ - Brw_ShowAgainFileBrowserOrWorks (); + Brw_ShowFileBrowserNormal (); } /*****************************************************************************/ diff --git a/swad_browser.h b/swad_browser.h index 09bb0472..dc6a6485 100644 --- a/swad_browser.h +++ b/swad_browser.h @@ -198,8 +198,11 @@ void Brw_CreateDirDownloadTmp (void); void Brw_AskEditWorksCrs (void); +void Brw_ShowFileBrowserNormal (void); void Brw_ShowFileBrowserProject (long PrjCod); +void Brw_PutLegalNotice (void); + void Brw_AskRemFileFromTree (void); void Brw_RemFileFromTree (void); void Brw_RemFolderFromTree (void); @@ -269,7 +272,7 @@ void Brw_GetSummaryAndContentOfFile (char SummaryStr[Ntf_MAX_BYTES_SUMMARY + 1], void Brw_ListDocsFound (MYSQL_RES **mysql_res,unsigned NumDocs, const char *TitleSingular,const char *TitlePlural); -void Brw_AskRemoveOldFiles (void); +void Brw_AskRemoveOldFilesBriefcase (void); void Brw_RemoveOldFilesBriefcase (void); Act_Action_t Brw_GetActionExpand (void); diff --git a/swad_browser_resource.c b/swad_browser_resource.c index fc429f33..b0be12f0 100644 --- a/swad_browser_resource.c +++ b/swad_browser_resource.c @@ -71,7 +71,7 @@ void BrwRsc_GetLinkToDocFil (void) Txt_Documents); /***** Show again the file browser *****/ - Brw_ShowAgainFileBrowserOrWorks (); + Brw_ShowFileBrowserNormal (); } void BrwRsc_GetLinkToMrkFil (void) @@ -99,7 +99,7 @@ void BrwRsc_GetLinkToMrkFil (void) Txt_Marks_area); /***** Show again the file browser *****/ - Brw_ShowAgainFileBrowserOrWorks (); + Brw_ShowFileBrowserNormal (); } /*****************************************************************************/ diff --git a/swad_changelog.h b/swad_changelog.h index 49e46de2..45791a8c 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -629,11 +629,12 @@ 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. */ -#define Log_PLATFORM_VERSION "SWAD 22.104 (2023-05-03)" +#define Log_PLATFORM_VERSION "SWAD 22.104.1 (2023-05-04)" #define CSS_FILE "swad22.103.css" #define JS_FILE "swad22.49.js" /* - Version 22.104: May 03, 2023 Rubrics in project. Not finished. (? lines) + Version 22.104.1: May 04, 2023 Rubrics in project. Code refactoring in file browsers. (338014 lines) + Version 22.104: May 03, 2023 Rubrics in project. Not finished. (338000 lines) 3 changes necessary in database: CREATE TABLE IF NOT EXISTS prj_rubrics (CrsCod INT NOT NULL,Type ENUM('tut','evl','gbl') NOT NULL,RubCod INT NOT NULL,UNIQUE INDEX(CrsCod,Type,RubCod)); CREATE TABLE IF NOT EXISTS prj_scores (PrjCod INT NOT NULL,CriCod INT NOT NULL,Score DOUBLE PRECISION NOT NULL DEFAULT 0,UNIQUE INDEX(PrjCod,CriCod)); diff --git a/swad_mark.c b/swad_mark.c index 376bdfd5..ceac69d2 100644 --- a/swad_mark.c +++ b/swad_mark.c @@ -216,7 +216,7 @@ static void Mrk_ChangeNumRowsHeaderOrFooter (Brw_HeadOrFoot_t HeaderOrFooter) Err_WrongNumberOfRowsExit (); /***** Show again the file browser *****/ - Brw_ShowAgainFileBrowserOrWorks (); + Brw_ShowFileBrowserNormal (); } /*****************************************************************************/ diff --git a/swad_project.c b/swad_project.c index 7e349595..ad26f168 100644 --- a/swad_project.c +++ b/swad_project.c @@ -1324,6 +1324,9 @@ void Prj_ShowOneProject (void) Prj_ShowBoxWithOneProject (&Projects); Prj_FreeMemProject (&Projects.Prj); + /***** Put legal notice *****/ + Brw_PutLegalNotice (); + /***** Show projects again *****/ Prj_ShowProjects (&Projects); } @@ -4581,26 +4584,22 @@ static bool Prj_CheckIfICanFillRubric (long PrjCod,PrjCfg_Rubric_t WhichRubric) void Prj_ChangeCriterionScore (void) { - struct Prj_Projects Projects; + struct Prj_Project Prj; long CriCod; double Score; long RubCod; PrjCfg_Rubric_t WhichRubric; - /***** Reset projects *****/ - Prj_ResetPrjsAndReadConfig (&Projects); - /***** Allocate memory for the project *****/ - Prj_AllocMemProject (&Projects.Prj); + Prj_AllocMemProject (&Prj); /***** Get parameters *****/ - Prj_GetPars (&Projects); - Projects.Prj.PrjCod = ParCod_GetAndCheckPar (ParCod_Prj); + Prj.PrjCod = ParCod_GetAndCheckPar (ParCod_Prj); CriCod = ParCod_GetAndCheckPar (ParCod_Cri); Score = RubCri_GetParScore (); /***** Get data of the project from database *****/ - Prj_GetProjectDataByCod (&Projects.Prj); + Prj_GetProjectDataByCod (&Prj); /***** Get which rubric match this criterion *****/ if ((RubCod = Rub_DB_GetRubCodFromCriCod (CriCod)) <= 0) @@ -4609,16 +4608,18 @@ void Prj_ChangeCriterionScore (void) Err_WrongRubricExit (); /***** Update review *****/ - if (Prj_CheckIfICanFillRubric (Projects.Prj.PrjCod,WhichRubric)) - Prj_DB_UpdateScore (Projects.Prj.PrjCod,CriCod,Score); + if (Prj_CheckIfICanFillRubric (Prj.PrjCod,WhichRubric)) + Prj_DB_UpdateScore (Prj.PrjCod,CriCod,Score); else Err_NoPermission (); /***** Free memory of the project *****/ - Prj_FreeMemProject (&Projects.Prj); + Prj_FreeMemProject (&Prj); - /***** Show projects again *****/ - Prj_ShowProjects (&Projects); + /***** Get parameters related to file browser + and show again project including file browser *****/ + Brw_GetParAndInitFileBrowser (); + Prj_ShowOneProject (); } /*****************************************************************************/ diff --git a/swad_project_database.c b/swad_project_database.c index b0a5eb58..ff99d565 100644 --- a/swad_project_database.c +++ b/swad_project_database.c @@ -233,14 +233,12 @@ void Prj_DB_UpdateReview (const struct Prj_Project *Prj) void Prj_DB_UpdateScore (long PrjCod,long CriCod,double Score) { Str_SetDecimalPointToUS (); // To write the decimal point as a dot - DB_QueryUPDATE ("can not update score", - "UPDATE prj_scores" - " SET Score=%.15lg" - " WHERE PrjCod=%ld" - " AND CriCod=%ld", - Score, - PrjCod, - CriCod); + DB_QueryREPLACE ("can not save score", + "REPLACE INTO prj_scores" + " (PrjCod,CriCod,Score)" + " VALUES" + " (%ld,%ld,%.15lg)", + PrjCod,CriCod,Score); Str_SetDecimalPointToLocal (); // Return to local system }