diff --git a/beat/web/statistics/templates/statistics/statistics.html b/beat/web/statistics/templates/statistics/statistics.html index ebd752a7164dd0d46532e4fa5b417b1130f1d95f..40e783bfabf64b5e6831632e32db5e6ea54134ca 100644 --- a/beat/web/statistics/templates/statistics/statistics.html +++ b/beat/web/statistics/templates/statistics/statistics.html @@ -91,6 +91,21 @@ <p class="help">Items available and managed by administrators</p> </div> </div> +<div class="row"> + <div class="col-sm-3"> + <h3>Users Profiles</h3> + <ul class="list-group"> + <li class="list-group-item">Total Users <span class="badge">{{ totals.users }}</span></li> + <li class="list-group-item">New Users Unvalidated <span class="badge">{{ totals.newusers }}</span></li> + <li class="list-group-item">New Users Waiting Validation <span class="badge">{{ totals.waitingvalidationusers}}</span></li> + <li class="list-group-item">Accepted Users <span class="badge">{{ totals.acceptedusers }}</span></li> + <li class="list-group-item">Year Revalidation Users <span class="badge">{{ totals.yearrevalidationusers }}</span></li> + <li class="list-group-item">Rejected Users <span class="badge">{{ totals.rejectedusers }}</span></li> + <li class="list-group-item">Blocked Users <span class="badge">{{ totals.blockedusers }}</span></li> + </ul> + <p class="help">Users on the platform</p> + </div> +</div> <!-- tabs --> diff --git a/beat/web/statistics/views.py b/beat/web/statistics/views.py index d13a7e073a0087ec5d5c852117f528288bc2dbcb..2b1664ffc68c8a9ee7d3f9ed14b344f25953a28b 100644 --- a/beat/web/statistics/views.py +++ b/beat/web/statistics/views.py @@ -56,6 +56,7 @@ def calculate_totals(): from ..plotters.models import Plotter from ..plotters.models import PlotterParameter from ..search.models import Search + from ..accounts.models import Profile # for calculating the total cpu time, we use the HourlyStatistics and # accumulate over the whole history @@ -78,6 +79,13 @@ def calculate_totals(): output_size = details['data_written_size'] output_time = details['data_written_time'] + new_users = User.objects.filter(profile__status = Profile.NEWUSER) + waiting_validation_users = User.objects.filter(profile__status = Profile.WAITINGVALIDATION) + accepted_users = User.objects.filter(profile__status = Profile.ACCEPTED) + rejected_users = User.objects.filter(profile__status = Profile.REJECTED) + yearrevalidation_users = User.objects.filter(profile__status = Profile.YEARREVALIDATION) + blocked_users = User.objects.filter(profile__status = Profile.BLOCKED) + return dict( counter=counter, @@ -89,6 +97,12 @@ def calculate_totals(): output_bw_mb_s = int((output_size/float(2**20))/output_time) if output_size else 0, users=User.objects.count(), + newusers=new_users.count(), + waitingvalidationusers=waiting_validation_users.count(), + acceptedusers=accepted_users.count(), + rejectedusers=rejected_users.count(), + yearrevalidationusers=yearrevalidation_users.count(), + blockedusers=blocked_users.count(), databases=Database.objects.count(), environments=Environment.objects.count(), queues=Queue.objects.count(),