Merge pull request #1413 from modoboa/fix/domain_quota_list_pagination

Load next page of the right type.
This commit is contained in:
Antoine Nguyen
2018-03-01 18:17:30 +01:00
committed by GitHub
5 changed files with 42 additions and 1 deletions
+18
View File
@@ -161,6 +161,24 @@ Domains.prototype = {
$(document).trigger('domain_listing_refresh');
},
/**
* Add a type to let the server know what kind of object we expect.
*
* @this Listing
*/
get_load_page_args: function() {
var args = Admin.prototype.get_load_page_args.call(this);
if (this.navobj.getbaseurl() === "list") {
args.objtype = "domain";
this.options.eor_message = gettext("No more domain to show");
} else {
args.objtype = "quota";
this.options.eor_message = gettext("No more quota to show");
}
return args;
},
/**
* Navigation callback: default.
*
+1 -1
View File
@@ -15,7 +15,7 @@
<script type="text/javascript">
$(document).ready(function() {
admin = new Domains({
load_page_url: "{% url 'admin:_domain_list' %}"
load_page_url: "{% url 'admin:domain_page' %}"
});
});
</script>
+8
View File
@@ -356,6 +356,14 @@ class DomainTestCase(ModoTestCase):
self.assertNotIn("Global statistics", content)
self.assertIn("Per-domain statistics", content)
def test_page_loader(self):
"""Test page loader view."""
url = reverse("admin:domain_page")
response = self.ajax_get(url)
self.assertIn("handle_mailboxes", response)
response = self.ajax_get("{}?objtype=quota".format(url))
self.assertIn("progress-bar", response["rows"])
class DKIMTestCase(ModoTestCase):
"""Test case for DKIM."""
+2
View File
@@ -31,6 +31,8 @@ urlpatterns = [
name="domain_change"),
url(r'^domains/(?P<dom_id>\d+)/delete/$', domain_views.deldomain,
name="domain_delete"),
url(r'^domains/page/$', domain_views.get_next_page,
name="domain_page"),
]
urlpatterns += [
+13
View File
@@ -108,6 +108,19 @@ def domains(request, tplname="admin/domains.html"):
})
@login_required
@user_passes_test(
lambda u: u.has_perm("admin.view_domains") or
u.has_perm("admin.view_mailboxes") or
u.has_perm("admin.add_domain")
)
def get_next_page(request):
"""Return the next page of the domain or quota list."""
if request.GET.get("objtype", "domain") == "domain":
return _domains(request)
return list_quotas(request)
@login_required
@permission_required("core.add_user")
def domains_list(request):