copy timeline here
This commit is contained in:
@ -15,9 +15,9 @@ module MembersHelper
|
||||
end
|
||||
|
||||
def stayed(member)
|
||||
return "Not arrived" if member.arrived.blank?
|
||||
text = member.arrived.to_s
|
||||
return text + " not left" if member.left.blank?
|
||||
text + " " + distance_of_time_in_words( member.left , member.arrived)
|
||||
return "Not arrived" if member.arriving.blank?
|
||||
text = member.arriving.to_s
|
||||
return text + " not left" if member.leaving.blank?
|
||||
text + " " + distance_of_time_in_words( member.leaving , member.arriving)
|
||||
end
|
||||
end
|
||||
|
63
app/helpers/timeline_helper.rb
Normal file
63
app/helpers/timeline_helper.rb
Normal file
@ -0,0 +1,63 @@
|
||||
module TimelineHelper
|
||||
|
||||
def week_pixels
|
||||
70
|
||||
end
|
||||
def day_pixels
|
||||
week_pixels / 7
|
||||
end
|
||||
def max_days
|
||||
@weeks * 7
|
||||
end
|
||||
def started_days(member)
|
||||
return 0 unless member.arriving
|
||||
return 0 if member.arriving < Date.today.at_beginning_of_month
|
||||
distance = (member.arriving - Date.today.at_beginning_of_month).to_i
|
||||
distance > max_days ? max_days : distance
|
||||
end
|
||||
|
||||
def stay_days(member)
|
||||
return 0 unless member.leaving
|
||||
start = member.arriving
|
||||
start = Date.today.at_beginning_of_month if member.arriving < Date.today.at_beginning_of_month
|
||||
distance = ( member.leaving - member.arriving ).to_i
|
||||
max = max_days - started_days(member)
|
||||
distance > max ? max : distance
|
||||
end
|
||||
def weekly
|
||||
data = {}
|
||||
week = 0
|
||||
while( week < @weeks ) do
|
||||
data[ week ] = -1
|
||||
start_week = Date.today.at_beginning_of_month + week.weeks
|
||||
end_week = Date.today.at_beginning_of_month + (week + 1).weeks
|
||||
@members.each do |mem|
|
||||
next unless mem.arriving
|
||||
next unless mem.leaving
|
||||
next if mem.arriving > start_week
|
||||
next if mem.leaving < end_week
|
||||
data[ week ] += 1
|
||||
end
|
||||
week += 1
|
||||
end
|
||||
data
|
||||
end
|
||||
def bg_for(week)
|
||||
[ "bg-cyan-100",
|
||||
"bg-blue-100",
|
||||
"bg-violet-100",
|
||||
"bg-fuchsia-100",
|
||||
"bg-pink-100",
|
||||
"bg-rose-100",
|
||||
"bg-orange-100",
|
||||
"bg-amber-100",
|
||||
"bg-yellow-100",
|
||||
"bg-lime-100",
|
||||
"bg-green-100",
|
||||
"bg-teal-100",
|
||||
][week%12]
|
||||
end
|
||||
def small_date(date)
|
||||
date.strftime("%-d.%-m")
|
||||
end
|
||||
end
|
Reference in New Issue
Block a user