From 8da40221cf314529ba548aace2f81af46baaeba0 Mon Sep 17 00:00:00 2001
From: echarp <manu@echarp.org>
Date: Sun, 9 Jun 2019 17:52:47 +0200
Subject: [PATCH] Digest week working even with no week number

---
 app/controllers/digests_controller.rb | 2 ++
 app/models/event.rb                   | 5 ++++-
 app/views/digests/markdown.html.haml  | 2 +-
 3 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/app/controllers/digests_controller.rb b/app/controllers/digests_controller.rb
index ec27726cd..ddc235515 100644
--- a/app/controllers/digests_controller.rb
+++ b/app/controllers/digests_controller.rb
@@ -20,6 +20,8 @@ class DigestsController < ApplicationController
   private
 
   def set_week
+    return unless params[:period][:week].present?
+
     @week = Date.commercial params[:period][:year].to_i,
                             params[:period][:week].to_i
   end
diff --git a/app/models/event.rb b/app/models/event.rb
index 644e0d179..460f15f97 100644
--- a/app/models/event.rb
+++ b/app/models/event.rb
@@ -58,7 +58,10 @@ class Event < ApplicationRecord
           start_date.to_date.end_of_month.end_of_week.end_of_day
   end)
   scope :period, (lambda do |year, week|
-    start_date = Date.commercial(year.to_i, week.to_i)
+    start_date = Date.commercial(
+      year.to_i,
+      (week || (Time.zone.today + 7.days).cweek).to_i
+    )
     where '? <= end_time and start_time <= ?',
           start_date, start_date.end_of_week.end_of_day
   end)
diff --git a/app/views/digests/markdown.html.haml b/app/views/digests/markdown.html.haml
index 335bf4a10..917d7c363 100644
--- a/app/views/digests/markdown.html.haml
+++ b/app/views/digests/markdown.html.haml
@@ -1,4 +1,4 @@
-- title = t '.title', week: @week.cweek, year: @week.year
+- title = t '.title', week: @week.cweek, year: (@week + 4.days).year
 
 - description = capture_haml do
   = t '.week', count: @events.count, count_by_country: count_by_country(@events)
-- 
GitLab