Class: Trollo::Card

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

Instance Method Summary collapse

Methods included from Troller

included

Instance Method Details

#add_label(name) ⇒ Object



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

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



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

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

#check_due_atObject



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

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

#finish_tasks(identifier) ⇒ Object



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

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

#has_label?(name) ⇒ Boolean

Returns:

  • (Boolean)


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

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

#incomplete_tasksObject



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

def incomplete_tasks
  tasks.with_incomplete_state
end

#overdue_tasksObject



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

def overdue_tasks
  incomplete_tasks.overdue
end

#remove_label(name) ⇒ Object



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

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

#remove_tasks(identifier) ⇒ Object



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

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

#set_ordinalObject



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

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

#tasksObject



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

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