OSDN Git Service
(root)
/
pettanr
/
pettanr.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
temp
[pettanr/pettanr.git]
/
lib
/
manifest
/
list.rb
diff --git
a/lib/manifest/list.rb
b/lib/manifest/list.rb
index
1d41e0f
..
3ac0765
100644
(file)
--- a/
lib/manifest/list.rb
+++ b/
lib/manifest/list.rb
@@
-6,7
+6,9
@@
module Pettanr
@item_name = item_name
@conf = conf
@manifest = manifest
@item_name = item_name
@conf = conf
@manifest = manifest
- @page = self.page_number(page || @conf['default_page_size'])
+ @default_page_size = @conf['default_page_size'] || 25
+ @max_page_size = @conf['max_page_size'] || 100
+ @page = self.page_number(page)
@page_size = self.page_size page_size
@operators = operators
@page_size = self.page_size page_size
@operators = operators
@@
-14,16
+16,16
@@
module Pettanr
@offset = (@page -1) * @page_size
end
@offset = (@page -1) * @page_size
end
- def
self.
page_number prm = nil
+ def page_number prm = nil
page = prm.to_i
page = 1 if page < 1
page
end
page = prm.to_i
page = 1 if page < 1
page
end
- def
self.
page_size prm
+ def page_size prm
page_size = prm.to_i
page_size = prm.to_i
- page_size =
self.max_page_size if page_size > self.
max_page_size
- page_size =
self.
default_page_size if page_size < 1
+ page_size =
@max_page_size if page_size > @
max_page_size
+ page_size =
@
default_page_size if page_size < 1
page_size
end
page_size
end
@@
-91,13
+93,14
@@
module Pettanr
@foreign_key = @association_conf['foreign_key']
end
@foreign_key = @association_conf['foreign_key']
end
- def where
- [@model.list_where + 'comics.author_id = ?', me.id]
+ def where parent_item
+ w = @model.list_where
+ w += ' and ' unless w.blank?
+ [w + @association_model_name + '.' + @foreign_key + ' = ?', parent_item.id]
end
end
- def items item
- method_name = 'list_by_' + item.item_name
- @association_model.__send__ @method_name, item.id, @operators, @page, @page_size
+ def items parent_item
+ @model.where(self.where(parent_item)).includes(@model.list_opt).order(@model.list_order).offset(@offset).limit(@page_size)
end
def paginate
end
def paginate
@@
-136,7
+139,7
@@
module Pettanr
@manifest = @list_manifest.manifest
@list_conf = @list_manifest.conf
@lists = {}
@manifest = @list_manifest.manifest
@list_conf = @list_manifest.conf
@lists = {}
-
(@list_conf['lists'] || {})
.each {|list_name, conf|
+
@list_manifest.lists
.each {|list_name, conf|
type = conf['type']
@lists[list_name] = @@types[type]
}
type = conf['type']
@lists[list_name] = @@types[type]
}