module Tasuku::Concerns::Models::Requirables::Requirable

Public Instance Methods

locked?(author) click to toggle source
# File lib/tasuku/concerns/models/requirables/requirable.rb, line 13
def locked? author
  required_task_ids = self.task_requirements.pluck :requirement_id
  return false if required_task_ids.empty?

  completed_task_ids = Tasuku::Task.completed_by(author).
    where('tasuku_taskables_taskable_responses.task_id IN (?)', required_task_ids)

  completed_task_ids.length.eql?(required_task_ids.length) ? false : true
end
locked_by_tasks(author) click to toggle source
# File lib/tasuku/concerns/models/requirables/requirable.rb, line 23
def locked_by_tasks author
  completed_task_ids = Tasuku::Task.completed_by(author).pluck(:id) || []

  scope = self.requirements
  scope = scope.where(
    'tasuku_task_requirements.requirement_id NOT IN (?)', completed_task_ids
  ) unless completed_task_ids.empty?

  scope
end