mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-17 05:41:25 +02:00
Use a CBV and increase coverage.
This commit is contained in:
@@ -162,3 +162,18 @@ class DomainTestCase(ModoTestCase):
|
||||
"ENABLE_DOMAIN_LIMITS", "yes", app="limits")
|
||||
response = self.client.get(url)
|
||||
self.assertIn("Resources usage", response.content)
|
||||
|
||||
def test_domain_statitics_view(self):
|
||||
"""Test statistics display."""
|
||||
url = reverse("admin:domain_statistics")
|
||||
response = self.client.get(url)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertIn("Global counters", response.content)
|
||||
self.assertIn("Per-domain counters", response.content)
|
||||
|
||||
self.client.force_login(
|
||||
User.objects.get(username="admin@test.com"))
|
||||
response = self.client.get(url)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertNotIn("Global counters", response.content)
|
||||
self.assertIn("Per-domain counters", response.content)
|
||||
|
||||
@@ -18,7 +18,8 @@ urlpatterns = patterns(
|
||||
name="mx_domain_detail"),
|
||||
url(r'^domains/list/$', '_domains', name="_domain_list"),
|
||||
url(r'^domains/flatlist/$', 'domains_list', name="domain_flat_list"),
|
||||
url(r'^domains/stats/$', 'domain_statistics', name="domain_statistics"),
|
||||
url(r'^domains/stats/$', views.DomainStatisticsView.as_view(),
|
||||
name="domain_statistics"),
|
||||
url(r'^domains/new/', 'newdomain', name='domain_add'),
|
||||
url(r'^domains/(?P<dom_id>\d+)/edit/$', 'editdomain',
|
||||
name="domain_change"),
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
from .alias import AliasDetailView
|
||||
from .identity import AccountDetailView
|
||||
from .dns import DNSBLDomainDetailView, MXDomainDetailView
|
||||
from .domain import DomainDetailView
|
||||
from .domain import DomainDetailView, DomainStatisticsView
|
||||
|
||||
|
||||
__all__ = [
|
||||
@@ -11,5 +11,6 @@ __all__ = [
|
||||
"AliasDetailView",
|
||||
"DNSBLDomainDetailView",
|
||||
"DomainDetailView",
|
||||
"DomainStatisticsView",
|
||||
"MXDomainDetailView",
|
||||
]
|
||||
|
||||
@@ -147,21 +147,27 @@ def deldomain(request, dom_id):
|
||||
return render_to_json_response(msg)
|
||||
|
||||
|
||||
@login_required
|
||||
@permission_required("admin.view_domains")
|
||||
def domain_statistics(request):
|
||||
class DomainStatisticsView(
|
||||
auth_mixins.PermissionRequiredMixin, generic.TemplateView):
|
||||
"""A simple page to present domain statistics."""
|
||||
context = {}
|
||||
if request.user.role == "SuperAdmins":
|
||||
|
||||
template_name = "admin/domain_statistics.html"
|
||||
permission_required = "admin.view_domains"
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
"""Add counters."""
|
||||
context = super(DomainStatisticsView, self).get_context_data(**kwargs)
|
||||
if self.request.user.role == "SuperAdmins":
|
||||
context.update({
|
||||
"domains_counter": Domain.objects.count(),
|
||||
"domain_aliases_counter": DomainAlias.objects.count(),
|
||||
"identities_counter": (
|
||||
User.objects.count() +
|
||||
Alias.objects.filter(internal=False).count()),
|
||||
})
|
||||
context.update({
|
||||
"domains_counter": Domain.objects.count(),
|
||||
"domain_aliases_counter": DomainAlias.objects.count(),
|
||||
"identities_counter": (
|
||||
User.objects.count() +
|
||||
Alias.objects.filter(internal=False).count()),
|
||||
})
|
||||
context.update({"domains": Domain.objects.get_for_admin(request.user)})
|
||||
return render(request, "admin/domain_statistics.html", context)
|
||||
"domains": Domain.objects.get_for_admin(self.request.user)})
|
||||
return context
|
||||
|
||||
|
||||
class DomainDetailView(
|
||||
|
||||
Reference in New Issue
Block a user