Fixed 500 on users page #29

This commit is contained in:
Sebastian Henschel 2017-10-04 10:18:38 +02:00
parent 919e70ddf3
commit dc70e52d34

View File

@ -40,25 +40,36 @@ class IndexView(LoginRequiredMixin, TemplateView):
"""Index view for users"""
template_name = "users/index.html"
def get_context_data(self, **kwargs):
context = super(IndexView, self).get_context_data(**kwargs)
role_names = []
def get_users_rolenames(self):
users = []
try:
urlpath = '/users'
users = api.get(self.request, urlpath)
except APIError as err:
messages.error(self.request, err)
return [], []
role_names = []
try:
for user in users['users']:
for entitlement in user['entitlements']['list']:
role_names.append(entitlement['role_name'])
role_names = list(set(role_names))
role_names.sort()
users = FilterRoleName(context, self.request.GET)\
.apply(users['users'])
users = FilterEmail(context, self.request.GET)\
.apply(users)
except APIError as err:
messages.error(self.request, err)
# fail gracefully in case API provides new structure
except KeyError as err:
messages.error(self.request, 'KeyError: {}'.format(err))
return [], []
role_names = list(set(role_names))
role_names.sort()
users = FilterRoleName(context, self.request.GET)\
.apply(users['users'])
users = FilterEmail(context, self.request.GET)\
.apply(users)
return users
def get_context_data(self, **kwargs):
context = super(IndexView, self).get_context_data(**kwargs)
users, role_names = self.get_users_rolenames()
context.update({
'role_names': role_names,
'statistics': {