From 94f54887eca3c7bd70a00b69c02950426ae49609 Mon Sep 17 00:00:00 2001 From: Mikkel Ricky Date: Wed, 16 Aug 2023 10:22:04 +0200 Subject: [PATCH] FORSLAG-84: Fixed progress bar display --- .../custom/hoeringsportal_citizen_proposal/README.md | 2 +- .../src/Fixture/CitizenProposalFixture.php | 10 ++++++++++ .../src/Form/ProposalFormSupport.php | 1 - .../src/Helper/Helper.php | 12 ++++++++---- .../content/node--citizen-proposal--teaser.html.twig | 8 +++++--- 5 files changed, 24 insertions(+), 9 deletions(-) diff --git a/web/modules/custom/hoeringsportal_citizen_proposal/README.md b/web/modules/custom/hoeringsportal_citizen_proposal/README.md index 39ee4184..4b88cd6a 100644 --- a/web/modules/custom/hoeringsportal_citizen_proposal/README.md +++ b/web/modules/custom/hoeringsportal_citizen_proposal/README.md @@ -25,7 +25,7 @@ The module supports certain settings in settings.php $settings['proposal_period_length'] = '+180 days'; // The required votes for a proposal to pass. -$settings['proposal_support_required'] = '5000'; +$settings['proposal_support_required'] = 1500; ``` ## Mails diff --git a/web/modules/custom/hoeringsportal_citizen_proposal/modules/hoeringsportal_citizen_proposal_fixtures/src/Fixture/CitizenProposalFixture.php b/web/modules/custom/hoeringsportal_citizen_proposal/modules/hoeringsportal_citizen_proposal_fixtures/src/Fixture/CitizenProposalFixture.php index a410cffa..89f4aea2 100644 --- a/web/modules/custom/hoeringsportal_citizen_proposal/modules/hoeringsportal_citizen_proposal_fixtures/src/Fixture/CitizenProposalFixture.php +++ b/web/modules/custom/hoeringsportal_citizen_proposal/modules/hoeringsportal_citizen_proposal_fixtures/src/Fixture/CitizenProposalFixture.php @@ -66,6 +66,11 @@ public function load() { $entity->save(); $this->addReference('node:citizen_proposal:Proposal1', $entity); + // Add some support. + for ($i = 0; $i < 87; $i++) { + $this->helper->saveSupport(uniqid('', TRUE), $entity, ['user_name' => self::class]); + } + $entity = Node::create([ 'type' => 'citizen_proposal', 'title' => 'Borgerforslag nummer 2', @@ -88,6 +93,11 @@ public function load() { $entity->save(); $this->addReference('node:citizen_proposal:Proposal2', $entity); + // Add some support. + for ($i = 0; $i < 3; $i++) { + $this->helper->saveSupport(uniqid('', TRUE), $entity, ['user_name' => self::class]); + } + $entity = Node::create([ 'type' => 'citizen_proposal', 'title' => 'Borgerforslag nummer 3', diff --git a/web/modules/custom/hoeringsportal_citizen_proposal/src/Form/ProposalFormSupport.php b/web/modules/custom/hoeringsportal_citizen_proposal/src/Form/ProposalFormSupport.php index caaf4c0d..78daf060 100644 --- a/web/modules/custom/hoeringsportal_citizen_proposal/src/Form/ProposalFormSupport.php +++ b/web/modules/custom/hoeringsportal_citizen_proposal/src/Form/ProposalFormSupport.php @@ -133,7 +133,6 @@ public function submitForm(array &$form, FormStateInterface $form_state): void { $node, [ 'user_name' => $form_state->getValue('name'), - 'created' => time(), ], ); $this->messenger()->addStatus($this->getAdminFormStateValue('support_submission_text', $this->t('Thank you for your support.'))); diff --git a/web/modules/custom/hoeringsportal_citizen_proposal/src/Helper/Helper.php b/web/modules/custom/hoeringsportal_citizen_proposal/src/Helper/Helper.php index 2f01ebe7..1e707026 100644 --- a/web/modules/custom/hoeringsportal_citizen_proposal/src/Helper/Helper.php +++ b/web/modules/custom/hoeringsportal_citizen_proposal/src/Helper/Helper.php @@ -196,7 +196,7 @@ public function preprocessNode(&$variables): void { $proposalSupportCount = $this->getProposalSupportCount((int) $node->id()); $variables['proposal_support_count'] = $proposalSupportCount; - $variables['proposal_support_percentage'] = (int) $this->calculateSupportPercentage($proposalSupportCount); + $variables['proposal_support_percentage'] = $this->calculateSupportPercentage($proposalSupportCount); } /** @@ -217,6 +217,10 @@ public function saveSupport(string $userIdentifier, NodeInterface $node, array $ try { $values['user_identifier'] = $userIdentifier; $values['node_id'] = $node->id(); + // Set some defaults. + $values += [ + 'created' => $this->time->getRequestTime(), + ]; $this->connection->insert('hoeringsportal_citizen_proposal_support') ->fields($values) ->execute(); @@ -428,9 +432,9 @@ public function calculateSupportPercentage(int $proposalSupportCount): float { } return min( - 100, - ceil($proposalSupportCount / $this->getProposalSupportRequired() * 100) - ); + 100, + $proposalSupportCount / $this->getProposalSupportRequired() * 100 + ); } /** diff --git a/web/themes/custom/hoeringsportal/templates/content/node--citizen-proposal--teaser.html.twig b/web/themes/custom/hoeringsportal/templates/content/node--citizen-proposal--teaser.html.twig index a034e076..2c50c893 100755 --- a/web/themes/custom/hoeringsportal/templates/content/node--citizen-proposal--teaser.html.twig +++ b/web/themes/custom/hoeringsportal/templates/content/node--citizen-proposal--teaser.html.twig @@ -83,12 +83,14 @@
- {{ 'Number of supporters'|t }} - {{ proposal_support_count }} + {% spaceless %} + {{ 'Number of supporters'|t }} + {{ proposal_support_count }} + {% endspaceless %}
-
+