From 2bdb56474de7667a9cc557c13bb34598a1f38bb7 Mon Sep 17 00:00:00 2001 From: Fergal Moran Date: Tue, 2 Jul 2013 22:24:08 +0100 Subject: [PATCH] Fixed double search call due to bootpag --- spa/api/v1/UserResource.py | 3 +-- .../app/lib/backbone.dss.model.collection.js | 2 +- static/js/app/views/user/userListView.coffee | 16 ++++++------ static/js/app/views/user/userListView.js | 25 +++++++++++-------- 4 files changed, 25 insertions(+), 21 deletions(-) diff --git a/spa/api/v1/UserResource.py b/spa/api/v1/UserResource.py index 4957870..9f5c584 100755 --- a/spa/api/v1/UserResource.py +++ b/spa/api/v1/UserResource.py @@ -126,8 +126,7 @@ class UserResource(BackboneCompatibleResource): if q is not None: semi_filtered = semi_filtered.filter( Q(first_name__icontains=q) | - Q(last_name__icontains=q) | - Q(username__icontains=q) + Q(last_name__icontains=q) ) return semi_filtered diff --git a/static/js/app/lib/backbone.dss.model.collection.js b/static/js/app/lib/backbone.dss.model.collection.js index 56d9eba..19ceecd 100755 --- a/static/js/app/lib/backbone.dss.model.collection.js +++ b/static/js/app/lib/backbone.dss.model.collection.js @@ -2,7 +2,7 @@ define(['backbone'], function (Backbone) { return Backbone.Collection.extend({ parse: function (response) { this.meta = response.meta || {}; - this.page_count = this.meta.total_count / this.meta.limit; + this.page_count = Math.ceil(this.meta.total_count / this.meta.limit); return response.objects || response; } }); diff --git a/static/js/app/views/user/userListView.coffee b/static/js/app/views/user/userListView.coffee index bc388bd..5e359fe 100755 --- a/static/js/app/views/user/userListView.coffee +++ b/static/js/app/views/user/userListView.coffee @@ -13,7 +13,13 @@ define ['jquery', 'marionette', 'models/user/userCollection', 'views/user/userIt itemView: UserItemView itemViewContainer: "tbody" - isLoading = true + pag = $("#page-selection").bootpag + total: 0 + + pag.on "page", (event, num) => # page number here + console.log "Paginating" + @collection.page = num # Load next page + @collection.fetch() initialize: => console.log "UserListView: initialize" @@ -27,18 +33,14 @@ define ['jquery', 'marionette', 'models/user/userCollection', 'views/user/userIt success: => console.log("UserListView: Collection fetched") console.log(@collection) - pag = $("#page-selection").bootpag + @pag = $("#page-selection").bootpag total: @collection.page_count - pag.on "page", (event, num) => # page number here - console.log "Paginating" - @collection.page = num # Load next page - @collection.fetch() - @isLoading = false return ) doSearch: => + console.clear() console.log("UserListView: doSearch") query = @ui.searchText.val() if (query) diff --git a/static/js/app/views/user/userListView.js b/static/js/app/views/user/userListView.js index 5ea379e..628aa66 100755 --- a/static/js/app/views/user/userListView.js +++ b/static/js/app/views/user/userListView.js @@ -7,7 +7,8 @@ define(['jquery', 'marionette', 'models/user/userCollection', 'views/user/userItemView', 'text!/tpl/UserListView', 'libs/bootstrap/bootpag'], function($, Marionette, UserCollection, UserItemView, Template) { var UserListView; UserListView = (function(_super) { - var isLoading; + var pag, + _this = this; __extends(UserListView, _super); @@ -34,7 +35,15 @@ UserListView.prototype.itemViewContainer = "tbody"; - isLoading = true; + pag = $("#page-selection").bootpag({ + total: 0 + }); + + pag.on("page", function(event, num) { + console.log("Paginating"); + UserListView.collection.page = num; + return UserListView.collection.fetch(); + }); UserListView.prototype.initialize = function() { console.log("UserListView: initialize"); @@ -47,24 +56,18 @@ return this.collection.fetch({ data: options, success: function() { - var pag; console.log("UserListView: Collection fetched"); console.log(_this.collection); - pag = $("#page-selection").bootpag({ + _this.pag = $("#page-selection").bootpag({ total: _this.collection.page_count }); - pag.on("page", function(event, num) { - console.log("Paginating"); - _this.collection.page = num; - return _this.collection.fetch(); - }); - _this.isLoading = false; } }); }; UserListView.prototype.doSearch = function() { var query; + console.clear(); console.log("UserListView: doSearch"); query = this.ui.searchText.val(); if (query) { @@ -78,7 +81,7 @@ return UserListView; - })(Marionette.CompositeView); + }).call(this, Marionette.CompositeView); return UserListView; });