Version 22.43.1: Oct 12, 2022 Code refactoring in projects.

This commit is contained in:
acanas 2022-10-12 13:32:35 +02:00
parent 6e3cea9ba1
commit b0a43f81f4
4 changed files with 113 additions and 87 deletions

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Pro 6.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc. --><path d="M3.9 22.9C10.5 8.9 24.5 0 40 0H472c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L396.4 195.6C316.2 212.1 256 283 256 368c0 27.4 6.3 53.4 17.5 76.5c-1.6-.8-3.2-1.8-4.7-2.9l-64-48c-8.1-6-12.8-15.5-12.8-25.6V288.9L9 65.3C-.7 53.4-2.8 36.8 3.9 22.9zM432 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm59.3-180.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z"/></svg>

After

Width:  |  Height:  |  Size: 835 B

View File

@ -606,10 +606,11 @@ TODO: Fix bug: error al enviar un mensaje a dos recipientes, error on duplicate
TODO: Attach pdf files in multimedia. TODO: Attach pdf files in multimedia.
*/ */
#define Log_PLATFORM_VERSION "SWAD 22.43 (2022-10-11)" #define Log_PLATFORM_VERSION "SWAD 22.43.1 (2022-10-12)"
#define CSS_FILE "swad22.40.css" #define CSS_FILE "swad22.40.css"
#define JS_FILE "swad21.100.js" #define JS_FILE "swad21.100.js"
/* /*
Version 22.43.1: Oct 12, 2022 Code refactoring in projects. (332952 lines)
Version 22.43: Oct 11, 2022 Review of projects (not finished). (332930 lines) Version 22.43: Oct 11, 2022 Review of projects (not finished). (332930 lines)
Version 22.42: Oct 11, 2022 Review of projects (not finished). (332738 lines) Version 22.42: Oct 11, 2022 Review of projects (not finished). (332738 lines)
3 changes necessary in database: 3 changes necessary in database:
@ -617,12 +618,13 @@ ALTER TABLE prj_projects ADD COLUMN ReviewStatus ENUM('unreviewed','unapproved',
ALTER TABLE prj_projects ADD COLUMN ReviewTime DATETIME NOT NULL DEFAULT '1970-01-01 01:00:00' AFTER ReviewStatus; ALTER TABLE prj_projects ADD COLUMN ReviewTime DATETIME NOT NULL DEFAULT '1970-01-01 01:00:00' AFTER ReviewStatus;
ALTER TABLE prj_projects ADD COLUMN ReviewTxt TEXT NOT NULL AFTER ReviewTime; ALTER TABLE prj_projects ADD COLUMN ReviewTxt TEXT NOT NULL AFTER ReviewTime;
Copy the following icons to icon public directory: Copy the following icons to icon public directory:
// sudo cp icon/comment-slash.svg /var/www/html/swad/icon/ sudo cp icon/comment-slash.svg /var/www/html/swad/icon/
sudo cp icon/file-circle-check.svg /var/www/html/swad/icon/ sudo cp icon/file-circle-check.svg /var/www/html/swad/icon/
sudo cp icon/file-circle-exclamation.svg /var/www/html/swad/icon/ sudo cp icon/file-circle-exclamation.svg /var/www/html/swad/icon/
sudo cp icon/file-circle-question.svg /var/www/html/swad/icon/ sudo cp icon/file-circle-question.svg /var/www/html/swad/icon/
// sudo cp icon/thumbs-down.svg /var/www/html/swad/icon/ sudo cp icon/filter-circle-xmark.svg /var/www/html/swad/icon/
// sudo cp icon/thumbs-up.svg /var/www/html/swad/icon/ sudo cp icon/thumbs-down.svg /var/www/html/swad/icon/
sudo cp icon/thumbs-up.svg /var/www/html/swad/icon/
Version 22.41.1: Oct 07, 2022 Fixed issue in main title. (332512 lines) Version 22.41.1: Oct 07, 2022 Fixed issue in main title. (332512 lines)
Version 22.41: Oct 06, 2022 Changes in the behavior of the expansion/contraction of program items. (332511 lines) Version 22.41: Oct 06, 2022 Changes in the behavior of the expansion/contraction of program items. (332511 lines)

View File

@ -104,9 +104,14 @@ static struct
Ico_Color_t Color; Ico_Color_t Color;
} ReviewIcon[Prj_NUM_REVIEW_STATUS] = } ReviewIcon[Prj_NUM_REVIEW_STATUS] =
{ {
/*
[Prj_UNREVIEWED] = {"file-circle-question.svg" ,Ico_BLACK}, [Prj_UNREVIEWED] = {"file-circle-question.svg" ,Ico_BLACK},
[Prj_UNAPPROVED] = {"file-circle-exclamation.svg",Ico_RED }, [Prj_UNAPPROVED] = {"file-circle-exclamation.svg",Ico_RED },
[Prj_APPROVED ] = {"file-circle-check.svg" ,Ico_GREEN}, [Prj_APPROVED ] = {"file-circle-check.svg" ,Ico_GREEN},
*/
[Prj_UNREVIEWED] = {"filter-circle-xmark.svg",Ico_BLACK},
[Prj_UNAPPROVED] = {"thumbs-down.svg" ,Ico_RED },
[Prj_APPROVED ] = {"thumbs-up.svg" ,Ico_GREEN},
}; };
/***** Locked/unlocked project edition *****/ /***** Locked/unlocked project edition *****/
@ -202,6 +207,8 @@ static void Prj_PutIconsOnePrj (void *Projects);
static void Prj_ShowProjectRow (struct Prj_Projects *Projects, static void Prj_ShowProjectRow (struct Prj_Projects *Projects,
unsigned NumIndex, unsigned NumIndex,
Prj_ProjectView_t ProjectView); Prj_ProjectView_t ProjectView);
static void Prj_ShowProjectReviewStatus (struct Prj_Projects *Projects,
Prj_ProjectView_t ProjectView);
static bool Prj_CheckIfPrjIsFaulty (long PrjCod,struct Prj_Faults *Faults); static bool Prj_CheckIfPrjIsFaulty (long PrjCod,struct Prj_Faults *Faults);
static void Prj_PutWarningIcon (void); static void Prj_PutWarningIcon (void);
static void Prj_PutIconToToggleProject (unsigned UniqueId, static void Prj_PutIconToToggleProject (unsigned UniqueId,
@ -1346,7 +1353,7 @@ void Prj_PrintOneProject (void)
} }
/*****************************************************************************/ /*****************************************************************************/
/***************************** Show one project ******************************/ /*********** When listing projects, show one row with one project ************/
/*****************************************************************************/ /*****************************************************************************/
static void Prj_ShowProjectRow (struct Prj_Projects *Projects, static void Prj_ShowProjectRow (struct Prj_Projects *Projects,
@ -1354,8 +1361,6 @@ static void Prj_ShowProjectRow (struct Prj_Projects *Projects,
Prj_ProjectView_t ProjectView) Prj_ProjectView_t ProjectView)
{ {
extern const char *Txt_Actions[Act_NUM_ACTIONS]; extern const char *Txt_Actions[Act_NUM_ACTIONS];
extern const char *Txt_Review;
extern const char *Txt_PROJECT_REVIEW_SINGUL[Prj_NUM_REVIEW_STATUS];
extern const char *Txt_Assigned_QUESTION; extern const char *Txt_Assigned_QUESTION;
extern const char *Txt_Yes; extern const char *Txt_Yes;
extern const char *Txt_No; extern const char *Txt_No;
@ -1512,45 +1517,7 @@ static void Prj_ShowProjectRow (struct Prj_Projects *Projects,
HTM_TR_End (); HTM_TR_End ();
/***** Review status *****/ /***** Review status *****/
HTM_TR_Begin (NULL); Prj_ShowProjectReviewStatus (Projects,ProjectView);
switch (ProjectView)
{
case Prj_LIST_PROJECTS:
HTM_TD_Begin ("colspan=\"2\" class=\"RT %s_%s %s\"",
ClassLabel,The_GetSuffix (),The_GetColorRows ());
break;
default:
HTM_TD_Begin ("colspan=\"2\" class=\"RT %s_%s\"",
ClassLabel,The_GetSuffix ());
break;
}
HTM_TxtColon (Txt_Review);
HTM_TD_End ();
switch (ProjectView)
{
case Prj_LIST_PROJECTS:
HTM_TD_Begin ("colspan=\"2\" class=\"LT %s_%s %s\"",
ClassData,The_GetSuffix (),The_GetColorRows ());
break;
default:
HTM_TD_Begin ("colspan=\"2\" class=\"LT %s_%s\"",
ClassData,The_GetSuffix ());
break;
}
HTM_TxtF ("%s&nbsp;",Txt_PROJECT_REVIEW_SINGUL[Projects->Prj.ReviewStatus]);
Ico_PutIconOff (ReviewIcon[Projects->Prj.ReviewStatus].Icon,
ReviewIcon[Projects->Prj.ReviewStatus].Color,
Txt_PROJECT_REVIEW_SINGUL[Projects->Prj.ReviewStatus]);
/*
if (Faults.WrongAssigned)
Prj_PutWarningIcon ();
*/
HTM_TD_End ();
HTM_TR_End ();
/***** Assigned? *****/ /***** Assigned? *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
@ -1727,6 +1694,62 @@ static void Prj_ShowProjectRow (struct Prj_Projects *Projects,
Frm_FreeAnchorStr (Anchor); Frm_FreeAnchorStr (Anchor);
} }
/*****************************************************************************/
/********* When listing a project, show one row with review status ***********/
/*****************************************************************************/
static void Prj_ShowProjectReviewStatus (struct Prj_Projects *Projects,
Prj_ProjectView_t ProjectView)
{
extern const char *Txt_Review;
extern const char *Txt_PROJECT_REVIEW_SINGUL[Prj_NUM_REVIEW_STATUS];
const char *ClassLabel = (Projects->Prj.Hidden == Prj_HIDDEN) ? "ASG_LABEL_LIGHT" :
"ASG_LABEL";
const char *ClassData = (Projects->Prj.Hidden == Prj_HIDDEN) ? "DAT_LIGHT" :
"DAT";
/***** Review status *****/
HTM_TR_Begin (NULL);
switch (ProjectView)
{
case Prj_LIST_PROJECTS:
HTM_TD_Begin ("colspan=\"2\" class=\"RT %s_%s %s\"",
ClassLabel,The_GetSuffix (),The_GetColorRows ());
break;
default:
HTM_TD_Begin ("colspan=\"2\" class=\"RT %s_%s\"",
ClassLabel,The_GetSuffix ());
break;
}
HTM_TxtColon (Txt_Review);
HTM_TD_End ();
switch (ProjectView)
{
case Prj_LIST_PROJECTS:
HTM_TD_Begin ("colspan=\"2\" class=\"LT %s_%s %s\"",
ClassData,The_GetSuffix (),The_GetColorRows ());
break;
default:
HTM_TD_Begin ("colspan=\"2\" class=\"LT %s_%s\"",
ClassData,The_GetSuffix ());
break;
}
HTM_TxtF ("%s&nbsp;",Txt_PROJECT_REVIEW_SINGUL[Projects->Prj.ReviewStatus]);
Ico_PutIconOff (ReviewIcon[Projects->Prj.ReviewStatus].Icon,
ReviewIcon[Projects->Prj.ReviewStatus].Color,
Txt_PROJECT_REVIEW_SINGUL[Projects->Prj.ReviewStatus]);
/*
if (Faults.WrongAssigned)
Prj_PutWarningIcon ();
*/
HTM_TD_End ();
HTM_TR_End ();
}
/*****************************************************************************/ /*****************************************************************************/
/********************** Check if a project has faults ************************/ /********************** Check if a project has faults ************************/
/*****************************************************************************/ /*****************************************************************************/
@ -3112,7 +3135,7 @@ void Prj_GetDataOfProjectByCod (struct Prj_Project *Prj)
for (ReviewStatus = (Prj_ReviewStatus_t) 0; for (ReviewStatus = (Prj_ReviewStatus_t) 0;
ReviewStatus <= (Prj_ReviewStatus_t) (Prj_NUM_REVIEW_STATUS - 1); ReviewStatus <= (Prj_ReviewStatus_t) (Prj_NUM_REVIEW_STATUS - 1);
ReviewStatus++) ReviewStatus++)
if (!strcmp (Prj_ReviewStatus_DB[Proposal],row[15])) if (!strcmp (Prj_ReviewStatus_DB[ReviewStatus],row[15]))
{ {
Prj->ReviewStatus = ReviewStatus; Prj->ReviewStatus = ReviewStatus;
break; break;

View File

@ -32997,25 +32997,25 @@ const char *Txt_PROJECT_REVIEW_PLURAL[Prj_NUM_REVIEW_STATUS] =
, ,
[Prj_UNAPPROVED] = [Prj_UNAPPROVED] =
#if L==1 // ca #if L==1 // ca
"Projectes sense aprovar" "Projectes pendents d'esmena"
#elif L==2 // de #elif L==2 // de
"Nicht genehmigte Projekte" "Projekte mit ausstehender Korrektur"
#elif L==3 // en #elif L==3 // en
"Unapproved projects" "Projects pending correction"
#elif L==4 // es #elif L==4 // es
"Proyectos sin aprobar" "Proyectos pendientes de subsanaci&oacute;n"
#elif L==5 // fr #elif L==5 // fr
"Projets non approuv&eacute;s" "Projets en attente de correction"
#elif L==6 // gn #elif L==6 // gn
"Proyectos sin aprobar" // Okoteve traducción "Proyectos pendientes de subsanaci&oacute;n" // Okoteve traducción
#elif L==7 // it #elif L==7 // it
"Progetti non approvati" "Progetti in attesa di correzione"
#elif L==8 // pl #elif L==8 // pl
"Niezatwierdzone projekty" "Projekty oczekuj&aogon;ce na korekt&eogon;"
#elif L==9 // pt #elif L==9 // pt
"Projetos n&atilde;o aprovados" "Projetos pendentes de corre&ccedil;&atilde;o"
#elif L==10 // tr #elif L==10 // tr
"Onaylanmam&inodot;&scedil; projeler" "D&uuml;zeltilmeyi bekleyen projeler"
#endif #endif
, ,
[Prj_APPROVED] = [Prj_APPROVED] =
@ -33046,71 +33046,71 @@ const char *Txt_PROJECT_REVIEW_SINGUL[Prj_NUM_REVIEW_STATUS] =
{ {
[Prj_UNREVIEWED] = [Prj_UNREVIEWED] =
#if L==1 // ca #if L==1 // ca
"Projectes sense revisar" "Sense revisar"
#elif L==2 // de #elif L==2 // de
"Ungepr&uuml;fte Projekte" "Ungepr&uuml;ftes"
#elif L==3 // en #elif L==3 // en
"Unreviewed projects" "Unreviewed"
#elif L==4 // es #elif L==4 // es
"Proyectos sin revisar" "Sin revisar"
#elif L==5 // fr #elif L==5 // fr
"Projets non revus" "Non revu"
#elif L==6 // gn #elif L==6 // gn
"Proyectos sin revisar" // Okoteve traducción "Sin revisar" // Okoteve traducción
#elif L==7 // it #elif L==7 // it
"Progetti non recensiti" "Non recensito"
#elif L==8 // pl #elif L==8 // pl
"Niesprawdzone projekty" "Niesprawdzony"
#elif L==9 // pt #elif L==9 // pt
"Projetos n&atilde;o revisados" "N&atilde;o revisado"
#elif L==10 // tr #elif L==10 // tr
"&Idot;ncelenmemi&scedil; projeler" "&Idot;ncelenmemi&scedil;"
#endif #endif
, ,
[Prj_UNAPPROVED] = [Prj_UNAPPROVED] =
#if L==1 // ca #if L==1 // ca
"Projectes sense aprovar" "Pendent d'esmena"
#elif L==2 // de #elif L==2 // de
"Nicht genehmigte Projekte" "Ausstehende Korrektur"
#elif L==3 // en #elif L==3 // en
"Unapproved projects" "Pending correction"
#elif L==4 // es #elif L==4 // es
"Proyectos sin aprobar" "Pendiente de subsanación"
#elif L==5 // fr #elif L==5 // fr
"Projets non approuv&eacute;s" "En attente de correction"
#elif L==6 // gn #elif L==6 // gn
"Proyectos sin aprobar" // Okoteve traducción "Pendiente de subsanación" // Okoteve traducción
#elif L==7 // it #elif L==7 // it
"Progetti non approvati" "In attesa di correzione"
#elif L==8 // pl #elif L==8 // pl
"Niezatwierdzone projekty" "Oczekuje na korekt&eogon;"
#elif L==9 // pt #elif L==9 // pt
"Projetos n&atilde;o aprovados" "Corre&ccedil;&atilde;o pendente"
#elif L==10 // tr #elif L==10 // tr
"Onaylanmam&inodot;&scedil; projeler" "D&uuml;zeltme bekleniyor"
#endif #endif
, ,
[Prj_APPROVED] = [Prj_APPROVED] =
#if L==1 // ca #if L==1 // ca
"Projectes aprovats" "Aprovat"
#elif L==2 // de #elif L==2 // de
"Genehmigte Projekte" "Genehmigtes"
#elif L==3 // en #elif L==3 // en
"Approved projects" "Approved"
#elif L==4 // es #elif L==4 // es
"Proyectos aprobados" "Aprobado"
#elif L==5 // fr #elif L==5 // fr
"Projets approuv&eacute;s" "Approuv&eacute;"
#elif L==6 // gn #elif L==6 // gn
"Proyectos aprobados" // Okoteve traducción "Aprobado" // Okoteve traducción
#elif L==7 // it #elif L==7 // it
"Progetti approvati" "Approvato"
#elif L==8 // pl #elif L==8 // pl
"Zatwierdzone projekty" "Zatwierdzony"
#elif L==9 // pt #elif L==9 // pt
"Projetos aprovados" "Aprovado"
#elif L==10 // tr #elif L==10 // tr
"Onaylanm&inodot;&scedil; projeler" "Onaylanm&inodot;&scedil;"
#endif #endif
}; };