Class: Task

Inherits:
Object
  • Object
show all
Includes:
ActiveModel::MassAssignmentSecurity, Model::MongoDb::Commentable, Model::MongoDb::Customizable, Mongoid::Document, Mongoid::Slug, Mongoid::Timestamps, StateMachines::Task
Defined in:
app/models/task.rb

Constant Summary collapse

PARENT_TYPES =

track_history on: [:user_id, :name, :text, :state]

['story']

Instance Method Summary collapse

Methods included from Model::MongoDb::Commentable

#comments

Instance Method Details

#after_transition(transition) ⇒ Object



89
90
91
92
93
94
95
96
97
98
# File 'app/models/task.rb', line 89

def after_transition(transition)
  case transition.event
  when :follow_up
    self.story.activate if self.story.completed?
  when :complete
    if self.story.tasks.complete.count == self.story.tasks.count
      self.story.complete
    end
  end
end

#authorObject



54
# File 'app/models/task.rb', line 54

def author; author_id ? User.find(author_id) : nil; end

#author=(value) ⇒ Object



55
# File 'app/models/task.rb', line 55

def author=(value); self.author_id = value.id; end

#before_transition(transition) ⇒ Object



69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# File 'app/models/task.rb', line 69

def before_transition(transition)
  self.event = transition.event.to_s
  self.state_before = transition.from
  
  case transition.event
  when :assign
    self.author_id = self.user_id
  when :cancel
    self.unassigned_user_ids ||= []
    self.unassigned_user_ids << self.user_id
    self.user_id = nil
    self.author_id = nil
    self.result.text = nil if self.result
  when :review
    self.user_id = self.offeror_id
  when :follow_up
    self.user_id = self.author_id
  end
end

#offerorObject

belongs_to (SQL)



48
# File 'app/models/task.rb', line 48

def offeror; offeror_id ? User.find(offeror_id) : nil; end

#offeror=(value) ⇒ Object



49
# File 'app/models/task.rb', line 49

def offeror=(value); self.offeror_id = value.id; end

#result_classObject



57
58
59
60
61
62
63
# File 'app/models/task.rb', line 57

def result_class
  if product_id.present?
    "#{product.class.name}::Result".constantize rescue Result
  else
    Result
  end
end

#userObject



51
# File 'app/models/task.rb', line 51

def user; user_id ? User.find(user_id) : nil; end

#user=(value) ⇒ Object



52
# File 'app/models/task.rb', line 52

def user=(value); self.user_id = value.id; end

#with_result?Boolean

Returns:

  • (Boolean)


65
66
67
# File 'app/models/task.rb', line 65

def with_result?
  true
end