paginate list history

This commit is contained in:
2012-09-07 12:12:40 +02:00
parent 3adf392e54
commit 2be6c0ee03
4 changed files with 17 additions and 3 deletions
+11 -2
View File
@@ -1,5 +1,6 @@
class List
include SimplyStored::Couch
per_page_method :limit_value #kaminari
property :state, default: 'active' # active, #closed
property :needs_help, type: :boolean, default: false
@@ -24,6 +25,14 @@ class List
}
}|, reduce_function: '_sum'
view :for_user_view, type: :custom, map_function: %|function(doc){
if(doc.ruby_class == 'List' && doc.user_ids && doc.user_ids.length){
doc.user_ids.forEach(function(uid){
emit([uid, doc.created_at], 1);
})
}
}|, reduce_function: '_sum'
# Create, a list given a table and a user
def self.from_table table, user
return if user.has_active_list?
@@ -35,9 +44,9 @@ class List
list
end
def self.of_user(user, options = {})
def self.for_user(user, options = {})
with_pagination_options(options) do |options|
database.view(association_list_has_and_belongs_to_many_users({startkey: [user.id], endkey: ["#{user.id}\u9999"], include_docs: true, reduce: false}.merge(options)))
database.view(for_user_view({startkey: ["#{user.id}\u9999"], endkey: [user.id], include_docs: true, reduce: false, descending: true}.merge(options)))
end
end