tracks/app/models/todos/calendar.rb
2013-04-29 16:35:50 -05:00

58 lines
1 KiB
Ruby

module Todos
class Calendar
attr_reader :user, :included_tables
def initialize(user)
@user = user
@included_tables = Todo::DEFAULT_INCLUDES
end
def projects
user.projects
end
def due_today
actions.due_today
end
def due_this_week
actions.due_between(today, end_of_the_week)
end
def due_next_week
actions.due_between(end_of_the_week, end_of_next_week)
end
def due_this_month
actions.due_between(end_of_next_week, end_of_the_month)
end
def due_after_this_month
actions.due_after(end_of_the_month)
end
def today
@today ||= Time.zone.now
end
def end_of_the_week
@end_of_the_week ||= today.end_of_week
end
def end_of_next_week
@end_of_next_week ||= end_of_the_week + 7.days
end
def end_of_the_month
@end_of_the_month ||= today.end_of_month
end
private
def actions
user.todos.not_completed.includes(included_tables).reorder("due")
end
end
end