Skip to content

Commit

Permalink
Refactor(dashboard_controller): Move dismissed time sheet logic into …
Browse files Browse the repository at this point in the history
  • Loading branch information
chrisma committed Jan 10, 2017
1 parent 174605c commit aba6ea2
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 12 deletions.
15 changes: 3 additions & 12 deletions app/controllers/dashboard_controller.rb
Original file line number Diff line number Diff line change
@@ -1,20 +1,11 @@
class DashboardController < ApplicationController
def index
result = current_user.create_notification_arrays

@activities = result[0]
@notifications = result[1]
@activities, @notifications = current_user.create_notification_arrays

@ending_contracts = Contract.ends_soon.accessible_by(current_ability, :show)
@ending_contracts.sort {|a,b| a.end_date <=> b.end_date }

@missing_timesheets = Contract.accessible_by(current_ability, :show)
@missing_timesheets = @missing_timesheets.collect do |contract|
mt = contract.missing_timesheets
dismissed = DismissedMissingTimesheet.dates_for(current_user, contract)
mt = mt.select{|date| !dismissed.include?(date)}
mt != [] ? [mt,contract] : nil
end
@missing_timesheets.compact!
contracts = Contract.accessible_by(current_ability, :show)
@missing_timesheets = DismissedMissingTimesheet.missing_for(current_user, contracts)
end
end
10 changes: 10 additions & 0 deletions app/models/dismissed_missing_timesheet.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,14 @@ class DismissedMissingTimesheet < ActiveRecord::Base
belongs_to :contract

validates :user, :contract, presence: true

def self.missing_for(user, contracts)
missing_ts = contracts.collect do |contract|
missing = contract.missing_timesheets
dismissed = self.dates_for(user, contract)
missing = missing.select{|date| !dismissed.include?(date)}
missing != [] ? [missing, contract] : nil
end
return missing_ts.compact
end
end

0 comments on commit aba6ea2

Please sign in to comment.