From e73f3bd97a49eddfd7dd1ca45ce42cf306745572 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Thu, 10 Jan 2019 21:03:46 +0100 Subject: [PATCH] Add progress bars to milestones public view --- app/assets/stylesheets/milestones.scss | 2 +- app/helpers/milestones_helper.rb | 9 ++ app/models/concerns/milestoneable.rb | 8 ++ .../milestones/_milestones_content.html.erb | 16 +++ spec/features/legislation/processes_spec.rb | 38 +++++- spec/shared/features/milestoneable.rb | 2 + spec/shared/features/progressable.rb | 118 ++++-------------- 7 files changed, 95 insertions(+), 98 deletions(-) create mode 100644 app/helpers/milestones_helper.rb diff --git a/app/assets/stylesheets/milestones.scss b/app/assets/stylesheets/milestones.scss index bc4515665..e4b50487d 100644 --- a/app/assets/stylesheets/milestones.scss +++ b/app/assets/stylesheets/milestones.scss @@ -1,4 +1,4 @@ -.tab-milestones ul { +.tab-milestones .timeline ul { margin-top: rem-calc(40); position: relative; } diff --git a/app/helpers/milestones_helper.rb b/app/helpers/milestones_helper.rb new file mode 100644 index 000000000..62df63624 --- /dev/null +++ b/app/helpers/milestones_helper.rb @@ -0,0 +1,9 @@ +module MilestonesHelper + def progress_tag_for(progress_bar) + content_tag :progress, + number_to_percentage(progress_bar.percentage, precision: 0), + class: progress_bar.primary? ? "primary" : "", + max: ProgressBar::RANGE.max, + value: progress_bar.percentage + end +end diff --git a/app/models/concerns/milestoneable.rb b/app/models/concerns/milestoneable.rb index 7f58a77bb..66de28d6c 100644 --- a/app/models/concerns/milestoneable.rb +++ b/app/models/concerns/milestoneable.rb @@ -7,5 +7,13 @@ module Milestoneable scope :with_milestones, -> { joins(:milestones).distinct } has_many :progress_bars, as: :progressable + + def primary_progress_bar + progress_bars.primary.first + end + + def secondary_progress_bars + progress_bars.secondary + end end end diff --git a/app/views/milestones/_milestones_content.html.erb b/app/views/milestones/_milestones_content.html.erb index 3e23f8a35..338eae449 100644 --- a/app/views/milestones/_milestones_content.html.erb +++ b/app/views/milestones/_milestones_content.html.erb @@ -5,6 +5,22 @@ <%= t("milestones.index.no_milestones") %> <% end %> + + <% if milestoneable.primary_progress_bar %> + <%= progress_tag_for(milestoneable.primary_progress_bar) %> + + <% if milestoneable.secondary_progress_bars.any? %> + + <% end %> + <% end %> +