Skip to content

Commit

Permalink
Merge pull request #27 from andela/bg-fix-show-gym-users-166787340
Browse files Browse the repository at this point in the history
#166787340 Fix show gym users
  • Loading branch information
AGMETEOR committed Jun 20, 2019
2 parents 7760822 + 560f17b commit fcf3684
Show file tree
Hide file tree
Showing 3 changed files with 52 additions and 9 deletions.
18 changes: 18 additions & 0 deletions wger/core/fixtures/test-user-data.json
Original file line number Diff line number Diff line change
Expand Up @@ -475,6 +475,24 @@
"email": "member11@example.com"
}
},
{
"pk": 24,
"model": "auth.user",
"fields": {
"username": "inactive",
"first_name": "rita",
"last_name": "rita",
"is_active": false,
"is_superuser": false,
"is_staff": true,
"last_login": "2012-09-25T21:18:00.042Z",
"groups": [],
"user_permissions": [],
"password": "pbkdf2_sha256$10000$dAmN8USC9lXU$G/N0SFsSO17Kjkc/f9p8t9cy2INDyGMPCYrsmvjjd4s=",
"email": "inactive@example.com",
"date_joined": "2012-07-30T14:28:16.672Z"
}
},
{
"pk": 1,
"model": "core.userprofile",
Expand Down
18 changes: 18 additions & 0 deletions wger/gym/tests/test_members_list.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
from wger.core.tests.base_testcase import WorkoutManagerTestCase
from django.core.urlresolvers import reverse_lazy


class GymListTest(WorkoutManagerTestCase):
'''
test gym member list
'''

def test_user_list_returned(self):
self.user_login()

members_url = reverse_lazy('gym:gym:user-list', kwargs={'pk': 1})
response = self.client.get(members_url)

self.assertEqual(response.context['active_user_count'], 9)
self.assertEqual(response.context['deactivated_user_count'], 1)
self.assertEqual(response.context['admin_count'], 7)
25 changes: 16 additions & 9 deletions wger/gym/views/gym.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ def dispatch(self, request, *args, **kwargs):
'''
if request.user.has_perm('gym.manage_gyms') \
or ((request.user.has_perm('gym.manage_gym')
or request.user.has_perm('gym.gym_trainer'))
or request.user.has_perm('gym.gym_trainer'))
and request.user.userprofile.gym_id == int(self.kwargs['pk'])):
return super(GymUserListView, self).dispatch(request, *args, **kwargs)
return HttpResponseForbidden()
Expand All @@ -102,12 +102,14 @@ def get_queryset(self):
Return a list with the users, not really a queryset.
'''
out = {'admins': [],
'members': []}

for u in Gym.objects.get_members(self.kwargs['pk']).select_related('usercache'):
out['members'].append({'obj': u,
'last_log': u.usercache.last_activity})

'active_members': [],
'deactivated_members': []}
gym_users = Gym.objects.get_members(self.kwargs['pk']).select_related('usercache')
for u in gym_users:
if u.is_active:
out['active_members'].append({'obj': u, 'last_log': u.usercache.last_activity})
else:
out['deactivated_members'].append({'obj': u, 'last_log': u.usercache.last_activity})
# admins list
for u in Gym.objects.get_admins(self.kwargs['pk']):
out['admins'].append({'obj': u,
Expand All @@ -116,6 +118,7 @@ def get_queryset(self):
'gym_trainer': u.has_perm('gym.gym_trainer'),
'any_admin': is_any_gym_admin(u)}
})

return out

def get_context_data(self, **kwargs):
Expand All @@ -125,9 +128,13 @@ def get_context_data(self, **kwargs):
context = super(GymUserListView, self).get_context_data(**kwargs)
context['gym'] = Gym.objects.get(pk=self.kwargs['pk'])
context['admin_count'] = len(context['object_list']['admins'])
context['user_count'] = len(context['object_list']['members'])
context['active_user_count'] = len(context['object_list']['active_members'])
context['deactivated_user_count'] = len(context['object_list']['deactivated_members'])

context['user_table'] = {'keys': [_('ID'), _('Username'), _('Name'), _('Last activity')],
'users': context['object_list']['members']}
'active_users': context['object_list']['active_members'],
'deactivated_users': context['object_list']['deactivated_members']}

return context


Expand Down

0 comments on commit fcf3684

Please sign in to comment.