show next 5 months if few moods recorded
This commit is contained in:
parent
86f8b877d8
commit
56fd287b0f
1 changed files with 12 additions and 7 deletions
|
|
@ -6,15 +6,20 @@ class MoodCalendarService
|
||||||
.pluck(:mode, :recorded_at)
|
.pluck(:mode, :recorded_at)
|
||||||
.map { |mode, recorded_at| { mode: mode, recorded_at: recorded_at } }
|
.map { |mode, recorded_at| { mode: mode, recorded_at: recorded_at } }
|
||||||
|
|
||||||
return [] if data.empty?
|
|
||||||
|
|
||||||
# Définir start_date par défaut comme le recorded_at du premier mood
|
if data.empty?
|
||||||
|
start_date = Date.current
|
||||||
|
else
|
||||||
start_date ||= data.first[:recorded_at].to_date
|
start_date ||= data.first[:recorded_at].to_date
|
||||||
|
end
|
||||||
|
|
||||||
|
if end_date < (start_date + 5.months)
|
||||||
|
end_date = start_date + 5.months
|
||||||
|
end
|
||||||
|
|
||||||
# Convertir en Date si ce sont des DateTime ou Time
|
# Convertir en Date si ce sont des DateTime ou Time
|
||||||
start_date = start_date.to_date
|
start_date = start_date.to_date
|
||||||
end_date = end_date.to_date
|
end_date = end_date&.to_date
|
||||||
end
|
|
||||||
|
|
||||||
# Grouper par jour et garder le plus récent pour chaque jour
|
# Grouper par jour et garder le plus récent pour chaque jour
|
||||||
data_by_date = data.group_by { |d| d[:recorded_at].to_date }
|
data_by_date = data.group_by { |d| d[:recorded_at].to_date }
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue