before_validation :valid_encode
- cattr_accessor :valid_encode_columns, :default_page_size, :max_page_size, :visible_count_options
- @@valid_encode_columns = []
- @@default_page_size = 25
- @@max_page_size = 100
- @@visible_count_options = {}
- cattr_reader :singular, :plural
- @@singular = 'Item'
- @@plural = 'Items'
+ def self.singular
+ self.to_s
+ end
- def self.item_name
- self.singular.underscore
+ def self.plural
+ self.singular.pluralize
end
- def self.path_name with_engine = false
- self.plural.underscore
+ def self.item_name
+ self.singular.underscore
end
- def public_list
+ def self.item?
+ true
end
- def private_list operators
+ def self.content?
+ false
end
- def has_many_list foreign_key, item, operators
+ def self.path_name with_engine = false
+ self.plural.underscore
end
- def has_many_through_list foreign_key, item, operators
+ def self.valid_encode_columns
+ []
end
- def filtered_list filter_key, item, operators
+ def self.visible_count_options
+ nil
end
def self.list_where
''
end
- def self.list page = 1, page_size = self.default_page_size
- self.where(self.list_where()).includes(self.list_opt).order(self.list_order).offset((page -1) * page_size).limit(page_size)
- end
-
- def self.list_paginate page = 1, page_size = self.default_page_size
- Kaminari.paginate_array(
- Array.new(self.where(self.list_where()).includes(self.list_opt).count, nil)
- ).page(page).per(page_size)
- end
-
def self.list_opt
{}
end
self.count self.visible_count_options
end
+ def self.visible_count_options
+ []
+ end
+
#InstanceMethods
def item_name
self.class.item_name
end
+ def model_name
+ self.item_name
+ end
+
+ def extend_column
+ nil
+ end
+
+ def extend_item_name
+ self.extend_column ? self.attributes[self.extend_column] : self.item_name
+ end
+
+ def form_name
+ self.extend_item_name
+ end
+
def valid_encode
self.class.valid_encode_columns.each do |a|
next if attributes[a] == nil
end
def visible? operators
- if MagicNumber['run_mode'] == 0
+ if Manifest.manifest.magic_numbers['run_mode'] == 0
return false unless operators.guest?
else
return false unless operators.resource_reader?