new custom_fields gem
This commit is contained in:
parent
1e5624ce06
commit
d270bf8f69
3
Gemfile
3
Gemfile
@ -20,8 +20,7 @@ gem 'inherited_resources', '~> 1.1.2'
|
|||||||
gem 'rmagick', '2.12.2'
|
gem 'rmagick', '2.12.2'
|
||||||
gem 'locomotive_carrierwave', '0.5.0.1.beta3', :require => 'carrierwave'
|
gem 'locomotive_carrierwave', '0.5.0.1.beta3', :require => 'carrierwave'
|
||||||
|
|
||||||
# gem 'custom_fields', '1.0.0.beta.7'
|
gem 'custom_fields', '1.0.0.beta.8'
|
||||||
gem 'custom_fields', '1.0.0.beta.7', :path => '../gems/custom_fields'
|
|
||||||
gem 'fog', '0.3.7'
|
gem 'fog', '0.3.7'
|
||||||
gem 'mimetype-fu'
|
gem 'mimetype-fu'
|
||||||
gem 'actionmailer-with-request'
|
gem 'actionmailer-with-request'
|
||||||
|
14
Gemfile.lock
14
Gemfile.lock
@ -11,14 +11,6 @@ GIT
|
|||||||
xpath (0.1.2)
|
xpath (0.1.2)
|
||||||
nokogiri (~> 1.4)
|
nokogiri (~> 1.4)
|
||||||
|
|
||||||
PATH
|
|
||||||
remote: ../gems/custom_fields
|
|
||||||
specs:
|
|
||||||
custom_fields (1.0.0.beta.7)
|
|
||||||
activesupport (>= 3.0.4)
|
|
||||||
locomotive_carrierwave
|
|
||||||
mongoid (~> 2.0.0.rc.7)
|
|
||||||
|
|
||||||
GEM
|
GEM
|
||||||
remote: http://rubygems.org/
|
remote: http://rubygems.org/
|
||||||
specs:
|
specs:
|
||||||
@ -85,6 +77,10 @@ GEM
|
|||||||
cucumber-rails (0.3.2)
|
cucumber-rails (0.3.2)
|
||||||
cucumber (>= 0.8.0)
|
cucumber (>= 0.8.0)
|
||||||
culerity (0.2.15)
|
culerity (0.2.15)
|
||||||
|
custom_fields (1.0.0.beta.8)
|
||||||
|
activesupport (>= 3.0.4)
|
||||||
|
locomotive_carrierwave
|
||||||
|
mongoid (~> 2.0.0.rc.7)
|
||||||
daemons (1.1.0)
|
daemons (1.1.0)
|
||||||
database_cleaner (0.6.6)
|
database_cleaner (0.6.6)
|
||||||
delayed_job (2.1.4)
|
delayed_job (2.1.4)
|
||||||
@ -265,7 +261,7 @@ DEPENDENCIES
|
|||||||
capybara
|
capybara
|
||||||
cucumber (= 0.8.5)
|
cucumber (= 0.8.5)
|
||||||
cucumber-rails
|
cucumber-rails
|
||||||
custom_fields (= 1.0.0.beta.7)!
|
custom_fields (= 1.0.0.beta.8)
|
||||||
database_cleaner
|
database_cleaner
|
||||||
delayed_job (= 2.1.4)
|
delayed_job (= 2.1.4)
|
||||||
delayed_job_mongoid (= 1.0.2)
|
delayed_job_mongoid (= 1.0.2)
|
||||||
|
@ -7,23 +7,20 @@ module Admin::ContentTypesHelper
|
|||||||
|
|
||||||
@content_types = current_site.content_types.ordered.
|
@content_types = current_site.content_types.ordered.
|
||||||
limit(:contents => Locomotive.config.lastest_items_nb).
|
limit(:contents => Locomotive.config.lastest_items_nb).
|
||||||
only(:name, :slug, :highlighted_field_name, :updated_at).to_a
|
only(:name, :slug, :highlighted_field_name, :content_custom_fields_version).to_a
|
||||||
# only(:name, :slug, :highlighted_field_name, :content_custom_fields_updated_at).to_a
|
|
||||||
|
|
||||||
if @content_type && @content_type.persisted? && @content_types.index(@content_type) >= MAX_DISPLAYED_CONTENTS
|
if @content_type && @content_type.persisted? && @content_types.index(@content_type) >= MAX_DISPLAYED_CONTENTS
|
||||||
@content_types.delete(@content_type)
|
@content_types.delete(@content_type)
|
||||||
@content_types.insert(0, @content_type)
|
@content_types.insert(0, @content_type)
|
||||||
end
|
end
|
||||||
|
|
||||||
# # be sure, we've got the custom klass up-to-date, otherwise it will fail miserably
|
# be sure, we've got the custom klass up-to-date, otherwise it will fail miserably
|
||||||
# @content_types.each do |content_type|
|
@content_types.each do |content_type|
|
||||||
# # puts "content_type custom_fields !!! ? #{content_type.name} / #{content_type.content_klass.try(:built_at).inspect} / #{content_type.content_custom_fields_updated_at.try(:utc)}"
|
if content_type.content_klass_out_of_date?
|
||||||
# if content_type.content_klass_out_of_date?
|
content_type.reload
|
||||||
# puts "RELOADED #{content_type.name}"
|
content_type.invalidate_content_klass
|
||||||
# content_type.reload
|
end
|
||||||
# content_type.invalidate_content_klass
|
end
|
||||||
# end
|
|
||||||
# end
|
|
||||||
|
|
||||||
@content_types
|
@content_types
|
||||||
end
|
end
|
||||||
|
@ -14,62 +14,7 @@ module CustomFields
|
|||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
module Category # TODO: patch to apply in the next CustomFields version
|
|
||||||
|
|
||||||
module InstanceMethods
|
|
||||||
|
|
||||||
def category_to_hash
|
|
||||||
{ 'category_items' => self.category_items.collect(&:to_hash) }
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
class Item
|
|
||||||
|
|
||||||
def to_hash(more = {})
|
|
||||||
self.fields.keys.inject({}) do |memo, meth|
|
|
||||||
memo[meth] = self.send(meth.to_sym); memo
|
|
||||||
end.merge({
|
|
||||||
'id' => self._id,
|
|
||||||
'new_record' => self.new_record?,
|
|
||||||
'errors' => self.errors
|
|
||||||
}).merge(more)
|
|
||||||
end
|
|
||||||
|
|
||||||
def to_json
|
|
||||||
self.to_hash.to_json
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
class Field # TODO: patch to apply in the next CustomFields version
|
|
||||||
|
|
||||||
after_save :invalidate_klass
|
|
||||||
|
|
||||||
def to_hash_with_types(more = {})
|
|
||||||
to_hash_without_types(more).tap do |hash|
|
|
||||||
self.class.field_types.keys.each do |type|
|
|
||||||
if self.respond_to?(:"#{type}_to_hash")
|
|
||||||
hash.merge!(self.send(:"#{type}_to_hash"))
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
alias_method_chain :to_hash, :types
|
|
||||||
|
|
||||||
protected
|
|
||||||
|
|
||||||
def invalidate_klass
|
|
||||||
target_name = self.association_name.to_s.gsub('_custom_fields', '')
|
|
||||||
self._parent.send(:"invalidate_#{target_name}_klass")
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user