From b9d54cc1e8647eb5c3dd9821da00d177537f7af7 Mon Sep 17 00:00:00 2001 From: Sebastian Henschel Date: Mon, 21 Nov 2016 15:14:31 +0100 Subject: [PATCH] Added more statistics to consumers list Now shows the same as /admin/consumer/list at API --- .../consumers/templates/consumers/index.html | 2 ++ apimanager/consumers/views.py | 22 ++++++++++++++++--- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/apimanager/consumers/templates/consumers/index.html b/apimanager/consumers/templates/consumers/index.html index 3d9bc01..2309c45 100644 --- a/apimanager/consumers/templates/consumers/index.html +++ b/apimanager/consumers/templates/consumers/index.html @@ -31,6 +31,8 @@

Statistics

diff --git a/apimanager/consumers/views.py b/apimanager/consumers/views.py index 3f566d9..cbd5e7d 100644 --- a/apimanager/consumers/views.py +++ b/apimanager/consumers/views.py @@ -47,6 +47,24 @@ class IndexView(LoginRequiredMixin, TemplateView): consumer['created'], settings.API_DATETIMEFORMAT) return consumers + + def compile_statistics(self, consumers): + """Compiles a set of statistical values for the given consumers""" + unique_developer_email = {} + unique_name = {} + for consumer in consumers: + unique_developer_email[consumer['developerEmail']] = True + unique_name[consumer['name']] = True + unique_developer_email = unique_developer_email.keys() + unique_name = unique_name.keys() + statistics = { + 'consumers_num': len(consumers), + 'unique_developerEmail_num': len(unique_developer_email), + 'unique_name_num': len(unique_name), + } + return statistics + + def get_context_data(self, **kwargs): context = super(IndexView, self).get_context_data(**kwargs) consumers = [] @@ -66,9 +84,7 @@ class IndexView(LoginRequiredMixin, TemplateView): context.update({ 'consumers': consumers, - 'statistics': { - 'consumers_num': len(consumers), - }, + 'statistics': self.compile_statistics(consumers), }) return context