From 8ba055592249e4de4a3ee6779b21a24fe6605832 Mon Sep 17 00:00:00 2001 From: aignatov-bio <47317017+aignatov-bio@users.noreply.github.com> Date: Fri, 12 Apr 2019 09:17:34 +0200 Subject: [PATCH] Add check for tasks complete in project notifications (#1657) --- app/models/my_module.rb | 1 + app/models/project.rb | 2 +- app/services/projects_overview_service.rb | 1 + app/views/projects/_notifications.html.erb | 4 ++-- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app/models/my_module.rb b/app/models/my_module.rb index 10b4fbb5e..f8d726537 100644 --- a/app/models/my_module.rb +++ b/app/models/my_module.rb @@ -78,6 +78,7 @@ class MyModule < ApplicationRecord Time.current.utc + 1.day) end) scope :workflow_ordered, -> { order(workflow_order: :asc) } + scope :uncomplete, -> { where(state: 'uncompleted') } # A module takes this much space in canvas (x, y) in database WIDTH = 30 diff --git a/app/models/project.rb b/app/models/project.rb index 76ca7935b..2d5eedf3c 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -242,7 +242,7 @@ class Project < ApplicationRecord def notifications_count(user) res = 0 assigned_modules(user).find_each do |t| - res += 1 if t.is_overdue? || t.is_one_day_prior? + res += 1 if (t.is_overdue? || t.is_one_day_prior?) && !t.completed? end res end diff --git a/app/services/projects_overview_service.rb b/app/services/projects_overview_service.rb index a189488d4..082c0b589 100644 --- a/app/services/projects_overview_service.rb +++ b/app/services/projects_overview_service.rb @@ -65,6 +65,7 @@ class ProjectsOverviewService def fetch_records due_modules = MyModule.active + .uncomplete .overdue .or(MyModule.one_day_prior) .distinct diff --git a/app/views/projects/_notifications.html.erb b/app/views/projects/_notifications.html.erb index 78fba5cb7..590eaea47 100644 --- a/app/views/projects/_notifications.html.erb +++ b/app/views/projects/_notifications.html.erb @@ -3,7 +3,7 @@ <ul class="no-style double-line content-notifications"> <% nr_of_notifications = 0 %> <% @modules.each do |mod| %> - <% if mod.is_overdue? %> + <% if mod.is_overdue? && !mod.completed? %> <% nr_of_notifications += 1 %> <% days = t("projects.index.module_overdue_days", count: mod.overdue_for_days) %> <li class="notification alert-red"> @@ -13,7 +13,7 @@ </div> <%=t "projects.index.module_overdue_html", module: mod.name, days: days %> </li> - <% elsif mod.is_one_day_prior? %> + <% elsif mod.is_one_day_prior? && !mod.completed? %> <% nr_of_notifications += 1 %> <li class="notification alert-yellow"> <div class="date-time">