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,16 +6,21 @@ class MoodCalendarService
|
|||
.pluck(:mode, :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
|
||||
start_date ||= data.first[:recorded_at].to_date
|
||||
|
||||
# Convertir en Date si ce sont des DateTime ou Time
|
||||
start_date = start_date.to_date
|
||||
end_date = end_date.to_date
|
||||
if data.empty?
|
||||
start_date = Date.current
|
||||
else
|
||||
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
|
||||
start_date = start_date.to_date
|
||||
end_date = end_date&.to_date
|
||||
|
||||
# Grouper par jour et garder le plus récent pour chaque jour
|
||||
data_by_date = data.group_by { |d| d[:recorded_at].to_date }
|
||||
.transform_values { |entries| entries.max_by { |e| e[:recorded_at] } }
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue