Sha256: 558c7529ef1234cfa0ef79625f8d7568f2bed7cc86938b3f853823a659f492a2

Contents?: true

Size: 1.28 KB

Versions: 2

Compression:

Stored size: 1.28 KB

Contents

class Task < MLS::Model
  self.inheritance_column = nil

  belongs_to  :subject, :polymorphic => true
  belongs_to  :account
  belongs_to  :source
  belongs_to  :team
  
  has_many :events
  has_many :mistakes
  has_many :time_logs
  has_many :reviews, -> { where(:type => "review") }, :class_name => "Task", :as => :subject, :inverse_of => :subject
  has_many :fixes, -> { where(:type => "fix") }, :class_name => "Task", :as => :subject, :inverse_of => :subject
  
  has_and_belongs_to_many :regions

  def for_source?
    subject_type == "Source"
  end
  
  def for_task?
    subject_type == "Task"
  end
  
  def review?
    type == "review"
  end
  
  def fix?
    type == "fix"
  end
  
  def parse?
    type == "parse"
  end
  
  def crawl?
    type == "crawl"
  end
  
  def paused?
    status == 'paused'
  end
  
  def duration
      time_logs.where(TimeLog.arel_table[:started_at].not_eq(nil)).where(TimeLog.arel_table[:stopped_at].not_eq(nil)).sum("duration")
  end
  
  def pause
    log = time_logs.where(:stopped_at => nil).where(TimeLog.arel_table[:started_at].not_eq(nil)).first
    if log
      log.update(:stopped_at => Time.now)
    end
  end
  
  def resume
    #time_logs << TimeLog.create(:started_at => Time.now)
    TimeLog.create(task_id: self.id, started_at: Time.now)
  end
  
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
mls-1.9.0 lib/mls/models/task.rb
mls-1.8.0 lib/mls/models/task.rb