From 0f33b2b86b74cf327fb771001f56e05a1563d9c5 Mon Sep 17 00:00:00 2001 From: Ronny John Date: Wed, 13 Mar 2024 11:14:28 -0300 Subject: [PATCH 01/16] fix: Removed anchor to valuer profile when user is registration owner --- assets/OpinionManagement/js/opinionManagement.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/assets/OpinionManagement/js/opinionManagement.js b/assets/OpinionManagement/js/opinionManagement.js index e509ced..ab47a55 100644 --- a/assets/OpinionManagement/js/opinionManagement.js +++ b/assets/OpinionManagement/js/opinionManagement.js @@ -9,7 +9,13 @@ const handleChkCollapseChange = target => { const opinionHtml = opinion => { let htmlParsed = '
' htmlParsed += `
-

Parecerista ${opinion.agent.name}

+

+ Parecerista + ${opinion.agent.singleUrl ? + ''+opinion.agent.name+'' : + opinion.agent.name + } +

Resultado da avaliação documental:

From acfe1a837c19c902b4fb28978ae5cfbf321916dc Mon Sep 17 00:00:00 2001 From: Ronny John Date: Thu, 14 Mar 2024 17:25:20 -0300 Subject: [PATCH 02/16] feat: Added notificateUsers method and implemented in manual publishing --- Controllers/OpinionManagement.php | 23 +++++++++++++++++++++++ Plugin.php | 6 +++++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/Controllers/OpinionManagement.php b/Controllers/OpinionManagement.php index 247a12d..eaea4a3 100644 --- a/Controllers/OpinionManagement.php +++ b/Controllers/OpinionManagement.php @@ -4,6 +4,8 @@ use MapasCulturais\Controller, MapasCulturais\App; +use MapasCulturais\Entities\Opportunity; +use MapasCulturais\Entities\Notification; use OpinionManagement\Helpers\EvaluationList; class OpinionManagement extends Controller @@ -65,6 +67,27 @@ public function POST_publishOpinions(): void return; } + $this->notificateUsers($opportunity->id); + $this->json(['success' => true]); } + + public function notificateUsers(int $opportunityId, bool $verifyPublishingOpinions = true): bool + { + $app = App::i(); + $opportunity = $app->repo('Opportunity')->find($opportunityId); + if($verifyPublishingOpinions && $opportunity->publishedOpinions === 'false') { + return false; + } + + $registrations = $app->repo('Registration')->findBy(['opportunity' => $opportunity]); + foreach ($registrations as $registration) { + $notification = new Notification(); + $notification->user = $registration->owner->user; + $notification->message = "Sua inscrição {$registration->number} da oportunidade {$opportunity->name} está com os pareceres publicados."; + $notification->save(true); + } + + return true; + } } diff --git a/Plugin.php b/Plugin.php index cc7cc3a..1057ace 100644 --- a/Plugin.php +++ b/Plugin.php @@ -4,6 +4,7 @@ use MapasCulturais\App, OpinionManagement\Controllers\OpinionManagement; +use MapasCulturais\Entities\Notification; /** * @method part(string $string, array $args = []) @@ -132,9 +133,12 @@ public function _init(): void }); $app->hook('entity(Opportunity).publishRegistrations:before', function () { - if($this->autopublishOpinions == 'Sim') + if($this->autopublishOpinions == 'Sim') { $this->setMetadata('publishedOpinions', 'true'); + } }); + + // @todo: Colocar a notificação quando publicar automaticamente os pareceres } /** From 2e2031627658ee1c11f22a6bb1112affd564a2da Mon Sep 17 00:00:00 2001 From: Ronny John Date: Mon, 18 Mar 2024 17:02:22 -0300 Subject: [PATCH 03/16] feat: Added notification when opinions autopublishing --- Controllers/OpinionManagement.php | 25 +++++++++++++++++++++---- Plugin.php | 7 ++++--- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/Controllers/OpinionManagement.php b/Controllers/OpinionManagement.php index eaea4a3..3f23bf4 100644 --- a/Controllers/OpinionManagement.php +++ b/Controllers/OpinionManagement.php @@ -2,9 +2,9 @@ namespace OpinionManagement\Controllers; +use Doctrine\Common\Collections\Criteria; use MapasCulturais\Controller, MapasCulturais\App; -use MapasCulturais\Entities\Opportunity; use MapasCulturais\Entities\Notification; use OpinionManagement\Helpers\EvaluationList; @@ -80,12 +80,29 @@ public function notificateUsers(int $opportunityId, bool $verifyPublishingOpinio return false; } - $registrations = $app->repo('Registration')->findBy(['opportunity' => $opportunity]); - foreach ($registrations as $registration) { + set_time_limit(500); + + $criteria = new Criteria(); + $criteria->where($criteria->expr()->eq('opportunity', $opportunity)); + $criteria->andWhere($criteria->expr()->gt('status', '0')); + + $registrations = $app->repo('Registration')->matching($criteria); + $count = count($registrations); + foreach ($registrations as $i => $registration) { $notification = new Notification(); $notification->user = $registration->owner->user; - $notification->message = "Sua inscrição {$registration->number} da oportunidade {$opportunity->name} está com os pareceres publicados."; + $notification->message = + "Sua inscrição " . + "" . + $registration->number . + "" . + " da oportunidade " . + "" . + $opportunity->name . + "" . + "está com os pareceres publicados."; $notification->save(true); + $app->log->debug("Notificação {$i}/{$count} enviada para o usuário {$registration->owner->user->id} ({$registration->owner->name})"); } return true; diff --git a/Plugin.php b/Plugin.php index 1057ace..92989b8 100644 --- a/Plugin.php +++ b/Plugin.php @@ -133,12 +133,13 @@ public function _init(): void }); $app->hook('entity(Opportunity).publishRegistrations:before', function () { - if($this->autopublishOpinions == 'Sim') { - $this->setMetadata('publishedOpinions', 'true'); + if($this->autopublishOpinions !== 'Sim') { + return; } + $this->setMetadata('publishedOpinions', 'true'); + (new OpinionManagement())->notificateUsers($this->id); }); - // @todo: Colocar a notificação quando publicar automaticamente os pareceres } /** From c98833d72ba09fa1a7962eb1b6c770102ba951d9 Mon Sep 17 00:00:00 2001 From: Ronny John Date: Thu, 21 Mar 2024 12:31:14 -0300 Subject: [PATCH 04/16] config: Added .gitignore to project --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..cac762f --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/vendor/ +/.idea/ From 8f8b71de356f767f7a214469ae70a19f2c6c1677 Mon Sep 17 00:00:00 2001 From: Ronny John Date: Thu, 21 Mar 2024 12:34:34 -0300 Subject: [PATCH 05/16] refactor: Improved output messages to debug --- Controllers/OpinionManagement.php | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/Controllers/OpinionManagement.php b/Controllers/OpinionManagement.php index 3f23bf4..86d7b05 100644 --- a/Controllers/OpinionManagement.php +++ b/Controllers/OpinionManagement.php @@ -92,17 +92,14 @@ public function notificateUsers(int $opportunityId, bool $verifyPublishingOpinio $notification = new Notification(); $notification->user = $registration->owner->user; $notification->message = - "Sua inscrição " . - "" . - $registration->number . - "" . - " da oportunidade " . - "" . - $opportunity->name . - "" . - "está com os pareceres publicados."; + sprintf( + "Sua inscrição %s" . + " da oportunidade %sestá com os pareceres publicados.", + $registration->number, + $opportunity->name + ); $notification->save(true); - $app->log->debug("Notificação {$i}/{$count} enviada para o usuário {$registration->owner->user->id} ({$registration->owner->name})"); + $app->log->debug("Notificação ".($i+1)."/$count enviada para o usuário {$registration->owner->user->id} ({$registration->owner->name})"); } return true; From 5280986a7922964419c216a735d5585eb59ed483 Mon Sep 17 00:00:00 2001 From: Ronny John Date: Thu, 21 Mar 2024 12:37:08 -0300 Subject: [PATCH 06/16] feat: Overrided function improving UI and adding a loader --- .../OpinionManagement/js/opinionManagement.js | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/assets/OpinionManagement/js/opinionManagement.js b/assets/OpinionManagement/js/opinionManagement.js index ab47a55..cacb0e9 100644 --- a/assets/OpinionManagement/js/opinionManagement.js +++ b/assets/OpinionManagement/js/opinionManagement.js @@ -132,3 +132,37 @@ const errorAlert = message => { showCloseButton: true, }) } + +alertPublish = id => { + Swal.fire({ + title: "Tem certeza?", + html: "ATENÇÃO, essa ação é uma ação irreversível. Caso a próxima fase seja uma prestação de contas, primeiro crie a fase de prestação de contas para só depois fazer a publicação.", + showConfirmButton: true, + showCloseButton: false, + showCancelButton: true, + confirmButtonText: 'Publicar', + cancelButtonText: 'Cancelar', + }) + .then(function (result) { + if(!result.isConfirmed) { + MapasCulturais.Messages.alert("Ação cancelada!") + return + } + + let loading = Swal.fire({ + title: "Verificando se há notificações a serem enviadas.", + allowOutsideClick: false, + showConfirmButton: false, + didOpen: () => { + Swal.showLoading(); + }, + }) + + var url = MapasCulturais.createUrl('opportunity', 'publishRegistrations', [id]); + $.get(url, function() { + loading.close() + MapasCulturais.Messages.success('Resultado publicado'); + }) + location.reload(); + }); +} \ No newline at end of file From b7d99d23b389e216570eeb2f3f9a505e6f16e878 Mon Sep 17 00:00:00 2001 From: Ronny John Date: Wed, 13 Mar 2024 11:14:28 -0300 Subject: [PATCH 07/16] fix: Removed anchor to valuer profile when user is registration owner --- assets/OpinionManagement/js/opinionManagement.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/assets/OpinionManagement/js/opinionManagement.js b/assets/OpinionManagement/js/opinionManagement.js index e509ced..ab47a55 100644 --- a/assets/OpinionManagement/js/opinionManagement.js +++ b/assets/OpinionManagement/js/opinionManagement.js @@ -9,7 +9,13 @@ const handleChkCollapseChange = target => { const opinionHtml = opinion => { let htmlParsed = '
' htmlParsed += `
-

Parecerista ${opinion.agent.name}

+

+ Parecerista + ${opinion.agent.singleUrl ? + ''+opinion.agent.name+'' : + opinion.agent.name + } +

Resultado da avaliação documental:

From bc1606d6e817930675530ad27849daf5396eb97d Mon Sep 17 00:00:00 2001 From: Ronny John Date: Thu, 21 Mar 2024 13:11:15 -0300 Subject: [PATCH 08/16] docs: Updated CHANGELOG --- CHANGELOG.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f7dff06..b3d5a33 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,12 @@ Todas as mudanças relevantes serão documentadas nesse arquivo. O formato é baseado no [Keep a Changelog](https://keepachangelog.com/pt-BR/1.1.0), e esse projeto adere ao [Semantic Versionning](https://semver.org/spec/v2.0.0.html). +## [Unreleased] +### Adicionado +- Adicionada notificação no painel de controle do proponente quando o parecer é publicado. +### Correções +- Retirado link fantasma para o perfil do parecerista na visão do proponente. + ## [1.1.0] - 2024-03-13 ### Adicionado - Agora o administrador pode selecionar se quer fazer publicação dos pareceres de forma automática ou manual; @@ -10,5 +16,5 @@ O formato é baseado no [Keep a Changelog](https://keepachangelog.com/pt-BR/1.1. ## [1.0.0] - 2024-02-27 ### Adicionado -- O administrador da oportunidade consegue ver a lista de pareceres na aba de inscrições da oportunidade. +- O administrador da oportunidade consegue ver a lista de pareceres na aba de inscrições da oportunidade; - O proponente consegue visualizar o parecer documental desde que a oportunidade esteja com o resultado publicado. From 7625e02c5758050a6a4b6c897a0f82537ac57382 Mon Sep 17 00:00:00 2001 From: Ronny John Date: Thu, 21 Mar 2024 14:34:10 -0300 Subject: [PATCH 09/16] fix: Fixed the verification for opinions publishing --- Plugin.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Plugin.php b/Plugin.php index 92989b8..9b0924e 100644 --- a/Plugin.php +++ b/Plugin.php @@ -108,7 +108,11 @@ public function _init(): void /** * @todo: Refatorar quando for mudar para publicar pareceres técnicos */ - if($opportunity->evaluationMethodConfiguration->type != 'documentary' || (!$opportunity->publishedRegistrations && !$opportunity->canUser('@control'))) { + if($opportunity->evaluationMethodConfiguration->type != 'documentary' + || (!$opportunity->publishedOpinions + && !$opportunity->canUser('@control') + ) + ) { return; } @@ -121,7 +125,7 @@ public function _init(): void /** * @todo: Refatorar quando for mudar para publicar pareceres técnicos */ - if(!$registration->opportunity->publishedRegistrations + if(!$registration->opportunity->publishedOpinions || $registration->opportunity->evaluationMethodConfiguration->type != 'documentary' ) return; $this->part('OpinionManagement/user-btn-show-opinion.php', ['registration' => $registration]); From 617a9e3c564acb9fe619d0556a958287c16335a7 Mon Sep 17 00:00:00 2001 From: Ronny John Date: Thu, 21 Mar 2024 14:39:26 -0300 Subject: [PATCH 10/16] docs: Updated CHANGELOG --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b3d5a33..408c517 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,8 @@ O formato é baseado no [Keep a Changelog](https://keepachangelog.com/pt-BR/1.1. ### Adicionado - Adicionada notificação no painel de controle do proponente quando o parecer é publicado. ### Correções -- Retirado link fantasma para o perfil do parecerista na visão do proponente. +- Retirado link fantasma para o perfil do parecerista na visão do proponente; +- Corrigido bug em que botão "Visualizar Pareceres" não aparecia para o proponente, mesmo com os pareceres publicados. ## [1.1.0] - 2024-03-13 ### Adicionado From 7abeaa7a1956d3bb787553f11a6a5a097b7a7ee7 Mon Sep 17 00:00:00 2001 From: Ronny John Date: Mon, 29 Apr 2024 15:04:17 -0300 Subject: [PATCH 11/16] feat: Added publishing technical opinion --- Controllers/OpinionManagement.php | 13 ++- Plugin.php | 109 +++++++----------- .../OpinionManagement/js/opinionManagement.js | 88 +++++++++----- 3 files changed, 109 insertions(+), 101 deletions(-) diff --git a/Controllers/OpinionManagement.php b/Controllers/OpinionManagement.php index 86d7b05..3c915da 100644 --- a/Controllers/OpinionManagement.php +++ b/Controllers/OpinionManagement.php @@ -39,11 +39,14 @@ public function GET_opinions(): void $registration = $app->repo('Registration')->find($this->getData['id']); if($registration->canUser('view')) { $opinions = new EvaluationList($registration); - $this->json($opinions); + $this->json([ + 'evaluationMethod' => (string) $registration->opportunity->evaluationMethodConfiguration->type, + 'opinions' => $opinions, + ]); return; } - $this->errorJson(['permission-denied'], 403); + $this->json(['permission-denied'], 403); } public function POST_publishOpinions(): void @@ -60,7 +63,7 @@ public function POST_publishOpinions(): void } - $opportunity->setMetadata('publishedOpinions', 'true'); + $opportunity->setMetadata('publishedOpinions', true); $error = $opportunity->save(true); if($error) { $this->errorJson(['error' => new \PDOException('Cannot save this data')], 500); @@ -72,11 +75,11 @@ public function POST_publishOpinions(): void $this->json(['success' => true]); } - public function notificateUsers(int $opportunityId, bool $verifyPublishingOpinions = true): bool + public static function notificateUsers(int $opportunityId, bool $verifyPublishingOpinions = true): bool { $app = App::i(); $opportunity = $app->repo('Opportunity')->find($opportunityId); - if($verifyPublishingOpinions && $opportunity->publishedOpinions === 'false') { + if($verifyPublishingOpinions && $opportunity->publishedOpinions === false) { return false; } diff --git a/Plugin.php b/Plugin.php index 9b0924e..85ca246 100644 --- a/Plugin.php +++ b/Plugin.php @@ -4,7 +4,8 @@ use MapasCulturais\App, OpinionManagement\Controllers\OpinionManagement; -use MapasCulturais\Entities\Notification; +use MapasCulturais\Entities\Opportunity as OpportunityEntity; +use MapasCulturais\Entities\Registration; /** * @method part(string $string, array $args = []) @@ -39,27 +40,20 @@ public function _init(): void ); }); - $app->hook('template(opportunity.edit.registration-config):after', function () use ($app) { + $plugin = $this; + + $app->hook('template(opportunity.edit.registration-config):after', function () use ($app, $plugin) { $opportunity = $this->controller->requestedEntity; - /** - * @todo: Refatorar quando for mudar para publicar pareceres técnicos - */ - if($opportunity->evaluationMethodConfiguration->type != 'documentary') { - return; + + if($plugin::isEvaluationMethodValid($opportunity)) { + $this->part('OpinionManagement/selection-autopublish', ['opportunity' => $opportunity]); } - $this->part('OpinionManagement/selection-autopublish', ['opportunity' => $opportunity]); }); - $app->hook('template(opportunity.single.registration-list-header):end', function() use($app) { + $app->hook('template(opportunity.single.registration-list-header):end', function() use($app, $plugin) { $opportunity = $this->controller->requestedEntity; - /** - * @todo: Refatorar quando for mudar para publicar pareceres técnicos - */ - if($opportunity->evaluationMethodConfiguration->type != 'documentary') { - return; - } - if($opportunity->canUser('@control')) { + if($plugin::isEvaluationMethodValid($opportunity) && $opportunity->canUser('@control')) { $this->part('OpinionManagement/admin-registrations-table-column.php'); $app->view->enqueueScript( 'app', @@ -74,74 +68,51 @@ public function _init(): void }); $app->hook('template(opportunity.single.user-registration-table--registration--status):end', function ($registration, $opportunity) use ($app) { - /** - * @todo: Refatorar quando for mudar para publicar pareceres técnicos - */ - if($opportunity->publishedOpinions != 'true') { - return; - } - - if($registration->canUser('@control')) { + if($opportunity->publishedOpinions === true && $registration->canUser('@control')) { $this->part('OpinionManagement/user-btn-show-opinion.php', ['registration' => $registration]); } }); - $app->hook('template(opportunity.single.opportunity-registrations--tables):begin', function () use ($app) { + $app->hook('template(opportunity.single.opportunity-registrations--tables):begin', function () use ($app, $plugin) { $opportunity = $this->controller->requestedEntity; - /** - * @todo: Refatorar quando for mudar para publicar pareceres técnicos - */ - if($opportunity->evaluationMethodConfiguration->type != 'documentary' - || $opportunity->autopublishOpinions !== 'Não' - || $opportunity->publishedOpinions == 'true' + if($plugin::isEvaluationMethodValid($opportunity) + && $opportunity->autopublishOpinions !== 'Sim' + && !$opportunity->publishedOpinions ) { - return; + $this->part('OpinionManagement/admin-btn-publish-opinions.php', ['opportunity' => $opportunity]); } - - $this->part('OpinionManagement/admin-btn-publish-opinions.php', ['opportunity' => $opportunity]); }); - $app->hook('template(registration.view.header-fieldset):after', function() use($app) { + $app->hook('template(registration.view.header-fieldset):after', function() use($app, $plugin) { $registration = $this->controller->requestedEntity; $opportunity = $registration->opportunity; - /** - * @todo: Refatorar quando for mudar para publicar pareceres técnicos - */ - if($opportunity->evaluationMethodConfiguration->type != 'documentary' - || (!$opportunity->publishedOpinions - && !$opportunity->canUser('@control') - ) + if($plugin::isEvaluationMethodValid($opportunity) + && $opportunity->publishedOpinions + && $opportunity->canUser('@control') ) { - return; - } - - if($registration->canUser('@control')) { $this->part('OpinionManagement/user-btn-show-opinion.php'); } }); - $app->hook('template(panel.<>.panel-registration):end', function ($registration) use ($app) { - /** - * @todo: Refatorar quando for mudar para publicar pareceres técnicos - */ - if(!$registration->opportunity->publishedOpinions - || $registration->opportunity->evaluationMethodConfiguration->type != 'documentary' - ) return; - $this->part('OpinionManagement/user-btn-show-opinion.php', ['registration' => $registration]); - $app->view->enqueueScript( - 'app', - 'opinion-management', - 'OpinionManagement/js/opinionManagement.js' - ); + $app->hook('template(panel.<>.panel-registration):end', function (Registration $registration) use ($app,$plugin) { + if($registration->opportunity->publishedOpinions + && $plugin::isEvaluationMethodValid($registration->opportunity) + ) { + $this->part('OpinionManagement/user-btn-show-opinion.php', ['registration' => $registration]); + $app->view->enqueueScript( + 'app', + 'opinion-management', + 'OpinionManagement/js/opinionManagement.js' + ); + } }); $app->hook('entity(Opportunity).publishRegistrations:before', function () { - if($this->autopublishOpinions !== 'Sim') { - return; + if($this->autopublishOpinions === 'Sim') { + $this->setMetadata('publishedOpinions', true); + OpinionManagement::notificateUsers($this->id); } - $this->setMetadata('publishedOpinions', 'true'); - (new OpinionManagement())->notificateUsers($this->id); }); } @@ -164,11 +135,17 @@ public function register(): void 'required' => true, ]); $this->registerOpportunityMetadata('publishedOpinions', [ - 'type' => 'select', + 'type' => 'boolean', 'label' => \MapasCulturais\i::__('Pareceres publicados'), - 'default_value' => 'false', - 'options' => ['true', 'false'], + 'default_value' => false, + 'options' => [true, false], 'required' => true, ]); } + + public static function isEvaluationMethodValid(OpportunityEntity $opportunity): bool + { + return $opportunity->evaluationMethodConfiguration->type == 'documentary' + || $opportunity->evaluationMethodConfiguration->type == 'technical'; + } } diff --git a/assets/OpinionManagement/js/opinionManagement.js b/assets/OpinionManagement/js/opinionManagement.js index cacb0e9..731a18a 100644 --- a/assets/OpinionManagement/js/opinionManagement.js +++ b/assets/OpinionManagement/js/opinionManagement.js @@ -1,4 +1,7 @@ -const handleChkCollapseChange = target => { +const handleChkCollapseChange = (target, evaluationMethod) => { + if(evaluationMethod === 'technical') { + return + } const chkCollapses = $('.chk-collapse') for(let i= 0;i < chkCollapses.length; i++) { if (chkCollapses[i] === target) continue @@ -6,34 +9,59 @@ const handleChkCollapseChange = target => { } } -const opinionHtml = opinion => { - let htmlParsed = '
' - htmlParsed += `
-

- Parecerista - ${opinion.agent.singleUrl ? - ''+opinion.agent.name+'' : - opinion.agent.name +const opinionHtml = (opinion, evaluationMethod) => { + const resultHtml = (opinionUrl, result, evaluationMethod) => { + if (evaluationMethod === 'documentary') + return `

+ Resultado da avaliação documental: + +

`; + if (evaluationMethod === 'technical') + return `

Nota da avaliação técnica:${result}

` + } + + const evaluationToHtml = (opinion, evaluationMethod) => { + let evaluationHtml = '' + if(evaluationMethod === 'documentary') { + for(const criteriaId in opinion.evaluationData) { + const criteria = opinion.evaluationData[criteriaId] + criteria.obs_items = criteria.obs_items?.replace('\n','
') + criteria.obs = criteria.obs?.replace('\n','
') + + evaluationHtml += `
+
${criteria.label}
+

+

${criteria['obs_items']}

+

${criteria['obs']}

+
` + // htmlParsed += criteria.evaluation === 'invalid' ? `

${criteria['obs_items']}

` : '' } -

- -

Resultado da avaliação documental:

-
- ` - for(const criteriaId in opinion.evaluationData) { - const criteria = opinion.evaluationData[criteriaId] - criteria.obs_items = criteria.obs_items?.replace('\n','
') - criteria.obs = criteria.obs?.replace('\n','
') - - htmlParsed += `
` - htmlParsed += `
${criteria.label}
` - htmlParsed += `

` - // htmlParsed += criteria.evaluation === 'invalid' ? `

${criteria['obs_items']}

` : '' - htmlParsed += `

${criteria['obs_items']}

` - htmlParsed += `

${criteria['obs']}

` - htmlParsed += `
` + } + if(evaluationMethod === 'technical') { + evaluationHtml += `
+

${opinion.evaluationData.obs}

+
` + } + + return evaluationHtml } - htmlParsed += '
' + + let htmlParsed = `
+
+

+ Parecerista + ${opinion.agent.singleUrl ? + ''+opinion.agent.name+'' : + opinion.agent.name + } +

+ + ${resultHtml(opinion.singleUrl, opinion.result, evaluationMethod)} +
+ + ${evaluationToHtml(opinion, evaluationMethod)} +
` return htmlParsed } @@ -50,7 +78,7 @@ const showOpinions = registrationId => { if (!response.ok) throw new Error(response.statusText) return response.json() }) - .then(opinions => { + .then(({opinions, evaluationMethod}) => { // @todo: Em versões futuras fazer alteração para mostrar quem são os pareceristas com pendências na avaliação if(opinions.length === 0) return Swal.fire({ @@ -58,7 +86,8 @@ const showOpinions = registrationId => { text: "As avaliações desta inscrição ainda não foram iniciadas." }) - const html = `
${opinions.map(opinion => opinionHtml(opinion)).join('')}
`; + + const html = `
${opinions.map(opinion => opinionHtml(opinion, evaluationMethod)).join('')}
`; Swal.fire({ html, @@ -105,7 +134,6 @@ const publishOpinions = target => { return response.json() }) .then(response => { - console.log(response) Swal.fire({ title: "Pareceres publicados com sucesso!", text: "Os pareceres desta inscrição agora encontram-se publicados.", From 073c3390f1f038a0c81b619e24fd72ff3ce4d672 Mon Sep 17 00:00:00 2001 From: Ronny John Date: Mon, 29 Apr 2024 15:14:53 -0300 Subject: [PATCH 12/16] docs: Updated CHANGELOG --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 408c517..66caf9f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,9 +6,10 @@ O formato é baseado no [Keep a Changelog](https://keepachangelog.com/pt-BR/1.1. ## [Unreleased] ### Adicionado - Adicionada notificação no painel de controle do proponente quando o parecer é publicado. +- Adicionada publicação de parecer em avaliações técnicas. ### Correções - Retirado link fantasma para o perfil do parecerista na visão do proponente; -- Corrigido bug em que botão "Visualizar Pareceres" não aparecia para o proponente, mesmo com os pareceres publicados. +- Corrigido botão "Visualizar Pareceres" para aparecer ao proponente, somente quando pareceres estiverem publicados. ## [1.1.0] - 2024-03-13 ### Adicionado From 8eebee35fbc47a466bd8dc2da693c8e7d5dc2a0e Mon Sep 17 00:00:00 2001 From: Ronny John Date: Mon, 27 May 2024 09:32:01 -0300 Subject: [PATCH 13/16] =?UTF-8?q?docs:=20Modificado=20t=C3=ADtulo=20da=20r?= =?UTF-8?q?elease=20v1.1.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 66caf9f..3644d74 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ Todas as mudanças relevantes serão documentadas nesse arquivo. O formato é baseado no [Keep a Changelog](https://keepachangelog.com/pt-BR/1.1.0), e esse projeto adere ao [Semantic Versionning](https://semver.org/spec/v2.0.0.html). -## [Unreleased] +## [1.1.1] - 2024-05-27 ### Adicionado - Adicionada notificação no painel de controle do proponente quando o parecer é publicado. - Adicionada publicação de parecer em avaliações técnicas. From 0f02d2c9e1e4cd6e9909ba36b8d3869137af6e12 Mon Sep 17 00:00:00 2001 From: Ronny John Date: Mon, 27 May 2024 10:48:18 -0300 Subject: [PATCH 14/16] =?UTF-8?q?fix:=20Corrigido=20trecho=20de=20c=C3=B3d?= =?UTF-8?q?igo=20comentado?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/OpinionManagement/js/opinionManagement.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/assets/OpinionManagement/js/opinionManagement.js b/assets/OpinionManagement/js/opinionManagement.js index 731a18a..60ae63a 100644 --- a/assets/OpinionManagement/js/opinionManagement.js +++ b/assets/OpinionManagement/js/opinionManagement.js @@ -32,10 +32,9 @@ const opinionHtml = (opinion, evaluationMethod) => { evaluationHtml += `
${criteria.label}

-

${criteria['obs_items']}

+ ${criteria.evaluation === 'invalid' ? `

${criteria['obs_items']}

` : ''}

${criteria['obs']}

` - // htmlParsed += criteria.evaluation === 'invalid' ? `

${criteria['obs_items']}

` : '' } } if(evaluationMethod === 'technical') { From 265a6c7a44f08ac9a6323b3b57518872c2f66097 Mon Sep 17 00:00:00 2001 From: Ronny John Date: Mon, 27 May 2024 13:09:20 -0300 Subject: [PATCH 15/16] fix: Consertando hook do Plugin --- Plugin.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plugin.php b/Plugin.php index 85ca246..179fbb4 100644 --- a/Plugin.php +++ b/Plugin.php @@ -42,7 +42,7 @@ public function _init(): void $plugin = $this; - $app->hook('template(opportunity.edit.registration-config):after', function () use ($app, $plugin) { + $app->hook('template(opportunity.edit.evaluations-config):begin', function () use ($app, $plugin) { $opportunity = $this->controller->requestedEntity; if($plugin::isEvaluationMethodValid($opportunity)) { From bb8d7c78dcb9d26699dfd12cdf8602ae6a9b664e Mon Sep 17 00:00:00 2001 From: Ronny John Date: Mon, 27 May 2024 13:10:20 -0300 Subject: [PATCH 16/16] =?UTF-8?q?refactor:=20Removendo=20estilos=20desnece?= =?UTF-8?q?ss=C3=A1rios?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- layouts/parts/OpinionManagement/selection-autopublish.php | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/layouts/parts/OpinionManagement/selection-autopublish.php b/layouts/parts/OpinionManagement/selection-autopublish.php index 82dd916..c382390 100644 --- a/layouts/parts/OpinionManagement/selection-autopublish.php +++ b/layouts/parts/OpinionManagement/selection-autopublish.php @@ -1,14 +1,8 @@ - -

Publicação de Pareceres

Deseja que os pareceres desta fase/oportunidade sejam publicados para os proponentes automaticamente ao publicar os resultados?