Class: Trollo::Card

Inherits:
ActiveRecord::Base
  • Object
show all
Includes:
Troller, Workflow
Defined in:
lib/trollo/card.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Troller

included

Class Method Details

.overdueObject



13
14
15
# File 'lib/trollo/card.rb', line 13

def self.overdue
  where('due_at < ?', Time.now)
end

Instance Method Details

#add_label(name) ⇒ Object



57
58
59
60
61
62
63
64
65
# File 'lib/trollo/card.rb', line 57

def add_label(name)
  return if has_label?(name)
  label = Label.where(name: name).first || Label.create!(name: name)
  self.labels << label
  
  if self.list && self.list.board
    self.list.board.add_label(name)
  end
end

#checkObject



47
48
49
50
# File 'lib/trollo/card.rb', line 47

def check
  check_due_at
  unarchive! if due_at && archived?
end

#check_due_atObject



52
53
54
55
# File 'lib/trollo/card.rb', line 52

def check_due_at
  self.due_at = tasklists.minimum(:due_at)
  self.save!
end

#finish_tasks(identifier) ⇒ Object



67
68
69
# File 'lib/trollo/card.rb', line 67

def finish_tasks(identifier)
  self.tasklists.each{|tasklist| tasklist.finish_tasks(identifier)}
end

#has_label?(name) ⇒ Boolean

Returns:

  • (Boolean)


79
80
81
# File 'lib/trollo/card.rb', line 79

def has_label?(name)
  labels.pluck(:name).include?(name)
end

#incomplete_tasksObject



39
40
41
# File 'lib/trollo/card.rb', line 39

def incomplete_tasks
  tasks.with_incomplete_state
end

#overdue_tasksObject



43
44
45
# File 'lib/trollo/card.rb', line 43

def overdue_tasks
  incomplete_tasks.overdue
end

#remove_label(name) ⇒ Object



75
76
77
# File 'lib/trollo/card.rb', line 75

def remove_label(name)
  self.labels -= Label.where(name: name)
end

#remove_tasks(identifier) ⇒ Object



71
72
73
# File 'lib/trollo/card.rb', line 71

def remove_tasks(identifier)
  self.tasklists.each{|tasklist| tasklist.remove_tasks(identifier)}
end

#set_ordinalObject



27
28
29
30
31
32
33
# File 'lib/trollo/card.rb', line 27

def set_ordinal
  self.ordinal ||= if list
    list.cards.length + 1
  else
    1
  end
end

#tasksObject



35
36
37
# File 'lib/trollo/card.rb', line 35

def tasks
  Trollo::Task.where(tasklist_id: tasklist_ids)
end