diff options
Diffstat (limited to 'openstack_dashboard/dashboards/admin/groups/views.py')
-rw-r--r-- | openstack_dashboard/dashboards/admin/groups/views.py | 51 |
1 files changed, 23 insertions, 28 deletions
diff --git a/openstack_dashboard/dashboards/admin/groups/views.py b/openstack_dashboard/dashboards/admin/groups/views.py index dc821753c..2062e668d 100644 --- a/openstack_dashboard/dashboards/admin/groups/views.py +++ b/openstack_dashboard/dashboards/admin/groups/views.py @@ -21,6 +21,7 @@ from django.utils.translation import ugettext_lazy as _ # noqa from horizon import exceptions from horizon import forms from horizon import tables +from horizon.utils import memoized from openstack_dashboard import api @@ -58,17 +59,16 @@ class UpdateView(forms.ModalFormView): template_name = constants.GROUPS_UPDATE_VIEW_TEMPLATE success_url = reverse_lazy(constants.GROUPS_INDEX_URL) + @memoized.memoized_method def get_object(self): - if not hasattr(self, "_object"): - try: - self._object = api.keystone.group_get(self.request, - self.kwargs['group_id']) - except Exception: - redirect = reverse(constants.GROUPS_INDEX_URL) - exceptions.handle(self.request, - _('Unable to update group.'), - redirect=redirect) - return self._object + try: + return api.keystone.group_get(self.request, + self.kwargs['group_id']) + except Exception: + redirect = reverse(constants.GROUPS_INDEX_URL) + exceptions.handle(self.request, + _('Unable to update group.'), + redirect=redirect) def get_context_data(self, **kwargs): context = super(UpdateView, self).get_context_data(**kwargs) @@ -83,29 +83,24 @@ class UpdateView(forms.ModalFormView): class GroupManageMixin(object): + @memoized.memoized_method def _get_group(self): - if not hasattr(self, "_group"): - group_id = self.kwargs['group_id'] - self._group = api.keystone.group_get(self.request, group_id) - return self._group + group_id = self.kwargs['group_id'] + return api.keystone.group_get(self.request, group_id) + @memoized.memoized_method def _get_group_members(self): - if not hasattr(self, "_group_members"): - group_id = self.kwargs['group_id'] - self._group_members = api.keystone.user_list(self.request, - group=group_id) - return self._group_members + group_id = self.kwargs['group_id'] + return api.keystone.user_list(self.request, group=group_id) + @memoized.memoized_method def _get_group_non_members(self): - if not hasattr(self, "_group_non_members"): - domain_id = self._get_group().domain_id - all_users = api.keystone.user_list(self.request, - domain=domain_id) - group_members = self._get_group_members() - group_member_ids = [user.id for user in group_members] - self._group_non_members = filter( - lambda u: u.id not in group_member_ids, all_users) - return self._group_non_members + domain_id = self._get_group().domain_id + all_users = api.keystone.user_list(self.request, + domain=domain_id) + group_members = self._get_group_members() + group_member_ids = [user.id for user in group_members] + return filter(lambda u: u.id not in group_member_ids, all_users) class ManageMembersView(GroupManageMixin, tables.DataTableView): |