merge pool category branch; fixes #1521

This commit is contained in:
Toks
2013-05-26 08:23:46 -04:00
8 changed files with 53 additions and 7 deletions

View File

@@ -3,6 +3,7 @@ require 'ostruct'
class Pool < ActiveRecord::Base
validates_uniqueness_of :name
validates_format_of :name, :with => /\A[^\s;,]+\Z/, :on => :create, :message => "cannot have whitespace, commas, or semicolons"
validates_inclusion_of :category, :in => %w(series collection)
belongs_to :creator, :class_name => "User"
belongs_to :updater, :class_name => "User"
has_many :versions, :class_name => "PoolVersion", :dependent => :destroy, :order => "pool_versions.id ASC"
@@ -13,7 +14,7 @@ class Pool < ActiveRecord::Base
after_save :create_version
after_create :synchronize!
before_destroy :create_mod_action_for_destroy
attr_accessible :name, :description, :post_ids, :post_id_array, :post_count, :is_active, :as => [:member, :gold, :platinum, :contributor, :janitor, :moderator, :admin, :default]
attr_accessible :name, :description, :post_ids, :post_id_array, :post_count, :is_active, :category, :as => [:member, :gold, :platinum, :contributor, :janitor, :moderator, :admin, :default]
attr_accessible :is_deleted, :as => [:janitor, :moderator, :admin]
module SearchMethods
@@ -21,6 +22,18 @@ class Pool < ActiveRecord::Base
where("is_deleted = false")
end
def series
where("category = ?", "series")
end
def collection
where("category = ?", "collection")
end
def series_first
order("(case category when 'series' then 0 else 1 end), name")
end
def search(params)
q = scoped
params = {} if params.blank?
@@ -60,6 +73,12 @@ class Pool < ActiveRecord::Base
q = q.order("updated_at desc")
end
if params[:category] == "series"
q = q.series
elsif params[:category] == "collection"
q = q.collection
end
q
end
end
@@ -254,7 +273,7 @@ class Pool < ActiveRecord::Base
end
def create_version
if post_ids_changed? || name_changed? || description_changed? || is_active_changed? || is_deleted_changed?
if post_ids_changed? || name_changed? || description_changed? || is_active_changed? || is_deleted_changed? || category_changed?
last_version = versions.last
if last_version && CurrentUser.ip_addr == last_version.updater_ip_addr && CurrentUser.id == last_version.updater_id