mirror of https://github.com/acanas/swad-core.git
Version 22.43.1: Oct 12, 2022 Code refactoring in projects.
This commit is contained in:
parent
6e3cea9ba1
commit
b0a43f81f4
|
@ -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 |
|
@ -606,10 +606,11 @@ TODO: Fix bug: error al enviar un mensaje a dos recipientes, error on duplicate
|
|||
|
||||
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 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.42: Oct 11, 2022 Review of projects (not finished). (332738 lines)
|
||||
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 ReviewTxt TEXT NOT NULL AFTER ReviewTime;
|
||||
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-exclamation.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/thumbs-up.svg /var/www/html/swad/icon/
|
||||
sudo cp icon/filter-circle-xmark.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: Oct 06, 2022 Changes in the behavior of the expansion/contraction of program items. (332511 lines)
|
||||
|
|
109
swad_project.c
109
swad_project.c
|
@ -104,9 +104,14 @@ static struct
|
|||
Ico_Color_t Color;
|
||||
} ReviewIcon[Prj_NUM_REVIEW_STATUS] =
|
||||
{
|
||||
/*
|
||||
[Prj_UNREVIEWED] = {"file-circle-question.svg" ,Ico_BLACK},
|
||||
[Prj_UNAPPROVED] = {"file-circle-exclamation.svg",Ico_RED },
|
||||
[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 *****/
|
||||
|
@ -202,6 +207,8 @@ static void Prj_PutIconsOnePrj (void *Projects);
|
|||
static void Prj_ShowProjectRow (struct Prj_Projects *Projects,
|
||||
unsigned NumIndex,
|
||||
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 void Prj_PutWarningIcon (void);
|
||||
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,
|
||||
|
@ -1354,8 +1361,6 @@ static void Prj_ShowProjectRow (struct Prj_Projects *Projects,
|
|||
Prj_ProjectView_t ProjectView)
|
||||
{
|
||||
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_Yes;
|
||||
extern const char *Txt_No;
|
||||
|
@ -1512,45 +1517,7 @@ static void Prj_ShowProjectRow (struct Prj_Projects *Projects,
|
|||
HTM_TR_End ();
|
||||
|
||||
/***** 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 ",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 ();
|
||||
Prj_ShowProjectReviewStatus (Projects,ProjectView);
|
||||
|
||||
/***** Assigned? *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
|
@ -1727,6 +1694,62 @@ static void Prj_ShowProjectRow (struct Prj_Projects *Projects,
|
|||
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 ",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 ************************/
|
||||
/*****************************************************************************/
|
||||
|
@ -3112,7 +3135,7 @@ void Prj_GetDataOfProjectByCod (struct Prj_Project *Prj)
|
|||
for (ReviewStatus = (Prj_ReviewStatus_t) 0;
|
||||
ReviewStatus <= (Prj_ReviewStatus_t) (Prj_NUM_REVIEW_STATUS - 1);
|
||||
ReviewStatus++)
|
||||
if (!strcmp (Prj_ReviewStatus_DB[Proposal],row[15]))
|
||||
if (!strcmp (Prj_ReviewStatus_DB[ReviewStatus],row[15]))
|
||||
{
|
||||
Prj->ReviewStatus = ReviewStatus;
|
||||
break;
|
||||
|
|
80
swad_text.c
80
swad_text.c
|
@ -32997,25 +32997,25 @@ const char *Txt_PROJECT_REVIEW_PLURAL[Prj_NUM_REVIEW_STATUS] =
|
|||
,
|
||||
[Prj_UNAPPROVED] =
|
||||
#if L==1 // ca
|
||||
"Projectes sense aprovar"
|
||||
"Projectes pendents d'esmena"
|
||||
#elif L==2 // de
|
||||
"Nicht genehmigte Projekte"
|
||||
"Projekte mit ausstehender Korrektur"
|
||||
#elif L==3 // en
|
||||
"Unapproved projects"
|
||||
"Projects pending correction"
|
||||
#elif L==4 // es
|
||||
"Proyectos sin aprobar"
|
||||
"Proyectos pendientes de subsanación"
|
||||
#elif L==5 // fr
|
||||
"Projets non approuvés"
|
||||
"Projets en attente de correction"
|
||||
#elif L==6 // gn
|
||||
"Proyectos sin aprobar" // Okoteve traducción
|
||||
"Proyectos pendientes de subsanación" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Progetti non approvati"
|
||||
"Progetti in attesa di correzione"
|
||||
#elif L==8 // pl
|
||||
"Niezatwierdzone projekty"
|
||||
"Projekty oczekujące na korektę"
|
||||
#elif L==9 // pt
|
||||
"Projetos não aprovados"
|
||||
"Projetos pendentes de correção"
|
||||
#elif L==10 // tr
|
||||
"Onaylanmamış projeler"
|
||||
"Düzeltilmeyi bekleyen projeler"
|
||||
#endif
|
||||
,
|
||||
[Prj_APPROVED] =
|
||||
|
@ -33046,71 +33046,71 @@ const char *Txt_PROJECT_REVIEW_SINGUL[Prj_NUM_REVIEW_STATUS] =
|
|||
{
|
||||
[Prj_UNREVIEWED] =
|
||||
#if L==1 // ca
|
||||
"Projectes sense revisar"
|
||||
"Sense revisar"
|
||||
#elif L==2 // de
|
||||
"Ungeprüfte Projekte"
|
||||
"Ungeprüftes"
|
||||
#elif L==3 // en
|
||||
"Unreviewed projects"
|
||||
"Unreviewed"
|
||||
#elif L==4 // es
|
||||
"Proyectos sin revisar"
|
||||
"Sin revisar"
|
||||
#elif L==5 // fr
|
||||
"Projets non revus"
|
||||
"Non revu"
|
||||
#elif L==6 // gn
|
||||
"Proyectos sin revisar" // Okoteve traducción
|
||||
"Sin revisar" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Progetti non recensiti"
|
||||
"Non recensito"
|
||||
#elif L==8 // pl
|
||||
"Niesprawdzone projekty"
|
||||
"Niesprawdzony"
|
||||
#elif L==9 // pt
|
||||
"Projetos não revisados"
|
||||
"Não revisado"
|
||||
#elif L==10 // tr
|
||||
"İncelenmemiş projeler"
|
||||
"İncelenmemiş"
|
||||
#endif
|
||||
,
|
||||
[Prj_UNAPPROVED] =
|
||||
#if L==1 // ca
|
||||
"Projectes sense aprovar"
|
||||
"Pendent d'esmena"
|
||||
#elif L==2 // de
|
||||
"Nicht genehmigte Projekte"
|
||||
"Ausstehende Korrektur"
|
||||
#elif L==3 // en
|
||||
"Unapproved projects"
|
||||
"Pending correction"
|
||||
#elif L==4 // es
|
||||
"Proyectos sin aprobar"
|
||||
"Pendiente de subsanación"
|
||||
#elif L==5 // fr
|
||||
"Projets non approuvés"
|
||||
"En attente de correction"
|
||||
#elif L==6 // gn
|
||||
"Proyectos sin aprobar" // Okoteve traducción
|
||||
"Pendiente de subsanación" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Progetti non approvati"
|
||||
"In attesa di correzione"
|
||||
#elif L==8 // pl
|
||||
"Niezatwierdzone projekty"
|
||||
"Oczekuje na korektę"
|
||||
#elif L==9 // pt
|
||||
"Projetos não aprovados"
|
||||
"Correção pendente"
|
||||
#elif L==10 // tr
|
||||
"Onaylanmamış projeler"
|
||||
"Düzeltme bekleniyor"
|
||||
#endif
|
||||
,
|
||||
[Prj_APPROVED] =
|
||||
#if L==1 // ca
|
||||
"Projectes aprovats"
|
||||
"Aprovat"
|
||||
#elif L==2 // de
|
||||
"Genehmigte Projekte"
|
||||
"Genehmigtes"
|
||||
#elif L==3 // en
|
||||
"Approved projects"
|
||||
"Approved"
|
||||
#elif L==4 // es
|
||||
"Proyectos aprobados"
|
||||
"Aprobado"
|
||||
#elif L==5 // fr
|
||||
"Projets approuvés"
|
||||
"Approuvé"
|
||||
#elif L==6 // gn
|
||||
"Proyectos aprobados" // Okoteve traducción
|
||||
"Aprobado" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Progetti approvati"
|
||||
"Approvato"
|
||||
#elif L==8 // pl
|
||||
"Zatwierdzone projekty"
|
||||
"Zatwierdzony"
|
||||
#elif L==9 // pt
|
||||
"Projetos aprovados"
|
||||
"Aprovado"
|
||||
#elif L==10 // tr
|
||||
"Onaylanmış projeler"
|
||||
"Onaylanmış"
|
||||
#endif
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue