diff --git a/seahub/institutions/templates/institutions/useradmin.html b/seahub/institutions/templates/institutions/useradmin.html index 20dd812927..7aa79fee76 100644 --- a/seahub/institutions/templates/institutions/useradmin.html +++ b/seahub/institutions/templates/institutions/useradmin.html @@ -10,6 +10,7 @@ +{% if users %}
{% trans "Email" %} | @@ -52,6 +53,11 @@ {% endfor %}
---|
{% trans "Empty" %}
+{% endif %} + {% endblock %} {% block extra_script %} diff --git a/seahub/institutions/views.py b/seahub/institutions/views.py index 25d62907e7..40543386df 100644 --- a/seahub/institutions/views.py +++ b/seahub/institutions/views.py @@ -48,9 +48,23 @@ def info(request): def useradmin(request): """List users in the institution. """ + # Make sure page request is an int. If not, deliver first page. + try: + current_page = int(request.GET.get('page', '1')) + per_page = int(request.GET.get('per_page', '25')) + except ValueError: + current_page = 1 + per_page = 25 + + offset = per_page * (current_page - 1) inst = request.user.institution - usernames = [x.user for x in Profile.objects.filter(institution=inst.name)] - users = [User.objects.get(x) for x in usernames] + usernames = [x.user for x in Profile.objects.filter(institution=inst.name)[offset:offset + per_page + 1]] + if len(usernames) == per_page + 1: + page_next = True + else: + page_next = False + users = [User.objects.get(x) for x in usernames[:per_page]] + last_logins = UserLastLogin.objects.filter(username__in=[x.username for x in users]) for u in users: if u.username == request.user.username: @@ -65,6 +79,11 @@ def useradmin(request): return render_to_response('institutions/useradmin.html', { 'inst': inst, 'users': users, + 'current_page': current_page, + 'prev_page': current_page - 1, + 'next_page': current_page + 1, + 'per_page': per_page, + 'page_next': page_next, }, context_instance=RequestContext(request)) @inst_admin_required diff --git a/seahub/templates/sysadmin/sys_inst_info_user.html b/seahub/templates/sysadmin/sys_inst_info_user.html index f75525f665..4e8e246fc7 100644 --- a/seahub/templates/sysadmin/sys_inst_info_user.html +++ b/seahub/templates/sysadmin/sys_inst_info_user.html @@ -8,6 +8,7 @@ +{% if users %}{% trans "Email" %} | @@ -41,6 +42,10 @@
---|
{% trans "Empty" %}
+{% endif %}{% trans "Activating..., please wait" %}
diff --git a/seahub/views/sysadmin.py b/seahub/views/sysadmin.py index 58b66773aa..0ace740740 100644 --- a/seahub/views/sysadmin.py +++ b/seahub/views/sysadmin.py @@ -2272,8 +2272,7 @@ def sys_inst_admin(request): per_page = 100 offset = per_page * (current_page - 1) - limit = per_page + 1 - insts = Institution.objects.all()[offset:offset + limit] + insts = Institution.objects.all()[offset:offset + per_page + 1] if len(insts) == per_page + 1: page_next = True @@ -2282,7 +2281,7 @@ def sys_inst_admin(request): return render_to_response( 'sysadmin/sys_inst_admin.html', { - 'insts': insts, + 'insts': insts[:per_page], 'current_page': current_page, 'prev_page': current_page - 1, 'next_page': current_page + 1, @@ -2316,9 +2315,23 @@ def sys_inst_info_user(request, inst_id): except Institution.DoesNotExist: raise Http404 + # Make sure page request is an int. If not, deliver first page. + try: + current_page = int(request.GET.get('page', '1')) + per_page = int(request.GET.get('per_page', '25')) + except ValueError: + current_page = 1 + per_page = 25 + + offset = per_page * (current_page - 1) inst_admins = [x.user for x in InstitutionAdmin.objects.filter(institution=inst)] - usernames = [x.user for x in Profile.objects.filter(institution=inst.name)] - users = [User.objects.get(x) for x in usernames] + usernames = [x.user for x in Profile.objects.filter(institution=inst.name)[offset:offset + per_page + 1]] + if len(usernames) == per_page + 1: + page_next = True + else: + page_next = False + users = [User.objects.get(x) for x in usernames[:per_page]] + last_logins = UserLastLogin.objects.filter(username__in=[x.email for x in users]) for u in users: _populate_user_quota_usage(u) @@ -2340,6 +2353,11 @@ def sys_inst_info_user(request, inst_id): 'inst': inst, 'users': users, 'users_count': users_count, + 'current_page': current_page, + 'prev_page': current_page - 1, + 'next_page': current_page + 1, + 'per_page': per_page, + 'page_next': page_next, }, context_instance=RequestContext(request)) @login_required