Class: Asset

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/asset.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.count_for_labels(filter) ⇒ Object

FIXME: is this used somewhere? should be removed right after the release of 0.3.0 to test if something breaks



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'app/models/asset.rb', line 24

def self.count_for_labels(filter)
  options = {:include => [:labelings], :group => "label_id"}
  unless filter.empty?
    options[:conditions] = "assets.id IN(
        SELECT DISTINCT assets.id
          FROM assets
            LEFT OUTER JOIN classifications ON (assets.id = classifications.asset_id)
            LEFT OUTER JOIN labelings ON (labelings.classification_id=classifications.id)
          WHERE (#{filter.to_condition})
          GROUP BY assets.id
        HAVING COUNT(label_id)=#{filter.size})"
    filter.to_condition
  end
  count options
end

.filter(filter) ⇒ Object



13
14
15
16
17
18
19
20
21
# File 'app/models/asset.rb', line 13

def self.filter(filter)
  options = {:select => "assets.*", :order => "name"}
  unless filter.empty?
    options[:joins] = "LEFT OUTER JOIN labelings ON labelings.classification_id=classifications.id"
    options[:conditions] = filter.to_condition
    options[:group] = "assets.id HAVING COUNT(label_id)=#{filter.size}"
  end
  all options
end

Instance Method Details

#put_on_trayObject



40
41
42
43
44
45
# File 'app/models/asset.rb', line 40

def put_on_tray
  return if user.nil?

  p = user.tray_positions.maximum(:position) || 0
  tray_positions.create(:user_id => user.id, :asset_id => id, :position => p + 1)
end